数码之家

 找回密码
 立即注册
搜索
查看: 2509|回复: 4

[Arduino] esp8266卷帘门遥控开关app小爱WiFii

[复制链接]
发表于 2023-11-2 00:19:22 | 显示全部楼层 |阅读模式
闲来无事给仓库卷帘门做一个远程联网开关,节省带遥控器的空间时间。
(网上参照学习几天的成果分享,若有不对我懒得改了)


我的配件清单

1.12v适配器电源+转3.3V电源板
2.esp8266 (ESP-01S板子我扣掉了LED灯,不扣我不能用某个引脚,自行测试)+烧写器
3.433hz发射接受模块一对
4.焊烙铁一套




开始篇章

给ESP8266刷上解码代码(百度自学一下ESP8266入门课)

  


  1. #include <RCSwitch.h>      // 安装这个库RCSwitch

  2. RCSwitch mySwitch = RCSwitch();

  3. void setup() {
  4.   Serial.begin(9600);           // 监视串口号
  5.   mySwitch.enableReceive(0);  // 获取信号示例GPI00脚
  6. }

  7. void loop() {
  8.   if (mySwitch.available()) {
  9.    
  10.     Serial.print("Received ");
  11.     Serial.print( mySwitch.getReceivedValue() );
  12.     Serial.print(" / ");
  13.     Serial.print( mySwitch.getReceivedBitlength() );
  14.     Serial.print("bit ");
  15.     Serial.print("Protocol: ");
  16.     Serial.println( mySwitch.getReceivedProtocol() );

  17.     mySwitch.resetAvailable();
  18.   }
  19. }
复制代码



刷入完成后,ESP8266连接上433HZ解码板子
(焊接天线效果更佳,如图中绿色板子最好接12V电源。实测5V接收板子需要贴脸开大)



ESP8266连接433hz接收板子图解   还要连上电脑串口保持监视。



正常工作后,原遥控器贴脸按开关门键,它会接收到数值(不正常自检,可能是收发端hz 不一致等很多因素)


(有两个ESP8266和刷写器就不用动这个了,让他保持监视状态更佳方便测试下面发射信号是否正常)


记录好信号后     开始刷入发射代码   
(以下代码内含点灯科技 小爱 wifi设置 发射等库自行安装好 不需要自行删除)
小爱语音只选择开关两个功能 app可以支持多个按钮设置 关于对接点灯科技 和小爱添加设备等操作自行看B站视频其他人学习



  1. #define BLINKER_WIFI              //定义点灯wifi方式连接
  2. #define BLINKER_MIOT_LIGHT        //定义小爱语音灯控

  3. #include <Blinker.h>              //调用点灯库
  4. #include <RCSwitch.h>             //调用遥控信号控制库
  5. #include <ESP8266WiFi.h>          //调用WiFiManager库需要
  6. #include <DNSServer.h>            //调用WiFiManager库需要
  7. #include <ESP8266WebServer.h>     //调用WiFiManager库需要
  8. #include <WiFiManager.h>          //调用热点配置网络库


  9. RCSwitch mySwitch = RCSwitch();   //遥控库需要
  10. char auth[] = "XXXXX";     //点灯秘钥
  11. char ssid[] = ""; //wifi名称       //热点配置了留空
  12. char pswd[] = ""; //wifi密码       //热点配置了留空
  13. // 新建组件对象
  14. BlinkerButton Button1("btn1");    //定义点灯程序按钮1
  15. BlinkerButton Button2("btn2");    //定义点灯程序按钮2
  16. BlinkerButton Button3("btn3");    //定义点灯程序按钮3
  17. // 按下按钮即会执行该函数
  18. void button1_callback(const String & state)
  19. {
  20.     mySwitch.send(5960248, 24); //开信号发送
  21.     delay(300); //延时ms
  22.     mySwitch.send(5960248, 24); //开信号发送
  23. }
  24. void button2_callback(const String & state)
  25. {
  26.     mySwitch.send(5960241, 24); //关信号发送
  27.     delay(300); //延时ms
  28.     mySwitch.send(5960241, 24); //关信号发送
  29. }
  30. void button3_callback(const String & state)
  31. {
  32.     mySwitch.send(5960244, 24); //暂停信号发送
  33.     delay(300); //延时ms
  34.     mySwitch.send(5960244, 24); //暂停信号发送
  35. }
  36. //接入小爱代码
  37. void miotPowerState(const String & state)
  38. {
  39.     BLINKER_LOG("need set power state: ",state);
  40.     if (state == BLINKER_CMD_ON)     {
  41.     mySwitch.send(5960248, 24); //开信号发送
  42.     delay(300); //延时ms
  43.     mySwitch.send(5960248, 24); //开信号发送
  44.     BlinkerMIOT.powerState("on");
  45.     BlinkerMIOT.print();
  46.     }
  47.    
  48.     else if (state == BLINKER_CMD_OFF)     {
  49.     mySwitch.send(5960241, 24); //关信号发送
  50.     delay(300); //延时ms
  51.     mySwitch.send(5960241, 24); //关信号发送
  52.     BlinkerMIOT.powerState("off");
  53.     BlinkerMIOT.print();
  54.     }

  55.    
  56. }
  57. void setup() {
  58.     Serial.begin(9600);      
  59.     mySwitch.enableTransmit(3);       //遥控发送数据针脚
  60.     // 建立WiFiManager对象
  61.     WiFiManager wifiManager;
  62.     // 热点WiFi名称
  63.     wifiManager.autoConnect("Aihei-wulian", "12345678");
  64.     // 如果您希望该WiFi添加密码,可以使用以下语句("Aihei-wulian", "12345678");
  65.     BLINKER_DEBUG.stream(Serial);
  66.     // 初始化blinker
  67.     Blinker.begin(auth, ssid, pswd);
  68.     //按键后执行button1_callback函数
  69.     Button1.attach(button1_callback);
  70.     Button2.attach(button2_callback);
  71.     Button3.attach(button3_callback);
  72.     //小爱要求代码
  73.     BlinkerMIOT.attachPowerState(miotPowerState);
  74.     // WiFi连接成功后将通过串口监视器输出连接成功信息
  75.     Serial.println("");
  76.     Serial.print("ESP8266 Connected to ");
  77.     Serial.println(WiFi.SSID());              // WiFi名称
  78.     Serial.print("IP address:\t");
  79.     Serial.println(WiFi.localIP());           // IP
  80. }

  81. void loop() {
  82.     Blinker.run();
  83.   }
复制代码


刷入完成后焊接测试加壳 放在一个合适的距离就OK了。
(下图用的绿色板子发射器,需12V供电比较麻烦,后期我已更换成 远-T2L-433Mhz发射模块3.3V更小更远)


(代码示例 信号输出接到ESP-01S的RX引脚  GPIO0/2我接了8266它不开机   )


(正常运行工作后,会有热点发出,连接配置好网络后点灯科技那边就在线了就可以测试开关门和小爱绑定设备)
这个中文显示是我自行汉化的WiFiManager库文件那个文件我懒得找了。反正都一样用。。
中途断网或者换wifi了,只能重启该设备才会发出热点信号。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 3家元 +290 收起 理由
刘明伟 + 70 優秀文章
家睦 + 200
茶壹杯 + 20 謝謝分享

查看全部打赏

发表于 2023-11-26 12:13:49 来自手机浏览器 | 显示全部楼层
还是这个方便啊,我直接继电器接到手动按钮上了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-13 16:30:51 | 显示全部楼层
最近12V转3.3V板子换了,换了个220v转3.3套个壳子接着用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2024-9-11 15:50:20 | 显示全部楼层
点灯接入小爱只能2个按键就只有开和关吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 07:33 , Processed in 0.093600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表