#include #include #include //Def #define myPeriodic 15 //in sec | Thingspeak pub is 15sec #define ONE_WIRE_BUS 4 // DS18B20 on 4 //#define mySSR 0 // Solid State Relay on pin 0 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); float prevTemp = 0; const char* server = "api.thingspeak.com"; String apiKey ="API_KEY_HERE"; const char* MY_SSID = "SSID_HERE"; const char* MY_PWD = "PWD_HERE"; int sent = 0; void setup() { Serial.begin(115200); connectWifi(); } void loop() { float temp; //char buffer[10]; DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); //String tempC = dtostrf(temp, 4, 1, buffer);//handled in sendTemp() Serial.print(String(sent)+" Temperature: "); Serial.println(temp); //if (temp != prevTemp) //{ //sendTeperatureTS(temp); //prevTemp = temp; //} sendTeperatureTS(temp); int count = myPeriodic; while(count--) delay(1000); } void connectWifi() { Serial.print("Connecting to "+*MY_SSID); WiFi.begin(MY_SSID, MY_PWD); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("Connected"); Serial.println(""); }//end connect void sendTeperatureTS(float temp) { WiFiClient client; if (client.connect(server, 80)) { // use ip 184.106.153.149 or api.thingspeak.com Serial.println("WiFi Client connected "); String postStr = apiKey; postStr += "&field1="; postStr += String(temp); postStr += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); delay(1000); }//end if sent++; client.stop(); }//end send