郊外地域におけるLoRa通信によるIoT機器活用(その2)
1. 前回までは
前回(
)では、Private LoRa通信による2点間の疎通確認を実施し、鳥取県八頭町の田園風景が広がる地域では、見通し7キロ程度の通信が可能であることを確認しました。2. 今回のゴール
今回は、Private LoRaではなく、LoRaWANによる通信を行います。
移動端末(Device)で収集したデータ(室温・湿度・気圧・GPS)をLoRaWAN通信でアップロードし、クラウドサービスを利用して可視化します。
下記スライドが、とても参考になりました。
第1回 The Things Network (TTN) 勉強会@柏の葉
3. LoRaWANに使用する機材等
前回使用した機材ではGPS情報の取得のみでしたが、今回は室温・湿度・気圧データも取得し、クラウドへアップします。
3.1. 使用部材
3.1.1. 基地局(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ゲートウェイ、技適奪取!
3.1.2. 移動端末(Device)
■LoRa通信モジュール EASEL社LoRa通信モジュール「ES920LR」
※今回は使用していないが、ピンヘッダが付いた「 ES920LRB」の方が便利。
ES920LRにはPrivate LoRa用ファームとLoRaWAN用ファームがあり、今回はLoRaWAN版を使用します。それぞれのファームは、(株)EASELに問い合わせをすれば対応するファームを用意していただけます。ファームの書き込みはUSBシリアルモジュール等で書き込みます。自身でのファーム書き込みが困難な場合には、 (株)EASEL でもご対応いただけるとのことです。
■マイコン ESP8266 「ESPr Developer」
■みちびき対応 GPSモジュール
■BME280搭載 温湿度・気圧センサモジュール
3.2. サーバー・クラウドサービス
■TTN(The Things Network)
無料で利用できるLoRaWANサーバー。TTNに基地局(Gateway)を登録すると、Gatewayを介して届いた移動端末のデータをTTNを経由して別のクラウドサービスへ渡すことができます。移動端末の認証等もTTNの機能で行うことができます。そのため、複数のGatewayやDeviceを管理するためにはTTNのようなLoRaWANサーバーが必要になります。
TTNに登録されているGatewayは、Gateway設置者以外の人も利用可能です。
■Cayenne(カイエン)
収集したデータを可視化するクラウドサービス(今のところ無料)
4. TTNの設定
今回はDeviceの認証に「ABP(Activation by Personalization)」を利用します。できればOATT(Over The Air Activation)を利用する方がよいと思うのですが、今回は認証できなかったため、ABPを利用しました。
TTNのABP設定については、下記ページが参考になります。
LoRa IoTスターターキットをThe Things Networkで試す パート3:TTNでデータを見てみよう
5. 基地局(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はダウンロードした時点で修正済みなのかもしれません。
5.1.1. <トラブルシューティング>
今回、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も接続済みで、デバイスからのパケットもゲートウェイで受信しているのに,アプリケーションから見えない
6. 移動端末(Device)の設定
6.1. 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
6.2. マイコン ESP8266 「ESPr Developer」の設定
6.2.1. BME280搭載 温湿度・気圧センサモジュール関連
6.2.2. みちびき対応 GPSモジュール関連
6.2.3. 可視化サービスCayenne(カイエン)関連
今回は、最終的にCayenneにてデータを表示します。そのため、DeviceからCayenneに対応したフォーマットでデータを送信する必要があります。LoRaWANでは1回に送信可能なデータサイズが限られるため、そのフォーマットも検討する必要がありますが、 Cayenneに対応したライブラリを利用すると簡単にフォーマットを整えることが可能です。
Cayenne LPP
CayenneLPP( Cayenne Low Power Payload) について調べてみた
7. TTNとCayenneの連携
連携手順については、「 第1回 The Things Network (TTN) 勉強会@柏の葉 」にも記載されています。
TTNのドキュメントの手順では、うまく接続できませんでした。
また、Cayenneにはスマートフォン用のアプリも用意されているのですが、なぜかGPSの位置情報は違う場所が表示されていました。PCのブラウザからは正しい位置情報が表示されています。
8. 次回以降は
■TTN × IFTTT × LINE・Slack 通知
■TTNとMS Azure連携
■Raspberry PiでつくるLoRa+BLEのワイヤレス中継機
9. 国内でのLoRaWAN活用事例
第3回 The Things Network(TTN)勉強会 @柏の葉説明資料 TTNの概要とTTN Japanの紹介 from CRI Japan, Inc.




