
Tasmota是什么
Tasmota 是由 Theo Arends 创建和维护的基于乐鑫ESP8266、ESP32芯片组的设备的GPL-3.0开源固件。最初是为了破解Sonoff Basic使其能够实现本地控制,现已发展成为几乎所有基于 ESP系列芯片 的设备的成熟生态系统。
Tasmota能做什么
通过简单的配置,即可实现:
- 连接传感器、执行器
- 通过MQTT、Web UI、HTTP、串口读取状态或控制设备
- 使用内建定时器、规则、脚本功能实现本地自动化
快速上手
下面以ESP8266网络继电器模块和AM2302温湿度传感器为例,一步一步演示如何快速上手Tasmota,实现一个带温湿度检测的网络开关。

步骤1:下载固件
从Github发布页下载,这里下载名称为tasmota-sensors.bin的固件,因为后续会集成温湿度传感器。如果只需要实现比方说智能插座类似的功能,基础版本tasmota-CN.bin可能更适合你,官方自带中文。如果有更多个性化需求,也可以选择自行编译固件。
步骤2:烧录固件
使用杜邦线短接GPIO0和GND引脚,使ESP8266上电时启动为烧录模式;连接USB-TTL转换器与模块串口,如下图。

以管理员权限运行ESP_Flasher.exe软件,选择USB-TTL对应的COM口,载入步骤1下载的固件,点击Flash ESP按钮,此时Console窗口内应该有日志输出,直到显示Done!Flashing is complete!,如下图,代表已经烧录成功。

步骤3:配置网络
移除GPIO0和GND引脚之间的短接线,重新上电。如下图,Tasmota会生成一个名称为tasmota-xxxxxx-xxxx的热点,手机连上该热点后,访问192.168.4.1(有些手机会自动跳转),选择你家WIFI的SSID,并在Wifi parameters卡片内输入WiFi密码,点击Save保存。稍等片刻,跳转页面提示Successful WiFi Connection,并在下方显示该设备获取的IP地址,我这里是192.168.88.28。手机切换回原WiFi,访问设备IP即可进入设备配置页面。

步骤4:配置外设
Web UI页面点击Configuration→Configure Module→Module type下拉框,选择Generic(18),点击Save保存,设备会自动重启;

再次点击Configuration→Configure Module→GPIO4下拉框、GPIO13下拉框,选择Relay,并选择序号,GPIO5下拉框选择AM2301,如下图,点击Save保存,设备重启进入Web UI页面,此时可以看到已经有温湿度数据,下方也多了2个开关,点击开关按钮可以打开或关闭继电器。

*步骤5:MQTT
Web UI页面点击Configuration→Configure MQTT,填入MQTT服务器的地址、用户名、密码,点击Save保存。
Web UI页面点击Information查看MQTT相关信息,这里的MQTT Full Topic:cmnd/tasmota_835163/为指令接收的主题前缀;点击Console查看日志,可以看到数据上报的主题是tele/tasmota_835163/SENSOR。

下面来试一下使用MQTT客户端控制继电器开关,向cmnd/tasmota_835163/POWER1主题发送(Plaintext)数据1 或 ON,即可接通继电器,发送0 或 OFF即可断开继电器;向cmnd/tasmota_835163/TelePeriod主题发送数据30,可以将数据上报间隔设置为30秒;订阅tele/tasmota_835163/SENSOR主题可以接受设备上报的温湿度数据。

*步骤6:基于规则(Rules)实现简易温控
Tasmota的规则(Rules)基于触发器执行操作,常见的触发器有开关状态更改、温度阈值、系统启动等事件、定义的计时器结束、自定义的事件等,操作可以是开关设备、发布消息等任何内建命令。下面我们来试着搭建一个简易温控器。
Plain Text Rule1 ON AM2301#Temperature<20 DO POWER1 ON ENDON ON AM2301#Temperature>22 DO POWER1 OFF ENDON
在Web UI的Console页面,在command输入框中直接粘贴上面的代码并回车,日志显示17:26:07.045 MQT: stat/tasmota_835163/RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":92,"Free":419,"Rules":"ON AM2301#Temperature<20 DO POWER1 ON ENDON ON AM2301#Temperature>22 DO POWER1 OFF ENDON"}}表明规则已经保存到设备,此时这条规则还没有生效,需要输入Rule1 1使其生效。
有手就玩
评论(0)