Tosmota通过串口模拟开关(relay模块)

ChainPray 发布于 2 天前 14 次阅读 594 字 预计阅读时间: 3 分钟


前几天买了一个板载esp01s的双路继电器,本来以为是通过GPIO0和GPIO2控制两路继电器的,当时还在想为什么还有4路的版本,买回来一看资料才发现是串口来控制多路继电器的(爆炸

艾尔赛12V ESP8266双路WiFi继电器模块_深圳市艾尔赛科技有限公司

如上图所示,esp01s通过串口和中间的控制芯片通信,由中间的芯片做实际的继电器控制器,esp1s只是当做一个WIFI/蓝牙透传模块

参考官方文档说明,既然USB转TTL可以通信,esp1s也可以直接发送串口数据。

理论成立,实践开始!首先给esp01s刷上Tosmota固件,这里贴一个Web Install

然后进Tosmota Web UI,随便将两个GPIO设置为Relay 1和Relay 2(目的是设置了Relay会有对应的Power,方便后续配置Rule)

测试串口通信

进入console界面,首先设置波特率并测试继电器打开命令,输入(要一行行输入)

SerialBaud 115200
SerialSend5 A0 01 01 A1

SerialSend5是以16进制发送指令,发送成功的话会听到“咔哒一声”继电器上电

配置规则

进入console界面,输入以下内容(要一行行输入)配置开关继电器实际上通过串口发送命令的逻辑

Rule1
on Power1#state=1 do SerialSend5 A00101A2 endon
on Power1#state=0 do SerialSend5 A00100A1 endon
Rule1 1
Rule2
on Power2#state=1 do SerialSend5 A00201A3 endon
on Power2#state=0 do SerialSend5 A00200A2 endon
Rule2 1

配置完返回主页就可以点击两个按钮,成功的话能听到“咔哒”、“哒”,说明能正常控制继电器

配置MQTT

因为笔者想要将继电器连接自制的半导体制冷小冰箱,所以需要接入HA做一些自动化控制(虽然实际上Tosmota也可以做,但是这个继电器模块没有把esp01的GPIO0和2暴露出来,就不太方便)

首先点击Configuration->MQTT,这里只需要设置Host地址即可

然后进入Configuration->other,这里需要修改Device Name,两个Relay的Friendly Name,这两个会改变设备在HA里的device名和entity(实体)名,方便HA中的查找

然后就可以结合冰箱里的温度传感器做一些温控的自动化

深圳大学腾讯创新俱乐部的一名TICer,目前致力于成为全栈工程师
最后更新于 2025-09-04