ESPEasy 支持串口发送十六进制 hex 数据固件分享
esp8266 刷 ESPEasy 固件是经常会用到串口控制其他设备,比如下面这个继电器
继电器
但是 ESPEasy 官方固件之提供 serialsend 命令只能发送可见字符串,像上面继电器需要发送二进制命令处理不了,所以修复了官方代码重新编译了,添加了两个命令 serialsendhex 和 serialwritehex 用户发送二进制命令
固件 ESP_Easy_mega_20210411_normal_ESP8266_1M.bin 下载地址:
https://pan.baidu.com/s/1WTv8s4K_12DfPg7JsLpXgA
提取码:gbqh
https://github.com/snower/ESPEasy/commit/b54bfea1eaebe618852975da691dd5bc23d0fa43
只编译了 normal_ESP8266_1M 版本,有需要其他版本也可以把上面 commit 修改加到官方代码里自己编译即可
使用方式(hex 数据不区分大小写):
serialsendhex,[hex data]
serialwritehex,[hex data]
如:serialwritehex,A0010102
http://<espeasyip>/control?cmd=serialwritehex,A0010102
之所以添加了两条命令是因为 serialsendhex 直接添加在了 serialsend 后面,看代码似乎是属于某个 plugin 的,不确定是否在所有场景都支持,而 serialwritehex 则是注册在全局命令列表里的,参数也选择了全场景支持。
由上面教程可以看出魔改后的固件支持直接输出串口指令,举一反三可以应用到射频
双频率串口转射频模块:
双频率串口转射频模块
刷入固件后需要调整一些设置
1、高级设置里面关闭串口输出(日志会影响命令的传输)
http://<espeasyip>/advanced 打开高级设置【Serial Settings Enable Serial port:关闭】
2、添加串口接口
http://<espeasyip>/devices
添加设备【Communication - Serial Server】修改【Serial Port:HW Serial0: GPIO-3 (D9) ← TX / GPIO-1 (D10) → RX】(按需设置)和【Baud Rate:9600】(由于发射设备是9600波特率这里需要用9600)
双频率串口转射频模块发送格式
现在可以测试
http://<espeasyip>/control?cmd=serialwritehex,FD01030101FF60DF
射频解码器可以使用下面这个
射频解码模块:
射频解码模块
接入 USB TTL 电脑用串口调试助手就能看到十六进制字符