//Header files #include "MQ135.h" // Variables declaration int analogPin = 0; int B = 10; MQ135 gasSensor = MQ135(analogPin); //set up macros for wifi and webhost connection // #define RZERO 310 #define SSID "Base AP" //SSID #define PASS "12345678" #define TSKEY "LIKRVX8QU7NVOW02" // Thingspeak Key #define IP "184.106.153.149" // thingspeak.com #define SENDDELAY 120 void setup(){ Serial.begin(9600); Serial.println("AT"); delay(5000); if(Serial.find("OK")){ connectWiFi(); } } void loop(){ float PPM = gasSensor.getPPM(); sendData(String(B), String(PPM)); delay(120000); } void sendData(String batteryLevel ,String ppmSensor ){ // Set up TCP connection. String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += IP; cmd += "\",80"; Serial.println(cmd); delay(2000); if(Serial.find("Error")){ return; } // Send data. cmd = "GET /update?key="; cmd += TSKEY; cmd += "&field1="; cmd += batteryLevel; cmd += "&field2="; cmd += ppmSensor; cmd += "\r\n"; Serial.print("AT+CIPSEND="); Serial.println(cmd.length()); if(Serial.find(">")){ Serial.print(cmd); } else{ Serial.println("AT+CIPCLOSE"); } } boolean connectWiFi(){ Serial.println("AT+CWMODE=1"); delay(2000); String cmd="AT+CWJAP=\""; cmd+=SSID; cmd+="\",\""; cmd+=PASS; cmd+="\""; Serial.println(cmd); delay(5000); if(Serial.find("OK")){ return true; } else{ return false; } }