Skip to main content

TheThingsNetworkのデータをAllThingsTalkで可視化してみる

teshiba
0

Title1_5d75069b899ac6a04e484ed7feddbf206971adfa.png

先日こちらの記事でLoRa IoTスターターキットを試した際に、TTN上で温度と湿度のデータを確認できた。さらにTTNに用意されているインテグレーション機能を利用すれば、その他の可視化サービスと連携することができる。今回はIoTのデータを簡単に無料で可視化できるAllThingsTalk(Maker)を利用してみた。

昨年末、Dragino製LoRa IoTスターターキット(RS品番:2552247958)の販売がアールエスコンポーネンツで開始された。Dragino社はオープンソースのLoRaに関係する機器を多くリリースしている企業であり、今回のスターターキットにはDragino製のデバイスとして小型の送信端末とゲートウェイが含まれている。

興味がある方はこちらから確認をどうぞ(RS販売ページ)

またThe Things Network(TTN)とは、LoRaWANのデファクトスタンダードである無料で利用可能なクラウドサービスのことだ。TTNを利用した全体像は以下のイメージだ。外部連携機能である「インテグレーション」を利用してAllThingsTalkと連携を行う。

Fig15-Overview_b0c4a9a34a5c7e3a4600deb1aba2211ec5410405.png

それでは実際に可視化について見ていこう。

まず、先日の記事で収集した温度と湿度のセンサーのデータはTTN上で最終的に以下のように見えていた。payloadに2バイトのデータを受信していることが分かる。例えば26 19というメッセージを受信した場合、先頭の26(1バイト)が湿度(Humidity)、末尾の19(1バイト)が温度(Temperature)と表示されている。

Fig9.7-CheckData__8e51f59a9962748cb4589c6107883bd5f89b4b19.png

この「Humidity」と「Temperature」の値を可視化してみよう。必要な手順は以下の3ステップだ。簡単に可視化できる。

  1. TTNとAllThingsTalkの連携
  2. データの取得
  3. 可視化してみる

また今回はTTNでセンサーの情報が収集できており、LoRaデバイスを電源に接続してメッセージを送信している前提となっている。

1.     TTNとAllThingsTalkの連携

まずTTNにログイン後、コンソールから連携させたいアプリケーションを開こう。

https://www.thethingsnetwork.org/

アプリケーションを開くと、以下のイメージのように、上部メニューに「インテグレーション」の項目がある。

Fig00-DeviceInteg_30adfd897eefceaca89f7459df44d4a70c056dab.png

「+インティグレーションの追加」から「AllThingsTalk Maker」を選択しよう。次のイメージのようにプロセスIDにはユニークな識別子(自由)と、Access keyにはdefault keyを選択する。

Fig01-IntegAdded_800abb4e4094512dd60dee621c95c3d3df9b6c4f.png

次にAllThingsTalk Makerへとアクセスして、必要に応じてアカウント登録などを行おう。なお、AllThingsTalk MakerはAllThingsTalkのプロトタイピング向けの無料サービスである。

https://maker.allthingstalk.com/

ログイン後、GROUNDSからPlaygoundを開き、デバイスを追加する。

Fig02-adddevice_b486dc3c1738b913365724eb30842f1b6fd13ccd.png

すると、追加する複数のカタログが表示されるので、今回は「LoRaWAN Rapid Development Kit」を選択する。

Fig03-devicecatalogue_cdf8d791b61f18ba1d493cb358587789ee51ab4e.png

またLoRaWANサービスを提供するプロパイダの選択画面が出るので、The Things Networkを選択しよう。

Fig04-LoRaWANProvider-TTN_08ab429a7fafcde291bc952f1ee30a7606370a19.png

すると、以下のようなデバイスの連携が必要な項目が表示される。

Fig05-Form_18caaf7acb728a2c6e84610b66a09e3d75fc55bc.png

次のイメージを参考に必要な情報を入力しよう。同時にTTNの連携したいデバイスを開くと設定が行いやすいはずだ。今回はアクティベーション方式としてABPを利用したデバイスを追加する。

Fig07.5-FormCopyFilled-ABP__51dea46c3559d130c2e4e2b26bfb60a17d6906f1.png

  • Device name
    • 適当なデバイス名
  • Device EUI
    • TTN上のデバイスEUI
  • Application ID
    • TTN上のアプリケーションID
  • Activation method
    • ABP
  • Device Address
    • TTN上のデバイスアドレス
  • Network Session Key
    • ネットワークセッションキー
  • Application Session Key
    • アプリケーションセッションキー

TTN上のコピーボタンを活用しよう。

これで連携設定は完了だ。しかしそのままだとデータを適切に受け取ることができない。そこで、AllThingsTalk上でデータを適切なフォーマットで受け取るための設定を行う。

2.     データの取得

次に取得したいデータを追加する。AllThingsTalkにログインし、「+ NEW ASSET」から取得したい情報を追加する。以下は湿度センサ(Humidity)のイメージだ。これと同様に温度(Temperature)も追加する。

Fig07-NewAsset_f354d78c4a4d94f4c6b095b91f01dbbad2566dcb.png

  • Kind
    • Sensor
  • Name
    • 受け取りたいセンサデータの名前(ID)。一意に識別可能IDである必要があるので注意。
  • Profile > Choose type
    • Integer

次に受け取るデータのフォーマットを指定しよう。AllThingsTalkのDEVICESの右上にある「SETTINGS」を開く。

Fig7.5-Settings__3c45f092dcad882af45f44f129b7a3477b9d5521.png

ここからDATAのPayload formatsを開き、「Use ABCL to convert binary data」にチェックを入れよう。受信するデータの1バイト目が「湿度」、2バイト目が「温度」の場合、次のように設定する。

Fig08.5-DSCloudABCL__ca23c2179339d95985adefac2f76c85561c9e6cb.png

変換するABCLを以下にも掲載しておく。

{
  "sense": [
    {
      "asset": "Humidity",
      "value": {
        "byte": 0,
        "bytelength": 1,
        "type": "integer"
      }
    },
    {
      "asset": "Temperature",
      "value": {
        "byte": 1,
        "bytelength": 1,
        "type": "integer"
      }
    }
  ]
}

 

※AllThingsTalkはデフォルトではCBORという形式でメッセージを受け取ることができる。ABCL形式を利用することでバイナリデータを適切なJSONフォーマットへ変換することができるようになっている。

データの値が表示されたら取得が完了だ。

Fig9.5-Getdata_1_805a068ded3ddfb134dfd8c49ba30ed820759f50.png

3.     可視化してみる

データの取得がうまくいったなら可視化を行ってみよう。まず、デバイスのセンサー情報が表示されている部分の上部に小さく「CHARTS」とあるのが分かるだろうか。ここから簡単にグラフ表示が可能だ。同時に表示したい値をクリックすると描画される仕組みとなっており、比較が簡単にできる。

Fig13-DeviceChart_9248d15cf569d9f51d855d7165e4217be23acad3.png

次に右上の「+CREATE PINBOARD」からピンボードを作成する。デフォルトでは必要ないassetが選択されているので、今回追加したHumidityとTemperatureのみ選択しよう。

Fig09-CreatePinboard_a6cb4c2999b3e281adc726adc24e66ae81b78d46.png

すると以下のように現在値が表示されるようになった。使い方によってピンボードを分けることも可能だ。このピンボードに様々なグラフなどの可視化情報を追加することができる。

Fig11-CurrentValue_bada250c70d26a796205608d701e0ca20355f6b8.png

さらに右上の鉛筆のマークをクリックし、「New pin」から新しくグラフを追加してみる。湿度と温度の比較のグラフを作成したいので、「Comparison Chart」を選択する。追加したいデバイスのうち必要なassetにチェックを以下のように入れる。

Fig10-ComparisonChrt_2856e61b390bd955b57e899ece2b4c1e552da514.png

すると、以下のような2種類のセンサデータが表示されるはずだ(このイメージはしばらく時間をおいて表示している)。このように温度と湿度の関係を比較して表示することが可能だ。またこのグラフのタイルサイズも変更できる。

Fig12-ConparisonChart_de7ba1006fd3d220b0f88bede131545e419b4052.png

他にも複数の可視化方法があるのでいろいろ試してみると良いだろう。今回は折れ線グラフ(チャート)を選択してみたが、その他にも棒グラフ、マップ、トグルなどの情報を可視化できる。今回、筆者のピンボードは最終的にこのようになった。

Fig12-PinBoard_3f8cf101ef1c123640b792968cb02b8190a376d4.png

最後に

今回はDragino製のLoRa IoTスターターキットで取得したデータの可視化の具体的な方法について紹介を行った。可視化には今回AllThingsTalkを採用したが、TTNはその他にもCayenne(カイエン)など様々な可視化サービスや、その他のサービスとの連携を提供している。また、AllThingsTalkも、TTN以外にも様々なIoTサービスのデータの可視化を実現できる。興味がある方はいろいろ試してみるとよいだろう。

また今回、自身のために視覚化を行ったが、こうして設置したデバイスなどの情報は「メンバー」機能を利用して共有することができる。次のイメージのように、メールアドレスなどをもとにメンバーを追加すると、管理するデバイスに新たに追加され、そこからグラフなどを共有することができるので、こうしたIoTデバイスのプロトタイピングには非常に便利だ。

Fig14-members_30d4241abeb63686a98aa6081cbcf4e4c2a3a282.png

ぜひ、LoRa IoTスターターキットを入手した方は試してみてほしい。

関連記事

LoRa IoTスターターキットをThe Things Networkで試す パート1:LoRaWANとキットの紹介

LoRa IoTスターターキットをThe Things Networkで試す パート3:TTNでデータを見てみよう

Hi, Everyone. I was master of University of Electro-communication, and bachelor of University of Hiroshima city. Now, I often work at Deloitte Tohmatsu Cyber. Also, I always check and translate some articles here. My major is about LoRa/LoRaWAN, IoT, CAN(Controller Area Network), these Security, etc. Please contact me, don't hesitate. My region: information science, radio, network, iot, iiot, security, lora, lorawan, 802.11ah, etc.
DesignSpark Electrical Logolinkedin