I have problem to send data taken from temperature sensor on arduino using wifi shield "ESP8266". Neeeeed help
Here is the code:
#include <SoftwareSerial.h>
//#include <stdlib.h>
// LED
int ledPin = 13;
// LM35 analog input
int lm35Pin = 0;
// replace with your channel's thingspeak API key
String apiKey = "QWXWVLWCV42QPFFT";
// connect 10 to TX of Serial USB
// connect 11 to RX of serial USB
SoftwareSerial ser(10, 11); // RX, TX
// this runs once
void setup() {
// initialize the digital pin as an output.
pinMode(ledPin, OUTPUT);
// enable debug serial
Serial.begin(9600);
// enable software serial
ser.begin(9600);
// reset ESP8266
ser.println("AT+RST");
}
// the loop
void loop() {
// blink LED on board
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
// read the value from LM35.
// read 10 values for averaging.
int val = 0;
for(int i = 0; i < 10; i++) {
val += analogRead(lm35Pin);
delay(500);
}
// convert to temp:
// temp value is in 0-1023 range
// LM35 outputs 10mV/degree C. ie, 1 Volt => 100 degrees C
// So Temp = (avg_val/1023)*5 Volts * 100 degrees/Volt
float temp = val*50.0f/1023.0f;
// convert to string
char buf[16];
String strTemp = dtostrf(temp, 4, 1, buf);
Serial.println(strTemp);
// TCP connection
String cm = "AT+CIPMUX=1";
ser.println(cm);
String cmd = "AT+CIPSTART=,\"TCP\",\"";
cmd += "52.7.53.111"; // 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 += String(strTemp);
getStr += "\r\n\r\n";
// send data length
cmd = "AT+CIPSEND=";
cmd += String(getStr.length());
ser.println(cmd);
if(ser.find(">")){ // I thing problems begin here ! am i right ??????????????,
ser.print(getStr);
}
else{
ser.println("AT+CIPCLOSE");
// alert user
Serial.println("AT+CIPCLOSE");
}
// thingspeak needs 15 sec delay between updates
delay(16000);
}
AND I get on the monitor serie something like this :
AT+CIPCLOSE
27.5
AT+CIPCLOSE
28.0
AT+CIPCLOSE
27.4
AT+CIPCLOSE
27.4
AT+CIPCLOSE
27.4
AT+CIPCLOSE
27.4
AT+CIPCLOSE
So i thing the shield is connected but data not sent. Help me to solve pleeeeeaaaaaaaaaase