2015年10月18日 星期日

ESP8266 + Arduino IDE 1.6.5 + SHT20 溫濕度感應器 - 連上 ThingSpeak

ESP8266 要連上ThingSpeak 網路上的文章應該很多了,當然首先是要註冊一個 ThingSpeak 帳號,申請帳號請前往 https://thingspeak.com/ 。

接著要 New Channel:

ThingSpeak
ThingSpeak New Channel

設定 Name 及 Field1 及 Field2,在我的測試中 Field1 是 "Tempature" 及 Field2 是 "Humidity",接著在 Arduino IDE include library "ESP8266WiFi",首先當然是要先連上區域網路上的 AP。

 WiFi.begin(ssid, password);

其中 SSID 及 Password 是區域網路AP 的 ID 及 Password, 並記錄下 Thingspeak 所產生的 API key,程式碼大概如下:

Serial.print("Sending data to thingspeak.com");
  if (client.connect(server, 80)) { //   "184.106.153.149" or api.thingspeak.com
    String postStr = apiKey;
    postStr += "&field1=";
    postStr += String(temp);
    postStr += "&field2=";
    postStr += String(humd);
    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(temp, 1);
    Serial.print("C");
    Serial.print(" Humidity:");
    Serial.print(humd, 1);
    Serial.print("%");
    Serial.println();
  }
  client.stop();
 
在 Thingspeak 顯示如下:

Thingspeak Channel