关于解码Oregon Scientific天气传感器协议

大约十年前,我偶尔买了一个简单的Oregon Scientific BAR208HG气象站。她使这个家庭高兴了很长时间,并一直高兴到今天。随着时间的流逝,我开始错过它的功能,并想扩展我的天气监视能力。然后,一个不愉快的事实变得很明显-从同一俄勒冈科学公司购​​买了先进的气象站,这使得将传感器的读数广播到旧站成为可能。数据传输协议的版本不匹配。大约在同一时间,我参与了一次激动人心的冒险,例如将天气数据传输到臭名昭著的“人民监测”部门。当时,该网络已经掌握了有关气象站本身和俄勒冈传感器,数据传输协议及其解码方法的大量信息。我很容易找到了几个现成的Arduino程序和库,用于接收和解码信号。在我看来,所有这些信息都没有系统化,在某些地方不准确,并且程序仅在很短的距离内给出了令人满意的结果。最终,我得出了一个古老的真理:“如果你想做点好事,那就自己做。”后续研究的结果是撰写了本笔记,在此我想分享获得的知识和技能。后续研究的结果是撰写了本笔记,在此我想分享获得的知识和技能。后续研究的结果是撰写了本笔记,在此我想分享获得的知识和技能。



协议版本



整个Oregon Scientific生态系统均遵循通用原则-传感器是按严格定义的间隔进行广播的发射器。为了使传输期间的冲突最小化,所有传感器的广播间隔都不同,例如,对于我的电台,传感器在第一,第二和第三通道上分别以39、41和43秒的间隔传输读数。反过来,气象站本身只是接收器。因此,这种关系是单向的。制造商使用多种版本的数据传输协议:



  • 版本1.0。在此协议上,我只能使用从20年前开始变黄的设备。我从没看过这些设备,甚至还没有看到它们。关于它们,绝对没有什么可告诉我的,
  • 版本2.1。 -目前在俄罗斯和周边国家/地区销售的大多数家用产品中都使用了它。通常,按照该协议运行的传感器的发射器功率较低,声明的动作范围约为30m,
  • 3.0版-最初用于所谓的。 “专业”气象站,带有风速计,降水量计和紫外线传感器。 “专业”一词并非毫无理由地用引号引起来。尽管要求保护的特性得到了改善,例如100m的范围,但是这些设备中的大多数具有相当脆弱的设计,廉价的元件底座,并且寿命短于家用产品。不久前,制造商开始将其设备的家庭部分转换为该协议。他们曾在俄罗斯出售了一段时间,但后来由于不明原因而停止了销售。您可以通过名称末尾的“ X”索引来标识这些产品。例如,发布了一个无法区分的气象站BAR208HGX,而不是我的BAR208HG,在协议的第三版上工作。


433. — (On/Off Key), .. "/", . 2048. 2.1 3.0





, . OOK , , . — . . — . , .





, . .



, . . 2.1 4- Fh, 3.0 — 6- . ? , , () . , , , .





, Ah. . , .



— 4 . , , . :



  • ,
  • ,
  • , ,
  • , .


"" . "" . , , . , , . , , , . , , .



"" :



  • 3 (& 4h) . THGN132N, , 1.3.
  • 4 (& 8h) 30- . , .
  • 1 (& 1h) 30- 60- .


"" . :





" " — . , . ,



5D5314D01510950AC13B529



:



5h + Dh + 5h + 3h + 1h + 4h + Dh + 0h + 1h + 5h + 1h + 0h + 9h + 5h + 0h + Ah + Ch + 1h + 3h = 5Bh



, . , .



CRC8 — . CRC8-CCITT 07h. , "" "". 2.1 3.0 , 2.1 "ID" . , THN132N ( 2.1)



EC401B183520D33F



D6h



CRC8-CCITT( D6h < E < C < 4 < 0 < 1 < 8 < 3 < 5 < 2 < 0 ) = F3h



PCR800 ( 3.0),



29140EC00000279410142E





CRC8-CCITT( 00h < 2 < 9 < 1 < 4 < 0 < E < C < 0 < 0 < 0 < 0 < 0 < 2 < 7 < 9 < 4 < 1 < 0) = E2h



.





. Arduino , . , "" . , . THGN132N .





, , , , , . Oregon , Arduino . , ,他尝试将所有已研究的问题都考虑在内。应该注意的是,在我这种处理代码方法的实现中,需要大量的RAM。此外,该程序对发射器时钟频率的偏差很敏感,事实证明,由于在传感器中使用的组件(包括石英谐振器)的质量较差,这种情况很少发生。




All Articles