網頁

2022年8月11日 星期四

ESP32 - 使用 BlocklyDuino-溫濕度感測器

 主題

以 ESP32 設計氣體溫濕度感測器,溫度太高,使用 Line 通知使用者。

感測器介紹

本範例使用 DHT-11溫濕度感測器。若要更精準的感測器,可使用 AM2302(又稱DHT22) 高精度温濕度模組 ,但比較貴。

接法

DHT-11 左邊的接腳,板子上有寫 S 。右邊的接腳,板子上有寫 - 。中間的接腳就沒寫。
DHT-11溫濕度傳感器接 PIN 16。
使用三條杜邦線 連到 開發板的 S-V-G。
S接開發板的S,  - 接開發板的G, 中間接腳接開發板的V,如果插反很容易燒掉。





程式

程式說明
序列埠 I/O,拿出「序列埠印出(換行)」block。
字串,取出 「字串組合」。
「字串組合」原本祇有2個項目,按 「*」,可以增加或減少項目。再按一次「*」關掉小視窗。

字串,取出 「空白字元」block,再改成 「溫度:」。

也可以直接使用 「序列埠印出(換行)」block後面的空白字元。

從「感測模組/環境感測」類別,取出 「溫濕度計 DHT11 Pin 0 量測數值 相對濕度」block,將Pin 0 改成 Pin 16,相對濕度 改成 溫度。

時間,拿出「延遲毫秒 」此 block。

執行結果

按 「Putty 序列埠監看視窗」鈕,再按 「開啟PUTTY」鈕,就看到結果了!


溫度愈高,值愈高。如把用手握住DHT-11,溫度就愈高。

WiFi連線測試

程式

程式說明
從 Wi-Fi,取出「連線到 Wi-Fi AP」和 「取得 Wi-Fi IP 位址」。

Wi-Fi  ID 即 Wi-Fi 的 SSID, Wi-Fi無線基地台的名稱。

從「Putty 序列埠監看視窗」,有看到 ESP32 取得的IP位址,如 192.168.1.114。

用手機5GHz 分享WiFi 要改成相容性

如果手機當成 AP (Access Point),即WiFi 的基地台,因為有的手機是使用 5GHz,而 ESP32是使用2.4GHz,造成 ESP32無法連上手機的WiFi 。

解決方式:
如果是 iPhone,請在 設定/個人熱點,「最大化相容性」要打開。
iPhone當熱點,如果都是 使用 iOS系統,網路互連就比較沒有問題;分享熱點給其他品牌的手機,平板或電腦等,就需要 把「最大化相容性」要打開。

如果是 Android 手機,在設定的「Wi-Fi無線基地台」,「擴充相容性」要打開。

LINE Notify  (Line通知)

當溫度超過設定的值時,使用LINE Notify 傳訊到手機LINE中進行提醒來查看。

LINE Notify 製作過程

申請LINE Notify服務
LINE Notify 網址為 :https://notify-bot.line.me/zh_TW/
按右上角的「登入」。

輸入Email和密碼、圖片中的文字。或者「透過行動條碼登入」。

選「個人頁面」。

移到網頁的最下面,看到 「發行存取權杖(開發人員用)」,按「發行權杖」。

輸入權杖名稱,和要接收通知的聊天室,祇能選自己或群組(不能選個別好友),按 「發行」。

出現 權杖的值,按「複製」,暫時貼到 記事本或Word。再按「關閉」。

程式


程式說明

邏輯,取出 「如果 ...執行」。

邏輯,取出 「=」。

將「= 」改成 「>」。

數學,取出一個數字 「0」,將0 改成 32。

吉哥積木/物聯網/Line通知,取出「Line 通知 設定權杖」,從剛才複製的權杖值貼到後面的數值。
取出「Line 通知 傳送文字訊息」,設定要顯示的字串,通常會加上 地點,知道是從那裏發出通知訊息。

執行結果

當溫度超過32度 ,line 上就出現通知。

使用Line 貼圖包


複製 Package ID,如 6136。複製 貼圖編號,如 10551376。

程式


程式說明
吉哥積木/物聯網/Line通知,取出「Line 通知 傳送文字訊息」」,輸入要傳送的文字,貼上 上面複製 貼圖包編號的值、貼圖編號的值。

執行結果