[Arduino][ESP8266] WiFi Switch 的實作
[Arduino][ESP8266]
WiFi Switch 的實作
實作準備
整個實作可以切成以下4部分:
WiFi Switch 的硬體線路:也就ESP8266 以及 Relay 的接線圖。
ESP8266 的程式碼:用來接收Cloud Server傳送來的指令,進而控制家中的電器,如燈泡。
Cloud Server:用來接收手機傳來的指令,然後將指令傳送到你家中的ESP8266 / WiFi Switch。
App:用來連接Blynk Cloud Server,然後控制你家中WiFi Switch以及電器的App。
WiFi Switch 的硬體線路
我們先從 WiFi Switch 硬體線路這個點開始解說,然後再延伸到整個系統,這樣會比較有感;
實作中我採用的是ESP8266控制板,且選用GPIO13 (D7) ,當作Relay 的控制訊號,
來開關Relay負載端的輸出;Relay的DC+/- ,我依照我手中Relay 的規格,連接DC 5V,
至於Relay負載端的輸出,則是接110 伏特以及燈泡;實際Relay負載端的輸出線路,
大家請依照你手上Relay的規格連接負載,切勿直接套用範例線路。
ESP8266 的程式碼
Step1:安裝 Blynk Library
有了WiFi Switch硬體線路,接下來,當然就是控制WiFi Switch硬體線路的程式碼;
程式碼因為要配合Blynk Cloud Server,所以必須要包含 Blynk Library,也就是說,
要先安裝 Blynk Library for Arduino IDE
How to install Blynk Library for Arduino IDE
上面連接提供了3種方式來安裝 Blynk Library,我個人建議使用第3種-“手動安裝”,
這樣你會更清楚知道 Arduino IDE 以及Blynk Library的檔案結構;安裝完Blynk Library後,
在Arduino IDE安裝路徑下,會分別在\libraries以及 \tools目錄下,新增以下4個資料夾:
/libraries/Blynk
/libraries/BlynkESP8266_Lib
/tools/BlynkUpdater
/tools/BlynkUsbScript
Step2:新增 WiFi Switch 專案
接著就是開啟Arduino IDE,然後按照下面圖示,
選取 ESP8266_Standalone範例來當作 WiFi Switch 的專案;
以下就是ESP8266_Standalone.ino 原始程式碼,這原始程式碼還也3處必須修改,
才能和Blynk Cloud Server連接上。
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "YourAuthToken";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Step3:修改程式碼以連接Blynk Cloud Server
首先是 行12以及行13,請修改成為你要連接WiFi AP的ID以及密碼,請注意這WiFi AP 必須能連到外網,
這樣才能連上 Blynk Cloud Server。
再來就是 行8的 auth[],它應該是呈現以下型式:
char auth[] = "53e4da8793764b6197fc44a673ce4e21";
而這串Auth Token,會在你使用Blynk App,來建立一個新專案時被產生,
Blynk 會把這個Token寄到你註冊郵件信箱,目前我們就留空,收到Token,記得要回來改!
做到這個步驟,你就擁有控制WiFi Switch 的ESP8266的程式碼了。
到這個階段,你若有仔細觀看ESP8266_Standalone.ino 原始程式碼,你會發覺,
這原始程式碼並沒有設定以及控制GPIO13 (D7)相關的程式碼,為什麼?這樣Relay 會做動?
告訴你,會的!
至於為何,等我們利用Blynk App 建立專案時,你就會知道原因了😊
Cloud Sever
這塊,Blynk 處理掉了,我們碰不到;
但是 Blynk 有釋出原始碼,放在GitHub,有興趣了解的人,可以參考以下連結。
(https://github.com/blynkkk/blynk-server )
Blynk App
Step1:安裝 Blynk App
Android 手機Blynk - IoT for Arduino, ESP8266/32, Raspberry Pi
iOS 手機 Blynk - IoT for Arduino, ESP32, ESP8266, Raspberry Pi, NodeMCU
Step2:透過Blynk App建立WiFi Switch 控制頁面
打開Blynk ,然後參照以下畫面建立控制頁面
結論
利用Blynk的資源完成WiFi Switch 的IoT實作有何感想?
或實作過程有遇到任何問題,都歡迎留言給我喔!
利用Blynk實現了IoT Home Assistant,我個人有以下幾點感想:
優點:
省去了手機App 的開發,你只要動動手指頭,把Widget設定好,就可以有美美的控制畫面。
省去架設Server時間以及費用。
缺點:
天下沒有白吃的午餐,Blynk這樣類似的應用,基本上都有流量計費的,做實驗還可以,想商業化或長期使用,必須精算一下。
Blynk Library這黑盒子,我個人不喜歡,Blynk 掌控太多了;GPIO的控制,我竟然不必做…
想實現IoT,只能依靠3rd Party App?
第19集的影片,讓我來介紹另一種,掌控在我們自己手裡的做法吧,敬請期待!