/* STANDARD DEFINES */ #define F_CPU 16000000UL #define BAUD 9600 /* INCLUDED LIBRARIES */ #include #include #include #include /* https://github.com/camilstaps/ESP8266_PIC */ #define SSID "WiFi SSID" #define PASSWORD "WiFi Password" #define DHT11_PORT 6 /* PD6 */ /* HUMIDITY INFORMATION */ volatile uint8_t int_Hum; /* INTEGER */ volatile uint8_t dec_Hum; /* DECIMAL */ volatile uint8_t max_Hum; /* MAX VALUE */ volatile uint8_t min_Hum; /* MIN VALUE */ /* TEMPERATURE INFORMATION */ volatile uint8_t int_Temp; /* INTEGER */ volatile uint8_t dec_Temp; /* DECIMAL */ volatile uint8_t max_Temp; /* MAX VALUE */ volatile uint8_t min_Temp; /* MIN VALUE */ /* MISCELLANEOUS */ volatile uint8_t checkSum; /* CHECKSUM FOR DHT11 */ volatile uint8_t data = 0; /* TRANSMITTED DATA */ volatile uint8_t beenChecked = 0; /* BOOLEAN */ void usart_Init(void) { UCSR0B |= (1< maxHum) { /* IF CURRENT HUMIDITY IS GREATER THAN MAX HUMIDITY */ maxHum = hum; /* SET MAX HUMIDITY TO CURRENT HUMIDITY */ } if(hum < minHum) { /* IF CURRENT HUMIDITY IS LESS THAN MIN HUMIDITY */ minHum = hum; /* SET MIN HUMIDITY TO CURRENT HUMIDITY */ } if(temp > maxTemp) { /* IF MAX TEMPERATURE IS GREATER THAN MAX TEMPERATURE */ maxTemp = temp; /* SET MAX TEMPERATURE TO CURRENT TEMPERATURE */ } if(hum < minHum) { /* IF MIN TEMPERATURE IS LESS THAN MIN TEMPERATURE */ minTemp = temp; /* SET MIN TEMPERATURE TO CURRENT TEMPERATUR */ } } void pinConfig() [ DDRD |= (1<<6)|(1<<5)|(1<<1); } int main(void) { usart_Init; uint8_t usartData = usart_Receive(); esp8266_connect(SSID, PASSWORD); /* CONNECT TO WIFI */ CURL *curl; CURLcode res; CURL *curl = curl_easy_init(); /*Initiserar CURL */ while(1) { pinConfig(); /* CONFIGURE PINS */ sensorRequest(); /* SEND PULSE TO START SENSOR */ sensorResponse(); /* RECEIVE RESPONSE FROM SENSOR */ int_Hum = receiveData(); /* READ INTEGER PART OF HUMIDITY */ dec_Hum = receiveData(); /* READ DECIMAL PART OF HUMIDITY */ int_Temp = receiveData(); /* READ INTEGER PART OF TEMPERATURE */ dec_Temp = receiveData(); /* READ DECIMAL PART OF TEMPERATURE */ checkSum = receiveData(); /* READ CHECKSUM */ if ((int_Hum + dec_Hum + int_Temp + dec_Temp) != checkSum) { /* IF CHECKSUM IS NOT EQUAL TO VALUES ADDED TOGETHER */ /* TRANSMITTION ERROR, DISCARD THE CURRENT VALUES */ } else { /* IF CHECKSUM IS CORRECT */ calcExtemeValues(int_Hum, int_Temp); /* CALCULATE EXTREME VALUES */ sendThingSpeak(); /* SEND VALUES TO THINGSPEAK */ } } }