4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5StackでLoRaWAN

Last updated at Posted at 2023-12-02

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

はじめに

以前の記事でLoRaWANゲートウェイを設置し、LoRaWANへの接続方法を検証しました。

  • LoRaWANを試す - ゲートウェイ編
  • LoRaWANを試す - デバイス編

いよいよ本題(?)、M5StackでLoRaWANに接続してみます。

準備

今回はこのGroveユニットを使ってLoRaWANに接続します。商品ページの写真は古いですが、現在は技適マークもついていて国内で安心して利用することができます。このGroveユニットをM5Stackとシリアル接続します。M5Stackについている赤いGrove端子はI2Cでの利用が推奨されていますが、シリアルでも利用することができます。

image.png

AWS IoTのデバイス登録

LoRaWANを試す - デバイス編 同様、ABPで接続します。

  • DevEUIはプログラムを実行すると取得して表示します。
  • NwkSKey、AppSKeyは固定で設定しています。下記のATコマンド仕様によると、デフォルトは「2B7E151628AED2A6ABF7158809CF4F3C」とのこと(34/58ページ)

プログラム

ソースは こちら です。

M5Stackには標準でLoRaWAN用のライブラリーLoRaWanが含まれていますが、今回は標準のライブラリーに含まれていないRTCの操作、温度の取得などのATコマンドを実行したいので、こちらの andresoliva/LoRa-E5 ライブラリーを利用します。

AS923が指定できなかったり、使ってみるとデフォルトのタイムアウトでは短かったり、するので少し調整しています。

工夫した点としては、後述しますが、Groveユニットのフレームカウンター(ATコマンド仕様書ではUplink Counterと記載)がリセットされると0にリセットされるので、M5StackのPreferenceに最終のフレームカウンターを保存して、起動時に読み込むようにしています。

また、起動直後にWiFimanagerを利用してWiFi接続し、ntpでM5Stackのrtcを時刻同期した後、Grove-Wio-E5のRTCに時刻を書き込んで時刻合わせするようにしています。

1分間隔でバイナリーデータを送信するのと、BtnAを押すと温度を取得して送信します。

実行

1分間隔で、Wio-E5チップないの温度センサーの温度を取得して送信します。

AWS IoTのMQTTテストクライアントを利用してトピックをサブスクライブすると、次のように表示されます。PayLoadDataに送信された情報はBase64エンコードされているので、WebなどでBase64デコードすると、送信したJSON文字列が確認できます。

image.png

image.png

気づいた点

シリアル接続して、ATコマンドで操作できるので、非常に簡単に接続することができます。まだ、あまり使い込んでないですが、以下の点に気づいているので、今後確認していこうと思います。

  • データが重複しないようにフレームカウンターがカウントアップされている。AWS IoTでは古いフレームカウンターを受信しない模様。Groveユニットがリセットされると0にリセットされるので、M5StackのPreferenceに最終のフレームカウンターを保存して、起動時に読み込むようにしている。AWS IoTのフレームカウンターの扱いがカスタマイズ可能か?
  • データの送信に7秒程度かかっているが、通常なのか? それとも自分の環境が遅いのか?
  • ゲートウェイをしばらく停止した後、クライアントからの送信をAWS IoTの受信が再開しないことがある。フレームカウンター絡み?
  • ゲートウェイを停止している際、Grove-Wio-E5の戻り値が送信失敗する場合と、見かけ上送信できているように見えるケースがある。
  • まだ、OTAA接続できていない

最後に

どこまで離れても通信できるのか!?が気になるところですが、まだ時間が取れず試していません。。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?