Wemos mini+點燈app+小米音箱控制室內燈
tags: esp8266
blinker
點燈
小米
思路
由於家裡使用小米音箱幾年下來,也買了一個智能插座,
並且使用小米手環,常常在外就能控制家電成了我在創
作的考量,在網路上偶然看到大陸有一款點燈App,它
有網站,並且有附很多的敎學,重點是它可以接入小米
音箱,所以我就試試做出一個室內燈來物聯一下。
比較可惜的是,現在大陸的網站都要實名制居多,所
以要透過大陸朋友的手機實名一下才能使用
成果
測試
使用app開燈
呼喚小愛開燈
材料
WEMOS D1 MINI
D1 MINI擴展繼電器
插頭式燈座
燈泡
交流110V轉直流5V變壓器模組
小米音箱
點燈App
流程圖
實作
改造插座
(預設是用D1 MINI擴展繼電器腳位輸出端才是在D5)
設定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();
}