iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

IOT上課心得系列 第 21

Day 21 - ESP32 核心應用

  • 分享至 

  • xImage
  •  

一般只有在單核下執行
模擬器沒有DHT11找到DHT22做例子圖
ESP32 + DHT22 Example for Wokwi
DHT22模擬器

#include <WiFi.h>

#include <HTTPClient.h>
#include <SimpleDHT.h>
//請修改以下參數--------------------------------------------
char ssid[] = "SSID";
char password[] = "SSIDpassword";
//請修改為你自己的API Key,並將https改為http
String url = "http://api.thingspeak.com/update?api_key=換成你的APIKey";
int pinDHT11 = 4;//假設DHT11 接在腳位GPIO4,DHT11 接線圖請參考P74
//---------------------------------------------------------
SimpleDHT11 dht11(pinDHT11);//宣告SimpleDHT11物件

void setup()
{
Serial.begin(115200);
Serial.print("開始連線到無線網路SSID:");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("連線完成");
}

void loop()
{
Serial.print("使用核心編號:");
Serial.println(xPortGetCoreID());
//嘗試讀取溫濕度內容
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) !=
SimpleDHTErrSuccess) {
Serial.print("溫度計讀取失敗,錯誤碼=");
Serial.println(err);
delay(1000);
return;
}
//讀取成功,將溫濕度顯示在序列視窗
Serial.print("溫度計讀取成功: ");
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" H");
//開始傳送到thingspeak
Serial.println("啟動網頁連線");
HTTPClient http;
//將溫度及濕度以http get參數方式補入網址後方
String url1 = url + "&field1=" + (int)temperature + "&field2=" +
(int)humidity;
//http client取得網頁內容
http.begin(url1);
int httpCode = http.GET();
if (httpCode == HTTP_CODE_OK)      {
//讀取網頁內容到payload
String payload = http.getString();
//將內容顯示出來
Serial.print("網頁內容=");
Serial.println(payload);
} else {
//讀取失敗
Serial.println("網路傳送失敗");
  }
  http.end();
  delay(20000);//休息20秒
}

上一篇
Day 20 - ESP32 顯示執行核心編號
下一篇
Day 22 - ESP32 使用多核心上傳資料
系列文
IOT上課心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言