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裡開關的控制項 程式碼 用到的函式庫,自行搜尋下載 U8g2lib Adafruit_Sen