『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 11194|回复: 12

[经验分享] 暂时解决刷esphome固件后433/315射频的收发

[复制链接]

32

主题

302

帖子

1744

积分

金牌会员

Rank: 6Rank: 6

积分
1744
金钱
1437
HASS币
40
发表于 2020-4-26 11:11:39 | 显示全部楼层 |阅读模式
本帖最后由 lione95678 于 2020-4-26 11:18 编辑

       一直想直接使用esphome固件加433/315射频接收和发射模块来实现射频的遥控,前面也发过几个帖子,https://bbs.hassbian.com/thread-9308-1-1htmlhttps://bbs.hassbian.com/thread-9211-1-1.html
但是只解决了射频接收模块(不带解码)接收到指定信号后触发自动化,或者射频转串口的发射模块(带解码)的发射信号,但因为自己需要大功率的发射模块(从地下2层停车库发射信号到地上二层接收),射频转串口的发射模块(带解码)的信号不够,所以一直发愁。

        前段时间网上买了几个模块,如下图,但是一直没空,买了半个多月快递盒都没拆开,昨天试了一下其中一个发射的,远-T1(3-5v)的和LR45B接收模块,暂时搞定了发射和接收的事情,这里稍微说一下,其他的H34P大功率发射模块和灵-T2B9(串口发射)等5.1有空再试吧。


未标题-2.jpg


        首先,射频发射是远T1,用了esp32s的模块,而不是esp8266,后续有空也会尝试esp8266。射频接收是LR45B,接了esp8266(这一块原先就没有问题)。
    在esphome的接收设置如下:
remote_receiver:
  pin: D5
  dump:
    - rc_switch
  tolerance: 50%
  filter: 200us
  idle: 4ms
  buffer_size: 1kb


   在esphome的发射设置如下:
remote_transmitter:
  pin: GPIO32
  carrier_duty_percent: 100%
  
switch:
  - platform: template
    name: 433射频1
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 1
          repeat: 3
       esphome接收射频信号后解码触发自动化以前的帖子说过,相关参数也是自己瞎试试出来的,这里就不多说了,按照这个参数,我要做的是尝试发射信号的参数,在上面的设置中,我加了一个repeat: 3,表示这个信号连续发射3次,每次间隔是默认的10ms,详见https://esphome.io/components/remote_transmitter.html#remote-transmitter-actions
        然后我新建了6个虚拟开关来尝试不同的protocol,结果发现当protocol: 1时,虽然发射了3次信号,但只接受到1次信号,当protocol: 6时,接受的信号不对,protocol时2、3、4、5时,可以接受到2次正确的信号。我把发射的开关参数和esphome的log贴出来,大家看一下吧
switch:
  - platform: template
    name: 433射频1
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 1
          repeat: 3

  - platform: template
    name: 433射频2
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 2
          repeat: 3

  - platform: template
    name: 433射频3
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 3
          repeat: 3

  - platform: template
    name: 433射频4
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 4
          repeat: 3

  - platform: template
    name: 433射频5
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 5
          repeat: 3



  - platform: template
    name: 433射频6
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '111111000000001000000001'
          protocol: 6
          repeat: 3

#以下是6次收到的信号,接收时间、protocol和 data,关于protocol,我虽然发射的时候设置的是2、3、4、5,但接受的时候不是
[02:27:55][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=1 data='111111000000001000000001'

[02:27:58][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=2 data='111111000000001000000001'
[02:27:58][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=2 data='111111000000001000000001'

[02:28:04][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=2 data='111111000000001000000001'
[02:28:04][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=2 data='111111000000001000000001'

[02:28:08][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=1 data='111111000000001000000001'
[02:28:08][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=1 data='111111000000001000000001'

[02:28:10][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=2 data='111111000000001000000001'
[02:28:10][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=1 data='111111000000001000000001'

[02:28:13][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=3 data='00000111111111111111111'
[02:28:13][D][remote.rc_switch:243]: Received RCSwitch Raw: protocol=3 data='00000111111111'

#以下是6次发射的信号,大家可以和接收信号的时间进行比对
[02:27:54][D][switch:021]: '433射频电梯1' Turning ON.
[02:27:57][D][switch:021]: '433射频电梯2' Turning ON.
[02:28:04][D][switch:021]: '433射频电梯3' Turning ON.
[02:28:07][D][switch:021]: '433射频电梯4' Turning ON.
[02:28:10][D][switch:021]: '433射频电梯5' Turning ON.
[02:28:13][D][switch:021]: '433射频电梯6' Turning ON.





回复

使用道具 举报

8

主题

868

帖子

5152

积分

论坛元老

Rank: 8Rank: 8

积分
5152
金钱
4284
HASS币
0
发表于 2020-4-26 12:27:45 | 显示全部楼层
请问下远-T1(3-5v)可以同时接收433 和 315 两种频率吗?
回复

使用道具 举报

32

主题

302

帖子

1744

积分

金牌会员

Rank: 6Rank: 6

积分
1744
金钱
1437
HASS币
40
 楼主| 发表于 2020-4-26 15:27:02 | 显示全部楼层
新生活 发表于 2020-4-26 12:27
请问下远-T1(3-5v)可以同时接收433 和 315 两种频率吗?

不行,我买的都是433的,他们店里有315的,如果你需要2种型号,那就需要买各自的
回复

使用道具 举报

12

主题

178

帖子

1283

积分

金牌会员

Rank: 6Rank: 6

积分
1283
金钱
1100
HASS币
20
发表于 2021-3-15 17:18:51 | 显示全部楼层
感谢楼主的分享,我也在做相似的开关,你这样的方案发射和接收只能一一配对,如果换了新的发射端,你又得重新把代码写到固件里去,如果做成成品,用户就无能为力了。我想做接收端写好,可以匹配任何频率相同的发射端。一直没有解决。
回复

使用道具 举报

32

主题

302

帖子

1744

积分

金牌会员

Rank: 6Rank: 6

积分
1744
金钱
1437
HASS币
40
 楼主| 发表于 2021-3-16 16:47:35 | 显示全部楼层
那你只有用那种可以对码的射频接收模块,这种模块收到信号后触发其中io口的高低电平。这样有2个问题,1)这种模块自身可触发端口较少,一般在4个。2)esp8266可用的端口后续可能不够。
回复

使用道具 举报

8

主题

382

帖子

1779

积分

金牌会员

Rank: 6Rank: 6

积分
1779
金钱
1397
HASS币
0
发表于 2021-9-29 19:21:29 | 显示全部楼层
本帖最后由 peter5858 于 2021-9-29 19:23 编辑

请问楼主,发射可以用吗?我只需要发射功能,按照你的程序发射不起作用,日志里有动作没数据,代码如下:
#======== 接收==== 
remote_receiver:
  pin: GPIO04
  dump:
    - rc_switch
  tolerance: 50%
  filter: 200us
  idle: 4ms
  buffer_size: 1kb
#========发射======
remote_transmitter:
  pin: GPIO32
  carrier_duty_percent: 100%
  
switch:
  - platform: template
    name: 433射频2
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '11001101000010100101101000'
          protocol: 1
          repeat: 3
  - platform: template
    name: 433射频1
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '11001101000010100101100001'
          protocol: 2
          repeat: 3         
[19:20:06][C][web_server:152]: Web Server:
[19:20:06][C][web_server:153]:   Address: rf-ep32-433.local:80
[19:20:06][C][ota:029]: Over-The-Air Updates:
[19:20:06][C][ota:030]:   Address: rf-ep32-433.local:3232
[19:20:06][C][api:135]: API Server:
[19:20:06][C][api:136]:   Address: rf-ep32-433.local:6053
[19:20:38][D][switch:029]: '433射频2' Toggling ON.
[19:20:40][D][switch:029]: '433射频1' Toggling ON.
[D][api:095]: Accepted 192.168.2.17
[D][api.connection:735]: ESPHome Logs 2021.9.0 (192.168.2.17): Connected successfully
[D][switch:029]: '433射频2' Toggling ON.
[D][switch:029]: '433射频2' Toggling ON.
[D][switch:029]: '433射频1' Toggling ON.


回复

使用道具 举报

32

主题

302

帖子

1744

积分

金牌会员

Rank: 6Rank: 6

积分
1744
金钱
1437
HASS币
40
 楼主| 发表于 2021-9-30 09:18:24 | 显示全部楼层
peter5858 发表于 2021-9-29 19:21
请问楼主,发射可以用吗?我只需要发射功能,按照你的程序发射不起作用,日志里有动作没数据,代码如下:

...

发射可以用,你试着更换esp32的端口,即remote_transmitter,看看是否可以,另外,确认一下接收端有没有问题
回复

使用道具 举报

8

主题

382

帖子

1779

积分

金牌会员

Rank: 6Rank: 6

积分
1779
金钱
1397
HASS币
0
发表于 2021-9-30 12:04:34 | 显示全部楼层
lione95678 发表于 2021-9-30 09:18
发射可以用,你试着更换esp32的端口,即remote_transmitter,看看是否可以,另外,确认一下接收端有没有 ...

接收端用遥控没问题,接收端用源程序也接入到ha控制也没问题,就是想另外用esp做个433的中继接入ha。我用mqtt调用遥控码,接收端都可以控制,不晓得哪里没搞好
回复

使用道具 举报

32

主题

302

帖子

1744

积分

金牌会员

Rank: 6Rank: 6

积分
1744
金钱
1437
HASS币
40
 楼主| 发表于 2021-9-30 15:14:09 | 显示全部楼层
esphome射频的发射和接收很麻烦,我也不懂射频的相关参数,所以esphone关于射频参数这一块要自己测试修改,比如  tolerance: 50%,  filter: 200us,  idle: 4ms,  buffer_size: 1kb
另外,编解码是否是rc_switch?
回复

使用道具 举报

3

主题

104

帖子

1735

积分

金牌会员

Rank: 6Rank: 6

积分
1735
金钱
1631
HASS币
0
发表于 2022-3-30 22:02:09 | 显示全部楼层
楼主试了h34p了没,我也买了h34p、h34s,用34p发射rc_switch protocol 1的码,接收端收到的和发射的不一致
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 04:41 , Processed in 0.061879 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表