このリポジトリには、デバイスを868MHzロラワンテクノロジーに変換するTFA 30.3161レインゲージの代替回路基板で実行されるファームウェア(詳細については、ページの下部のリンクを参照)が含まれています。
測定データは、デバイスの範囲のロラワンゲートウェイに送信されます(都市部であっても、1 kmは問題なくカバーできます)。
thesingsnetwork v3とchirpstack v4でテストされたJavaScriptペイロードデコーダーが提供されています。

組み立てられたロラレインゲージボードに加えて、次のツールが必要です。
メイン回路基板のプロセッサは、Arduino互換のAtmel Atmega328pです。したがって、このプロジェクトは、LORAに人気のあるMCCI Arduino LMICライブラリを利用しています。編集と展開を簡単にするために、プラットフォームツールチェーンが使用されます。
ロラワンの実装は、OTAAとABPをサポートしています。セッションデータ(セッションキー、フレームカウンターなど)と降雨カウンター値は、SPIフラムチップに随時保存されます。これは、ネットワークに参加した直後に行われ、3分の3のデータパケットが送信された後も行われます。フラッシュメモリよりもフラムの利点は、はるかに多くの書き込みサイクルの数ですが、少し制限することをお勧めします。
起動後、デバイスは最初にスリープモードになります。定義された時間間隔の後、またはボタンが押されたとき(1分に1回可能)目覚めます。有効なセッションがない場合は、最初に参加しようとします。データパケットが送信されると、マイクロコントローラーは深い睡眠に戻り、消費電力はわずか14µAに低下します。ディープスリープモードのタイミングは、ウォッチドッグタイマーを使用して毎秒電源モードからマイクロコントローラーを目覚めさせ、次の伝送までの期間を含むカウンター変数を減少させます。
チップバケットレインゲージによって生成されるパルスは、ポート変更割り込みによってキャプチャされます。これは、マイクロコントローラー周辺機器(タイマー/カウンターを含む)のほとんどのコンポーネントが深い睡眠モードのために非アクティブであるためです。割り込みは、雨のカウンターを増やすために、短期間コントローラーを目覚めさせます。その後、次の深い睡眠サイクルで続きます。
BMP280センサーが接続されている場合、温度と気圧データも送信に含まれています。
睡眠間隔と雨のカウンターは、ダウンリンクメッセージで更新できます。間隔にFport 1を使用し、カウンター値にFport 2を使用します。どちらも、署名されていない16ビット整数(MSB First)として送信されます。
このファームウェアは、Platformioビルドシステムを使用して、すべてのツールチェーンと依存関係に関連するものを自動的に処理します。 Platformio.orgのガイドをフォローして、Platformio Core(コンソール操作用)またはVS Code&Platformio(IDE)をインストールしてください。次に、このリポジトリをクローンし、正しいディレクトリに変更します。
USBASPをボード上の6ピンISPコネクタに接続するだけです。 RFM95Wが5V許容範囲ではないため、プログラマーが3.3V電圧に設定されていることを確認してください!その後、 pio run -t bootloader -e m328p_isp (またはATMEGA328PBの-e m328pb_isp )を実行して、ブートローダーとヒューズをプログラムします。その後、デバイスはシリアル接続を介して簡単にプログラムできます。
ファイルsrc/config.h.exampleをsrc/config.hにコピーします。次に、use_otaaまたはuse_abpのいずれかで、lorawanサーバーに新しいデバイスを作成し、そこに記載されているようにconfig.hの初期セッションデータを入力します。必要なペイロードデコーダーは、docs/payload-decoder.jsで見つけることができます。
すべてが構成されたら、USBシリアルアダプターを適切なピンヘッダーに接続します。次に、 pio run -t upload (ATMEGA328PBに-e m328pbを追加)を実行して、ファームウェアをプログラムします。
コマンドpio device monitorを使用して、ログメッセージのシリアルコンソールを確認することをお勧めします。ネットワークは、パワーアップの直後に結合されます。測定値は15分ごとに送信されます。
ロラワンのアクティベーションが完了すると、セッションデータはフラムに保存され、ブートで回収されます。構成の変更を検出し、現在のセッションを無効にして、デバイスを再アクティブ化するためにconfig.hのハッシュ値が含まれています。バッテリーを挿入しながら、バッテリーコンパートメントのボタンを数秒間押さえて、再活性化することもできます。
パケットが送信されている場合、回路基板のLEDが点灯します。 OTAAの活性化が失敗した場合、点滅します。
https://www.maltepoeggel.de/?site=lora-raingoge
このファームウェアは、MITライセンスの条件でリリースされます。詳細については、ライセンスファイルを参照してください。