2016-12-30 49 views
-1

我是Arduino的新手,我使用的是Arduino Uno r3。我必須將溫度傳感器數據上傳到ThingSpeak。爲此我使用DHT11。對於WiFi的連接,我使用ESP8266。你能告訴我如何將傳感器值上傳到ThingSpeak?一步一步的程序連接到事情的竅門

+0

我不明白你爲什麼需要一個uno; dht11(單獨或作爲一個模塊)與ESP一起工作良好,消除了複雜性,也節省了大量資金。 – dandavis

回答

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