Cameteo/arduino/cameteo-teensy-bug/cameteo-teensy/cameteo_teensy.h

98 lines
2.7 KiB
C
Raw Normal View History

2017-07-08 18:08:54 +02:00
/*
* CAMETEO project
*
* This is a personnal project of weather station with
* automatic photo taking.
* This code is the weather station part and is meant
* to be run on a PJRC Teensy 3.2 board.
*
* Author : Arofarn
*
* Licence : GPL v3
*
*/
/*
* LIBRARIES
*/
//Protocols
#include <Wire.h> // library used with I2C protocol
#include <SPI.h> // SPI protocol
//Teensy3.x Real Time Clock
#include <TimeLib.h>
//SD card
#include <SD.h>
// Sensors
#include <Adafruit_Sensor.h> // Generic
//#include <DHT.h> // DHT22
//#include <DHT_U.h> // DHT22 unified
//#include <Adafruit_BMP085_U.h> // BMP180
#include <Adafruit_BME280.h> // BME280
#include <PWFusion_AS3935.h>
//GPS
//#include <Adafruit_GPS.h> // Adafruit Ultimate GPS
#include <TinyGPS.h> //Builtin GPS lib
/*
* DEFINE
* &
* DECLARE
*/
//Special characteres
#define DEGREE (char)176 //degree symbol in ISO 8859-1
#define DEGREE_LCD (char)222 //degree symbol for lcd display
// Pins used
#define RX1_PIN 0 // Raspberry Pi2 serial comm. - Hard wired
#define TX1_PIN 1 // Raspberry Pi2 serial comm. - Hard wired
#define RPI_PWR_PIN 2 // Raspberry Pi power control - Hard wired
#define SD_CS_PIN 4 // SPI SD CS - Hard wired
#define GPS_EN_PIN 6 // GPS ENable
#define RX3_PIN 7 // GPS serial comm.
#define TX3_PIN 8 // GPS serial comm.
#define AS3935_IRQ_PIN 9 // Interrupts from AS3935 lightning sensor
#define AS3935_CS_PIN 10 // SPI CS AS3935 lightning sensor
#define SPI_DI_PIN 11 // SPI MOSI AS3935 lightning sensor
#define SPI_DO_PIN 12 // SPI MISO AS3935 lightning sensor
#define SPI_CK_PIN 13 // SPI clock SD + AS3935 lightning sensor + built-in LED
//#define DHT_PIN 14 // Humidity sensor data
#define GPS_BUT_PIN 16 // GPS switch power control
#define I2C_SDA_PIN 18 // I2C SDA
#define I2C_SCL_PIN 19 // I2C SCL
#define BATT_VOLT_PIN 22 // Battery voltage monitoring (Analog Input)
#define LOW_BATT_PIN 23 // Low Battery signal from charger (digital input)
//I2C addresses
//#define TCN75A_ADDR 0x00 //Sensor I2C bus address
#define BMP180_ADDR 0x77
//#define BME280_ADDR 0x00 // ???
//Serial over USB communication
#define SERIAL_PORT Serial
#define SERIAL_BAUD_RATE 9600
//Raspberry Pi Serial Comm.
#define RPI_SERIAL_PORT Serial1
#define RPI_SERIAL_BAUD_RATE 115200
//GPS
#define GPS_SERIAL_PORT Serial3
#define GPS_SERIAL_BAUD_RATE 9600
// AS3935 Lightning sensor
#define AS3935_INDOORS 0
#define AS3935_OUTDOORS 1
#define AS3935_DIST_DIS 0
#define AS3935_DIST_EN 1
#define AS3935_CAPACITANCE 72 // 72pF for THIS board (from seller)