デバイスの立ち上げとTTNでの確認

ここでは、下記のCとDの部分の確認をする

ここではLoRa用のチップの乗ったArduino Uno相当である(DRAGINO LoRa Mini)を用いた。

これはArduino IDEを用いて開発することになるが必要なライブラリやサンプルを入手する。

•arduino-lmic-master-for-LG01-JP-REL20190308.zip
LMiCというのはIBMがLoRaを使用するために作成したライブラリである。これを改訂したものが上記である。ただし、上記はまだ日本版に対応していないので日本の周波数向けの定義を少し加えないとならない。 このLimicライブラリのlorabase_as923.hのなかで使用する周波数を手動で変更し定義している。

•DHT_sensor_library.zip
このモジュールはDHT11を使用するためのライブラリである。

•CayenneLPP.zip
ここで入手したデータはCayenneで利用するために、このライブラリを利用している。

その他、Adafruit Unified Sensorをライブラリの管理から追加している。このPCにはいくつかのライブラリが含まれているので、ライブラリの管理に表れてきたが落とし穴になる可能性がある。

•Cayenne_TTN_ABP.ino
Arduino IDEに利用するサンプルである。
上記は(株)オープンウェーブ様の手を加えられているようだが、参考のために冒頭のコメントの一部をコピーしておく。
このソースプログラムでTTNのデバイスで(自動)定義されたデバイスアドレス、ネットワークセッションキー、APPセッションキーを入力する。

  • Copyright (c) 2015 Thomas Telkamp and Matthijs Kooijman
  • Changed 2017.11.01 OpenWave inc,
  • Permission is hereby granted, free of charge, to anyone
  • obtaining a copy of this document and accompanying files,
  • to do whatever they want with them without any restriction,
  • including, but not limited to, copying, modification and redistribution.
  • NO WARRANTY OF ANY KIND IS PROVIDED.
    • Change DEVADDR to a unique address!
  • See http://thethingsnetwork.org/wiki/AddressSpace
    *
  • Do not forget to define the radio type correctly in config.h.
    *
  • Required Library:
  • * https://github.com/matthijskooijman/arduino-lmic
  • * https://github.com/adafruit/DHT-sensor-library
  • * https://github.com/adafruit/Adafruit_Sensor
    • Require Hardware:
  • * LoRa Shield + Arduino
  • * LoRa GPS Shield + Arduino
  • * LoRa Mini etc.
    • このサンプルは、The Things NetworkにABPで、DHT11の
  • 温度、湿度のデータをCayenneLPPのペイロードで送信します。
    • 2017.11.01 株式会社オープンウェーブ
      */

デバイス側で
使用周波数の設定、デバイスアドレス、ネットワークセッションキー、Appセッションキーを定義する。
不思議なのがPiに搭載したdual_cahn_pkt_fwd.cppである。ここでは使用する周波数やポートの定義はあるが、デバイスとのリンケージを示す定義をした覚えはない。もしかすると、ゲートウェイは同じ周波数帯で受信したものは、勝手にInternetに挙げてしまう懸念がある。 これはおいおい試してみたいところである。


確認方法
確認方法としてはまず、センサ側から順に確認してみたい。

Arduino IDEにあるモニターで確認する。(余分なDebug Messageとして読み込んデータを入れているが気にしないでください。)

次はゲートウェイである。
PiにLoginして、dual_chan_pkt_fwdのログを確認すればよい。

dual_chan_pkt_fwdはデーモンとして動作しているのでdaemon.logにメッセージが(延々と)記録される。 それの最後部分を何度か見ることによって動作がわかる。もちろんこのファイルをすべて見てもよいが大変である。
grep dual /var/log/daemon.log | tail
これを見ると5月5日 12:02:27にパケットを受信し、rssiやsnrなどの通信指標値が上がってきているのがわかる。
もし、これらのデータが全く見つけられなければ、dual_chan_pkt_fwdが動作しているかどうかを確かめるとよい。
ps -ef | grep dual

このコマンドを入力した後の1行目があれば、プログラムは動作している。
2行目はこのプロセスを探すためのプロセスが表示されているだけなので、無視する。
上記コマンドのtailをheadにすると、起動時のメッセージが見れるので参考にしてもらえるとよい。

ゲートウェイでの確認が取れたらTTNで確認する。
コンソール画面からアプリケーションを指定し、デバイスが登録してあるアプリケーションを開く。するとの設定の画面を見るとデータという項目があるので、そこをクリックする。

これが出れば一安心である。少なくともTTNまでの経路が確認できた。