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

标题: 请教如何用esphome来实现射频433/315超再生模块的发射信号 [打印本页]

作者: lione95678    时间: 2020-2-11 14:32
标题: 请教如何用esphome来实现射频433/315超再生模块的发射信号
请教一下,nodemcu刷了esphome,连接超再生的射频收发模块,那种很便宜的3元钱,现在按照下面设置后,接收模块可以收到射频信号,但发射模块始终无法使用。
esphome设置如下:


  1. remote_receiver:
  2.   pin: D6
  3.   dump:
  4.     - rc_switch
  5.   tolerance: 50%
  6.   filter: 24us
  7.   idle: 4ms
  8.   buffer_size: 1kb

  9. remote_transmitter:
  10.   pin: D7
  11.   # RF uses a 100% carrier signal
  12.   carrier_duty_percent: 100%

  13. switch:
  14.   - platform: template
  15.     name: RF Power Button
  16.     turn_on_action:
  17.       - remote_transmitter.transmit_rc_switch_raw:
  18.           code: '100010000000000010111110'
  19.           protocol: 1
复制代码
现在是按了遥控器的按键后,esphome可以收到代码,在esphome的showlogs页面下可以显示如下:
[remote.rc_switch:243]: Received RCSwitch Raw: protocol=1 data='100010000000000010111110


但是在honeassistant中,虚拟的那个RF Power Button按键按下去后,相关的设备始终没有反应,esphome的showlogs页面下显示如下


[06:29:50][D][switch:021]: 'RF Power Button' Turning ON.
[06:29:50][D][remote_transmitter:066]: Sending remote code...



说明开关是按下了,但是我的设备没有收到合适的信号(或者没有发送信号),而且我通过usb转ttl模块连接了串口转射频收发模块,串口软件也没有显示收到信号


请懂的大侠看看,到底怎么回事



作者: 671792320    时间: 2020-2-11 21:03
你可以尝试下刷beta版本的esphome。或者在esphome的github上查找问题,关于射频有不少问题。参考下
作者: 李丑男    时间: 2020-2-12 14:20
你可以参考一下我的这个帖子,我是使用tasmota
https://bbs.hassbian.com/thread-8337-1-1.html

作者: lione95678    时间: 2020-2-13 11:48
李丑男 发表于 2020-2-12 14:20
你可以参考一下我的这个帖子,我是使用tasmota

很感谢你解决方法。你是用的串口转射频的模块,我最终的想法是使用那种很便宜的超再生模块,毕竟2种模块是8-10倍的差价,一种3元钱,一种30元。
作者: 李丑男    时间: 2020-2-19 13:32
lione95678 发表于 2020-2-13 11:48
很感谢你解决方法。你是用的串口转射频的模块,我最终的想法是使用那种很便宜的超再生模块,毕竟2种模块 ...

有没有链接,发一个,我也去买一个这种便宜的回来研究一下看看,我觉得应该是一样的,都 可以用tasmota实现。
作者: lione95678    时间: 2020-2-22 11:27
李丑男 发表于 2020-2-19 13:32
有没有链接,发一个,我也去买一个这种便宜的回来研究一下看看,我觉得应该是一样的,都 可以用tasmota实 ...

https://item.taobao.com/item.htm ... amp;_u=m1leq7av6f1a
作者: 李丑男    时间: 2020-6-17 16:27
本帖最后由 李丑男 于 2020-6-17 16:30 编辑

我前几天终于空出时间来研究了一下这个超再生模块。原来可以直接使用tasmota固件来接收和发送。参考这里
https://tasmota.github.io/docs/RF-Protocol/

1。首先,需要刷写 tasmota-sensors.bin 这个固件,只有这个固件才内置了一整个RF解码的库。
2.设置端口 RFSend (105) 和 RFrecv (106)
3.连接相应的超再生模块,先接接收的,然后按一下按键,正常情况你,你会收到类似这样的一条信息。
  1. {"Time":"2020-06-17T10:33:24","RfReceived":{"Data":"0xCD14F1","Bits":24,"Protocol":1,"Pulse":337}}
复制代码

4.这个就已经解码成功了,现在可以把你们的发送模块接上,试一下发送
  1. rfsend 0xCD14F1
复制代码
不出意外的话,你应该会发现你的SONOFF死机了,因为你发送太多了。

5.改一下发送的格式。
  1. rfsend 0xCD14F1, 24, 1, 337
复制代码

把这后面的337改小一点,直到你需要的为止。最好得有一个接收的监测,监测一下,只需要发送出1组至3组完整的信号就够了。

用这种模块,确实比用我的那种转串口的要便宜好多啊。


作者: XCray    时间: 2020-6-18 07:03
尝试用ESPHOME在ESP32开发板上解析433信号(仅接收),却碰到了非常难以理解的灵异现象,大佬能否给解释一下到底是哪儿的问题???

我用的开发板是esp32doit-devkit-v1,接收配置
  1. remote_receiver:
  2.   pin: GPIO26
  3.   dump: all
  4.   tolerance: 50%
  5.   filter: 24us
  6.   idle: 4ms
  7.   buffer_size: 1kb
复制代码

试过13、22、26这3个引脚,都存在即使不接线,log输出也显示收到了大量的信号,非常多,就像这样:
[06:19:07][D][remote.raw:041]: Received Raw: -65, 1, -1, 1, -8, 1, -1, 30
[06:19:07][D][remote.raw:041]: Received Raw: 1, -1, 30, -26, 7, -1, 2, -1, 2, -1
[06:19:07][D][remote.raw:041]: Received Raw: -1, 7, -1, 2, -1, 2, -1, 1, -1, 1, -1, 1, -8, 34, -1, 1815, -1, 1, -1, 68, -19, 1, -45, 1, -88, 3, -87, 6, -1, 4, -1, 2, -1, 1, -1, 1, -23, 8, -4, 39
[06:19:07][D][remote.raw:041]: Received Raw: 34, -1, 1815, -64, 1, -1, 1, -1, 1, -1, 1
[06:19:07][D][remote.raw:028]: Received Raw: 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 31, -1930, 16, -2, 7, -1, 2, -1, 20, -2204, 9, -2, 398, -452, 31, -424, 215, -245, 73, -1000, 15, -1, 7, -1, 83, -2, 5, -2, 1, -1, 1, -1, 1, -1, 9, -46, 89, -1, 7, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 8,
[06:19:07][D][remote.raw:041]:   -26, 9, -27, 2, -5, 1, -54, 82, -1, 58, -1, 8, -9, 13, -1, 7, -1, 1, -1, 1, -1, 1, -1, 2, -1, 1, -1, 1, -1, 1, -9, 1, -25, 1, -32, 1, -1, 1, -1, 1, -8, 9, -26, 19, -59, 89, -1, 60, -1

作者: coli06    时间: 2020-8-15 11:25
李丑男 发表于 2020-6-17 16:27
我前几天终于空出时间来研究了一下这个超再生模块。原来可以直接使用tasmota固件来接收和发送。参考这里
1 ...

大佬你好,我参照你的方式用超再生模块做了这个发射和接收的模块,请问在yaml里面要如何写配置呢?
作者: coli06    时间: 2020-8-15 11:53
李丑男 发表于 2020-6-17 16:27
我前几天终于空出时间来研究了一下这个超再生模块。原来可以直接使用tasmota固件来接收和发送。参考这里
1 ...

我在第五步发射时,无论最后那个337的数值怎么改,都是死机~~我的发射模块和接收模块离主控板的线长只有大概四五厘米,是不是靠得太近导致的?
然后在mqtt里通过cmnd主题发送,却提示没有主题~~所以在yaml里面不知道要怎么写按钮了求指导!
作者: 李丑男    时间: 2020-8-16 09:47
coli06 发表于 2020-8-15 11:53
我在第五步发射时,无论最后那个337的数值怎么改,都是死机~~我的发射模块和接收模块离主控板的线长只有 ...

你第一个问题试着把线放长一点试一下就知道了,要不就先拿个铁盒子把发射模块给罩住,先屏蔽试一下看看了。
第二个问题
  1. switch:  
  2.   - platform: mqtt
  3.     name: "charger"
  4.     command_topic: "cmnd/charger/rfsend"
  5.     qos: 0
  6.     payload_on: "0xCD14F1,24,1,10"
  7.     payload_off: "0xCD14F2,24,1,10"
  8.     optimistic: false
复制代码

上面的name自己改,topic根据你自己的实际开关来改,发送的数据,根据你解码到的实际情况来改。
作者: coli06    时间: 2020-8-16 10:30
李丑男 发表于 2020-8-16 09:47
你第一个问题试着把线放长一点试一下就知道了,要不就先拿个铁盒子把发射模块给罩住,先屏蔽试一下看看了 ...

感谢指导,我是要控制家里433的吊扇的,用接收模块获取到遥控每个按钮的码,然后通过mqtt+发射模块实现遥控功能,我发现通过发射模块发送数据出去后,mqtt后台会收到一条 rfsend done的消息,不会像按下遥控后,接收模块接收到的那串数据那样,不知这是否正常?
作者: coli06    时间: 2020-8-16 10:48
李丑男 发表于 2020-8-16 09:47
你第一个问题试着把线放长一点试一下就知道了,要不就先拿个铁盒子把发射模块给罩住,先屏蔽试一下看看了 ...

还有一个很奇怪的是,我只要是把任何一个模块接到RX或者TX口,主控板都启动不起来
作者: ylilike    时间: 2020-8-17 20:36
coli06 发表于 2020-8-16 10:48
还有一个很奇怪的是,我只要是把任何一个模块接到RX或者TX口,主控板都启动不起来 ...

我用ESP8266 01 试了一下,用的RX口,很完美啊,不过我只写发送射频信号的

接GPIO0的话,就启动不了,启动后,接线倒是正常发射信号
作者: coli06    时间: 2020-8-18 06:46
ylilike 发表于 2020-8-17 20:36
我用ESP8266 01 试了一下,用的RX口,很完美啊,不过我只写发送射频信号的

接GPIO0的话,就启动不了,启 ...

我也试试只接发射的试下,不过我不知道为啥,获取到的遥控码无论怎么发射,设备都没反应……发射出去后,mqtt是收到rfsend done,也不懂这是不是正常的。
作者: 李丑男    时间: 2020-8-18 15:56
coli06 发表于 2020-8-16 10:30
感谢指导,我是要控制家里433的吊扇的,用接收模块获取到遥控每个按钮的码,然后通过mqtt+发 ...

rfsend done说明你的模块已经发送成功的,这个是tasmota自己的反馈信息。你接的发射模块,当然不会像接收模块收到那串数据了。这是对的。你可以再拿一个SONOFF,然后一个接发送,一个接接收。试试看有没有正常。
作者: 李丑男    时间: 2020-8-18 15:58
coli06 发表于 2020-8-16 10:48
还有一个很奇怪的是,我只要是把任何一个模块接到RX或者TX口,主控板都启动不起来 ...

你用的是什么主控板?还有就是尽量不要用RX和TX口,这两个口好像如果上电时被拉低,会有一定机率起不来。
作者: coli06    时间: 2020-8-20 10:35
李丑男 发表于 2020-8-18 15:58
你用的是什么主控板?还有就是尽量不要用RX和TX口,这两个口好像如果上电时被拉低,会有一定机率起不来。 ...

我用的是nodemcu D1 mini的那款,是基于esp8266-01的,除了体积比较小之外,和nodemcu都一样。我后台有发出去~但是风扇没响应如果不行的话,我打算直接买你之前帖子那种来试试了
作者: myxu    时间: 2021-3-24 17:31
请问楼主问题  解决了 没有
作者: whycao    时间: 2021-4-9 20:52
李丑男 发表于 2020-6-17 16:27
我前几天终于空出时间来研究了一下这个超再生模块。原来可以直接使用tasmota固件来接收和发送。参考这里
1 ...

感谢分享 参考您的研究成果
今天总算实验成功了
作者: whycao    时间: 2021-4-9 21:01
coli06 发表于 2020-8-18 06:46
我也试试只接发射的试下,不过我不知道为啥,获取到的遥控码无论怎么发射,设备都没反应……发射出去后, ...

今天总算实验成功了 遥控码发射后设备有反映了
比如收到的射频码如下
"RfReceived":{"Data":"0x88751D8A","Bits":32,"Protocol":2,"Pulse":434}}
那么按照官方文档发送命令
RFsend 0x88751D8A, 32, 2, 3, 434
唯一需要调整的就是Repeat值,我这边设为3。官方文档默认是10
作者: zyling    时间: 2021-11-4 19:42
收藏,准备也做一个发射
作者: qawei    时间: 2022-3-30 07:33
李丑男 发表于 2020-6-17 16:27
我前几天终于空出时间来研究了一下这个超再生模块。原来可以直接使用tasmota固件来接收和发送。参考这里
1 ...

我已经实现了收发,随意贴是单路的,node red要怎样设置单击开灯,单击关灯并显示实时状态
作者: 0xbee    时间: 2022-8-15 15:46
挖一下旧贴。先贴一下配置
switch:
  - platform: template
    name: "Send RC"
    turn_on_action:
      - remote_transmitter.transmit_rc_switch_raw:
          code: '001000001000100000000010'
          protocol: 1
          repeat:
            wait_time: 0s
            times: 10
这里两个技巧
1. 重发多次,提高成功率
2. 需要在抓到的code后面补一个0
作者: cjf307408894    时间: 2022-8-16 16:55
0xbee 发表于 2022-8-15 15:46
挖一下旧贴。先贴一下配置
switch:
  - platform: template

谢谢分享
作者: dxf520    时间: 2022-10-15 13:35
我也遇到这样的问题了,我抓了波形,esphome发出去的码值与源控制器的波形是不一样的,解码的码值都一样,但是周期不一样,总时间esphome多了5ms左右。我现在没有找到esphome里边可不可以微调一下时间。至少得微调15%左右。
作者: wdshwdsh    时间: 2023-1-24 10:02
coli06 发表于 2020-8-16 10:30
感谢指导,我是要控制家里433的吊扇的,用接收模块获取到遥控每个按钮的码,然后通过mqtt+发 ...

我也遇到了这个问题,请问解决了吗?yaml我也没有配置出来
作者: moz111    时间: 2024-4-11 15:55
XCray 发表于 2020-6-18 07:03
尝试用ESPHOME在ESP32开发板上解析433信号(仅接收),却碰到了非常难以理解的灵异现象,大佬能否给解释一 ...

大佬后期解决这个问题了么。  dump:all 我的也是无限出数据。改成dump: - rc_switch后能接到正常数据但是发射不好用




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5