センスウェイのLoRaWANサービスが開始されたので、早速ゲートウェイとデバイスを入手して動かしてみました。
サービスエリアとレンタルゲートウェイ
LoRaWANは3G/LTEなどと同じく、デバイスはゲートウェイ(GW)を経由して外部と接続されるサービスです。従って、デバイスから通信できる範囲にGWが存在していることが利用の大前提となります。
一方で、GWの設置が自由に行えるというのもLoRaWANの特徴です。センスウェイのサービスでは、センスウェイ側が設置・提供するGWの他にも「レンタルゲートウェイ」を入手して自前でGWを設置するという選択肢が用意されています。これにより、圏外であってもサービスを利用することが可能です(費用の負担はありますが)。
ゲートウェイを借りよう
サービスエリアは公式サイトから調べることができます。あいにく、記事執筆時点では所望の場所が含まれていませんでしたので1、レンタルゲートウェイを借りて設置することにしました。
何はともあれ、まずはセンスウェイのサービス「SenseWay Mission Connect」のアカウントを作成する必要があります。登録画面の指示に従って作業を進めていくだけですが、本記事執筆時点では「東京都、神奈川県、千葉県、埼玉県、茨城県、群馬県、栃木県、山梨県でのご利用の方のみご登録ができます」との制限2がありますので注意が必要です。
アカウント作成後、管理コンソールにログインするとこんな画面が表示されるはずです。
「GWデバイス管理」タブから「追加レンタル申請」を選び、送付先、GWタイプ(屋内用/屋外用)などを入力すれば申し込み完了です。後は本体が送付されてくるのを待つのみです。
ここで大きな注意点があります。どこにも書かれていないようですが3、GWは送料着払で送られてきます。我が家では嫁さんの「送りつけ商法」フィルターに引っ掛かり、危うく受け取り拒否で返送されてしまうところでした。
ゲートウェイを設置しよう
送料を支払い、ゲートウェイを入手したら次は設置です。推奨手順は
- GWをWi-Fi、または有線でインターネットに接続する
これだけです。有線ならばEthernetケーブルと電源を挿すだけで完了しますが、Wi-Fi経由の場合はアクセスポイントの設定などが必要になります。公式サイトにある「レンタルゲートウェイ(G-BOX)使用方法」を参照するといいでしょう。
ただし「GWが8883ポートでインターネットに接続できること」という条件があります。要するにGWとLoRaWANサーバの間はmqttsで通信しているということですね。通常の自宅ネットワークであればまず大丈夫だと思いますが、企業であればまず無理4なので管理者に相談してください。
気をつける点としては、GW付属のEthernetケーブルはとても短い(1m)です。なので、よほど運が良くない限り、窓際など電波が飛びそうな場所にGWを設置するためには別途ケーブルを用意するか、あるいはWi-Fi接続を選ぶ必要がありそうです。
LoRaWANデバイス
現状、センスウェイのサービスではセンスウェイから入手したデバイスのみ接続できるという仕様になっており、任意のデバイスを接続することはできません5。対応デバイスはリストにあるのですが、現時点ではまだLoRaWAN Shield for Arduinoしかありません。一刻も早く自前デバイスの登録をサポートして欲しいですね。
デバイスを入手しよう
GWと同じく、対応デバイスも管理コンソールから申し込みが可能です。といっても、単にAmazonの購入ページに飛ばされるだけで、他のAmazon取り扱い商品と同様の手順で購入できます。こちらは嬉しいことに送料無料です(笑)。発送はセンスウェイからで、Amazonの箱も使われていないので嫁さんの厳しいチェックにも引っ掛かりません。
デバイスを接続しよう
このデバイス、本来はArduinoに挿して使う物なのですが、シリアル通信可能なホストであれば何でも接続できます。なので手持ちのUSB-シリアル変換アダプタを使ってさくっと動作検証してみることにします。何といっても初物を触る時には不確定要因をひとつでも減らしておきたいものです。
デバイスのピン配置はこのようになっています(マニュアルより抜粋)。
従って、USB-シリアル変換アダプタから供給される電圧を3.3Vに設定してデバイスに供給し、アダプタのRX端子をデバイスのTX端子(D11)、アダプタのTX端子をデバイスのRX端子(D12)に接続すれば通信できるはずです。
具体的にはこんな感じです。
配線できたらターミナルエミュレータからコマンドを送信してみます。初期状態では通信速度9600bpsとなる点に注意が必要です。
見事に通信できました。
デバイスを登録しよう
デバイスが正常に動作していることが確認できたので、次はセンスウェイのサーバにデバイスを登録する作業です。先に書いたとおり、現時点ではサーバに登録できるのはセンスウェイから購入したデバイスのみです。それを担保するため、登録にはdevEUI(デバイスに格納されており、いつでも確認できる)とPIN(パスワードに相当)の2つが必要になっています。これらのコードはデバイスに同梱された紙に書かれているので、無くさないようにしないといけません。
登録は例によって管理コンソールから行います。「デバイス管理」タブから「新規デバイスのアクティベーション」を選択します。
同梱の用紙に書かれているdevEUI、PINを入力するとすぐに登録が完了します。
データを送信してみよう
これでデータが送信できる状態になったはずです。本来はLoRaWANサーバからデータを受信するアプリケーションサーバを立ち上げる必要があるのですが、ここは手軽に管理コンソールから確認してみます。
まずはデバイスをLoRaWANサーバにJOINしなくてはなりません。そこで現在の状態を見てみると
> lorawan get_join_status
>> joined
あれ?すでにJOINした状態ですね。この辺、LoRaWANの仕様をよく理解していないので妥当かどうか分からないのですが、念のためもう一度JOINしておきます。
> lorawan join otaa
>> Ok
>> accepted
JOIN成功です。続いてデータを送ってみます。
> lorawan tx ucnf 1 0102
>> Ok
>> tx_ok
これは、ACKを待たない(送りっぱなし)モードでポート1番にデータ0x0102を送れ、という指示になります。するとOkが表示された後、少ししてtx_okが表示されました。これでデータが送られたことになります。
まだ受信部がないので、管理コンソールから送信データ数を確認してみましょう。
おお、UpLink(デバイスからサーバ向けの通信)カウントが0から1になりました。無事にデータが送信できたようです。
引き続き
データを受信するアプリケーションサーバを構築し、実際のデータを送受信してみることにしましょう。