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

 找回密码
 立即注册
查看: 9365|回复: 17

[新奇玩法] Sonoff Basic和串口转射频模块和RF射频解码模块

[复制链接]

57

主题

402

帖子

3013

积分

论坛元老

Rank: 8Rank: 8

积分
3013
金钱
2611
HASS币
0
发表于 2019-10-2 12:30:36 | 显示全部楼层 |阅读模式
本帖最后由 李丑男 于 2019-10-2 12:30 编辑

因为自己的新能源车需要充电,而厂商的APP里面连预约充电功能都没有完善,搞得我每次要充电,都是要用充电栓配的遥控器按一下,又因为把家里的电费设置成了峰谷计时的方式,为了省那么点钱,每次想充电时,都要在晚上10点时,再找出遥控器去按一下,又因为离的有点远,有时操作不到,或者看不到,反正就是麻烦加不爽。 这个充电桩配的遥控器是433MHz的。既然都有了HA,那为什么不把这件事交给HA来办呢?
言归正传。论坛搜了一遍也没有找到怎么用sonoff basic来发射射频码,好像sonoff RF也只能当成桥来用,发射不了。上淘某找,正好看到有串口通过的发射和接收射频模块。把自己的充电桩遥控器拆开,看了一下上面的晶振,确定是433Mhz的,然后就在某宝下单了一个发射和接收模块。
在等待收货的期间,研究了很久Tasmota的 Serial Bridge用法。其实刚开始是看那个RF BRIDGE,搞得七晕八素的,最后发现不可以。
https://github.com/arendst/Sonoff-Tasmota/wiki/Commands#serial-bridge

进入正题之前,先放两张射频码的格式说明给大家参考一下。  
rf-send.jpg

RF-received.jpg

Rf-code-received-rule.jpg

Rf-code-send-rule.jpg

下面真正进入正题。
一、SONOFF BASIC + RF射频解码模块 = 读取解码现有的遥控器的发射码。
把sonoff basic上面的引脚该焊的焊,把5V电源引出来。固件刷成Tasmota,连好模块的线,对接收模块来讲,只需要把接收模块的TX接到sonoff的RX上就行。并设置一下模块参数。我这里使用的是GPIO1 / GPIO 3,你如果使用其他端口也一样,不同的是下面的命令到时不一样。
SONOFF_PCB1.jpg    sonoff_serial_rf1.PNG
设置好重启之后,就要通过Tasmota 的web终端输入命令,设置一下串口参数了。
a.先把串口日志关掉
SerialLog 0

b.设置串口波特率,我买的这个模块的波特率是9600bps,大家根据自己的设置,
Baudrate 9600

如果你用的是其他GPIO端口的话,就是使用的软件端口
SBaudrate 9600

c.设置串口输出格式,我发现只能设置成128才可以接收到
SerialDelimiter 128

d.假装发一条消息,来格式需要收到的信息格式,主要是为了让收到的消息是以HEX格式显示
serialsend5 FD 03 3A 1A 21 30 DF

同样,如果你使用的是其他GPIO端口的放,就使用
sserialsend5 FD 03 3A 1A 21 30 DF

到此,就完结了。这个时候,你拿来需要解码的遥控器,接一下遥控器上面的键,看看你的sonoff有没有收到消息,并在终端里面给你返回一条信息。正常的话,你应该会收到一条6位码的数据。比如
FD 3A 1A 21 30 DF
这个就是你这个遥控器这个按键的编码了,把它记下来,到时发送的时候会用到。
二、SONOFF BASIC + 串口转射频模块 = 可以发送任意码的遥控器
把Sonoff basic与串口转射频模块接好,做实验时把RX和TX都接,方便看反馈,实际使用时,只需要把接射频模块的RX和SONOFF的TX连接就行了。如果的新的模块,就按上面的把日志和波特率设置一下。
a.然后在终端里面输入你上面得到的发送码。

serialsend5 FD 03 3A 1A 21 30 DF


如果你使用的是其他端口的话,就使用
sserialsend5 FD 03 3A 1A 21 30 DF

注意我上面使用红色标注的03,不要把这个数字设置的太大,要不就会一直发射。
正常情况你,你会得到两条反馈,一条是sonoff本身的发送完成
serialsend5 done

或者
sserialsend5 done

和射频模块的反馈
3A 1A 21 30

这样,系统就把你的码发送出去,正常这个时候你的接收设备应该就会动作了。
大家在测试的时候,最好是两个模块一起配合着试方便调试,比如你试接收模块的话,就用电脑接串口接发射模块。反过来也一样。
三、整合到HA里面,手动或者定时发送。
a、经过以上的调试,大家把自己需要模拟的遥控器按键都解码出来。然后整合到HA里面,就可以了。HA示例(我接的GPIO14)
switch:  
  - platform: mqtt
    name: "Charger"
    command_topic: "cmnd/charger/sserialsend5"
    qos: 0
    payload_on: "FD 03 3A 1A 21 50 DF"
    payload_off: "FD 03 3A 1A 22 50 DF"
    optimistic: false

b、添加自动化(我的是控制我的充电桩,所以我在每天的22:00时发送一下开的信号,大家根据自己的实际情况使用)
- id: '1569824163685'
  alias: auto_chargering
  trigger:
  - at: '22:00'
    platform: time
  condition: []
  action:
  - data:
    entity_id:
      - switch.charger
    service: switch.turn_on

c、下面是我自己最终的成果,我是一个sonoff上接了PZEM-004T和串口转射频模块,新的PZEM-004T使用的是Modbus-RTU通讯,所以需要改成PZEM-016才可以与sonoff通信上。在这里也请教大佬一个问题,如何把这个开关状态与电流关系关联起来?当电流小于1时,我的充电栓其实是未充电的状态,这个时候开关应该是在“关”的状态,如果大于1时,应该是开的状态。
sonoff_serial_rf.PNG    charger.PNG
d、我也添加一段回复可见的注意事项
研究了半天也不到在哪里设置回复可见的选项,算了,就当一次大赠送了。
注意!注意!注意!
射频发射模块不要放在sonoff basic旁边,要不一发射sonoff就会死掉,屡试不爽!



回复

使用道具 举报

0

主题

204

帖子

1045

积分

金牌会员

Rank: 6Rank: 6

积分
1045
金钱
841
HASS币
0
发表于 2019-10-2 13:50:32 | 显示全部楼层
学习学习
回复

使用道具 举报

9

主题

249

帖子

4132

积分

元老级技术达人

积分
4132
金钱
3868
HASS币
100
发表于 2019-10-2 14:24:23 | 显示全部楼层
感谢楼主分享!

sonoff rf bridge可以发射rf码的,前提是已经通过rf bridge获取到rf码了。
因为我的窗帘向日葵电机就是通过mqtt来控制,双向门磁也是通过mqtt,让HA自动化实现改变实体状态,显示门的开关状态。

BTW:在控制台输入RfRaw 你的rf发射码     可以发射rf信号。
E5-2650L-V2+华南X79+16GB*2
回复

使用道具 举报

57

主题

402

帖子

3013

积分

论坛元老

Rank: 8Rank: 8

积分
3013
金钱
2611
HASS币
0
 楼主| 发表于 2019-10-2 16:35:00 | 显示全部楼层
xz0609 发表于 2019-10-2 14:24
感谢楼主分享!

sonoff rf bridge可以发射rf码的,前提是已经通过rf bridge获取到rf码了。

好吧,也感谢感谢你的分享,看来我之前还是没有看懂Tasmota里面的RF BRIDGE说明,估计是因为我看了那个硬件挺贵的,就不想买来做实验,万一不成就浪费了。
回复

使用道具 举报

12

主题

351

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
821
HASS币
0
发表于 2019-11-10 17:41:43 | 显示全部楼层
厉害的手段,学习学习
回复

使用道具 举报

22

主题

303

帖子

1071

积分

金牌会员

Rank: 6Rank: 6

积分
1071
金钱
763
HASS币
20
发表于 2019-11-14 11:54:45 | 显示全部楼层
都是高手啊,只能默默地心底里仰慕
回复

使用道具 举报

0

主题

79

帖子

266

积分

中级会员

Rank: 3Rank: 3

积分
266
金钱
187
HASS币
0
发表于 2020-2-17 16:31:59 | 显示全部楼层
学习中~谢谢lz分享
回复

使用道具 举报

32

主题

302

帖子

1736

积分

金牌会员

Rank: 6Rank: 6

积分
1736
金钱
1429
HASS币
40
发表于 2020-2-22 12:58:13 | 显示全部楼层
朋友,你这么做是不是只能把模块当做一个射频遥控开关使用?就是在hass的switch开关触发或者某些自动化条件达到后,用模块来发射射频信号?你实际上买的是一个串口转射频的 收 发 模块(因为我看见你可以通过Tasmota固件的终端收到其他射频遥控器发射的射频编码),那么能否用接收模块来实现自动化呢,比如我用一个射频遥控器发射了一个信号,然后tasmota固件在收到这个信号后,自动化进行一个操作,比如打开一个灯什么的,或者tasmota固件本身不进行自动化,只是把收到的射频信号通过mqtt传输给node-red,通过node-red来执行自动化
回复

使用道具 举报

57

主题

402

帖子

3013

积分

论坛元老

Rank: 8Rank: 8

积分
3013
金钱
2611
HASS币
0
 楼主| 发表于 2020-2-22 19:35:43 | 显示全部楼层
lione95678 发表于 2020-2-22 12:58
朋友,你这么做是不是只能把模块当做一个射频遥控开关使用?就是在hass的switch开关触发或者某些自动化条件 ...

完全可以啊, 因为我家里的射频类的器件只有这么一个充电术桩而已。你说的这个完全可以实现的。不过需要HA的自动化来配合才行。
回复

使用道具 举报

3

主题

76

帖子

352

积分

论坛积极会员

积分
352
金钱
276
HASS币
0
发表于 2020-3-12 09:26:35 来自手机 | 显示全部楼层
好厉害呀,真好想做一个射频的自动化,通过遥控器控制ha
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 23:09 , Processed in 0.058938 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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