0. at command => AT Fail 0. at command => AT+CWMODE=1 Fail 0. at command => AT+CWJAP="knapsack","namespace" Fail 0. at command => AT+CIPMUX=1 Fail 0. at command => AT+CIPSTART=0,"TCP","api.thingspeak.com",80 #include <SoftwareSerial.h> #define RX 2 #define TX 3 //#define RX 19 //#define TX 18 String AP = "knapsack"; //AP NAME String PASS = "namespace"; //AP PASSWORD String API = "FNFJ7KDHJK4F3IU2"; //Write API KEY String HOST = "api.thingspeak.com"; String PORT = "80"; String field = "Random"; int countTrueCommand; int countTimeCommand; boolean found = false; int valSensor = 1; SoftwareSerial esp8266(RX, TX); void setup() { Serial.begin(9600); esp8266.begin(115200); sendCommand("AT", 5, "OK"); sendCommand("AT+CWMODE=1", 5, "OK"); sendCommand("AT+CWJAP=\"" + AP + "\",\"" + PASS + "\"", 20, "OK"); } void loop() { valSensor = getSensorData(); String getData = "GET /update?api_key=" + API + "&" + field + "=" + String(valSensor); sendCommand("AT+CIPMUX=1", 5, "OK"); sendCommand("AT+CIPSTART=0,\"TCP\",\"" + HOST + "\"," + PORT, 15, "OK"); sendCommand("AT+CIPSEND=0," + String(getData.length() + 4), 4, ">"); esp8266.println(getData); delay(1500); countTrueCommand++; sendCommand("AT+CIPCLOSE=0", 5, "OK"); } int getSensorData() { return random(1000); // Replace with your own sensor code } void sendCommand(String command, int maxTime, char readReplay[]) { Serial.print(countTrueCommand); Serial.print(". at command => "); Serial.print(command); Serial.print(" "); while (countTimeCommand < (maxTime * 1)) { esp8266.println(command);//at+cipsend if (esp8266.find(readReplay)) //ok { found = true; break; } countTimeCommand++; } if (found == true) { Serial.println("OYI"); countTrueCommand++; countTimeCommand = 0; } if (found == false) { Serial.println("Fail"); countTrueCommand = 0; countTimeCommand = 0; } found = false; }