对于好奇最近对于智能家居的控制买了个ESP8266套餐回来研究,用BLINKER实现4路远程控制继电器模块运行+温湿度感应,经过整个课程后发现原视频写入后自动断开,上网找查资料重写一编代码刷入后解决,代码用ardiuno如下参考:
#define BLINKER_WIFI //支持wifi
//#define BLINKER_ESP_SMARTCONFIG //Smartconfig或者手机微信扫码自动配网,代码配网请注释此条
#define BLINKER_MIOT_MULTI_OUTLET //支持多路插座,最多4个插孔
#define BLINKER_PRINT Serial //串口协议库
#define BLINKER_WITHOUT_SSL //blinker默认使用加密方式进行远程通信,但通信加密会消耗大量的RAM,如果您对通信安全性无要求
//可以添加宏BLINKER_WITHOUT_SSL用以获得更多可用RAM,BLINKER_WITHOUT_SSL目前仅可用于ESP8266,其他设备的RAM足以进行加密通信
#include <Blinker.h> //使用第三方Blinker库
#include <DHT.h>
char auth[] = " "; //Blinker APP(连接小爱同学必须阿里云服务器)中获取到的Secret Key(密钥)
//代码配网用这段
char ssid[] = " "; //wifi名称
char pswd[] = " "; //wifi密码
BlinkerNumber HUMI("humi");//调用湿度检测
BlinkerNumber TEMP("temp");//调用湿度检测
#define DHTPIN D4 //定义IO口
#define DHTTYPE DHT11 // 定义DHT11模块
DHT dht(DHTPIN, DHTTYPE);//运用DHT11针脚和型号
float humi_read = 0, temp_read = 0;//初始化温湿度值为0
void heartbeat()//心跳函数
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
//定义继电器信号
#define Relay_1 5 //定义继电器1信号接入GPIO5,D1
#define Relay_2 4 //定义继电器2信号接入GPIO4,D2
#define Relay_3 0 //定义继电器3信号接入GPIO0,D3
#define Relay_4 14 //定义继电器3信号接入GPI14,D5
//定义本地开关信号
#define KG_1 12 //定义开关1信号接入GPIO12,D6
#define KG_2 13 //定义开关2信号接入GPIO13,D7
#define KG_3 3 //定义开关3信号接入GPIO3,RX(GPIO15/D8持续低电平,后更改为GPIO3/RX接口)
// 新建Blinker软件组件对象
BlinkerButton Button("MainSwitch"); //组件对象,要和APP组件中的“数据键名”一致,总开关
BlinkerButton Button1("Switch1"); //组件对象,要和APP组件中的“数据键名”一致,开关1
BlinkerButton Button2("Switch2"); //组件对象,要和APP组件中的“数据键名”一致,开关2
BlinkerButton Button3("Switch3"); //组件对象,要和APP组件中的“数据键名”一致,开关3
BlinkerButton Button4("Switch4"); //组件对象,要和APP组件中的“数据键名”一致,开关4
BlinkerButton Button5("Refresh"); //APP端按钮状态刷新
//定义插座状态,用于小爱同学状态反馈
bool oState[5] = { false };
#define OUTLET_ALL 0 //所有插孔
#define OUTLET_NO_1 1 //插座插孔一
#define OUTLET_NO_2 2 //插座插孔二
#define OUTLET_NO_3 3 //插座插孔三
#define OUTLET_NO_4 4 //插座插孔四
//反馈继电器状态函数
void RelayState(int num)
{
switch(num)
{
case 1: //插座插孔一状态
if(digitalRead(Relay_1)==LOW)
{
Button1.color("#FFFF00"); //设置app按键是纯黄色,16进制颜色码
Button1.text("开关1开"); //设置app按键注释“开”
Button1.print("on");
oState[1] = true;
}
else if(digitalRead(Relay_1==HIGH))
{
Button1.color("#808080"); //设置app按键是灰色,16进制颜色码
Button