ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第二十八篇:ESP32 新版 Blynk 遠端控制教學:GPIO13 驅動繼電器打造智慧 USB 小夜燈

在物聯網的創客專案中,使用手機遠端控制家電是最經典的入門應用。本文將帶領大家使用 ESP32 開發板,結合新版 Blynk IoT 平台,透過 GPIO13 腳位控制繼電器,進而開關 USB 小夜燈。

完整影片手把手教學

如果你喜歡看影片跟著動手做,我們準備了詳細的手把手操作影片,包含新版 Blynk 網頁後台設定與手機 App 介面佈局:

電路接線說明

根據我們設計的系統架構,ESP32 負責處理 Blynk 雲端訊號,同時提供 5V 電源給繼電器與 USB 小夜燈,並由繼電器作為實體電源開關,控制 USB 母座的正極電源。

ESP32 控制 5V 繼電器與 USB 小夜燈接線圖

此電路圖展示了 ESP32 開發板透過 GPIO13 腳位連接 5V 繼電器模組,並結合快速接線端子與 USB 母座來控制 USB 小夜燈電源通斷的完整硬體配置。圖中明確標示了 VCC、GND、IN 訊號線以及電源正負極迴路的正確走線方式。

1. ESP32 與 5V 繼電器模組接線

  • VCC (紅線):接 ESP32 的 VIN / 5V(經麵包板正極軌共用 5V)

  • GND (黑線):接 ESP32 的 GND(經麵包板負極軌共地)

  • IN (藍線):接 ESP32 的 GPIO13

2. 繼電器端與 USB 電源迴路接線

  • ESP32 電源 5V (VCC/紅線):由 ESP32 的 5V/VIN 引出至麵包板正極軌,經過快速接線端子連接至繼電器的 COM(常規端/橘線)。

  • 繼電器 NO(常開端/綠線):連接至 USB 母座的正極 (VCC/紅線)。

  • ESP32 GND (GND/黑線):直接連接至 USB 母座的負極(透過麵包板跳線與綠線形成共地迴路)。

  • USB 小夜燈:直接插在 USB 母座上,即可接受繼電器控制電源通斷。

新版 Blynk 平台與 APP 設定要點

在撰寫程式碼之前,請先確保已在新版 Blynk Console 完成以下設定(詳細步驟可參考上方教學影片):

  1. 建立 Template:命名為 ESP32,硬體選擇 ESP32。

  2. 新增 Datastream (數據流):

    • 名稱:relay

    • Pin:選擇 Virtual Pin V2

    • Data Type:Integer (Min: 0, Max: 1)

  3. Web Dashboard / Mobile App:

    • 拖入一個 Button (按鈕) 元件。

    • 將按鈕綁定至 V2 虛擬腳位,並設定模式為 Switch。

Arduino 完整程式碼

請複製以下程式碼至 Arduino IDE,並填入你的新版 Blynk Template ID、Auth Token 以及 WiFi 密碼。

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

/* 請替換為你在新版 Blynk Console 獲得的資訊 */
#define BLYNK_TEMPLATE_ID   "TMPLXXXXXX"
#define BLYNK_TEMPLATE_NAME "ESP32"
#define BLYNK_AUTH_TOKEN     "YOUR_BLYNK_AUTH_TOKEN"

#include < WiFi.h> 
#include < BlynkMultiClient.h> 

// WiFi 設定
const char* ssid = "YOUR_WIFI_SSID";      // 請替換為您的 WiFi 名稱
const char* pass = "YOUR_WIFI_PASSWORD";  // 請替換為您的 WiFi 密碼

static WiFiClient blynkWiFiClient;

// 定義 ESP32 控制腳位 (根據電路圖選用 GPIO13)
#define RELAY_PIN 13  

// 當 Blynk App 上的按鈕(綁定 V2)按下時觸發此函數
BLYNK_WRITE(V2) {
  int switchState = param.asInt(); // 取得按鈕狀態 (1 為 ON,0 為 OFF)
  
  // 輸出高/低電平控制繼電器
  digitalWrite(RELAY_PIN, switchState);
  
  Serial.print("ESP32 GPIO13 Relay State: ");
  Serial.println(switchState ? "ON" : "OFF");
}

void connectWiFi() {
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWiFi Connected!");
}

void setup() {
  Serial.begin(115200);

  // 初始化 GPIO13 為輸出模式,預設關閉 (LOW)
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);

  connectWiFi();

  // Blynk 初始化與連線
  Blynk.addClient("WiFi", blynkWiFiClient, 80);
  Blynk.config(BLYNK_AUTH_TOKEN);
  Blynk.connect();
}

void loop() {
  // WiFi 斷線自動重連機制
  if (WiFi.status() != WL_CONNECTED) {
    connectWiFi();
    return;
  }

  Blynk.run();
}

小貼士:如果你使用的繼電器模組是低電平觸發(Low-Level Trigger),按下 ON 燈沒亮時,請將 BLYNK_WRITE(V2) 中的控制改為 digitalWrite(RELAY_PIN, !switchState); 即可。

總結與延伸應用

透過本篇教學,你已經掌握了:

  1. ESP32 如何使用 GPIO13 輸出數位訊號控制繼電器。

  2. 共用 ESP32 5V/GND 電源軌與繼電器 COM/NO 端的正確接線方式。

  3. 新版 Blynk V2 虛擬腳位的收發機制。

未來你可以將 USB 小夜燈替換成 110V 家用燈泡(需注意用電安全)、抽水馬達或風扇,實現完整的智慧家居控制!

 

 

 

▼【ESP32教學】教學總索引頁面

相關文章