ESP8266使用Tasmota通过串口发射射频信号控制射频设备

1. 准备硬件
ESP8266模块:如NodeMCU、Wemos D1 Mini等。
射频收发模块:如433MHz或315MHz的射频发射模块。
连接线:用于将ESP8266与射频模块连接。

连接方式:
射频模块引脚    ESP8266引脚
VCC                  3.3V
GND                 GND
DATA                GPIO (如GPIO5)
注意:确保射频模块的工作电压为3.3V。如果模块需要5V供电,请使用外部电源并进行电平转换。

2. 安装和配置Tasmota固件
        刷入Tasmota固件:
使用工具(如esptool或tasmotizer)将Tasmota固件刷入ESP8266模块。
 下载Tasmota固件:Tasmota Releases
        配置WiFi和MQTT:
将ESP8266连接到电脑,通过串口工具(如PuTTY或Tasmota Web界面)配置WiFi网络。
设置MQTT服务器信息(Broker地址、端口、用户名、密码),以便与Home Assistant通信。
        配置GPIO功能:
通过Tasmota的Web界面或命令行设置GPIO引脚功能。


将射频模块的DATA引脚对应的GPIO设置为RF Transmit功能。例如:
SetOption60 1  # 启用RF发射支持
测试射频信号发射:
使用Tasmota的RfSend命令测试发送射频信号。例如:
RfSend <协议>,<设备ID>,<命令>
示例:
RfSend 1,12345,1  # 协议1,设备ID 12345,发送

3. 集成到Home Assistant
安装MQTT集成:
在Home Assistant中启用MQTT集成,并配置与Tasmota相同的MQTT Broker。
添加Tasmota设备:
在Home Assistant中自动发现Tasmota设备,或者手动添加MQTT传感器和开关。
创建自动化:
使用Home Assistant的自动化功能,通过MQTT发送命令控制射频信号发射。
示例自动化代码:
Yaml
automation:
  - alias: "发射射频信号"
    trigger:
      platform: state
      entity_id: input_boolean.rf_signal_trigger
      to: 'on'
    action:
      - service: mqtt.publish
        data:
          topic: cmnd/tasmota_device/RfSend
          payload: "1,12345,1"
 

需要注意的是,这里使用的是串口通信,不需要选择RF相关的选项

需要使用tasmota遥控专用的固件,如下,可以直接上官网下载,

下载地址Tasmota ESP8266 Binaries

也可以在线更新

tasmota-ir.bin.gzhttp://ota.tasmota.com/tasmota/release/tasmota-ir.bin.gz457ktasmota-ir.bin667k20250416 13:40

这里不用做任何设置,只需将433接受发射模块接到对应的RX,TX引脚就行

然后再HA中的configuration.yaml文件内容如下:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

mqtt:
  camera:
    - name: "ESP32-CAM Snapshot"
      topic: "tele/tasmota_A7CA68/CAMERA" 
      image_encoding: "b64"  
      unique_id: "cam_001"
  button:
    # 红外信号按钮
    - name: "Send IR Signal"
      unique_id: send_ir_signal_1
      command_topic: "cmnd/tasmota_B7EFC5/IRSend"
      payload_press: '{"Protocol":"SAMSUNG","Bits":32,"Data":"0xE0E09966"}'
    - name: "Send IR Signal2"
      unique_id: send_ir_signal_2
      command_topic: "cmnd/tasmota_B7EFC5/IRSend"
      payload_press: '{"Protocol":"SAMSUNG","Bits":32,"Data":"0x707030CF"}'
    - name: "Send IR Signal3"
      unique_id: send_ir_signal_3
      command_topic: "cmnd/mini_8266/IRSend"
      payload_press: '{"Protocol":"NEC","Bits":32,"Data":"0xFDB04F"}'

    # 射频信号按钮,串口通信的
    - name: "Send RF Signal 1"
      unique_id: send_rf_signal_1
      command_topic: "cmnd/tasmota_B7EFC5/SerialSend5"
      payload_press: "FD03AD67285EDF"
    - name: "Send RF Signal 2"
      unique_id: send_rf_signal_2
      command_topic: "cmnd/tasmota_B7EFC5/SerialSend5"
      payload_press: "FD03AD67245EDF"
    - name: "Send RF Signal 3"
      unique_id: send_rf_signal_3
      command_topic: "cmnd/tasmota_B7EFC5/SerialSend5"
      payload_press: "FD03AD67225EDF"
      
      这段内容仅供参考,这样会在HA的主页中显示接按钮,点击相应的按钮就会发射对应的信号

另外还有两个再tasmota控制台使用的命令

SetOption60 1启用后,设备发送的 MQTT 消息(如 stat/%topic%/RESULT 或 tele/%topic%/STATE)均会附加保留标记。若需禁用,执行 SetOption60 0 即可。

SetOption59 1该命令扩展了 Tasmota 设备的状态反馈机制,适用于对 MQTT 消息可靠性要求较高的场景。
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值