0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SeedStudioのLoRaWANデバイス(Wio-E5 STM32WLE5JC)を試してみる

Posted at

概要

  • SeedStudioのLoRaチップを搭載デバイスである STM32WLE5JCを試してみる
    • というか実際にはSTMのLoRaチップおよびMCUが統合されたもの
    • SeedStudio自体はそれをUSB経由で便利に扱えるように統合しただけ
    • 非常に調達しやすいのでよく市場で使われるやつの1つだと思う
  • ひとまずLoRaWANネットワークへのジョインおよび任意のデータ送信までやる

前提

  • 既にほんの少しはLoRaWANについて知ってる人向けに書くので、専門用語的な説明は割愛する

参照情報

ざっくり使いそうなコマンドたちを羅列

IDとかの表示やKEYなどの設定

  • AT+ID を投げるだけ, これで少なくとも工場出荷時設定が表示される
  • もし任意の値に変更してるなら当然それが表示される
AT+ID
  • もしLNS側での登録が必要ならここで取得した値をメモっておいて設定する感じになる
    • もちろん AT+ID=DEVEUI,FF:FF:FF:FF:FF:FF:FF:FF みたいな感じで任意の値に変更することも可能
AT+ID

+ID: DevAddr, FF:FF:FF:FF
+ID: DevEui, FF:FF:FF:FF:FF:FF:FF:FF
+ID: AppEui, FF:FF:FF:FF:FF:FF:FF:FF
  • APP+KEY=APPKEY で任意の値に設定
  • こちらは取得系は存在しない
AT+KEY=APPKEY,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  • GETしようとしてもだめ
AT+KEY=APPKEY

+KEY: ERROR(-1)

ジョインモードの取得あるいは変更

  • もう今ではOTAAでの運用が主だと思うのでそちらに明示的に変えておいたほうがいい
    • というよりLNS側の設定 (TTNやAWS)に合わせればOK
    • 工場出荷時設定に戻してしまうとここが ABPになってたりするのでジョインがコケる可能性アリ
AT+MODE

+MODE: LWABP

  • ABP → OTAAへの変更
AT+MODE=LWOTAA

+MODE: LWOTAA

LoRaWANネットワークへのジョイン

AT+JOIN

+JOIN: Start
+JOIN: NORMAL
+JOIN: Network joined
+JOIN: NetID 000000 DevAddr FF:FF:FF:FF
+JOIN: Done
  • KEYが違うとか、JOINモードが違うときは以下のようにエラーになる
AT+JOIN

+JOIN: Not in OTAA mode

ADRの変更

  • 現代だとまぁまずオンで良いと思う
AT+ADR=ON

クラスの変更

  • デフォはAだがBやCに返ることももちろん可能
AT+CLASS=C

DR設定

  • デフォでは大丈夫だと思うが工場出荷時設定に強制リセットかけると吹っ飛ぶのでDR設定はしておいたほうがいい
    • 後述のFDEFAULTコマンドで工場出荷時にリセットするとEU向けになってるので確定で失敗する (そもそもそれで電波吹いたら違法)
AT+DR=AS923

工場出荷時にリセット

  • AT+FDEFAULT を投げればOK
  • 工場出荷時に... というか、なんというかデバイスとしてのデフォ値に戻るような感じ
  • そのため、気軽にこのコマンド投げるとアジア向けのリージョン設定とかも飛ぶので注意

データ送信

  • JOINさえできたら、AT+MSG で任意データをぶん投げられる
AT+MSG=Hello

+MSG: Start
+MSG: FPENDING
+MSG: RXWIN1, RSSI -37, SNR 6.0
+MSG: Done

参考: AWS IoT側でのアップリンク通信の確認

AT+MSGでぶん投げたとき本当にLNSまで届いているかな?と不安になると思う。
まぁすんなり通れば、そもそもLNS側で簡単に確認可能だろうが、色々やってる最中だと本当にうまくいってるかどうかすらわからず調査したくなる。

AWS IoTの場合は、LoRaWANデバイスを作るときに 送信先 としてMQTTトピックを指定しておけばダウンリンクなどの通信たちはLoRaWANネットワークを抜けAWS IoTのMQTT空間に貫通してくるので簡単に確認が可能になる。

貼り付けた画像_2025_12_09_1_02.jpg

こうやって何らかのMQTTトピックに流れるようにしておけば、さらにそこからMQTTテストクライアントでサブスクライブして見てみるとか、CloudWatch Logsで見てみるとか、Lambdaで捕まえてなにか処理してみる...とかがすごい簡単にできるようになる。

例えばこんな感じで流れる。単純にペイロードだけが流れるわけではなくメタデータも一緒についてくるのですごく便利。

{
  "MessageId": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
  "WirelessDeviceId": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
  "PayloadData": "SGVsbG8=",
  "WirelessMetadata": {
    "LoRaWAN": {
      "ADR": true,
      "Bandwidth": 125,
      "ClassB": false,
      "CodeRate": "4/5",
      "DataRate": "2",
      "DevAddr": "FFFFFFFF",
      "DevEui": "FFFFFFFFFFFFFFFF",
      "FCnt": 0,
      "FOptLen": 0,
      "FPort": 8,
      "Frequency": "922600000",
      "Gateways": [
        {
          "GatewayEui": "FFFFFFFFFFFFFFFF",
          "Rssi": -33,
          "Snr": 13.25
        }
      ],
      "MIC": "24fb8898",
      "MType": "UnconfirmedDataUp",
      "Major": "LoRaWANR1",
      "Modulation": "LORA",
      "PolarizationInversion": false,
      "SpreadingFactor": 10,
      "Timestamp": "2025-12-08T09:45:36Z"
    }
  }
}

備考

  • ここでは言及してないが RETRY設定 などもあるので、実運用ではそのへんも要調整
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?