20
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

LoRaでIoTプラットフォーム(ThingSpeak)にデータを上げる方法

イントロダクション

このところ色々なところで話題に上がるIoTの分野で、「モノ」と「インターネット」をどう繋ぐのか?がITを生業にしている我々の一つのテーマになってきていると思います。

  1. 「モノ」の情報をどのように取得するのか?
  2. 取得した情報をどのようにインターネットに送るのか?
  3. インターネット側の情報の受け皿はどうすればよいのか?

この記事では、弊社(株式会社オープンウェーブ)のLoRa IoT スターターキットを使い、
「1.」→ 温度/湿度センサー
「2.」→ LoRa
「3.」→ ThingSpeak
という具体的なものを用いて、実践します。

LoRaとは

LPWA(Low Power Wide Area)のIoT向け無線規格の一つで、次のような特徴があります。

  • 省エネ
  • 長距離(数km)
  • 低コスト
    • 通信費はかかりません。
  • 誰でも簡単に利用できる
    • LoRaはLPWAの中でも特定小電力無線局になり、免許を要しない無線局がつくれます。※
    • LoRaは仕様がオープンです。(他の規格では、仕様がクローズドで使用するのに制約あるのものもあります)

※特定省電力は、電波発信者の許可は必要ありませんが、利用する無線機器は、技適審査が認可したものでないと電波法違反となります。(下記サイト3−(4))
http://www.tele.soumu.go.jp/j/adm/proc/free/

当記事で用いるDragino LG01-JP、LoRa miniは、技適審査を通してあります。

ThingSpeakとは

IoTでの利用を目的としたデータストアのサービスです。
RESTによるデータのアップロードと、Arduino IDEで利用できるライブラリを用意してくれているので、簡単IoT実験の強い味方です。
無料版ですとノード(IoTデバイス)数の制限等があるので、実際に業務で使用するレベルになると有料版にした方が良いのかもしれません。

全体像

全体像.PNG
17103635_1258595670903509_7489584472435788884_n.jpg

使用ハードウェア

  • Dragino社のLoRa IoT スターターキット
    • Dragino LG01-JP:LoRaゲートウェイ
    • Dragino LoRa mini Dev:LoRaノード
    • DTH11:温度センサー

使用ソフト

  • Arduino IDE(1.6.13)

使用プログラム

  • LoRaToThingSpeak/dht11_client/dht11_client.ino  →ノード用(LoRa mini)
  • LoRaToThingSpeak/dht11_server/dht11_server.ino  →ゲートウェイ用(LG01-JP)

手順

ThingSpeakの設定

https://thingspeak.com/
ThingSpeakにアカウントを作成し、チャネル追加します。
Channel Settingで、フィールド1とフィールド2を有効にします。
すると、チャネルIDと書き込みキー(WriteAPIKey)が得られます。

LoRaゲートウェイのプログラミング

「使用プログラム」のdht11_server.inoを、Arduino IDEで開きます。
チャンネルIDと書き込みキー(WriteAPIKey)を取得したものに書き換えます。
→LG01-JPに書き込み
LG01-JP.PNG

注意)ゲートウェイ側のプログラムで、ThingSpeakのライブラリを使いますが、ThingSpeakのライブラリで、Console使っているので、プログラム上でConsoleを書くとデータがアップされないです。

LoRaノードのプログラミング

こちらの手順では、LoRa miniを検証しやすいようにボードに載せたLoRa mini Devを使用しています。(LoRa miniは、基盤中央の色の違う部分)
「使用プログラム」のdht11_client.inoを、Arduino IDEで開きます。
→LoRa mini Devに書き込み
LoRamini.PNG

LoRaMiniと温度湿度センサーをつなぐ

センサー.png
DTH_配線.png

LoRa mini Dev DTH11
3.3V(3V3) VCC
GND GND
A0 DATA

LoRa mini Devの仕様につきましてはこちらをご覧ください。
http://www.dragino.com/products/lora/item/126-lora-mini-dev.html

接続確認

17097637_1258595660903510_8944428548623925780_o.jpg

最後に

今回は、RadioHeadのライブラリでやりましたが、次回はLMIC(LoRaWANのライブラリ)でやってみます。

なお、こちらのチャネルはパブリックで見れるので、スマホアプリ「ThingView」でチャネルID:234900でどなたからもご覧いただけます。
Screenshot_20170309-164645.png

注意

プログラミングにはArduino IDEを使用しますが、事前にArduino IDEに次の設定が必要です。

  • Dragino向けの設定をしておく必要があります。 http://www.ibeacondo.com/download/LG01_LoRa_Gateway_Manual_JP.pdf
  • 次のライブラリを検索してインクルードしておく必要があります。
    • 「LoRa sending data」(LoRaライブラリ)
    • 「ThingSpeak」(ThingSpeakライブラリ)
    • 「DHT sensor library」(DHTライブラリ)
    • 「Adafruit Unified Sensor required」(DHTライブラリが使用するライブラリ)
  • RadioHeadライブラリをインターネットから取得して、インクルードしておく必要があります。 https://github.com/dragino/RadioHead/archive/master.zip

この記事で使用するソースは、使用するハードに依存している部分が大きいため、他のハードとの組み合わせでどうなるかは分かりません。

FAQ

USB電源を使った場合に、温度が20度になってしまう

実際の温度に関わらず温度が20度となってしまう場合は、温度湿度センサーからのデータ取得に失敗している可能性があります。

対応

USB電源を接続した後に、リセットボタンを押してください。
症状が改善される場合があります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
20
Help us understand the problem. What are the problem?