逐步连接到 thingspeak 的程序

step by step procedure to connect to the thingspeak

我是 Arduino 的新手,我正在使用 Arduino Uno r3。我必须将温度传感器数据上传到 ThingSpeak。为此,我正在使用 DHT11。对于 WiFi 连接,我使用的是 ESP8266。请问如何将传感器值上传到 ThingSpeak?

试试这个教程——看起来是绝配: http://www.instructables.com/id/Send-sensor-data-DHT11-BMP180-to-ThingSpeak-with-a/

罗伯·珀瑟

我还建议您只使用 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);