rf_gpio
介绍
rf_gpio 使用发射器和接收器直接连接到 GPIO 的 GPIO 端口的接收器。
安装:
cd /home/pi
git clone https://github.com/jmichault/rf_gpio.git
cd rf_gpio
sudo cp -p rf_gpio.sh /etc/init.d
sudo update-rc.d rf_gpio.sh defaults
sudo service rf_gpio.sh start
将接收器连接到 gpio2 bcm27 ( 引脚13 )
将发射器连接到 gpio0 bcm17 ( 引脚11 )
与 domoticz 一起使用:
添加 «RFLink Gateway with LAN interface»
远程地址:127.0.0.1
端口:10000
如果识别硬件,与 domoticz 的集成很简单:它足以在 “交换机”选项卡上使用 “自动检测”,或激活选项 “允许5分钟”
收发器测试:
-
用反应器反应器 ( ASIN = B00Z9SZNP0,MX-05V + MX-FS-03V ),在亚马逊1欧元以€1观看中文齿轮。
发射器很好,但接收器非常低 (范围为4m),仅用于学习代码。
-
WL101-341 + WL102-341,Superheredyne 433 MHz,在AliExpress上看到1欧元。
接收器具有比前一个更好的灵敏度。
注意:出于良好的结果,必须保护接收器免受 _raspberry-pi_发出的害虫。对于测试,您可以在折叠成一半的纸张中使用铝制涂层。
公认的材料:
已成功测试:
-
ASIN:B07DPVWW1 _ ,标记为 Intertek,为 amazon)( 的视图确认为 «Impuls»)
-
温度计 - 脚器 Aneng ( 中式低成本,在 _aliexpress_上观看LCD屏幕。 )
-
温度计 - 脚器 Digoo RG-8B ( 中国低成本,无屏幕,在 _aliexpress_上观看。 )
其他传感器在传感器中预定义.INI,但未测试。
要添加新传感器:
必须识别数据传输协议和数据格式。
选项1:
按照RF_gpio, soit en le lançant dans une fenêtre shell, soit en s’y connectant avec la commande «telnet 127.0.0.1 10000».
的出口
当传感器发送数据时,传输协议被识别出来时,您将看到类似于这样的东西:
20; 00; P0102,位= 36,D0 = 529,D1 = 949,D2 = 1926,DS = 3865;二进制= 011100110000100000,hex = 7300d8f20;
20; =任何RFLINK排放帧都开始如此。
00; =第一个框架发布。
P0102,位= 36,D0 = 529,D1 = 949,D2 = 1926,DS = 3865 = RF _gpio a identifié un protocole du type :
位0 = D0 D1
位1 = D0 D2
36数据位
持续时间D0 =520μs
持续时间D1 =957μs
持续时间D2 =1936μs
同步持续时间DS =3881μs duuma = 011100110000000000100000,hex = 7300d8f20; :在二进制和六躯中收到的数据。
选项2:
在树皮中运行:
./Analyzi
然后按遥控器上的按钮,或等待传感器发送数据。如果识别出协议,我们会看到类似于以下的东西:
73实用方案: “ XXX; P0001,位= 36,D0 = 689,D1 = 1923,DS = 3890; ID:B1-B36 “
二进制数据:01110011000000110110001100100000
六数据:7300d8f20
您现在需要分析二进制数据以识别每个部件的含义。
然后,您可以在Dentilos.ini文件中添加一行,每行由分号分隔的三个元素组成:
-
第一个元素:设备的名称。注意,如果它是一个开关,它必须是 _domoticz_识别的元素列表的一部分。
-
第二个元素:协议。复制RF_gpio ou analizo.
所示的内容示例:P0102,位= 36,D0 = 561,D1 = 1899,D2 = 3845,DS = 9158
表示:协议P0102 (位0 = D0 D1,位1 = D0 D2),36位按帧,持续时间D0 = 561 μs,持续时间d1 =1899μs,持续时间d2 =3845μs,持续时间同步ds =9158μs
协议,比特,D0和D1部件用于区分设备。 -
第三个元素:数据描述,每个字段通过彗星与其他字段分隔
多通道遥控器示例,ID:ID:B1-20,CMD:B21-21,Swile:B22-24
ID:B1-20表示遥控器的ID位于位1至20 (位1 =第一位传递 CMD:B21-21表示发送 ( ON / OFF ) 的命令位于ILO 21中。
改变:B22-24表示操作的插孔的数量位于位22至24处。
由 domoticz_确认,字段名称必须位于识别的列表 ( 中,请参见SECEULOS.TXT )。但是,我们可以放置我们想要的东西,只需将该字段忽略 _domoticz。
有几个位套件,例如:CMD:B17-17:B15-15:B16-15以该顺序连接位17和16。
可以测试某些比特的值,例如:CST2:B43-48 = 1将确认位43 48在接收中包含值1 (,并影响这些部件分布,CST2:B43-48! 1确认位438在接收中不含值1 (十六进制) 。
我们可以声明BCD编码字段 ( 十进制编码二进制 ) :放b而不是b。示例:TEMP:B12-15:B16-19:B20-23声明其第一数量为位12-15的温度场,第二到位16至20以及位21至23处的第三位。
与 “ -inv “的字段精加工是一个特殊的领域,将逆向 (补充在该节目中其HomonyST字段的一个) 。
您可以为每个 “=”中未找到的字段分配值。示例:CMD = ON
简单计算可以进行:添加,乘法和减法是可能的 ( ,在这种正确的顺序 )中,常量处于十六进制中。
用于转换为十分之一的°F + 900:的数据
温度:B17-28 + -4C4 * 5/9 ( SO:Data finale = (donnée Animal -1220 ) * 5/9 )
在收到满足条件的所有线路中将生成一行,如果要避免误报,则可以启动或删除与您的设备不匹配的行。
关于问题,将仅使用具有正确设备名称的第一行。
如果无法识别协议,则可以通过使用选项-v,-vv或-vv增加其动词来分析来研究它。但rf_gpio ne pourra pas le reconnaitre sans développement supplémentaire.
支持的协议:
只有至少具有以下功能的协议有机会被识别:
-
脉冲的时间总是 > 100μs
-
不超过三种不同的持续时间来代表数据。
-
每件都用两个脉冲编码,总是以相同的方式。
-
每个帧被两个同步信号包围,时间 >2500μs。
-
框架不含200多个脉冲。
在该节目中,不施用旋转码和确认量。