2018年11月12日 星期一

ESP32 Temperature, Humidity data upload to ThingSpeak

ESP32 Temperature, Humidity data upload to ThingSpeak 



//========================================================

// Robo India Tutorial 
// Simple code upload the tempeature and humidity data using thingspeak.com
// Hardware: ESP32,DHT11

#include "DHT.h"  // Including library for dht
#include <WiFi.h>
String apiKey = "8U1H2OD8L4P9L718";     //  Enter your Write API key from ThingSpeak

const char *ssid =  "alex9ufo";     // replace with your wifi ssid and wpa2 key
const char *pass =  "alex9981";
const char* server = "api.thingspeak.com";

#define DHTPIN 23          //pin where the dht11 is connected
DHT dht(DHTPIN, DHT11);
WiFiClient client;
void setup() 
{
      Serial.begin(115200);
      delay(10);
      dht.begin();
      Serial.println("Connecting to ");
      Serial.println(ssid);
      WiFi.begin(ssid, pass);
      while (WiFi.status() != WL_CONNECTED) 
      {     
            delay(500);
            Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
}
//========================================================
void loop() 
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) 
    {
      Serial.println("Failed to read from DHT sensor!");
      return;
    }
  if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
    {  
      String postStr = apiKey;
      postStr +="&field1=";
      postStr += String(t);
      postStr +="&field2=";
      postStr += String(h);
      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(t);
      Serial.print(" degrees Celcius, Humidity: ");
      Serial.print(h);
      Serial.println("%. Send to Thingspeak.");
    }
    client.stop();
    Serial.println("Waiting...");
  
    // thingspeak needs minimum 15 sec delay between updates, i've set it to 30 seconds
    delay(10000);
}
//========================================================












APP 

ThingView - ThingSpeak viewer  

SETTING










沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...