ESP32 Telegram SendMessageFromEvent
當 ESP32 開機或重啟完成並連上網路後,主動發送一則通知訊息給指定的 Telegram 使用者。
這段程式碼的邏輯非常簡單且實用,它的主要目的是:當 ESP32 開機或重啟完成並連上網路後,主動發送一則通知訊息給指定的 Telegram 使用者。
這在遠端監控設備時非常有用,能讓你第一時間知道設備是否因為斷電後重啟。
1. 關鍵定義:指定對象
這段程式碼與前面幾則範例最大的不同點在於:
#define CHAT_ID "7965218469"
CHAT_ID:這是你的個人 Telegram 帳號 ID(或是群組 ID)。
之前的範例是「收到誰的訊息就回給誰」,但這個程式是主動發送,所以必須事先寫死(Hardcode)接收者的 ID。
註記:你可以透過 Telegram 上的
@myidbot機器人來查到自己的CHAT_ID。
2. 初始化設定:setup()
這個程式的核心全部都在 setup() 內,因為它只需要在開機時執行一次。
網路與憑證設定:
連接 WiFi 並載入 Telegram 的 SSL 根憑證 (
TELEGRAM_CERTIFICATE_ROOT),確保 HTTPS 連線安全。
網路對時 (NTP):
configTime(0, 0, "pool.ntp.org")。重要性:Telegram 伺服器會檢查訊息的時間戳記,如果 ESP32 的時間與網路時間相差太大,訊息會發送失敗。
發送啟動訊息:
C++bot.sendMessage(CHAT_ID, "Bot started up", "");當上述連線與對時都完成後,機器人會立即向
7965218469發送「Bot started up」這段文字。
3. 主迴圈:loop()
void loop() {
// 這裡是空的
}
因為這個範例的目的只是「開機通知」,不需要持續檢查新訊息,所以
loop()保持空白。這意味著機器人不會回應你傳給它的任何話。
4. 運作流程圖解
電源接通:ESP32 啟動。
WiFi 連線:取得 Wokwi-GUEST 的 IP 位址。
時間同步:向 NTP 伺服器要求目前時間。
安全握手:使用 SSL 憑證與 Telegram 建立 HTTPS 連線。
主動出擊:呼叫
sendMessage將啟動成功的訊息推送到你的手機。進入休眠/閒置:完成任務,不再執行任何動作。
💡 實戰建議
這個程式雖然簡單,但它是**「警報系統」**的基礎。你可以稍微修改這段程式,例如:
跌倒偵測:如果偵測到感測器數值異常,就執行
bot.sendMessage。低電量警告:當電池電量低於 20% 時,主動傳訊通知你充電。

沒有留言:
張貼留言