ESP8266的使用,配合Blinker进行设备多按键控制。

自从接触到了Blinker,本着折腾的思想,就一直想将家里的设备都接入网络,方便使用。这篇文章就做我的家庭改造记录吧。一个nodeMCU是有许多引脚供我们使用的,既然这样,我们就不能浪费掉,把它们都利用起来。
以下内容适合对Blinker和Arduino有一定了解和一定编程能力的人士食用。当然我对程序进行了较详细的注释。若想进行学习,可以看这里Blinker快速接入指南
为了方便,我这里使用的是成品板nodeMCU。就像这样的:ESP8266的使用,配合Blinker进行设备多按键控制。_第1张图片
再奉献上一张它的引脚图(图片来自百度):ESP8266的使用,配合Blinker进行设备多按键控制。_第2张图片
转载请注明出处。以下是程序:

#define BLINKER_WIFI
#define BLINKER_PRINT Serial
#define BLINKER_ALIGENIE_LIGHT//将设备定义为传感器类型,对接天猫精灵使用
#include 
 
char auth[] = "*************";//设备key,在手机APP查看
char ssid[] = "*************";//网络名称,亲测证明手机热点也可以
char pswd[] = "*************";//网络密码

#define LED 16         //引脚1
#define CS  5          //引脚2
#define btn1 "btn"     //设备按键1
#define btn2 "btn-awu" //设备按键2
 
BlinkerButton Button1(btn1);//创建按键组件
BlinkerButton Button2(btn2);//
 
// 按下按键btn1即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED, !digitalRead(LED));
    if(state == "on")
    {
      digitalWrite(LED,LOW);
      Button1.print("on");
      }
    else if(state == "off")
    {
      digitalWrite(LED,HIGH);
      Button1.print("off");
    }
}

// 按下按键btn2即会执行该函数
void button2_callback(const String & state2) {
    BLINKER_LOG("get button state: ", state2);
    digitalWrite(CS, !digitalRead(CS));
    if(state2 == "on")
    {
      digitalWrite(CS,LOW);
      Button2.print("on");
      }
    else if(state2 == "off")
    {
      digitalWrite(CS,HIGH);
      Button2.print("off");
    }
}

void setup() {    
    Serial.begin(115200);// 初始化串口    
    
    pinMode(LED, OUTPUT);// 初始化有LED的IO
    digitalWrite(LED, HIGH);    
    pinMode(CS, OUTPUT);// 初始化测试IO
    digitalWrite(CS, HIGH); 
    
    Blinker.begin(auth, ssid, pswd);// 初始化blinker
    
    Button1.attach(button1_callback);//绑定回调函数
    Button2.attach(button2_callback);
    
    BLINKER_DEBUG.stream(Serial);//调试信息
    BLINKER_DEBUG.debugAll();//调试信息
}
 
void loop() {
    Blinker.run();
}


你可能感兴趣的:(ESP8266的使用,配合Blinker进行设备多按键控制。)