|
闲来无事给仓库卷帘门做一个远程联网开关,节省带遥控器的空间时间。
(网上参照学习几天的成果分享,若有不对我懒得改了)
我的配件清单
1.12v适配器电源+转3.3V电源板
2.esp8266 (ESP-01S板子我扣掉了LED灯,不扣我不能用某个引脚,自行测试)+烧写器
3.433hz发射接受模块一对
4.焊烙铁一套
开始篇章
给ESP8266刷上解码代码(百度自学一下ESP8266入门课)
- #include <RCSwitch.h> // 安装这个库RCSwitch
- RCSwitch mySwitch = RCSwitch();
- void setup() {
- Serial.begin(9600); // 监视串口号
- mySwitch.enableReceive(0); // 获取信号示例GPI00脚
- }
- void loop() {
- if (mySwitch.available()) {
-
- Serial.print("Received ");
- Serial.print( mySwitch.getReceivedValue() );
- Serial.print(" / ");
- Serial.print( mySwitch.getReceivedBitlength() );
- Serial.print("bit ");
- Serial.print("Protocol: ");
- Serial.println( mySwitch.getReceivedProtocol() );
- mySwitch.resetAvailable();
- }
- }
复制代码
刷入完成后,ESP8266连接上433HZ解码板子
(焊接天线效果更佳,如图中绿色板子最好接12V电源。实测5V接收板子需要贴脸开大)
ESP8266连接433hz接收板子图解 还要连上电脑串口保持监视。
正常工作后,原遥控器贴脸按开关门键,它会接收到数值(不正常自检,可能是收发端hz 不一致等很多因素)
(有两个ESP8266和刷写器就不用动这个了,让他保持监视状态更佳方便测试下面发射信号是否正常)
记录好信号后 开始刷入发射代码
(以下代码内含点灯科技 小爱 wifi设置 发射等库自行安装好 不需要自行删除)
小爱语音只选择开关两个功能 app可以支持多个按钮设置 关于对接点灯科技 和小爱添加设备等操作自行看B站视频其他人学习
- #define BLINKER_WIFI //定义点灯wifi方式连接
- #define BLINKER_MIOT_LIGHT //定义小爱语音灯控
- #include <Blinker.h> //调用点灯库
- #include <RCSwitch.h> //调用遥控信号控制库
- #include <ESP8266WiFi.h> //调用WiFiManager库需要
- #include <DNSServer.h> //调用WiFiManager库需要
- #include <ESP8266WebServer.h> //调用WiFiManager库需要
- #include <WiFiManager.h> //调用热点配置网络库
- RCSwitch mySwitch = RCSwitch(); //遥控库需要
- char auth[] = "XXXXX"; //点灯秘钥
- char ssid[] = ""; //wifi名称 //热点配置了留空
- char pswd[] = ""; //wifi密码 //热点配置了留空
- // 新建组件对象
- BlinkerButton Button1("btn1"); //定义点灯程序按钮1
- BlinkerButton Button2("btn2"); //定义点灯程序按钮2
- BlinkerButton Button3("btn3"); //定义点灯程序按钮3
- // 按下按钮即会执行该函数
- void button1_callback(const String & state)
- {
- mySwitch.send(5960248, 24); //开信号发送
- delay(300); //延时ms
- mySwitch.send(5960248, 24); //开信号发送
- }
- void button2_callback(const String & state)
- {
- mySwitch.send(5960241, 24); //关信号发送
- delay(300); //延时ms
- mySwitch.send(5960241, 24); //关信号发送
- }
- void button3_callback(const String & state)
- {
- mySwitch.send(5960244, 24); //暂停信号发送
- delay(300); //延时ms
- mySwitch.send(5960244, 24); //暂停信号发送
- }
- //接入小爱代码
- void miotPowerState(const String & state)
- {
- BLINKER_LOG("need set power state: ",state);
- if (state == BLINKER_CMD_ON) {
- mySwitch.send(5960248, 24); //开信号发送
- delay(300); //延时ms
- mySwitch.send(5960248, 24); //开信号发送
- BlinkerMIOT.powerState("on");
- BlinkerMIOT.print();
- }
-
- else if (state == BLINKER_CMD_OFF) {
- mySwitch.send(5960241, 24); //关信号发送
- delay(300); //延时ms
- mySwitch.send(5960241, 24); //关信号发送
- BlinkerMIOT.powerState("off");
- BlinkerMIOT.print();
- }
-
- }
- void setup() {
- Serial.begin(9600);
- mySwitch.enableTransmit(3); //遥控发送数据针脚
- // 建立WiFiManager对象
- WiFiManager wifiManager;
- // 热点WiFi名称
- wifiManager.autoConnect("Aihei-wulian", "12345678");
- // 如果您希望该WiFi添加密码,可以使用以下语句("Aihei-wulian", "12345678");
- BLINKER_DEBUG.stream(Serial);
- // 初始化blinker
- Blinker.begin(auth, ssid, pswd);
- //按键后执行button1_callback函数
- Button1.attach(button1_callback);
- Button2.attach(button2_callback);
- Button3.attach(button3_callback);
- //小爱要求代码
- BlinkerMIOT.attachPowerState(miotPowerState);
- // WiFi连接成功后将通过串口监视器输出连接成功信息
- Serial.println("");
- Serial.print("ESP8266 Connected to ");
- Serial.println(WiFi.SSID()); // WiFi名称
- Serial.print("IP address:\t");
- Serial.println(WiFi.localIP()); // IP
- }
-
- void loop() {
- Blinker.run();
- }
复制代码
刷入完成后焊接测试加壳 放在一个合适的距离就OK了。
(下图用的绿色板子发射器,需12V供电比较麻烦,后期我已更换成 远-T2L-433Mhz发射模块3.3V更小更远)
(代码示例 信号输出接到ESP-01S的RX引脚 GPIO0/2我接了8266它不开机 )
(正常运行工作后,会有热点发出,连接配置好网络后点灯科技那边就在线了就可以测试开关门和小爱绑定设备)
这个中文显示是我自行汉化的WiFiManager库文件那个文件我懒得找了。反正都一样用。。
中途断网或者换wifi了,只能重启该设备才会发出热点信号。
完
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|