目次
前回までは
前回(郊外地域におけるPrivate LoRa通信によるIoT機器活用(その1))では、Private LoRa通信による2点間の疎通確認を実施し、鳥取県八頭町の田園風景が広がる地域では、見通し7キロ程度の通信が可能であることを確認しました。
今回のゴール
今回は、Private LoRaではなく、LoRaWANによる通信を行います。
移動端末(Device)で収集したデータ(室温・湿度・気圧・GPS)をLoRaWAN通信でアップロードし、クラウドサービスを利用して可視化します。
下記スライドが、とても参考になりました。
第1回 The Things Network (TTN) 勉強会@柏の葉
LoRaWANに使用する機材等
前回使用した機材ではGPS情報の取得のみでしたが、今回は室温・湿度・気圧データも取得し、クラウドへアップします。
使用部材
基地局(Gateway)
Wifiのアクセスポイントのようなもので、移動端末からのデータを受信する機材。
■Raspberry Pi 3 model B
■DRAGINO 高周波回路 開発キット LoRa/GPS_HAT
今後、8chに対応した製品が発売されるようですので、そちらを購入された方がよいかもしれません。
ラズパイとLoRaWAN その6、ようやく8チャンネル対応 LoRa GPS HAT for Rasbeery Pi – PG1301の技適がとれました!
低価格の8チャンネルGatewayも発売予定のようです。
ついに低価格8チャンネル LPS8 (LoRa Pico Station) LoRaWANゲートウェイ、技適奪取!
移動端末(Device)
■LoRa通信モジュール EASEL社LoRa通信モジュール「ES920LR」
※今回は使用していないが、ピンヘッダが付いた「 ES920LRB」の方が便利。
ES920LRにはPrivate LoRa用ファームとLoRaWAN用ファームがあり、今回はLoRaWAN版を使用します。それぞれのファームは、(株)EASELに問い合わせをすれば対応するファームを用意していただけます。ファームの書き込みはUSBシリアルモジュール等で書き込みます。自身でのファーム書き込みが困難な場合には、 (株)EASEL でもご対応いただけるとのことです。
■マイコン ESP8266 「ESPr Developer」
■みちびき対応 GPSモジュール
■BME280搭載 温湿度・気圧センサモジュール
サーバー・クラウドサービス
■TTN(The Things Network)
無料で利用できるLoRaWANサーバー。TTNに基地局(Gateway)を登録すると、Gatewayを介して届いた移動端末のデータをTTNを経由して別のクラウドサービスへ渡すことができます。移動端末の認証等もTTNの機能で行うことができます。そのため、複数のGatewayやDeviceを管理するためにはTTNのようなLoRaWANサーバーが必要になります。
TTNに登録されているGatewayは、Gateway設置者以外の人も利用可能です。
■Cayenne(カイエン)
収集したデータを可視化するクラウドサービス(今のところ無料)
TTNの設定
今回はDeviceの認証に「ABP(Activation by Personalization)」を利用します。できればOATT(Over The Air Activation)を利用する方がよいと思うのですが、今回は認証できなかったため、ABPを利用しました。
TTNのABP設定については、下記ページが参考になります。
LoRa IoTスターターキットをThe Things Networkで試す パート3:TTNでデータを見てみよう
基地局(Gateway)の設定
Getawayの設定は「エレキジャックIoT No.1(CQ出版社)」の「2万円台で始めるLoRaWANゲートウェイ」を参照しました。とてもわかりやすいです。
ネットを検索すると、dual_chan_pkt_fwd.cppとglobal_conf.json の2ファイルを修正する手順がありますが、上記手順ではglobal_conf.jsonのみの修正で対応できました。dual_chan_pkt_fwd.cppはダウンロードした時点で修正済みなのかもしれません。
<トラブルシューティング>
今回、Gateway関連で躓いたのは、ちょうどGatewayの設定をしているときに、TTNのサーバー側で障害が発生していたらしく、TTNに登録したGatewayのTrafficではデータ受信が確認できるが、ApplicationのDataではデータ受信できないという状況でした。
障害が発生していたサーバーは、「router.jp.things.network」だったようで、一時的にGatewayの global_conf.json とTTN-Console-Gateway-Settings-Routerの設定を「router.as2.thethings.network」に変更することで解決できました。
同様の内容が下記リンク先にも記載されています。
Gatewayも接続済みで、デバイスからのパケットもゲートウェイで受信しているのに,アプリケーションから見えない
移動端末(Device)の設定
LoRa通信モジュール「ES920LR」 の設定
モジュール関連ドキュメントは下記ページにまとめられています。
https://easel5.com/documents/
今回、主に参照するドキュメントは「LoRaWANソフトウェア説明書」です。
ファームの書き換えについては、「ソフトウェア開発環境説明書」に記載されています。
参考までにモジュール設定情報を記載します。
configuration setting is below Class : Class A ADR : OFF Activate : Activation by Personalization DevEUI : 0000000000000000 AppEUI : 0000000000000000 AppKey : 00000000000000000000000000000000 DevAddr : (TTNのDevice Address) NwkSKey : (TTNのNetwork Session Key) AppSKey : (TTNのApp Session Key) Acknowledge : OFF Retry count : 0 RSSI information : OFF Config/Operation : Configuration UART baudrate : 115200 Sleep Mode : No Sleep Sleep Time : 50 Default Data rate : DR2 Output Power : 13dBm UplinkDwellTime : No Limit Duty Cycle : < 1% Format : BINARY
マイコン ESP8266 「ESPr Developer」の設定
BME280搭載 温湿度・気圧センサモジュール関連
みちびき対応 GPSモジュール関連
可視化サービスCayenne(カイエン)関連
今回は、最終的にCayenneにてデータを表示します。そのため、DeviceからCayenneに対応したフォーマットでデータを送信する必要があります。LoRaWANでは1回に送信可能なデータサイズが限られるため、そのフォーマットも検討する必要がありますが、 Cayenneに対応したライブラリを利用すると簡単にフォーマットを整えることが可能です。
Cayenne LPP
CayenneLPP( Cayenne Low Power Payload) について調べてみた
TTNとCayenneの連携
連携手順については、「 第1回 The Things Network (TTN) 勉強会@柏の葉 」にも記載されています。
TTNのドキュメントの手順では、うまく接続できませんでした。
また、Cayenneにはスマートフォン用のアプリも用意されているのですが、なぜかGPSの位置情報は違う場所が表示されていました。PCのブラウザからは正しい位置情報が表示されています。
次回以降は
■TTN × IFTTT × LINE・Slack 通知
■TTNとMS Azure連携
■Raspberry PiでつくるLoRa+BLEのワイヤレス中継機