自動化
進階
自動化

把 ESP32 感測資料送進 MQTT

用幾百元的板子蒐集溫濕度,送到自己的 MQTT 伺服器,打好資料基礎。
1 小時 30 分
5 步
約 300–800 元
編
AI 有解編輯部
最後更新 2026 年 11 月 5 日・CC BY 4.0
用到的工具
ESP32
Mosquitto
所有 AI 自動化都要先有資料。MQTT 是最常見的傳遞方式:感測器只管發布,後面要接什麼都不影響現場。
你需要準備
•
ESP32 開發板與 USB 線
•
溫濕度感測器
•
一台能跑 Docker 的電腦
•
Arduino IDE,並安裝 PubSubClient 函式庫
進度 0/5
1

啟動 MQTT 伺服器

建立 mosquitto.conf:
文字
listener 1883 allow_anonymous false password_file /mosquitto/config/passwd
建立帳號,再啟動伺服器:
終端機
docker run --rm -it -v "$PWD:/mosquitto/config" eclipse-mosquitto mosquitto_passwd -c /mosquitto/config/passwd sensor
終端機
docker run -d --name mqtt -p 1883:1883 -v "$PWD:/mosquitto/config" eclipse-mosquitto
2

寫 ESP32 程式

先用固定數字測試連線,確認通了再接感測器:
cpp
#include <WiFi.h> #include <PubSubClient.h> const char* ssid = "你的WiFi"; const char* pass = "你的密碼"; const char* broker = "192.168.1.10"; WiFiClient wifi; PubSubClient mqtt(wifi); void setup() { WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) delay(500); mqtt.setServer(broker, 1883); } void loop() { if (!mqtt.connected()) mqtt.connect("esp32-room1", "sensor", "你的MQTT密碼"); mqtt.loop(); mqtt.publish("home/room1/temperature", "25.3"); delay(10000); }
3

確認收到

終端機
docker exec -it mqtt mosquitto_sub -u sensor -P 你的MQTT密碼 -t "home/#" -v
4

接上感測器

把固定數字換成感測器讀值。照感測器函式庫的範例即可。
5

把資料交給 AI

資料存進資料庫後,每週請 AI 看趨勢,或用 Node-RED 設定通知。
你照著做成功了嗎?
成為第一個回報的人。你的回報會決定攻略排序與作者分潤。
下一步
•
接上家電,看〈除濕機與家電的 AI 自動化〉。
•
工廠版本,看〈舊設備資料上雲〉。
收錄在學習路線
廣告版位
想讓正在用 AI 的人看到你的產品?了解廣告合作
問與答
卡住的地方、補充的做法都可以留在這裡
還沒有人留言。
更多「自動化」攻略