/* Constants.h Defines ATMEGA32U4 and AT90USB1286 pins and other SENSORS and COMUNICATIONS static parameters. */ #define debugEnabled true #define decouplerComp true //Only for version Goteo 1.0 #if F_CPU == 8000000 #define FirmWare "1.1-0.9.0-A" #else #define FirmWare "1.0-0.9.0-A" #endif /* WIFI AND SERVER STATICS - WiFly, Http server parameters. */ // WiFly Auth Modes #define OPEN "0" #define WEP "1" #define WPA "2" #define MIXED "3" #define WPA2 "4" #define WEP64 "8" #define EXT_ANT "1" // External Antenna #define INT_ANT "0" // Internal Antenna /* WIFLY Firmware Setting */ #define networks 3 #if (networks > 0) static char* mySSID[networks] = { "hangar_lab" , "MID" , "SSID3" }; static char* myPassword[networks] = { "labinteractius" , "Mid-oval88" , "PASS3" }; static char* wifiEncript[networks] = { WPA2 , WPA2 , WPA2 }; static char* antennaExt[networks] = { INT_ANT , INT_ANT , INT_ANT }; #endif #define TWI_FREQ 400000L //Frecuencia bus I2C #define WIFLY_LATEST_VERSION 441 #define DEFAULT_WIFLY_FIRMWARE "ftp update wifly3-441.img" #define DEFAULT_WIFLY_FTP_UPDATE "set ftp address 198.175.253.161" /* ARDUINO ports definitions - GPIOS and ADCs */ #if defined(__AVR_ATmega32U4__) #define AWAKE 4 // WIFLY AWAKE #define PANEL A8 // PANEL LEVEL #define BAT A7 // BAT LEVEL #define IO0 5 // MICS5525_HEATHER #define IO1 13 // MICS2710_HEATHER #define IO2 9 // MICS2710_HIGH_IMPEDANCE #define IO3 10 // MICS2710_HIGH_IMPEDANCE #define FACTORY 7 // WIFLY - Factory RESET/AP RN131 #define CONTROL 12 // WIFLY - CONTROL #define S0 A4 //MICS_5525 #define S1 A5 //MICS_2710 #define S2 A2 //SENS_5525 #define S3 A3 //SENS_2710 #define S4 A0 //MICRO #define S5 A1 //LDR #elif defined(__AVR_AT90USB1286__) #define AWAKE 28 // WIFLY AWAKE #define PANEL A3 // PANEL LEVEL #define BAT A2 // BAT LEVEL #define IO0 22 // MICS5525_HEATHER #define IO1 23 // MICS2710_HEATHER #define IO2 20 // MICS2710_HIGH_IMPEDANCE #define IO3 21 // MICS2710_HIGH_IMPEDANCE #define FACTORY 38 // WIFLY - Factory RESET/AP RN131 #define CONTROL 30 // WIFLY - CONTROL #define S0 A1 //MICS_5525 #define S1 A0 //MICS_2710 #define S2 A5 //SENS_5525 #define S3 A4 //SENS_2710 #define S4 A7 //MICRO #define S5 A6 //LDR #endif /* SENSOR READINGS - Defaults */ #define DEFAULT_TIME_UPDATE 240 //Time between update and update #define DEFAULT_MIN_UPDATES 1 //Minimum number of updates before posting #define POST_MAX 20 //Max number of postings at a time #define DEFAULT_MODE_SENSOR NORMAL //Type sensors capture (OFFLINE, NOWIFI, NORMAL, ECONOMIC) /* i2c ADDRESSES */ #define RTC_ADDRESS 0x68 // Direction of the RTC #define E2PROM 0x50 // Direction of the EEPROM #if F_CPU == 8000000 #define MCP1 0x2E // Direction of the mcp1 Potenciometers that control the MICS #define MCP2 0x2F // Direction of the mcp2 Potenciometers that control the microfone pickup #define bh1730 0x29 // Direction of the light sensor #define Temperature 0x40 // Direction of the sht21 #define ADXL 0x53 //ADXL345 device address #else #define MCP1 0x2F // Direction of the mcp1 MICS #define MCP2 0x2E // Direction of the mcp2 REGULATORS #endif #if F_CPU == 8000000 #define R1 12 //Kohm #else #define R1 82 //Kohm #endif #define P1 100 //Kohm /* Internal EEPROM Memory Addresses */ // SCK Configuration Parameters #define EE_ADDR_TIME_VERSION 0 //32BYTES #define EE_ADDR_TIME_UPDATE 32 //4BYTES Time between update and update of the sensors in seconds #define EE_ADDR_SENSOR_MODE 36 //4BYTES Type sensors capture #define EE_ADDR_NUMBER_UPDATES 40 //4BYTES Number of updates before posting #define EE_ADDR_NUMBER_READ_MEASURE 44 //4BYTES Number of updates before posting #define EE_ADDR_NUMBER_WRITE_MEASURE 48 //4BYTES Number of updates before posting #define EE_ADDR_NUMBER_NETS 52 //4BYTES Number of networks in the memory #define EE_ADDR_APIKEY 56 //32BYTES Apikey of the device #define EE_ADDR_MAC 100 //32BYTES MAC of the device // SCK WIFI SETTINGS Parameters #define DEFAULT_ADDR_SSID 150 //160 BYTES #define DEFAULT_ADDR_PASS 310 //160 BYTES #define DEFAULT_ADDR_AUTH 470 //160 BYTES #define DEFAULT_ADDR_ANTENNA 630 //160 BYTES /* External EEPROM Memory Addresses */ // SCK DATA SPACE (Sensor readings can be stored here to do batch updates) #define DEFAULT_ADDR_MEASURES 0 /* MICS PARAMETERS - Gas Sensor Addresses and Defaults */ #define MICS_5525 0x00 #define MICS_2710 0x01 #define RES 256 // Digital pot. resolution #define P1 100 //Digital potentiometer resistance 100Kohm #define Rc0 10. //Ohm. Average current resistance for sensor MICS_5525/MICS_5524 #if F_CPU == 8000000 #define Rc1 39. //Ohm. Average current resistance for sensor MICS_2714 #else #define Rc1 10. //Ohm. Average current resistance for sensor MICS_2710 #endif #if F_CPU == 8000000 #define VMIC0 2734. #define VMIC1 2734. #else #define VMIC0 5000. #define VMIC1 2500. #endif #define reference 2560. #define second 1000 #define minute 60000 /* BATTERY PARAMETERS - Battery sensing calibration parameters */ #if F_CPU == 8000000 #define VAL_MAX_BATTERY 4200 #define VAL_MIN_BATTERY 3000 #else #define VAL_MAX_BATTERY 4050 #define VAL_MIN_BATTERY 3000 #endif #define DHTLIB_INVALID_VALUE -999 #define OFFLINE 0 //No connect to server #define NOWIFI 1 //No connect arduino to wifi module #define NORMAL 2 //Nomal mode o real time #define ECONOMIC 3 //Economic mode, sensor gas active one time for hour #define SENSORS 9 //Numbers of sensors in the board #define buffer_length 32 static char buffer[buffer_length]; // Basic Server Posts to the SmartCitizen Platform - EndPoint: http://data.smartcitizen.me/add static char* WEB[8]={ "data.smartcitizen.me", "PUT /add HTTP/1.1 \n", "Host: data.smartcitizen.me \n", "User-Agent: SmartCitizen \n", "X-SmartCitizenMacADDR: ", "X-SmartCitizenApiKey: ", "X-SmartCitizenVersion: ", "X-SmartCitizenData: "}; // Time server request - EndPoint: http://data.smartcitizen.me/datetime static char* WEBTIME[3]={ /*Servidor de tiempo*/ "GET /datetime HTTP/1.1 \n", "Host: data.smartcitizen.me \n", "User-Agent: SmartCitizen \n\n" }; // Data JSON structure static char* SERVER[11]={ "{\"temp\":\"", "\",\"hum\":\"", "\",\"light\":\"", "\",\"bat\":\"", "\",\"panel\":\"", "\",\"co\":\"", "\",\"no2\":\"", "\",\"noise\":\"", "\",\"nets\":\"", "\",\"timestamp\":\"", "\"}" }; static char* SENSOR[10]={ "Temperature: ", "Humidity: ", "Light: ", "Battery: ", "Solar Panel: ", "Carbon Monxide: ", "Nitrogen Dioxide: ", "Noise: ", "Wifi Spots: ", "UTC: " }; static char* UNITS[9]={ #if F_CPU == 8000000 " C RAW", " % RAW", #else " C", " %", #endif #if F_CPU == 8000000 " lx", #else " %", #endif " %", " mV", " kOhm", " kOhm", " mV", "", };