徹底改變你的 ESP32 專案!使用 GPIO Viewer 即時監控引腳狀態
前言
當你開發 ESP32 專案時,是否曾經遇到不知某個 GPIO(通用輸入輸出) 引腳是否正常工作的情況?有時候,問題出在程式碼,有時候則是接線錯誤。而今天,我要分享一個能 即時監控 ESP32 GPIO 狀態的工具,就像擁有 X 光視野,讓你輕鬆找到問題點!
這個工具就是 GPIO Viewer,它能讓你透過 瀏覽器 即時查看 ESP32 的引腳狀態。我原本是為了自己的需求開發這個工具,現在我將它整理成一個簡單易用的 Arduino 函式庫,只要幾行程式碼就能整合進你的專案!
為什麼要使用 GPIO Viewer?
在實作電子專案時,我們經常需要觀察 GPIO 引腳的變化,例如:
- 數位輸出:LED 是否正確閃爍?
- 類比輸出(PWM):馬達轉速是否正確?
- 數位輸入:按鈕是否有正確反應?
- 旋轉編碼器:是否正確偵測到旋轉方向?
傳統上,我們可能會使用 示波器 或 序列監視器 來檢測這些信號,但這些方法要嘛設備昂貴,要嘛過於繁瑣。而 GPIO Viewer 讓這一切變得簡單:
- 只要一個瀏覽器,就能即時監控所有 GPIO。
- 幫助你輕鬆找到 接線錯誤 或 程式邏輯問題。
- 不需要額外的硬體,完全免費!
GPIO Viewer 示範
在開始安裝之前,讓我們先看看它的實際效果。
範例 1:空白 ESP32 板子
我手上有一塊全新的 ESP32 板子,沒有燒錄任何程式,但當我開啟 GPIO Viewer,我發現有些引腳已經是 高電位(HIGH)!這是因為 ESP32 的某些引腳在預設狀態下會處於高電位,這是了解板子行為的重要知識。
範例 2:LED 與旋轉編碼器
我接上一些 LED,並用 PWM(脈衝寬度調變) 來控制它們,此外,我還加上了一個 旋轉編碼器 來改變 LED 的亮度。
當我旋轉編碼器時,GPIO Viewer 立刻顯示出相應的 GPIO 變化,這讓我可以 確認信號是否正確傳送,完全不需要猜測!
安裝與設定
現在讓我們來學習如何安裝與使用 GPIO Viewer。
1. 下載與安裝函式庫
首先,你需要從 GitHub 下載 GPIO Viewer 函式庫:
- GitHub 連結:🔗 (請參考影片說明欄)
接著,打開 Arduino IDE,依序安裝以下函式庫:
- GPIO Viewer
- ESP Async Web Server
- AsyncTCP(可以透過 Arduino IDE 的「Library Manager」安裝)
2. 基本程式碼
以下是最簡單的 ESP32 GPIO Viewer 使用範例:
#include <GPIOViewer.h> // 引入 GPIO Viewer 函式庫
GPIOViewer viewer; // 宣告 GPIO Viewer 物件
void setup() {
Serial.begin(115200);
WiFi.begin("你的 WiFi SSID", "你的 WiFi 密碼");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("連接 WiFi...");
}
Serial.println("WiFi 連接成功!");
viewer.begin(); // 啟動 GPIO Viewer
}
void loop() {
// 這裡可以加入你的程式邏輯
}
3. 上傳程式碼並開啟監視器
- 將程式碼燒錄到 ESP32。
- 打開 Arduino IDE 的「序列監視器」,你會看到一個 網址,例如:
http://192.168.1.100:8080
- 在瀏覽器中輸入這個網址,你就能看到 GPIO Viewer 的即時監控畫面!
進階設定
你還可以 客製化 以下設定:
1. 設定更新頻率
viewer.setSamplingInterval(50); // 設定為 50 毫秒(預設為 100 毫秒)
2. 變更網頁監視的埠號
viewer.setPort(8081); // 將監視畫面的網址改為 http://192.168.1.100:8081
3. 支援不同的 ESP32 板子
GPIO Viewer 支援多種 ESP32 板型,你可以在函式庫的 GitHub 頁面找到支援的清單。如果你的板子不在清單內,可以提出新增請求。
結論
透過 GPIO Viewer,你可以:
- 即時監控 GPIO 狀態,減少除錯時間。
- 輕鬆找出接線錯誤,例如 LED 反接問題。
- 快速整合,只需要幾行程式碼!
不論你是新手還是老手,這個工具都能讓你的 ESP32 開發過程更順暢!趕快試試看吧!
如果你有任何問題或建議,歡迎留言討論!🚀