#include // LED int ledPin = 13; int sensor_pin=A4; // variable for sensor int sensor_pin1=A3; // variable for sensor int sensor_pin2=A2; // variable for sensor float sample=0; float bat_volt =0; // for temperature int sensorValue = 0; // value read from the pot int sensorValue1 = 0; int sensorValue2 = 0; int outputValue = 0; // value output to the PWM (analog out) int outputValue1 = 0; int outputValue2 = 0; // replace with your channel's thingspeak API key String apiKey = "your api here" // connect 2 to TX of Serial USB // connect 3 to RX of serial USB SoftwareSerial ser(2,3); // RX, TX // this runs once void setup() { // initialize the digital pin as an output. pinMode(ledPin, OUTPUT); // enable debug serial Serial.begin(115200); ser.begin(115200); // enable software serial // reset ESP8266 ser.println("AT+RST"); } // the loop void loop() { // blink LED on board digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); voltage(); esp_8266(); } void voltage() { sensorValue = analogRead(sensor_pin); sensorValue1 = analogRead(sensor_pin1); sensorValue2 = analogRead(sensor_pin2); // map it to the range of the analog out: outputValue = map(sensorValue, 0, 1023, 0, 255); outputValue1 = map(sensorValue1, 0, 1023, 0, 255); outputValue2 = map(sensorValue2, 0, 1023, 0, 255); } void esp_8266() { // convert to string char buf[32]; Serial.print(outputValue); Serial.println(" %"); // TCP connection String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += "184.106.153.149"; // api.thingspeak.com cmd += "\",80"; ser.println(cmd); if(ser.find("Error")){ Serial.println("AT+CIPSTART error"); return; } // prepare GET string String getStr = "GET /update?api_key="; getStr += apiKey; getStr +="&field1="; getStr += outputValue; getStr +="&field2="; getStr += outputValue1; getStr +="&field3="; getStr += outputValue2; getStr += "\r\n\r\n"; // send data length cmd = "AT+CIPSEND="; cmd += String(getStr.length()); ser.println(cmd); if(ser.find(">")){ ser.print(getStr); } else{ ser.println("AT+CIPCLOSE"); // alert user Serial.println("AT+CIPCLOSE"); } // thingspeak needs 15 sec delay between updates delay(16000); }