LoginSignup
0
0

More than 3 years have passed since last update.

LPWAをMQTT-SNで使用してみた (0)

Last updated at Posted at 2020-07-15

はじめに

話題は先行しているもののLPWAは使いにくいと感じていた。 wifiのように自由にテストできる環境がないことがその理由だ。 誰でも無料で使える周波数だから試してみようと思ってもSigfoxやLoRaWANの事業者のサービスを使う必要がある。 sigfoxは各国で一社だけがサービス提供できる独占体系だし、全国でサービス提供されていても自分にとって使いたいのは数キロメートルだけで十分なのだ。この課題を解決するためにMQTT-SNにLPWAを追加して。 上手く通信できることが確認できたので記事を書いてみた。
LoRaMQTT-SN_log.png

LoRaを使ったMQTT-SNゲートウェイ

ゲートウェイには全二重通信が必要だがLoRaは半二重通信なので上りCHと下りCHを分けてそれぞれにLoRaデバイスを用意することにした。 
LoRa物理層上にのせるネットワーク層用としてLoRaLinkと名付けたプロトコルを作った。 このプロトコルはZigBeeと同様にPanIDとデバイスアドレスでデバイスを識別する。PanID毎に暗号化キーを共有することでデータを保護している。 データ改ざん防止用としてLoRaWAN同様のMICを採用している。 また、PanID毎にLoRaのsyncwordを変えることで他のPanの通信を受信しないようにした。 
LoRaLinkMQTT-SN.png 

使用したデバイス

デバイスは村田製作所のCMWX1ZZABZをゲートウェイの送受信とクライアント用に使用している。 このデバイスはSTM32L082 mcuとSEMTECHのSX1276を使用したもので技適が取得されている。 
このデバイスの開発ボードがSTマイクロから販売されている。(型式 B-L072Z-LRWAN1) 
今回はこのボートの他に、同じデバイスを使って省スペースで省電力になるように設計したモジュールLoRaEzでも試した。
LoRaEz.png

開発したソフトウェア

1. ゲートウェイ
MQTT-SNゲートウェイはpahoのゲートウェイを使用。 pahoのMQTT-SN用のgithubにexperimentブランチを作ってLoRaLink用のセンサーネットワーククラスを追加したゲートウェイを用意した。 https://github.com/eclipse/paho.mqtt-sn.embedded-c/tree/experiment
2. クライアントデバイス
一般的なLPWAのデバイスは通信と制御用にMCUを2つ使用するが、クライアントデバイス用のファームウェアにはクライアント用のアプリケーションフレームワークも組み込まれている。CMWX1ZZABZだけでコスト的にも省電力的にも優れたセンサーデバイスを作ることが出来る。
ゲートウェイとクライアントデバイスのファームウェア用のSDKもgithubで公開している。
https://github.com/ty4tw/LoRaMQTT-SN

今後ファームウェアの使い方などについて記事を追加していく予定です。

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