約10年前、時々、簡単なOregon ScientificBAR208HGウェザーステーションを購入しました。彼女は長い間家族を喜ばせ、今日まで喜んでいます。時間が経つにつれて、私はその機能を失い始め、天気を監視する能力を拡大したいと思いました。そして、1つの不快な事実が明らかになりました。同じオレゴンサイエンティフィックから高度な気象ステーションを購入しても、センサーからの測定値を古いステーションにブロードキャストすることはできませんでした。データ転送プロトコルのバージョンが一致しませんでした。ほぼ同時に、悪名高い人民監視サービスへの気象データの転送など、エキサイティングな冒険に参加しました。すでに当時、ネットワークには、気象観測所自体とオレゴンセンサー、データ転送プロトコルとそれらをデコードする方法に関する多くの情報がありました。信号を受信してデコードするための既製のArduinoプログラムとライブラリを簡単に見つけました。このすべての情報は、私には不十分に体系化されているように見え、場所によっては不正確であり、プログラムは非常に短い距離でのみ満足のいく結果をもたらしました。最終的に私は古い真実にたどり着きました:「あなたが何かをうまくやりたいのなら、それを自分でやりなさい」。その後の研究の結果、このノートを書き、得られた知識とスキルを共有したいと思います。その後の研究の結果、このノートを書き、習得した知識とスキルを共有したいと思います。その後の研究の結果、このノートを書き、習得した知識とスキルを共有したいと思います。
プロトコルバージョン
オレゴンサイエンティフィックエコシステム全体は、一般原則に従って機能します。センサーは、厳密に定義された間隔でブロードキャストする送信機です。送信中の衝突を最小限に抑えるために、すべてのセンサーのブロードキャスト間隔は異なります。たとえば、私のステーションでは、センサーは1番目、2番目、3番目のチャネルでそれぞれ39、41、43秒の間隔で読み取り値を送信します。ウェザーステーション自体は、受信機にすぎません。したがって、関係は一方向です。製造元は、データ転送プロトコルのいくつかのバージョンを使用しています。
- バージョン1.0。このプロトコルでは、私は時から20年前に黄色に変わったデバイスでのみ動作します。私はこれらのデバイスをライブでも写真でも見たことがありません。それらについて私に言うことは絶対にありません、
- 2.1. — . , , , , — 30,
- 3.0 — .. "" , , . "" . , , , 100, , , . . - , . "" . , BAR208HG BAR208HGX, 3- .
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が必要であることに注意してください。さらに、プログラムは送信機のクロック周波数の偏差に敏感です。これは、クォーツ共振器など、センサーで使用されるコンポーネントの品質が悪いために発生することはめったにありません。