このチュートリアルでは、メッセージを、LoRa Mary で通信をする方法を紹介します。
対象は AP03 STM32 MCUとAC07 LoRa Maryを組み合わせた送信機・受信機の2台です。送信と受信で別のソースを使います。開発ツールはArduino IDEまたはPlatformIOを選び、先に書き込み環境を整えてください。
ライブラリはLeafonyのarduino-LoRaとarduino-tca9536を使います。同名の別実装に置き換えず、選んだソースの依存関係を揃えます。取得や書き込みの基本はサンプルの動かし方も参照してください。
用意するもの
Section titled “用意するもの”送信側のリーフの構成
Section titled “送信側のリーフの構成”- AC07 LoRa Mary
- AP03 STM32 MCU
- AV04 2V~4.5V
- AZ67 AAA battery holder
- AZ63 Nut Plate
- M2X12mmネジ 2本
- 単4電池 3本
受信側のリーフの構成
Section titled “受信側のリーフの構成”LoRa Maryのアンテナ部分が、USBケーブルで覆われないようにするため、Back to backを使用します。
- AC07 LoRa Mary
- AP03 STM32
- AZ01 USB
- AX07 Back to back
- AZ63 Nut Plate 2P
- M2X8mmネジ 2本
- M2X10mmネジ 2本
- USBケーブル
- PC
ソースコード
Section titled “ソースコード”同じ開発ツールの送信側・受信側を揃えて取得します。Arduino IDEではスケッチのフォルダ全体を、PlatformIOではplatformio.iniとsrcを含むプロジェクト全体を開きます。配布リンクはmasterまたはmainを指すため、取得する時期によって内容が更新されることがあります。
- 送受信側のソースを確認し、周波数、拡散率、信号帯域幅などの通信設定を一致させます。設定名や値は取得したソースで確認してください。
- それぞれのAP03へ送信用・受信用のプログラムを書き込みます。PlatformIOの
upload_portやupload_commandに古いPC環境の指定が残っている場合は、現在の書き込み設定手順に合わせます。 - 書き込み後は各AP03をRun側へ切り替え、リセットします。受信側のシリアルモニタを115200bpsで開きます。
- 受信側に
hello、送信回数、受信強度(RSSI、単位dBm)が繰り返し表示されることを確認します。下記の-37は表示例で、距離や設置条件によって変わります。
Received: hello 0, RSSI: -37送信側のログだけでは、受信できたことは確認できません。受信側の回数が更新されていることまで確認します。
うまく動かないとき
Section titled “うまく動かないとき”| 症状 | 確認すること |
|---|---|
LoRa.hやTCA9536.hが見つからない | 選んだ開発ツールに必要なライブラリが導入されているか確認する |
| ビルドは通るが書き込めない | AP03の書き込みモード、USBポート、PlatformIOの書き込みコマンドを確認する |
| LoRaやIOエキスパンダーの初期化で停止する | 電源を切ってAC07とAP03の接続を確認し、取得したソースの対象構成と照合する |
| 送信しているが受信表示がない | 2台ともRun側で起動したか、通信設定が一致しているか、受信側のポートと115200bps設定が正しいか確認する |
アンテナ部分をUSBケーブルや金属で覆わないように配置します。接続の基本はAC07の技術資料とよくある質問を参照してください。