コンテンツにスキップ
ショップ

STM32 LoRa メッセージ通信

いつものAIに相談

Gemini・その他のAI

このページの情報を添えて、仕組みや使い方、つくりたいものを相談できます。

Geminiを開く

質問文をコピーして、Geminiの入力欄に貼り付けてください。

質問文を確認

このチュートリアルでは、メッセージを、LoRa Mary で通信をする方法を紹介します。

対象は AP03 STM32 MCUとAC07 LoRa Maryを組み合わせた送信機・受信機の2台です。送信と受信で別のソースを使います。開発ツールはArduino IDEまたはPlatformIOを選び、先に書き込み環境を整えてください。

ライブラリはLeafonyのarduino-LoRaとarduino-tca9536を使います。同名の別実装に置き換えず、選んだソースの依存関係を揃えます。取得や書き込みの基本はサンプルの動かし方も参照してください。

  • AC07 LoRa Mary
  • AP03 STM32 MCU
  • AV04 2V~4.5V
  • AZ67 AAA battery holder
  • AZ63 Nut Plate
  • M2X12mmネジ 2本
  • 単4電池 3本

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

同じ開発ツールの送信側・受信側を揃えて取得します。Arduino IDEではスケッチのフォルダ全体を、PlatformIOではplatformio.iniとsrcを含むプロジェクト全体を開きます。配布リンクはmasterまたはmainを指すため、取得する時期によって内容が更新されることがあります。

  1. 送受信側のソースを確認し、周波数、拡散率、信号帯域幅などの通信設定を一致させます。設定名や値は取得したソースで確認してください。
  2. それぞれのAP03へ送信用・受信用のプログラムを書き込みます。PlatformIOのupload_portやupload_commandに古いPC環境の指定が残っている場合は、現在の書き込み設定手順に合わせます。
  3. 書き込み後は各AP03をRun側へ切り替え、リセットします。受信側のシリアルモニタを115200bpsで開きます。
  4. 受信側にhello、送信回数、受信強度(RSSI、単位dBm)が繰り返し表示されることを確認します。下記の-37は表示例で、距離や設置条件によって変わります。
Received: hello 0, RSSI: -37

送信側のログだけでは、受信できたことは確認できません。受信側の回数が更新されていることまで確認します。

症状確認すること
LoRa.hやTCA9536.hが見つからない選んだ開発ツールに必要なライブラリが導入されているか確認する
ビルドは通るが書き込めないAP03の書き込みモード、USBポート、PlatformIOの書き込みコマンドを確認する
LoRaやIOエキスパンダーの初期化で停止する電源を切ってAC07とAP03の接続を確認し、取得したソースの対象構成と照合する
送信しているが受信表示がない2台ともRun側で起動したか、通信設定が一致しているか、受信側のポートと115200bps設定が正しいか確認する

アンテナ部分をUSBケーブルや金属で覆わないように配置します。接続の基本はAC07の技術資料とよくある質問を参照してください。