No.101, Sec.2, Kuang-Fu Rd., HsinChu City, Taiwan 新竹市光復路二段101號
+886-571-5131#35162
klou@mx.nthu.edu.tw

ESP32s + Blynk = 智慧家電

Lab of AR/VR/XR & Machine Learning

ESP32s + Blynk = 智慧家電

快一年沒碰 Blynk,沒想到改版這麼多,功能更複雜,但操作更容易了,趁今天教學的需要整理一下。

首先要註冊使用者帳號,註冊網址 https://blynk.io/;註冊成功後,一併下載Blynk APP,登入後新增一個Device , 免費版只能新增兩個 Deivce ,基本上是夠用的,接著回到電腦版,登入後會導到 https://blynk.cloud/ 管理畫面如下:

這裹可以新增及管理不同的 Device , 所謂的 Device 就是一個 IoT 裝置,可以是 Arduino or ESP32 or Raspberry,如果正在連線中的裝置,會顯示 Online及運行時間等資訊,點選指定的 Device 後,就會竹看到該裝置目前的狀態:

我目前的 QuickStart Device 含有 Blynk 內建的入門模版提供的三個元件:一個Button Control可以切換開或關的狀態; 一個Switch Value 顯示目前開關的狀態;以及Uptime顯示元件,顯示開機至今的秒數。這三個元件的顯示文字是可以改的,中英文皆可。

網頁中最重要的資訊是 BLYNK_AUTH_TOKEN,這個 token 將來要寫入 IoT 開發板中,如此才能利用機機透過Blynk.clould 伺服器遙控 IoT 裝置,由於這是秘密,不能公開,所以我截部分內容如下:

右方的黑底區塊點選後,會自動複製一份到記憶體中,方便同學們貼到 Arudino IDE。現在,雲端的部分設定完成,接下來請收 email ,Blynk 剛才應該寄了一份快速入門的說明手冊到你註冊的信箱中,其中第二點”here”提供一個鏈結會開啟範例程式集,順便把要填的資訊都填上了,很貼心!

1. Install Blynk library for Arduino IDE or for PlatformIO
2. We’ve prepared a ready-to-use code for your device. Copy it here
3. If you’re using a WiFi device, find the following code lines in the provided sketch and replace it with your WiFi credentials: 

char ssid[] = “YourNetworkName”; 
char pass[] = “YourPassword”; 

If your WiFi network has no password, just put “”. Also, keep in mind that most of the devices can only connect to 2.4 GHz networks. 

4. Check that you have selected the correct port and board in your IDE 
5. Upload the sketch to your device 

中間那三行會自動填入,如果沒有,就回網頁把剛才的 Device Info 中再複製一次貼上即可。剩下的工作就是把右邊自動生成的程式貼上 Arduino IDE , 記得修改 Wi-Fi 的連線資訊,這分別在範例程式的 char ssid[] = “YourNetworkName”; char pass[] = “YourPassword”; 這兩行,再來上傳到 ESP32 開發版即可。

目前程式使用 QuickStarter 的內建程式,其實沒什麼好玩,也不知道到底手機能否遙控 ESP32,以下稍微修改一下當中的副函式,讓內建的 LED 跟著點亮

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
// Set incoming value from pin V0 to a variable
int value = param.asInt();

// Update state
Blynk.virtualWrite(V1, value);
digitalWrite(2,value); // write value to pin 2
}

最後一行即是利用 pin V0 寫入 value 變數的結果,以 pin2 LED 同步顯示,這樣就可以確認手機點開 V0 開關時,除了手機上的 V1 會顯示之外,Esp32 的內建燈也會點亮了,別忘了pinMode(2,OUTPUT) 也要加入setup()當中喲。同學們可以利用 pin2 改接上繼電器的 S 訊號端,利用手機控制家裹的枱燈或各種家電囉。