發表文章

目前顯示的是有「dht11/12」標籤的文章

MQTT-DashBoard+溫濕度+OLED-ESP32

圖片
MQTT-DashBoard+溫濕度+OLED-ESP32 先看一下demo 手機APP上的顯示 DashBoard上的顯示 前言 因為整個流程有點複雜,所以我把它寫成流程圖比較容易理解。 當時我的構想是想做天氣時鐘,試過用時鐘模組顯示時間,但因為模組 本身時間並不精準,所以只好取值用公開API來經過樹莓派的Broker的推送 讓ESP32訂閱topic,後來發現要讓時間和溫濕度不要以輪替的方式在OLED 上顯示,只好在ESP32用上DHT11讓其偵測溫濕度,本來有嚐試用按鈕來 切換時間和溫濕度,但有點麻煩,所以就只先全顯示在一個0.96的OLED 然後手機APP上也訂閱樹莓派的MQTT,另外在DashBoard增加一個開關來 控制ESP32上的LED。   接線圖 樹莓派Node-RED 開始之前 先備妥樹莓派上所須的軟硬體 安裝 Mosquitto broker (如果沒玩過樹莓派,請連結 這裡 安裝樹莓派系統和 如 何使用SSH和VNC鏡像 ) 安裝   Node-RED installed    和  Node-RED Dashboard 在樹莓派上。 備註:安裝Node-RED時若出現錯誤訊息改用下面所附下載    bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) 接下來先測試BMP280是否可正常測溫度和壓力-請參考之前的紀錄( 點我傳送 )。 先來看一下整個發送原理比較容易理解自己要學的重點在哪裡 此次實驗我只寫從ESP32發送數據到樹莓派的Mosquitto代理接收/發送 然後通過MQTT通信協議去控制ESP32發送數據到Node-RED,其實我覺 得和ThingSpeak很類似,只是使用Node-RED更能客製化。 看一下這張圖 Node-Red配置 DashBoard配置檔-- https://github.com/blairan/esp32.git 手機端MQTTapp設定 原則上注意Topic要和NODE-RED上的一致才能訂閱和推送的到 payload是NODE-RED裡開關的控制項 程式碼 ...

OLED+DHT11溫濕度+LINE

圖片
OLED+DHT11溫濕度+LINE 前言 這次要來實驗菜市場傳感器😂-DHT11在OLED上顯示並且在LINE上通知 溫濕度。 接線 程式碼 關於DHT11可以參考 這篇 先測試傳感器使其能顯示於OLED上 #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_GrayOLED.h> #include <Adafruit_SSD1306.h> #include <Adafruit_Sensor.h> #include <DHT.h> #define DHTPIN 4     // Digital pin connected to the DHT sensor #define DHTTYPE DHT11     // DHT 11 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display ( SCREEN_WIDTH , SCREEN_HEIGHT , & Wire , - 1 ); DHT dht ( DHTPIN , DHTTYPE ); void setup () {   Serial . begin ( 115200 );   // Initialize device.   dht . begin ();   Serial . print ( "success connected!" );   if ( ! display . begin ( SSD1306_SWITCHCAPVCC , 0x3C )) {     Serial . println ( F ( "SSD1306 allocation failed" ));     for (;;);   }   delay ( 2000 );   display . clearDisplay ();   display . setTextC...

DHT11/12網路監測-ESP32

圖片
  DHT11/12網路監測-ESP32 單純實驗DHT11/12參考 - https://esp32-blairan.blogspot.com/2021/07/dht11dht12-esp32.html 先下載伺服器的庫 - ESPAsyncWebServer 完整程式碼如下: #include   <WiFi.h> #include   <ESPAsyncWebServer.h> #include   <Adafruit_Sensor.h> #include   <DHT.h> #include   <DHT_U.h> const   char *  ssid  =  "CTK" ; const   char *  password  =  "ctk674011" ; AsyncWebServer   server ( 80 ); #define   DHTPIN   4       #define   DHTTYPE      DHT11      // DHT 11 sensors_event_t   event ; DHT_Unified   dht ( DHTPIN ,  DHTTYPE ); const   char   indexHtml []  PROGMEM  =  R"===(   <html> <head>   <meta charset="utf-8" />   <meta name="viewport" content="width=device-width, initial-scale=1.0" /> ...