作为一名注册12年CSDN的电脑爱好者,没有从事喜欢的IT行业还是颇有那么一丝丝的想念。
通过一段时间的arduino编程和ESP8266学习,参考示例程序等,完善了自己的一份小爱同学四开关控制的程序。
硬件部分:ESP8266 nodeMCU、4路继电器、4个按键开关、杜邦线若干
硬件介绍:4路继电器为低电平触发、4个按键 开关为低电平触发
功能介绍:1、可远程Blinker App控制并更新状态
2、可小爱同学控制开关状态
3、可本地开关控制开关状态(自复位控制,自锁控制,自行修改程序)
4、手机微信扫码配网
目前存在问题:1、 查询设备状态,反馈内容有误或者无法连接设备……希望各路大神指点迷津。
2、本地触碰按键目前依靠延时来防止误操作,需要帮我出一个放错程序,比如2秒内不论按多少次还是一直按着,都按一次处理。希望不要占用程序时间等待。
智能家居从一块ESP8266开启。此程序可用来远程和本地控制开关类电器的开关。
2021.3.22更新代码,小爱状态查询可使用,增加app端状态刷新按钮。
/* *****************************************************************
* @author GuoFuqiang
* @version 1.0.0
* @date 2021.03.22
* @brief 主程序
* 程序功能:blinker+小爱同学+本地按键(点触自复位)控制插座4路插孔/开关
* 1.使用开发板:nodemcu-ESP8266(模块ESP-12F)
* 2.程序功能1:使用Blinker 手机APP添加设备并绑定,通过Blinker APP或者小爱同学,
* 远程控制开发板相连的继电器开关
* 3.程序功能2:使用本地开关控制继电器开关,并反馈继电器状态到Blinker控制按钮
* 4.例程文档:小爱类:https://www.diandeng.tech/doc/xiaoai
* SmartConfig自动配网:https://blog.csdn.net/u014091490/article/details/105178037
* Blinker心跳包:https://github.com/blinker-iot/blinker-doc/wiki/Blinker-Arduino-%E5%BA%93%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
* 5.程序参考:blinker库例程--blinker-library-master\examples\Blinker_MIOT\MIOT_MULTI_OUTLET
* *****************************************************************/
#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库
char auth[] = "746f9ac0b5b3"; //Blinker APP(连接小爱同学必须阿里云服务器)中获取到的Secret Key(密钥)
//代码配网用这段
//char ssid[] = "Your WIFI SSID"; //自己wifi名称
//char pswd[] = "********"; //自己wifi密码
//定义继电器信号
#define Relay_1 5 //定义继电器1信号接入GPIO5,D1
#define Relay_2 4 //定义继电器2信号接入GPIO4,D2
#define Relay_3 0 //定义继电器3信号接入GPIO0,D3
#define Relay_4 2 //定义继电器4信号接入GPIO2,D4
//定义本地开关信号