TFA Spring Weather Stationセンサープロトコルリバースエンジニアリング

少し前まで、TFAは30.3206.02の温度湿度センサーを備えたかなり素晴らしいTFA Springウェザーステーションをリリースしました。 独自の開発、たとえば自家製の時計/気象ステーションでセンサーを使用する場合は、この記事が役立ちます。



画像





ウェザーステーションは比較的新しく、Googleはこのセンサーのプロトコルの検索結果を示していないため、433 MHz受信機をオシロスコープに接続し、オシロスコープをコンピューターに接続して、プロトコルの調査を開始します。



オシロスコープによると、センサーは50秒ごとに12個の同一のパケットを送信し、より広いクロックパルスで区切られており、オシログラムにはっきりと表示されます。



画像



画像



同期周期は〜1700 uSecで、データパルスの繰り返し周期は〜700 uSecです。

情報はデューティサイクルによって送信されます-短いパルスは0、長い1を意味します。



画像



異なるパケットでは、デューティサイクルは変化します(ただし、データパルスの周期は〜700 uSecで一定です)。したがって、安定したデコードを行うには、パケットの最初の8ビットを取得し、平均パルス持続時間を取得し、1つのパケット内でパルスが短い場合-0、長い-1 。



データパケットは、幅の広い4つのクロックパルスで区切られます。 区画は2クロックパルスで閉じられ、その後に長い無音時間が続きます。 最初のパルスは受信機AGCによって塗りつぶされるため、開始について言うのは困難です。



波形を分析するためのC#で記述されたユーティリティを備えており、センサーからのデータは元の気象観測所に表示され、さまざまな温度/湿度測定のパターンを探しています。



結果は、それぞれ40ビットの同一パケット内の次のデータ配列です。



画像



パケットの最後で、チェックサムは明らかに送信されますが、それを計算するアルゴリズムを推測することには問題があります。 したがって、12個の同一のパケットを3つ以上受信した場合、受信した情報は正しいと考えられます。 同一パケットの数により、信号受信の品質を評価することも可能です。パケット内の同一パケットが多いほど良いです。



デコードアルゴリズムをある程度理解した後、STM32F429I Discoveryデバッグボードに実装します。 これに続いて、信号受信品質の闘争のデバッグ期間が続きます。



画像



最後の写真と最初の写真を比較すると、すべてが判明していることがわかります。センサーから正しい温度/湿度が得られました。 かなり購入したセンサーの交換プロトコルはもはや謎ではなく、センサーは自家製の気象ステーションやスマートホームのログシステムで追加のアプリケーションを見つけることができます。



センサープロトコルをデコードするためのソースはここで入手できます 。実際、すべては出版物で説明されているよりも少し複雑です。



この作業の結果は、たとえば、外部センサーを複製せずに隣の部屋に独自の設計の気象観測所を配置するなど、標準機能を拡張したいこのセンサー/気象観測所の所有者に役立つ場合があります。 センサーは、主に密閉されたハウジングのために、繰り返しに最も時間がかかる部分であることに注意する必要があります-自分で行うよりも既製を購入する方が簡単です。



PS温度/湿度センサーはTFA Dostmannの開発であるため、プロトコルの研究は趣味の範囲に限定されており、商業的な使用を完全に排除しています。



All Articles