2025年3月22日 星期六

使用 Google Firebase 和 ESP32 遠端控制設備——詳細教學


 

使用 Google Firebase 和 ESP32 遠端控制設備——詳細教學

前言

你好!今天我要帶你從零開始學習如何使用 ESP32Google Firebase 來遠端控制 LED。這意味著無論你身在何處,都能透過網路開啟或關閉 LED。

這篇教學適合完全沒有基礎的初學者,我會一步步帶你完成這個專案。讓我們開始吧!


你需要準備的材料

硬體:

  • ESP32 開發板(或 ESP8266 亦可)
  • LED x1
  • 220Ω 或 100Ω 電阻 x1
  • 麵包板
  • 杜邦線
  • USB 連接線(用來連接 ESP32 到電腦)

軟體與帳號:

  • Arduino IDE(開發 ESP32 程式)
  • Google Firebase 帳號(使用 Google 帳戶登入即可)

步驟 1:硬體連接

將 LED 與 ESP32 連接如下:

  • LED 正極(長腳) → ESP32 D4(GPIO 4)
  • LED 負極(短腳)電阻(220Ω / 100Ω)ESP32 GND

你可以直接將元件插在麵包板上,使用杜邦線完成連接。


步驟 2:建立 Firebase 專案

Firebase 是 Google 提供的應用開發平台,其中的 Realtime Database 可以讓我們儲存數據並隨時讀取。現在我們來設定 Firebase:

  1. 進入 Firebase 官方網站https://firebase.google.com/
  2. 登入 Google 帳號
  3. 點擊「建立專案」,並命名為 ESP32_LED_Control
  4. 同意 Firebase 條款,然後點擊「繼續」。
  5. 關閉 Google Analytics(我們這次不需要)。
  6. 等待專案建立完成

步驟 3:設定 Firebase Realtime Database

  1. 進入 Firebase 控制台,選擇剛剛建立的 ESP32_LED_Control 專案。
  2. 在左側選單點擊「Build」→「Realtime Database」
  3. 點擊「建立資料庫」
  4. 選擇「美國(us-central1)」作為位置,然後點擊「下一步」
  5. 選擇「測試模式(Test mode)」,這樣我們就可以讀取和寫入數據。
  6. 建立一個資料節點
    • 「+」 新增節點
    • 鍵(Key):LED_State
    • 值(Value):0(代表 LED 預設為關閉)
    • 數據類型:Number

這樣我們的數據庫就準備好了!


步驟 4:設定 Firebase Authentication(身份驗證)

為了安全性,我們需要讓 ESP32 使用電子郵件與密碼登入 Firebase。

  1. 在 Firebase 控制台左側選單點擊「Build」→「Authentication」
  2. 選擇「電子郵件與密碼」登入方式
  3. 啟用電子郵件/密碼登入,然後點擊「儲存」。
  4. 新增使用者
    • Email:esp32@yourproject.com(你可以隨意取)
    • Password:yourpassword

這樣 ESP32 就可以透過這個帳號存取 Firebase!


步驟 5:在 Arduino IDE 撰寫 ESP32 程式

1. 安裝 Firebase ESP Client 函式庫

  1. 打開 Arduino IDE
  2. 點擊「工具」→「管理函式庫」
  3. 搜尋「Firebase ESP Client」並安裝

2. 程式碼

#include <WiFi.h>
#include <FirebaseESP32.h>

// WiFi 設定
#define WIFI_SSID "你的 WiFi 名稱"
#define WIFI_PASSWORD "你的 WiFi 密碼"

// Firebase 設定
#define API_KEY "你的 Firebase API 金鑰"
#define DATABASE_URL "你的 Firebase 資料庫 URL"
#define USER_EMAIL "esp32@yourproject.com"
#define USER_PASSWORD "yourpassword"

FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;

int LED_PIN = 4;

void setup() {
    Serial.begin(115200);
    pinMode(LED_PIN, OUTPUT);
    
    // 連接 WiFi
    WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(1000);
    }
    Serial.println("WiFi 已連接");

    // 設定 Firebase
    config.api_key = API_KEY;
    config.database_url = DATABASE_URL;
    auth.user.email = USER_EMAIL;
    auth.user.password = USER_PASSWORD;

    Firebase.begin(&config, &auth);
}

void loop() {
    if (Firebase.RTDB.getInt(&fbdo, "/LED_State")) {
        int ledState = fbdo.intData();
        digitalWrite(LED_PIN, ledState);
        Serial.println(ledState == 1 ? "LED 開啟" : "LED 關閉");
    }
    delay(1000);
}

步驟 6:上傳程式並測試

  1. 選擇 ESP32 開發板(「工具」→「開發板」→「ESP32 Dev Module」)。
  2. 將 ESP32 連接到電腦
  3. 點擊「上傳」按鈕
  4. 開啟序列監視器(115200 baud),查看 WiFi 是否成功連接。
  5. 進入 Firebase,修改 LED_State 的值:
    • 設為 1(LED 亮起)
    • 設為 0(LED 熄滅)

結論

現在你已經學會如何使用 Firebase 遠端控制 ESP32 的 LED!你可以進一步擴展這個專案,例如:

  • 控制多個設備(燈泡、風扇等)。
  • 使用手機 App 控制
  • 加入感測器,回傳數據到 Firebase

希望這篇教學對你有幫助!如果有任何問題,歡迎留言討論 😊。

沒有留言:

張貼留言

  探索 PEY 床:3D 列印新時代的革命性打印表面 什麼是 PEY 床? 在 3D 列印領域,打印床的選擇對於打印品質有著極大的影響。傳統上,許多使用者會選擇 PEI(聚醚酰亞胺,Polyetherimide)作為打印床,但現在,一種新的材料—— PEY (可能是一種改良...