第一部分:315Mhz的远程遥控控制模块
一、远程控制端(接收端)
关于遥控接收器,可以淘宝搜:灯具智能遥控开关 ,注意要选择315Mhz的
二、315Mhz发射控制
三、H34S 发送模块:
四、WR01 接收模块:
五、通过STM32单片机将发送和接收模块转成串口屏可用的串口模块
六、串口控制协议
- 发送协议:
[SD:HHHHHH|VVVVVV]\r\n
//[] 命令外框
//SD:命令,发送
//H6:6位16进制编码值,发送编码
//V6:6位16进制校准值,=H6^0x55AA55
例子:串口屏发送以下字符串到STM32单片机即可无线发送编码信号
echo("[SD5:1811E1|4DBBB4]\r\n");
通过串口发送 1811E1 这个编码5遍
- 接收协议
当STM32单片机通过WR01接收到EV1527编码信号时,则通过串口发送以下信息到串口屏
app.work(0x1811E1);\r\n
即调用appbase 全局控件的work函数,以便传入编码信息;
第二部分:语音控制模块
该模块可以自由定义,当收到对应的语音控制命令后,该模块会自动通过串口发送出语音命名的编号,编号表如下:
| 编号 | 语音命令 | 编号 | 语音命令 | 编号 | 语音命令 | 编号 | 语音命令 |
|---|---|---|---|---|---|---|---|
| 1 | 打开1号设备 | 2 | 打开2号设备 | 3 | 打开3号设备 | 4 | 打开4号设备 |
| 5 | 打开5号设备 | 6 | 打开6号设备 | 7 | 打开7号设备 | 8 | 打开8号设备 |
| 9 | 打开9号设备 | 10 | 打开10号设备 | 11 | 打开11号设备 | 12 | 打开12号设备 |
| 13 | 打开13号设备 | 14 | 打开14号设备 | 15 | 打开15号设备 | 16 | 打开16号设备 |
| 17 | 打开客厅灯 | 18 | 打开氛围灯 | 19 | 打开主卧灯 | 20 | 打开次卧灯 |
| 21 | 打开厨房灯 | 22 | 打开餐厅灯 | 23 | 打开门廊灯 | 24 | 打开走廊灯 |
| 25 | 打开书房灯 | 26 | 打开卫生间灯 | 27 | 打开主卫生间灯 | 28 | 打开次卫生间灯 |
| 29 | 打开客房灯 | 30 | 打开凉台灯 | 31 | 打开茶室灯 | 32 | 打开储物间灯 |
| 33 | 打开楼梯灯 | 34 | 打开儿童房灯 | 35 | 打开热水器 | 36 | 打开电风扇 |
| 37 | 打开台灯 | 38 | 打开饮水机 | 39 | 打开电暖气 | 40 | 打开浴霸 |
| 41 | 关闭1号设备 | 42 | 关闭2号设备 | 43 | 关闭3号设备 | 44 | 关闭4号设备 |
| 45 | 关闭5号设备 | 46 | 关闭6号设备 | 47 | 关闭7号设备 | 48 | 关闭8号设备 |
| 49 | 关闭9号设备 | 50 | 关闭10号设备 | 51 | 关闭11号设备 | 52 | 关闭12号设备 |
| 53 | 关闭13号设备 | 54 | 关闭14号设备 | 55 | 关闭15号设备 | 56 | 关闭16号设备 |
| 57 | 关闭客厅灯 | 58 | 关闭氛围灯 | 59 | 关闭主卧灯 | 60 | 关闭次卧灯 |
| 61 | 关闭厨房灯 | 62 | 关闭餐厅灯 | 63 | 关闭门廊灯 | 64 | 关闭走廊灯 |
| 65 | 关闭书房灯 | 66 | 关闭卫生间灯 | 67 | 关闭主卫生间灯 | 68 | 关闭次卫生间灯 |
| 69 | 关闭客房灯 | 70 | 关闭凉台灯 | 71 | 关闭茶室灯 | 72 | 关闭储物间灯 |
| 73 | 关闭楼梯灯 | 74 | 关闭儿童房灯 | 75 | 关闭热水器 | 76 | 关闭电风扇 |
| 77 | 关闭台灯 | 78 | 关闭饮水机 | 79 | 关闭电暖气 | 80 | 关闭浴霸 |
串口切换
由于ESP32只有一个串口,而现在有两个设备,但是仔细分析一下,发送接收模块中的串口屏收信息只有在对码状态时才会用到,因此我们可以设定以下模式,就是常规时候,串口屏接收的是语音控制模块,而发送端对应的是遥控模块,通过串口屏的E1端口切换状态,切换电路如下:
这个电路实际上是一个2选1的电子开关电路,串口屏的串口两个IO通过电子开关接语音模块和遥控模块,通过E1扩展口的电平切换。