使用 esp32 +dht22 將溫度 濕度 發布於 Adafruit IO上
要使用 ESP32 和 DHT22 感測器將溫度和濕度數據發佈到 Adafruit IO,您需要使用 Adafruit 的官方函式庫。這個過程涉及 Wi-Fi 連線、DHT22 讀取以及將數據透過 MQTT 傳輸到 Adafruit IO。
準備工作
1. 硬體準備
- ESP32 開發板: 任何 ESP32 型號都可以。
- DHT22 溫度濕度感測器: 如果是模組化的 DHT22,通常有 VCC、GND、Data 三條線。如果不是模組化,則需要額外一個 10K 歐姆的拉高電阻 (pull-up resistor) 接在 Data 腳位和 VCC 之間。
- 麵包板和杜邦線。
- USB 傳輸線。
2. 接線圖 (Wiring Diagram)
- DHT22 VCC (或 +): 連接到 ESP32 的 3.3V 或 5V (DHT22 通常支持 3.3V-5V,但 ESP32 的 GPIO 是 3.3V)。
- DHT22 Data (或 Out): 連接到 ESP32 的一個 GPIO pin,例如 GPIO4 (程式碼中會使用此腳位)。
- 重要:如果是非模組化的 DHT22,請務必在 Data pin 和 VCC 之間串接一個 10K 歐姆的拉高電阻。
- DHT22 GND (或 -): 連接到 ESP32 的 GND。
3. Adafruit IO 設定
- 建立 Adafruit IO 帳戶:
- 訪問
並點擊 "Get Started for Free"。完成註冊流程。https://io.adafruit.com/
- 訪問
- 取得您的 AIO Key 和 AIO Username:
- 登入 Adafruit IO 帳戶。
- 點擊頁面上方導覽列的 "My Key" 按鈕(一個鑰匙圖標)。
- 您會看到您的 "Username" 和 "AIO Key"。請務必複製這兩組資訊,稍後在程式碼中會用到。
- 建立 Feed (數據源):
- 在 Adafruit IO 介面左側導覽欄,點擊 "Feeds"。
- 點擊 "Actions" -> "Create a New Feed"。
- 建立兩個新的 Feed:一個命名為
temperature,另一個命名為humidity。這些 Feed 將用於接收來自 ESP32 的數據。
4. Arduino IDE 環境設定
- 安裝 ESP32 Boards: (如果已經安裝過,可跳過)
- 開啟 Arduino IDE。
- 進入 "檔案" -> "偏好設定"。
- 在 "額外的開發板管理員網址" (Additional Boards Manager URLs) 中加入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - 進入 "工具" -> "開發板" -> "開發板管理員"。
- 搜尋 "esp32" 並安裝 "esp32 by Espressif Systems"。
- 安裝 Adafruit IO 函式庫:
- 進入 "工具" -> "管理程式庫"。
- 搜尋 "Adafruit IO Arduino" 並安裝 "Adafruit IO Arduino" 函式庫。
- 安裝 DHT 感測器函式庫:
- 進入 "工具" -> "管理程式庫"。
- 搜尋 "DHT sensor library" 並安裝 "DHT sensor library by Adafruit"。
- 安裝 Adafruit Unified Sensor 函式庫: (這是 DHT 函式庫的依賴項)
- 進入 "工具" -> "管理程式庫"。
- 搜尋 "Adafruit Unified Sensor" 並安裝 "Adafruit Unified Sensor by Adafruit"。
ESP32 Arduino 程式碼
為了讓您的 ESP32 + DHT22 數據顯示在 Adafruit IO 的 Dashboard (儀表板) 上,您不需要修改程式碼本身。程式碼的功能是將數據發送到 Adafruit IO 的 Feeds (數據源)。
Dashboard 是一個視覺化的介面,它從您的 Feeds 中提取數據並以圖表、儀表、文字等形式呈現。您需要做的是在 Adafruit IO 網站上進行設定,將您的 temperature 和 humidity Feed 連接到儀表板上的顯示元件。
以下是將數據顯示在 Adafruit IO Dashboard 上的步驟:
在 Adafruit IO Dashboard 上設定顯示
1. 登入 Adafruit IO 並進入 Dashboards 頁面
- 登入您的 Adafruit IO 帳號:
https://io.adafruit.com/ - 點擊左側導覽欄的 "Dashboards"。
2. 建立一個新的 Dashboard (如果還沒有的話)
- 點擊右側的 "Actions" 按鈕,然後選擇 "Create a New Dashboard"。
- 為您的 Dashboard 命名,例如
My_ESP32_Dashboard,然後點擊 "Create"。 - 如果您已經有現有的 Dashboard,可以直接點擊進入。
3. 將數據 Feed 添加到 Dashboard
進入您剛建立或選擇的 Dashboard 後:
-
點擊 Dashboard 右上角的藍色 "Add block" 按鈕。
-
您會看到各種可以添加的顯示元件。根據您的需求選擇:
-
顯示溫度 (Gauge 儀表 或 Chart 圖表):
- 選擇 "Gauge" (儀表) 或 "Line Chart" (線圖)。
- 在彈出的視窗中,點擊 "Choose feed"。
- 選擇您的
temperatureFeed。 - 設定您想要的儀表範圍 (例如 0 到 50 攝氏度) 或圖表顯示的歷史數據範圍。
- 為該顯示元件設定一個標題 (例如 "當前溫度")。
- 點擊 "Create block"。
-
顯示濕度 (Gauge 儀表 或 Chart 圖表):
- 再次點擊 "Add block"。
- 選擇 "Gauge" (儀表) 或 "Line Chart" (線圖)。
- 在彈出的視窗中,點擊 "Choose feed"。
- 選擇您的
humidityFeed。 - 設定您想要的儀表範圍 (例如 0 到 100 濕度百分比) 或圖表顯示的歷史數據範圍。
- 為該顯示元件設定一個標題 (例如 "當前濕度")。
- 點擊 "Create block"。
-
-
您也可以嘗試添加 "Text" 或 "Number" 塊來直接顯示最新的數值。
4. 排列與調整 Dashboard
- 添加完區塊後,您可以拖曳它們來調整佈局。
- 點擊區塊右上角的齒輪圖標,可以編輯區塊的屬性,例如標題、顏色、大小等。















沒有留言:
張貼留言