LoRa 開発シールドのデータを enebular で受け取る

By |5月 9, 2017|未分類, |


花粉がまだ名残惜しく思っているようで、鼻がまだむずむずしています。
ぽかぽか陽気が続いていますが、みなさんいかがお過ごしでしょうか。
デバプラ部のはらだです。先日ジャパリカフェにいきました٩( ‘ω’ )و

LoRa開発シールドが届いたよ!

LoRa開発シールドが届いたよ!

先日LoRa開発シールドが SORACOM さんより届きました!💪
早速疎通確認をしてみたので、手順など記載していきます。

    目次

  1. GateWayを設置する
  2. Soracom Harvestでデータの送信を確認する
  3. enebularでデータを受け取ってみる

GateWayを設置する

共用GWあけたところ

開封の儀

あけまして。
内容物は、GW本体とアンテナ2本、アダプタとSIM入りのUSBドングル。
GWの設定はとくになしで、配線繋げるだけでおっけーでした👌

大きさ比較

100円玉と大きさ比較

LoRa Space とにらめっこして、 LoRa Space をより拡充できそうな方角へ設置しました。 SORACOM さんと cloudpack さんがウフルから見て北東にあるので、逆の南西方面の窓際です。
以前のPoCキットでの知見があるので、なるべく高めに。

Soracom Harvestでデータの送信を確認する

詳しくは SORACOM さんの LoRaWAN デバイス設定ガイド へどうぞ。画像付きで詳しく書かれております。
まず、受け取ったときに入っていた箱の側面及び、kiwi と書いてあるモジュールのバーコードの下部にdevEUIが記載されているので、検証する個体のdevEUIを確認しましょう👀

SORACOM ユーザーコンソール にログインし、メニューからLoRa デバイス管理の画面へ遷移します。
先ほど確認したdevEUIのものがわかりやすいように名前を付けましょう。

LoRa デバイス管理 画面

LoRa デバイス管理 画面

確認するデバイスにグループを割り当て、上記リンクの手順に従って設定を進めます。
私は こちら で提供されている AL-050 ユーザーズガイド を見ながら行いました。

AL-050 と PC を直接繋ぎ、シリアルモニタを開きます。

[code lang=”text”]
> lorawan join abp
>> Ok
>> accepted
[/code]

まずは LoRaWAN のネットワークに join します。
暗号/認証キーをネットワーク上で交換するOTAAまたは製造時に暗号/認証Keyを固定するABPの2つから Activation mode を選択することができます。詳しくは SORACOM さんの LoRaWANの仕様とネットワークアーキテクチャー に記載されています。
ネットワークを切り替える際はOTAAが有効だと思いますが、SORACOM Air を使うので基本 ABP でいいんですかね。

[code lang=”text”]
> lorawan set_dr 5
>> Ok
[/code]

次にデータレートを設定します。0~6の値でそれぞれMax.Payload Sizeが決まっています。
詳しくはユーザーズガイドに。

[code lang=”text”]
> lorawan tx ucnf 15 1111
>> Ok
>> tx Ok
[/code]

ポート番号を指定してデータを送信します。
16進数なので0~fの値にしましょう。

操作メニューのデータを確認から

操作メニューのデータを確認から

SORACOM ユーザーコンソール の画面に戻り、データが送信されていることを確認しましょう。

Harvest画面

Harvest画面

確かに、データが受信できています。
PoCキットの際のものとデータフォーマットが違うので注意しましょう。
1次処理のところでアスキーコード変換も行われているようですね。

ちなみに複数GWからデータが送られたときにはこのようになりました。
集約されていますが、enebular で確認した際も同様なデータでした。

[code lang=”text”]
{
"data": "aaaa",
"date": "2017-04-27T02:27:31.278724",
"deveui": "xxxxxxxxxxxxxxx",
"gatewayData": [
{
"channel": 926400000,
"date": "2017-04-27T02:27:31.278724",
"gwid": "000b78fffeb000a1",
"rssi": -53,
"snr": 8.5
},
{
"channel": 926400000,
"date": "2017-04-27T02:27:31.362446",
"gwid": "000b78fffeb0008d",
"rssi": -111,
"snr": -13.5
}
]
}
[/code]

enebular でデータを受け取ってみる

まずは SORACOM Beam で設定するエントリポイントを enebular から取得します。

enebularエントリポイント取得

enebularエントリポイント取得

Deploy 横の information の丸アイコンにオンマウスすると、現在のインスタンスURL情報がわかります。永続的なものではないので注意してください
※永続的に使用するのなら、外部サービスへデプロイし、URLを設定する必要があります。

Beamの設定画面

Beamの設定画面

Beamにはこのように設定しました。
パスの /lora は任意のもので大丈夫です。/任意のもの のように設定します。後程 enebular の中で使います
検証のためにカスタムヘッダを設定しています。

受け取るだけのフロー

受け取るだけのフロー

簡単ですが、 Beam が転送するのを受けるだけのフローを作りました。

http ノードの中身

http ノードの中身

http ノードの中で先ほど入力したパスを設定します。
enebular 側の設定はこれで完了。

そして Harvest での疎通確認同様、 LoRa からコマンドを送信します。

debugタブより

debugタブより

来ました!🙌
ここから中のデータを10進数に変換したり意味づけしていくといいですね。

ちなみに先ほど設定したヘッダは msg.headers.custom に格納されていました。
msg.headers.x-soracom-lora-device-id には デバイスid も格納されています。

LoRaWAN も Harvest も enebular も簡単に接続出来ちゃいますね。手早いのはいいことだ!🏍
それでは~

About hrd_pk

ジブリ映画で卒論を書き、IoTに興味をもって入社した新米社員。LoRaと出会って文系エンジニアへの扉が開いたのであった。Cのポインタと仲良くなりたい。 好きなポケモンはフシギダネです。