高三專題實作|ESP32 × MQTT × Node-RED

把感測資料送上網路,做出可操作的 IoT 儀表板

從元件辨識、GPIO 接線、Arduino C 程式,到 MQTT 與 Node-RED 流程,完成一個能讀取溫度、濕度、亮度並遠端控制 LED 的小型物聯網系統。

180分鐘
5項技能任務
1個完整 IoT 流程
ESP32
Wi-Fi
GPIO + MQTT
◌感測器DHT11・光敏
☁MQTTmqttgo.io
▦Node-RED儀表板
讀取 → 傳送 → 顯示 → 控制

01 / 課程定位

今天要完成的事

學生以一個可執行的 ESP32 專案,練習把硬體、程式和網路服務串在一起。

01

看懂元件

辨認 ESP32、DHT11、光敏模組、LED 與電阻的功能和接腳。

02

完成接線

依 GPIO 編號完成感測輸入、LED 輸出與共地,並能說明電流路徑。

03

讀懂程式

從設定腳位、讀取感測值、組成 JSON 到 MQTT 傳送,說出每段程式的作用。

04

測試系統

用 Node-RED 接收資料、顯示儀表,並由控制節點切換 R、G、Y LED。

02 / 三小時學習路線

每一段都有可檢查的產出

建議採小組合作:一人讀程式、一人接線、一人操作 Node-RED,輪流交換角色。

00:00–00:25

任務一|辨識系統

閱讀系統方塊圖,找出輸入、處理、輸出與網路通訊。

產出:元件角色配對
00:25–01:05

任務二|GPIO 接線

依照腳位表完成 DHT11、光敏模組與三色 LED 接線。

產出:接線檢查與安全測試
01:05–01:55

任務三|Arduino C

標記程式區塊,說明 Wi-Fi、MQTT、JSON 和感測讀值的流程。

產出:程式註解與序列埠觀察
01:55–02:35

任務四|Node-RED

檢查 data 與 ctrl Topic,追蹤資料分流到儀表板的路徑。

產出:流程節點連線圖
02:35–03:00

任務五|驗收與反思

完成互動學習單,依測試結果找出一個可改善的地方。

產出:課後學習單

03 / 專案使用元件

先知道每個元件在做什麼

點選卡片查看功能、接線提示與本課程使用的 GPIO。

元件提示

點選上方任一元件,查看它在本專案的用途。

04 / 技能項目及標準

完成後可以被看見的能力

教師可用以下項目進行課堂觀察與形成性評量。

S1

硬體辨識與安全

能指出 VCC、GND、訊號腳位;上電前完成共地與短路檢查。

達成:4/4
S2

GPIO 接線

能依腳位表正確完成 GPIO25、GPIO33、GPIO16、GPIO14、GPIO27。

達成:5/5
S3

Arduino C 閱讀

能說明 setup、loop、ReadandJSON、MQTTCallback 的功能。

達成:4/4
S4

MQTT 與流程追蹤

能確認 data/ctrl Topic 一致,並追蹤一筆資料或一個控制指令的路徑。

達成:2/2

05 / Arduino C 程式

從一行一行看懂資料如何流動

下方保留本專案的核心程式架構,Wi-Fi 帳密改用佔位文字,請在自己的環境填入。

①

輸入:DHT11 用單線數位訊號;光敏模組用 ADC 類比值。

②

處理:將讀值轉成 JSON 字串,欄位為 temp、humi、light。

③

傳送:每 10 秒 Publish 到 data Topic,並訂閱 ctrl Topic。

06 / 開發板與元件接線

看圖完成接線,再用互動題驗證

紅線為 3.3V、黑線為 GND;LED 必須串接 220~330Ω 電阻。

100%
ESP32 DevKit3.3V 邏輯 3V3GNDGPIO25GPIO33GPIO16/14/27 DHT11S → GPIO25VCC / GND裸裝加 10kΩ 上拉光敏模組OUT → GPIO33VCC / GNDDO 不接 LEDGYR+R→GND 紅:3.3V 黑:GND 藍/綠/橘:訊號

07 / 互動學習單

動手完成四個小任務

目前得分0/ 100
01

拖拉接線

把左側訊號端拖到右側正確 GPIO。

30 分
訊號端
GPIO
02

移動元件到正確角色

把元件拖進「輸入」「輸出」「網路」區。

20 分
元件
輸入感測資料
輸出指示與控制
網路資料交換
03

點選正確 Topic

選出 ESP32 與 Node-RED 目前使用的名稱。

25 分

資料上傳 Topic 是哪一個?

控制指令 Topic 是哪一個?

04

排出資料流程

點選節點,依序組出一筆溫度資料的路徑。

25 分

08 / 課後學習單

把今天的觀察留下來

完成後可列印或交給教師檢視。

提示:列印時可選擇「另存為 PDF」。