一步一步的程序连接到thingpeak

时间:2016-12-30 18:42:48

标签: arduino arduino-uno esp8266

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

2 个答案:

答案 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);