应用ESP8266控制433M无线遥控电动幕布

      家里的得力牌电动投影幕布是的433M单一频率无线遥控的,为把它加入HomeAssistant与投影仪、音响等实现联动控制,计划用万能的esp8266来模拟遥控器。

一、设计思路

      用ESPHome的Remote Receiver组件获取遥控器升、降、停分别对应的编码(由于我的遥控器不是标准协议,只能通过逻辑分析仪自己解码),然后用Remote Receiver组件定义升、降、停按键对应的编码(详见:ESPHome — ESPHome),然后集成到HomeAssistant即可。

二、器件准备

1.  ESP8266模块(ESP-01S)

 

2. 433M超外差发射模块、接收模块各1只


                 接收模块                                                                发射模块

最好选择如图的超外差模块,抗干扰能力强。

 3、esp8266烧写器

 

 也可以用USB转TTL-CH340模块进行烧写,这里方便起见直接用了esp8266烧写器。

4. 逻辑分析仪

 二、器件连接

CH340ESP8266
烧写模式
ESP8266
工作模式
433M接收模块433M发射模块逻辑分析仪
3.3V3.3V3.3V5V5V
RXTX(GPIO1)
TXRX(GPIO3)GPIO3DATA
GNDGPIO0
GNDGNDGNDGNDGNDGND
GPIO2DATA

CH0

在Home Assistant安装ESPHome、向ESPHome添加Esp设备、给ESP设备刷新固件等过程参见《以DHT11、ESP8266为例介绍ESPHome在Home Assistant中的应用》一文,本文就不再赘述。

三、获取遥控器升降停操作发射的编码

首先给esp8266添加以下代码段(其它部分代码参见《以DHT11、ESP8266为例介绍ESPHome在Home Assistant中的应用》一文),并进行烧写。

remote_receiver:
  pin: 2
  dump: all

然后按上面的器件连接表把ESP8266(工作模式)、433M接收模块、逻辑分析仪连接起来,下载并安装逻辑分析仪软件(Logic analyzer software from Saleae),目前版本是Logic 2.4.9,进入软件会自动匹配连接逻辑分析仪。

设置好采样速度(一般2M就够用),点击右上角绿色按钮即可开始采样(为确保准确建议每次只对1个按钮进行采样),按下遥控器按钮,再停止采样,这样通道0上就会出现采样波形,由于有电磁干扰,即使未按下遥控按钮也会有波形。用鼠标滚轮可以放大和缩小波形,同时可以左右移动波形,找到遥控器按下的一段波形进行分析(相对于干扰波形,遥控器波形比较密,而且有规律)。

      定义为“0”

    定义为“1”

 经分析发现,一个窄的高/低电平为333us,一个宽的高/低电平为685us,宽和窄基本呈倍数关系。控制码一般以一个较长的高电平开始,已一个较长的低电平结束,我们把一个窄的高电平接一个宽的低电平定义为0,把一个宽的高电平接一个窄的低电平定义为1,就可以将遥控器波形转化为二进制代码。

 经分析,我的遥控器编码如下:

 我的遥控器除停止码是发送1次“0110010001000101011001101001000101010101”外,上升是先发3个控制码“0110010001000101011001101001000100010001”,再发5个控制码校验码“0110010001000101011001101001000100011110”,注意他们的后4位,校验码的“1110”是控制码“0001”的反码,这是为了校验接收的发射码是否有误,下降也是类似的。实际模拟遥控的时候不发校验码,多发几次控制码也可以控制的。

四、用ESP8266发射编码模拟遥控器操作屏幕升降停

给esp8266添加以下代码段,并进行烧写。

remote_transmitter:
  pin: 2
  carrier_duty_percent: 100%

switch:
  - platform: template
    name: Screen up
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '0110010001000101011001101001000100010001'   # 0x64 4566 9111
          protocol:
            pulse_length: 350
            sync: [14, 4]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 5
            wait_time: 7500us
  - platform: template
    name: Screen Stop
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '0110010001000101011001101001000101010101'   # 0x64 4566 9155
          protocol:
            pulse_length: 350
            sync: [14, 4]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 5
            wait_time: 7500us
  - platform: template
    name: Screen down
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '0110010001000101011001101001000100110011'   # 0x64 4566 9133
          protocol:
            pulse_length: 350
            sync: [14, 4]
            zero: [1, 2]
            one: [2, 1]
          repeat:
            times: 5
            wait_time: 7500us

然后按上面的器件连接表把ESP8266(工作模式)、433M发射模块连接起来。

 

五、将ESP设备集成到Home Assistant(略)

参见《以DHT11、ESP8266为例介绍ESPHome在Home Assistant中的应用》一文

五、参考文档

用Esphome发射和接收任意315/433MHz射频 - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz!

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值