Wemos mini+點燈app+小米音箱控制室內燈
Wemos mini+點燈app+小米音箱控制室內燈
思路
由於家裡使用小米音箱幾年下來,也買了一個智能插座,
並且使用小米手環,常常在外就能控制家電成了我在創
作的考量,在網路上偶然看到大陸有一款點燈App,它
有網站,並且有附很多的敎學,重點是它可以接入小米
音箱,所以我就試試做出一個室內燈來物聯一下。
比較可惜的是,現在大陸的網站都要實名制居多,所
以要透過大陸朋友的手機實名一下才能使用
成果
測試
使用app開燈
呼喚小愛開燈
材料
WEMOS D1 MINI
D1 MINI擴展繼電器
插頭式燈座
燈泡
交流110V轉直流5V變壓器模組
小米音箱
點燈App
流程圖
實作
改造插座
(預設是用D1 MINI擴展繼電器腳位輸出端才是在D5)
後記:因為我3D列印時沒有考慮到變壓器,所以下回再補上列印檔
設定BlinkerAPP
接線(圖片解析度的關係可能看不清楚,看上面改造插座圖,也是一樣的接線概念)
程式碼
要先去https://diandeng.tech/dev下載函式庫,用ArduinoIDE的匯入.ZIP的方式匯入
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#include <Blinker.h>
const char* auth = "b868-------";
const char* ssid = "19N_2F-2.4G";
//const char* ssid = "CTK";
const char* pswd = "c-----";
// 新建组件对象
BlinkerButton Button1("btn-room");//"btn=room"要跟手機app裡設的一樣
const int pin=5;
void miopowerState(const String&state){
BLINKER_LOG("get powerstate state: ", state);
if (state==BLINKER_CMD_ON){
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(pin, HIGH);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}else if (state==BLINKER_CMD_OFF){
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(pin, LOW);
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
if (digitalRead(pin)==HIGH){
Button1.color("#FF0000");
Button1.print("on");
}else if (digitalRead(pin)==LOW){
Button1.color("#FF8000");
Button1.print("off");
}
Button1.print();
}
// 按下按键即会执行该函数
void button1_callback(const String&state){
BLINKER_LOG("get powerstate state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
digitalWrite(pin, !digitalRead(pin));
if (digitalRead(pin)==HIGH){
Button1.color("#FF0000");
Button1.print("on");
}else if (digitalRead(pin)==LOW){
Button1.color("#FF8000");
Button1.print("off");
}
Button1.print();
}
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(pin, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(pin, LOW);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
BlinkerMIOT.attachPowerState(miopowerState);
}
void loop() {
Blinker.run();
}
留言
張貼留言