can not upload data to thingspeak even while the data is displaying in serial moniter

조회 수: 10 (최근 30일)
#include <ESP8266WiFi.h>
#include <DHT.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
String apiKey = "AAABBBCCCDDD"; // Enter your Write API key from ThingSpeak
const char *ssid = "Mattath-Fi"; // replace with your wifi ssid and wpa2 key
const char *pass = "12345678";
const char* server = "api.thingspeak.com";
#define DHTPIN 0 //pin where the dht11 is connected
DHT dht(DHTPIN, DHT11);
WiFiClient client;
void setup()
{
Serial.begin(115200);
delay(10);
dht.begin();
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println("Failed to read from Sensors!");
return;
}
if (client.connect(server,80)) // "184.106.153.149" or api.thingspeak.com
{
String postStr = apiKey;
postStr +="&field1=";
postStr += String(t);
postStr +="&field2=";
postStr += String(h);
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);
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" degrees Celcius, Humidity: ");
Serial.print(h);
Serial.println("%. Send to Thingspeak.");
}
client.stop();
Serial.println("Waiting...");
delay(1000);
}

답변 (1개)

Christopher Stapels
Christopher Stapels 2021년 3월 9일
What are you seeing on the serial monitor?
I think the problem is that you are stopping the client before the server acknowleges the post. You could add delay before disconencting, or wait for a response.
We strongly reccomend using the ThingSpeak library by the way. It takes care of all the HTTP interactions and waiting for you.
  댓글 수: 8
Ayesha Fatima
Ayesha Fatima 2021년 4월 23일
I added the thingspeak libraries and also changed delay as 30sec which was 10 at first. but still the parameters are not being posted on thingspeak
Christopher Stapels
Christopher Stapels 2021년 4월 23일
@Ayesha Fatima perhaps you culd start a new post/thread so we can help you? I would describe what you are trying to do, what you have tried, and what you see.

댓글을 달려면 로그인하십시오.

커뮤니티

더 많은 답변 보기:  ThingSpeak 커뮤니티

카테고리

Help CenterFile Exchange에서 REST API에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by