ESP8266远程控制4路继电器和温湿度感应

本文介绍了如何使用ESP8266通过Blinker库实现4路继电器的远程控制及温湿度感应。通过Arduino编程,结合DHT11传感器,实现实时温湿度数据的读取并上传。同时,文章提到在原视频教程中遇到的代码写入后自动断开问题,并分享了解决方案。
摘要由CSDN通过智能技术生成

对于好奇最近对于智能家居的控制买了个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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值