目录

Tasmota快速上手

18 6.6~8.4 分钟 编辑
1790405711124-gWgO.webp

Tasmota是什么

Tasmota 是由 Theo Arends 创建和维护的基于乐鑫ESP8266、ESP32芯片组的设备的GPL-3.0开源固件。最初是为了破解Sonoff Basic使其能够实现本地控制,现已发展成为几乎所有基于 ESP系列芯片 的设备的成熟生态系统。

1790405711065.webp

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即可进入设备配置页面。

1790405711124.webp

步骤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主题可以接受设备上报的温湿度数据。

1790405711157.webp

步骤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使其生效。