これは、上昇するHFロラワンラジオモデムを使用し、センサーをTTNのようなロラワンネットワークに接続するための基本的なArduinoフレームワークです。
不揮発性メモリには、アドレス0x50にあるI2Cフラムデバイスを使用します。このデバイスは、省略したり、EEPROMに置き換えて、わずかな変更で置き換えます。
DeveUIは、Radio-Modemからのもの、またはアドレス0x52のI2C 24AA025E64チップを介して、またはconfig.hファイルで設定できます。各モデムには、上部にQRコードがあり、そのdeveuiがあります。
このコードベースは、米国TTN周波数帯域で開発およびテストされましたが、他のバンドに変更できます。
テスト:RHF0M062-HF22およびRHF0M0E5-HF22ですが、RHF78-052LA-HF22およびHFの上昇からの他の誘導体モジュールでも動作するはずです。
http://www.risinghf.com/home
このテストコードには3つの送信ルーチンがあります。
エラーメッセージには短いステータスが使用され、9バイトに制限され、起動時とエラーが発生したときにのみ送信されます...(DR0-> 11バイト-2可能なMACバイト)
ステータスは、デバイス情報...バージョン、コンパイル時間などとはまれに送信されます...
センサーデータが送信され、デフォルトの場合は1時間ごとに...
また、定期的な再生をサポートしています。 TTNでV2からV3に移動した後、ネットワークまたはTTNの将来の動きや変更をサポートするために、デバイスが随時再結合する必要があることが明らかになりました。
このコードベースでは、いくつかのダウンロードメッセージを処理することもできます。
起動時には、コードはフラムに保存されているデータブロック(利用可能な場合)を読み取り、コンパイル時刻フィールドとCRCをFRAMに保存するものと比較して、最初のブーツがあるかどうかを確認します。その場合、FRAMのデータブロックのコピーを将来使用するために保存します。そうでない場合は、ブートカウントを調整し、ブートの原因を保存します。
USBポートはブートで電源を節約するためにオフになります。これには、ブートローダーに戻るためにリセットスイッチのダブルタップが必要です。
lorawanキー、頻度テーブル、送信機能のタイミングなどを含むconfig.hファイルに設定できる多くの構成オプションがあります...
Radio-Modemには、セットアップの後に保存されたパラメーターのほとんどを保持するEEPROMがあります... config.hには、再度リセットする必要がない場合はモデムの再セットパラメーターを無効にする定義があります。
DEBUG1およびDEBUG2マクロを無効にして、すべてのデバッグ出力をシリアルポートに削除することができます。これにより、Arduino Serial.print(...)関数の代わりに、コードでより一般的な「C」printf(...)関数を使用できます。
このコードは、独自のハードウェアとRockettream Mini-Ultra-Pro-Loraボードでテストされました。
TBD:
Adding some logging to flash
look at over-the-air code upgrade...
Add support for EEProm option to replace FRAM
An option to get DEVEUI from the modem and or UUID from the CPU
Add more commands to support Class B in the modem library
Documentation of modem library
Add AT command to set various parameters from the serial port
Libraries used by this project:
LoRaWan-RFH0M062-mod
This radio-modem library was developed by SEEED studios for the RHF78-052 device, I have
made many changes to support the newer radios, added an error function, and speed up timing
on messages to/from the radio.
Stopwatch
RTCZero-MOD
FRAM_MB85RC_I2C
Arduino_CRC32