LoginSignup
3
1

M5StackをLoRaのルーターにしてみる

Last updated at Posted at 2023-12-19

この記事は、2023年の M5Stack アドベントカレンダー の 17日目の記事です。

はじめに

前回は、SenseCAP T1000 が送っているデータを M5Stack で覗いてみました。今回は、受信したデータを LoRa のゲートウェイのように AWS IoT Core for Wireless に転送してみます。

image.png

処理概要

デバイスは Grove-Wio-E5 を使用します。このデバイスでは周波数を指定して1つのチャンネルを受信することができます。LoRaWAN の仕様では、ゲートウェイは2つのチャンネルでデバイスから送られる電波を待機するようになっており、SenseCAP T1000 はゲートウェイ向けに2つのチャンネルでランダムに(実際にはチャンネルの空きを判断しながら)送信します。今回はそのうちの片方を決め打ちで受信するようにします。

受信したデータは LoRaWAN の仕様で暗号化されています。LoRaWAN のゲートウェイでは、通常暗号化されたペイロードはそのままサーバーに転送します。今回のプログラムでは受信確認のため、前回同様 util-lorawan-packets を使って復号化してログを表示しています。

AWS IoT Core for Wireless は、LoRa の BasicStation と互換性のあるデータを送受信します。認証はサーバー認証、クライアント認証の両方を使用し、ヘッダーに余計なヘッダーが指定されていると認証が切断されます。WebSocket 通信は Links2004/arduinoWebSockets を使用しましたが、上記対応を行うため一部修正しています。

ソースコード

ソースコードは こちら をご覧ください。

以下の値を設定します。

  • WiFi SSID/パスワード
  • 利用するデバイス(SenseCAP T1000など)のアドレス
  • キー(nwkSKey/appSKey)
  • ルーター(本機)のアドレス
  • AWS IoT Core for Wirelessのエンドポイント
  • AWS IoT Core for Wirelessの証明書3つ(サーバー、クライアント)

実行例

M5Stack から送信された情報を AWS IoT Core for Wireless で受信することができました。

image.png

さいごに

広いエリアをカバーするゲートウェイとしては使えないものの、M5Stack がゲートウェイの動作の検証用に活用できました。

電波は国民の財産ですが、ほぼすべての帯域は既得権者が保有していて、アマチュアが遠距離通信できる帯域は限られています。デジタル化も進んでいて気軽に触れられなくなってしまっています。かつて同じ周波数帯にパーソナル無線という通信がありましたが、今回同じ周波数帯ということで懐かしさも感じました。

3
1
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
3
1