我是Arduino的新手,我正在使用Arduino Uno r3。我必须将温度传感器数据上传到ThingSpeak。为此,我使用DHT11。对于WiFi的连接我使用ESP8266。你能告诉我如何将传感器值上传到ThingSpeak吗?
答案 0 :(得分:0)
试试这个instructable - 看起来像一个完美的匹配: http://www.instructables.com/id/Send-sensor-data-DHT11-BMP180-to-ThingSpeak-with-a/
Rob Purser
答案 1 :(得分:0)
我还建议您只使用ESP8266(特别是NodeMCU),因为它既是WiFi设备又是微控制器。
您可以使用Arduino IDE对NodeMCU进行编程。如果是这种情况,那么您只需要创建一个WiFiClient,然后构建一个HTTP POST请求,并使用客户端将其发送给ThingSpeak。
以下是我tutorial的相关行:
在设置之前添加以下行:
#include <ESP8266WiFi.h>
WiFiClient client;
const char* server = "api.thingspeak.com";
String writeAPIKey = "XXXXXXXXXXXXXXXX";
在循环中,添加以下行以读取A0并将其发送到ThingSpeak:
if (client.connect(server, 80)) {
// Measure Analog Input (A0)
int valueA0 = analogRead(A0);
// Construct API request body
String body = "field1=";
body += String(valueA0);
Serial.print("A0: ");
Serial.println(valueA0);
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + writeAPIKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(body.length());
client.print("\n\n");
client.print(body);
client.print("\n\n");
}
client.stop();
// wait 20 seconds and post again
delay(20000);