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

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

#define BLINKER_WIFI
#define BLINKER_PRINT Serial
#define BLINKER_ALIGENIE_LIGHT//将设备定义为传感器类型,对接天猫精灵使用
#include <Blinker.h>
 
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();
}


  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值