Wemos mini+點燈app+小米音箱控制室內燈


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();

}

文章作者: blairan
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY 4.0 許可協議。轉載請註明來源 blairan !
评论
  目錄