Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
LoRaとLoRaWANと
Fukuoka City LoRaWAN™実証実験
2017年10月7日(土)
ネクストステップ
上野和昭
OSC 2017 Fukuoka ネクストステップ/上野和昭 1
LoRaWANとは?
LoRaWANをwikipediaで検索してみました。
OSC 2017 Fukuoka ネクストステップ/上野和昭 2
LoRaWANとは?
LoRaWANをwikipediaで検索してみました。
このウィキでページ「LoRaWAN」を新規作成しましょう。検索
で見つかった他のページも参照してください。
WikipediaにLoRaWANのページがありませんでし...
あらためてLoRaWANとは?
LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。
LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。
それをLPWA(Low Power...
あらためてLoRaWANとは?
LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。
LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。
それをLPWA(Low Power...
あらためてLoRaWANとは?
LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。
LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。
それをLPWA(Low Power...
あらためてLoRaWANとは?
LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。
LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。
それをLPWA(Low Power...
ソフトバンク株式会社 プレスリリースのページでは
OSC 2017 Fukuoka ネクストステップ/上野和昭 8
ソフトバンク株式会社 プレスリリースのページでは
書き方が違うだけで内容はKDDIと同じ
OSC 2017 Fukuoka ネクストステップ/上野和昭 9
SORACOMの製品
OSC 2017 Fukuoka ネクストステップ/上野和昭 10
LoRaデバイスはいくらくらい?
LoRa と LoRaWANってどう違うの?
ただ単に違LoRaWANを省略してLoRa と呼んでいるだけじやないの?
OSC 2017 Fukuoka ネクストステップ/上野和昭 11
LoRa と LoRaWANってどう違うの?
ただ単に違LoRaWANを省略してLoRa と呼んでいるだけじやないの?
OSC 2017 Fukuoka ネクストステップ/上野和昭 12
LoRaとLoRaWAN
LoRaはPHYレイヤ(フィジカル層)の無線変調を、
LoRaWANはLoRa Allianceによって策定されたプロトコル体系全般を指します。
LoRa対応製品はMACレイヤ以上は独自プロトコルの場合がありますので、...
LoRaWANが使えるエリアは?
LoRaWANには携帯電話で言うところの基地局に当たる
LoRaゲートウェイが必要です
じゃあサービスエリアは? どこで使えるの?
OSC 2017 Fukuoka ネクストステップ/上野和昭 14
残念ながら...
じゃあ どうする?
安心してください、自前でゲートウェイを設置できます
ゲートウェイは有線または無線LANでインターネットにつなげます
ゲートウェイを個人で利用するだけなら無線関係のややこしい免許は要り
ません、ただし技適の通っているものに限る...
困ったこととは?
ゲートウェイの機器が高い
OSC 2017 Fukuoka ネクストステップ/上野和昭 16
そこで福岡市に住んでいて良かった
福岡市はLoRaの実証実験用にゲートウェイの設置と
無料開放を実施しています。
Fukuoka City LoRaWAN™ 実証実験
OSC 2017 Fukuoka ネクストステップ/上野和昭 17
OSC 2017 Fukuoka ネクストステップ/上野和昭 18
OSC 2017 Fukuoka ネクストステップ/上野和昭 19
OSC 2017 Fukuoka ネクストステップ/上野和昭 20
ゲートウェイはタダで使えても色々と経費かかるよね
福岡市はそこもちゃんと見越してくれています
OSC 2017 Fukuoka ネクストステップ/上野和昭 21
OSC 2017 Fukuoka ネクストステップ/上野和昭 22
OSC 2017 Fukuoka ネクストステップ/上野和昭 23
第一期に応募しました
が見事に書類審査で落
ちました。
みなさんも福岡市の実証実験に参加しませんか
Fukuoka City LoRaWAN™ 実証実験
参加企業(個人でも可)募集中
福岡市実証実験フルサポート事業
第二期募集中
OSC 2017 Fukuoka ネクストステップ/上野和昭 24
ここからが実証実験レポートです
(まだデータが取れだして1週間も経っていないので十分な検証はできていません)
OSC 2017 Fukuoka ネクストステップ/上野和昭 25
自分が入居しているFGN(旧大名小)の掲示板に
二酸化炭素濃度が基準値を超えている部屋があるので
午前と午後換気をお願いします。
と張り紙があったので室内環境のセンシングをやってみることにしました
先ず最初にやること
実証実験に申し込むには実証...
実証実験の福岡市の提供範囲
NTTネオメイト様のHPより
OSC 2017 Fukuoka ネクストステップ/上野和昭 27
何から始めれば良い?
• 福岡市実証実験への申し込み(大前提)
• ついでにフルサポート事業への申し込み(見事落選)
• センシング装置のハードウェアの設計と製作(本職はハード屋)
• LoRaサーバーからのデータ受取部分(俗にアプリケーション...
【Fukuoka City LoRaWAN(TM)】利用手続きの流れ
Thingpark(プラットフォーム)のアクティベーション ※要注意
プラットフォームThingparkへのログイン可
利用者情報シートの提出
Fukuoka City Lo...
Thingparkのアクティビテーション でやらかしました
利用者情報シートの提出後Thingparkへのアクセスできるようにするためのアクティベーション用の
お知らせメールが届きます。
提出して1週間以上経っても送られてこないのでおかしいと思...
Thingparkでさらなる落とし穴
アクティベーション用のメールに書かれているページにアクセスしてパス
ワードを設定後、Thingparkのログインページが表示されます
でも IDとパスワードを入力しても 入れない
OSC 2017 Fuku...
2つのログイン画面
コンソールへのログイン画面 アクティベーション後に表示されるログイン画面
OSC 2017 Fukuoka ネクストステップ/上野和昭 32
Thingparkのトップページ
Thingparkにログインすると以下の画面になります
ThingPargStore (使いません)
Device Manager
ディバイスの設定だけではなく
アプリケーションサーバー等の色々
な設定を行いま...
Device Managerページでの各種設定
Device Managerでの設定項目
Device
Connectivity plans ※
AS routing profiles
Application servers
Settings ...
各種登録の流れ
Application servers でアプリケーションサーバーの登録 ※
Deviceでデバイス情報の登録
AS routing profiles でアプリケーションサーバーへのルーティング方法の登録 ※
※ デバイスからデ...
Application servers でアプリケーションサーバーの登録
アプリケーションサーバーとは?
プラットフォーム(Thingpark)は
IoTデバイスから送られてきたデータをアプリケー
ションサーバーに中継する役目しかありません。
...
アプリケーションサーバーの登録
ここに接続先を書きます。
自分の場合は PHPで書いたプログラムで受
けているのでそのアドレスを書いています。
例 https://*********.com/xxxxx.php
OSC 2017 Fukuoka...
デバイス登録画面
OSC 2017 Fukuoka ネクストステップ/上野和昭 38
デバイスの登録内容は ABPモードとOTAAモードでは登録する項目が違います。
ABPモード OTAAモード
ABPとOTAAの違い
OTAA(Over The Air Activation)
あらかじめエンドデバイスに AppKey を格納して、無線でネットワークに参加する方式。
エンドデバイスは参加リクエストとして AppEUI(アプリケーション固...
ABPモード時の設定項目 Administrative data
OSC 2017 Fukuoka ネクストステップ/上野和昭 40
Device name と Administrative info は適当な値で
問題ないです。
Admini...
ABPモード時の設定項目 Device identification
OSC 2017 Fukuoka ネクストステップ/上野和昭 41
DevEUIとDevAddrはデバイス本体や資料を参照し
て設定してください とマニュアルに記載されてい
...
ABPモード時の設定項目 Network parameters
OSC 2017 Fukuoka ネクストステップ/上野和昭 42
Connectivity plan は実証実験を申し込んだときに申請
したプランを選択します。
自分の場合は
「...
ABPモード時の設定項目 Application layer handling
OSC 2017 Fukuoka ネクストステップ/上野和昭 43
Application server rooting profile:の下に
AppSKeys:...
OTAAモード
OSC 2017 Fukuoka ネクストステップ/上野和昭 44
OTAAモードでは
まだ使っていません
モジュールを登録しても表示されない
OSC 2017 Fukuoka ネクストステップ/上野和昭 45
モジュールを登録して Devices のトップページ
に戻ってもなんか地図が表示されているだけで
登録したモジュールが表示されていない
と思...
IoTデバイスの開発
プラットフォームの設定が一通り終わったので
IoTデバイスのハードウェアとファームウェアの開発に進みます
OSC 2017 Fukuoka ネクストステップ/上野和昭 46
センシング装置の構成
• LoRaモジュール選定
なるべく安くて技適が通っていて使いやすいもの
(今回使用したLoRaモジュールは次ページを参照)
• 温湿度センサー
Sensirion社 SHT-2
メーカーページ
• CO2センサー
Win...
このモジュールを選択した理由は
Arduino UNO と同じMCUを使っているので
Arduinoの豊富なライブラリが使えるのと
開発環境も Arduino IDE が使える。
こんな単純な考えで選定したのですが
これが後でとんでももないこと...
基板の製作
全頁までの部品を使って以下の2枚の基板を設計・製作しました
メインボード
LoRaモジュール
温湿度センサー
USBシリアル変換器
電源周り
センサー拡張シールド
CO2センサー
RTC
microSDカードスロット
GPS(未実装...
アクリル板でケースも作ってみました
アクリル加工協力
Gooday Fab Daymyo
OSC 2017 Fukuoka ネクストステップ/上野和昭 50
センシング装置のファームウェア
• 開発環境
Arduino IDE 1.8.2
• 使用ライブラリ
lmic IBM社LMiC(LoRa MAC in Cの略)ライブラリ for Arduino
SHT21 温湿度センサー SHT21用ライブ...
先ずはサンプルプログラムを動かすための準備
1. サンプルプログラムのダウンロード GitHubからダウンロード
LoRaWANExample/lora-arduino/lora-arduino.ino が今回使用したサンプルです
2. Ard...
LMiCライブラリの修正
LMiCライブラリには、EUとUS基準の無線周波数の設定されているのでこれを日本の周波数に書き直します。
lorabase.h修正前
// Default frequency plan for EU 868MHz IS...
Network Session Key、App Session Key、Device Address の変更
lora-arduino.ino
//ttn
static const PROGMEM u1_t NWKSKEY[16] = { 0x...
サンプルプログラムをコンパイルした結果
OSC 2017 Fukuoka ネクストステップ/上野和昭 55
このサンプルプログラムはセンサーからの
データの取り込みはやっておらず
だだ単に“Hello, world!” と送っているだけ
なのに...
サンプルプログラムを実行してみる
OSC 2017 Fukuoka ネクストステップ/上野和昭 56
Arduino IDE のシリアルモニタで見てみると
なんか動いているっぽいです。
Thingparkでモニターしてみると
OSC 2017 Fukuoka ネクストステップ/上野和昭 57
ちゃんとデータが届いています(プラットフォームのWiressLoggerのページで確認できます)
OSC 2017 Fukuoka ネクストステップ/上野和昭 58
データは届いているけどそのデータは正しいの?
これがデバイスか
らのデータです。
“Hello, world!” をアスキーコード(16進
数)で送っているので
48656c6...
OSC 2017 Fukuoka ネクストステップ/上野和昭 59
わざとデバイス側の APPSKEY を違う値にしてみました。
これがデバイスか
らのデータです。
48656c6c6f2c20776f726c6421 が
正しい値なのに
a1...
“Hello, world!” を送り続けてもそれはIoTじゃないよ
IoTデバイスのサンプルプログラムなら 文字列とかではなくて
カウンター地でも良いので変化するデータにして欲しかった。
まあ、LoRaサーバーまでデータがつながったのが分かっ...
送るデータ形式を決める
LoRaデバイスからLoRaサーバーへ送るデータ形式は
バイナリデータでもアスキーコードでもなんでも構いません。
今回は温度データ、湿度データ二酸化炭素濃度データを
4文字ずつのアスキーコードで送ることにしました。
例
...
メモリがかなりやばい状況に
OSC 2017 Fukuoka ネクストステップ/上野和昭 62
プログラム領域がほとんど残っていません。
残り106バイト
このあとどうするの(泣)
何とか温湿度、CO2データを取り込めました
OSC 2017 Fukuoka ネクストステップ/上野和昭 63
データ : 333136333437383130353030002a2a
温度 湿度 CO2 ダミー
温度 : 31.63℃
湿度 ...
プラットフォーム以降のデータ処理
プラットフォームまでデータが届いているのを確認できたので
このデータを可視化するための作業に入ります。
プラットフォームからアプリケーションサーバーへは
JsonまたはXML形式でデータを送れます。
今回はjs...
プラットフォームからデータが飛んで来ているかの確認
プラットフォームから送られてきたデータはPHPプログラムでバックエンドで処理される
のでブラウザ上にデータを表示させたりすることが出来ません。
そこでデータを受信したらログファイルに書き込む方...
jsonデータ
ログから以下のようなjsonデータが送られてきているのを確認しました。
{“DevEUI_uplink”: {“Time”: “2017-10-03T02:56:24.671+02:00”,“DevEUI”:
“ACFF48FF...
OSC 2017 Fukuoka ネクストステップ/上野和昭 67
必要なデータをパース出来ました
次はMySQLデータベースへの保存
前頁まででデータの切り出しが出来ているので
MySQLへのデータの保存はたいして難しくありません。
まずテーブルの構造は以下のようにしました。
OSC 2017 Fukuoka ネクストステップ/上野和昭 68
OSC 2017 Fukuoka ネクストステップ/上野和昭 69
MySQLにデータを保存できました
OSC 2017 Fukuoka ネクストステップ/上野和昭 70
データ部分を拡大してみました
もう少し
センサーからデータを取得してMySQLにデータを保存するまで
は出来ました。
後はそのデータの集計や表示用のWebページ(UI)を作るのみ
OSC 2017 Fukuoka ネクストステップ/上野和昭 71
データのグラフ化
時間が無くて、
IoTデータサービスの
ThingSpeakをとりあえず使いました
OSC 2017 Fukuoka ネクストステップ/上野和昭 72
このデータは
Fukuoka growth next 3F シェアオフィス...
Thingspeakとのデータ接続
ThingspeakとThingpark 似ていますよね、これが冒頭の
アクティベーションメールを見逃してしまった原因です。
Thingspeak のホームページ
Thingspeakへデータを送るのは単純で...
今までやれていること
PHPで書いたプログラムでプラットフォームからのデータ受信
ThingSpeakでグラフ化
プラットフォーム
センサーからのデータ取り込んでプラットフォームへのデータ送信
MySQLへのデータ保存 ThingSpeakへの...
• センシング装置の製造(現在2台しかないので5台まで増やす)
• センサーデータの補正と正確化(時々変なデータを送っている)
• ThingSpeakで代用している UIページの製作
• LoRaとLoRaWANに関しての勉強
今後やらないと...
LoRAWANに触れて思ったこと
IoTビジネスに参画するパターンとして大きく次の2の場合が考えられます
1. センサーとかを作ったり使ったりするハード屋さんが参画
2. Webサービスやデータ解析をやっている企業の参画
このどちらの場合も大き...
最後に
福岡市LoRaWAN実証実験に参加して、まだ日が浅い為に十分な実験が出来
ていませんが、やってみたことをまとめていました。
勉強不足ゆえに間違った解釈もあると思いますので、お気づきの点はご指
摘ください。
私は福岡市内でハードウェアーの...
2017年10月7日(土)
「オープンソースカンファレンス 21017 福岡」 にて
OSC 2017 Fukuoka ネクストステップ/上野和昭 78
Nächste SlideShare
Wird geladen in …5
×

OSC福岡プレゼン資料 LoRaWAN実証実験

450 Aufrufe

Veröffentlicht am

2017年10月7日(土)に福岡大学で開催された
OSC2017福岡でプレゼンした
Fukuoka City LoRaWAN(TM) 実証実験への参加報告書です。
LoRaデバイスの製作からLoRaWANサーバーへの接続、Thingspeakによるグラフ表示までやったことを説明しています。

Veröffentlicht in: Geräte & Hardware
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

OSC福岡プレゼン資料 LoRaWAN実証実験

  1. 1. LoRaとLoRaWANと Fukuoka City LoRaWAN™実証実験 2017年10月7日(土) ネクストステップ 上野和昭 OSC 2017 Fukuoka ネクストステップ/上野和昭 1
  2. 2. LoRaWANとは? LoRaWANをwikipediaで検索してみました。 OSC 2017 Fukuoka ネクストステップ/上野和昭 2
  3. 3. LoRaWANとは? LoRaWANをwikipediaで検索してみました。 このウィキでページ「LoRaWAN」を新規作成しましょう。検索 で見つかった他のページも参照してください。 WikipediaにLoRaWANのページがありませんでした OSC 2017 Fukuoka ネクストステップ/上野和昭 3
  4. 4. あらためてLoRaWANとは? LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。 LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。 それをLPWA(Low Power, Wide Area)と呼ぶが、LoRaは、その代表的な規格の一つ。 LoRaは、1GHzより低い「サブギガ帯」と呼ばれる周波数帯域を用い、最大伝送速度は 250kbps程度で、伝送距離は最大10km程度。免許不要の周波数帯域(アンライセンスバン ド)を利用するオープンな通信規格で、LoRa Allianceという非営利団体が組織されている。 LoRaが基地局やモジュールなどの物理的な規格であるのに対して、LoRaWANはネットワーク 通信技術の規格。10年以上のバッテリー持続、数km以上の通信距離、多量のデバイス接続、1 個あたり数百円程度の安価な通信モジュールなどの特⾧を有する。 KDDIのホームページより OSC 2017 Fukuoka ネクストステップ/上野和昭 4
  5. 5. あらためてLoRaWANとは? LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。 LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。 それをLPWA(Low Power, Wide Area)と呼ぶが、LoRaは、その代表的な規格の一つ。 LoRaは、1GHzより低い「サブギガ帯」と呼ばれる周波数帯域を用い、最大伝送速度は 250kbps程度で、伝送距離は最大10km程度。免許不要の周波数帯域(アンライセンスバン ド)を利用するオープンな通信規格で、LoRa Allianceという非営利団体が組織されている。 LoRaが基地局やモジュールなどの物理的な規格であるのに対して、LoRaWANはネットワーク 通信技術の規格。10年以上のバッテリー持続、数km以上の通信距離、多量のデバイス接続、1 個あたり数百円程度の安価な通信モジュールなどの特⾧を有する。 KDDIのホームページより バッテリー 自体が10 年持たない と思います。 OSC 2017 Fukuoka ネクストステップ/上野和昭 5
  6. 6. あらためてLoRaWANとは? LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。 LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。 それをLPWA(Low Power, Wide Area)と呼ぶが、LoRaは、その代表的な規格の一つ。 LoRaは、1GHzより低い「サブギガ帯」と呼ばれる周波数帯域を用い、最大伝送速度は 250kbps程度で、伝送距離は最大10km程度。免許不要の周波数帯域(アンライセンスバン ド)を利用するオープンな通信規格で、LoRa Allianceという非営利団体が組織されている。 LoRaが基地局やモジュールなどの物理的な規格であるのに対して、LoRaWANはネットワーク 通信技術の規格。10年以上のバッテリー持続、数km以上の通信距離、多量のデバイス接続、1 個あたり数百円程度の安価な通信モジュールなどの特⾧を有する。 KDDIのホームページより バッテリー 自体が10 年持たない と思います 10km以上電波が 飛ぶという事例も ありますが相当条 件が良くないと届 きません OSC 2017 Fukuoka ネクストステップ/上野和昭 6
  7. 7. あらためてLoRaWANとは? LoRaWANとは、LoRaというIoT向け無線通信技術を用いたネットワークのこと。 LoTの普及に伴い、少ない消費電力で広いエリアをカバーする無線通信技術の開発が進んでいる。 それをLPWA(Low Power, Wide Area)と呼ぶが、LoRaは、その代表的な規格の一つ。 LoRaは、1GHzより低い「サブギガ帯」と呼ばれる周波数帯域を用い、最大伝送速度は 250kbps程度で、伝送距離は最大10km程度。免許不要の周波数帯域(アンライセンスバン ド)を利用するオープンな通信規格で、LoRa Allianceという非営利団体が組織されている。 LoRaが基地局やモジュールなどの物理的な規格であるのに対して、LoRaWANはネットワーク 通信技術の規格。10年以上のバッテリー持続、数km以上の通信距離、多量のデバイス接続、1 個あたり数百円程度の安価な通信モジュールなどの特⾧を有する。 KDDIのホームページより そんなに安いモジュー ルは有りません ちなみに私が買ったモ ジュールは7000円で した OSC 2017 Fukuoka ネクストステップ/上野和昭 7
  8. 8. ソフトバンク株式会社 プレスリリースのページでは OSC 2017 Fukuoka ネクストステップ/上野和昭 8
  9. 9. ソフトバンク株式会社 プレスリリースのページでは 書き方が違うだけで内容はKDDIと同じ OSC 2017 Fukuoka ネクストステップ/上野和昭 9
  10. 10. SORACOMの製品 OSC 2017 Fukuoka ネクストステップ/上野和昭 10 LoRaデバイスはいくらくらい?
  11. 11. LoRa と LoRaWANってどう違うの? ただ単に違LoRaWANを省略してLoRa と呼んでいるだけじやないの? OSC 2017 Fukuoka ネクストステップ/上野和昭 11
  12. 12. LoRa と LoRaWANってどう違うの? ただ単に違LoRaWANを省略してLoRa と呼んでいるだけじやないの? OSC 2017 Fukuoka ネクストステップ/上野和昭 12
  13. 13. LoRaとLoRaWAN LoRaはPHYレイヤ(フィジカル層)の無線変調を、 LoRaWANはLoRa Allianceによって策定されたプロトコル体系全般を指します。 LoRa対応製品はMACレイヤ以上は独自プロトコルの場合がありますので、必ずしもLoRa 対応製品=LoRaWAN対応製品ではないことにご注意ください。 SORACOMサポートページより LoRaは物理層の規格だが、実際に通信を行うためにはデータリンク層が必 要。その規格として有力なのがLoRaWAN。 OSC 2017 Fukuoka ネクストステップ/上野和昭 13
  14. 14. LoRaWANが使えるエリアは? LoRaWANには携帯電話で言うところの基地局に当たる LoRaゲートウェイが必要です じゃあサービスエリアは? どこで使えるの? OSC 2017 Fukuoka ネクストステップ/上野和昭 14 残念ながら使える場所がほとんどありません
  15. 15. じゃあ どうする? 安心してください、自前でゲートウェイを設置できます ゲートウェイは有線または無線LANでインターネットにつなげます ゲートウェイを個人で利用するだけなら無線関係のややこしい免許は要り ません、ただし技適の通っているものに限る ここで困ったことが OSC 2017 Fukuoka ネクストステップ/上野和昭 15
  16. 16. 困ったこととは? ゲートウェイの機器が高い OSC 2017 Fukuoka ネクストステップ/上野和昭 16
  17. 17. そこで福岡市に住んでいて良かった 福岡市はLoRaの実証実験用にゲートウェイの設置と 無料開放を実施しています。 Fukuoka City LoRaWAN™ 実証実験 OSC 2017 Fukuoka ネクストステップ/上野和昭 17
  18. 18. OSC 2017 Fukuoka ネクストステップ/上野和昭 18
  19. 19. OSC 2017 Fukuoka ネクストステップ/上野和昭 19
  20. 20. OSC 2017 Fukuoka ネクストステップ/上野和昭 20
  21. 21. ゲートウェイはタダで使えても色々と経費かかるよね 福岡市はそこもちゃんと見越してくれています OSC 2017 Fukuoka ネクストステップ/上野和昭 21
  22. 22. OSC 2017 Fukuoka ネクストステップ/上野和昭 22
  23. 23. OSC 2017 Fukuoka ネクストステップ/上野和昭 23 第一期に応募しました が見事に書類審査で落 ちました。
  24. 24. みなさんも福岡市の実証実験に参加しませんか Fukuoka City LoRaWAN™ 実証実験 参加企業(個人でも可)募集中 福岡市実証実験フルサポート事業 第二期募集中 OSC 2017 Fukuoka ネクストステップ/上野和昭 24
  25. 25. ここからが実証実験レポートです (まだデータが取れだして1週間も経っていないので十分な検証はできていません) OSC 2017 Fukuoka ネクストステップ/上野和昭 25
  26. 26. 自分が入居しているFGN(旧大名小)の掲示板に 二酸化炭素濃度が基準値を超えている部屋があるので 午前と午後換気をお願いします。 と張り紙があったので室内環境のセンシングをやってみることにしました 先ず最初にやること 実証実験に申し込むには実証実験で何をやるのかテーマが必要です。 OSC 2017 Fukuoka ネクストステップ/上野和昭 26 テーマを何にするか考えました
  27. 27. 実証実験の福岡市の提供範囲 NTTネオメイト様のHPより OSC 2017 Fukuoka ネクストステップ/上野和昭 27
  28. 28. 何から始めれば良い? • 福岡市実証実験への申し込み(大前提) • ついでにフルサポート事業への申し込み(見事落選) • センシング装置のハードウェアの設計と製作(本職はハード屋) • LoRaサーバーからのデータ受取部分(俗にアプリケーション サーバーと呼ばれている部分)(web屋の経験10年) • 受け取ったデータの確認表示UI(デザインには自信がない) OSC 2017 Fukuoka ネクストステップ/上野和昭 28
  29. 29. 【Fukuoka City LoRaWAN(TM)】利用手続きの流れ Thingpark(プラットフォーム)のアクティベーション ※要注意 プラットフォームThingparkへのログイン可 利用者情報シートの提出 Fukuoka City LoRaWAN™ 利用お申し込みページから利用申請 OSC 2017 Fukuoka ネクストステップ/上野和昭 29
  30. 30. Thingparkのアクティビテーション でやらかしました 利用者情報シートの提出後Thingparkへのアクセスできるようにするためのアクティベーション用の お知らせメールが届きます。 提出して1週間以上経っても送られてこないのでおかしいと思っていたら アクティベーション用のメールはThingparkのシステムから送られているので 届いているのを見逃していました。 差出人が Thingpark <noreply@thingpark.com> タイトルが [ThingPark Portal] Your ThingPark Account Details となっているメールがそうです。 ※ 言い訳 同じ時期にThingSpeakと言うIoTサービスに登録したのでそこからのメールと思っていました。 OSC 2017 Fukuoka ネクストステップ/上野和昭 30
  31. 31. Thingparkでさらなる落とし穴 アクティベーション用のメールに書かれているページにアクセスしてパス ワードを設定後、Thingparkのログインページが表示されます でも IDとパスワードを入力しても 入れない OSC 2017 Fukuoka ネクストステップ/上野和昭 31 実はアクティベーション後に表示されるページは Thingparkのコンソールへのログインページではありません
  32. 32. 2つのログイン画面 コンソールへのログイン画面 アクティベーション後に表示されるログイン画面 OSC 2017 Fukuoka ネクストステップ/上野和昭 32
  33. 33. Thingparkのトップページ Thingparkにログインすると以下の画面になります ThingPargStore (使いません) Device Manager ディバイスの設定だけではなく アプリケーションサーバー等の色々 な設定を行います。 Wireless Logger デバイスから送られてきたデータや通信 状況の確認を行います。 OSC 2017 Fukuoka ネクストステップ/上野和昭 33
  34. 34. Device Managerページでの各種設定 Device Managerでの設定項目 Device Connectivity plans ※ AS routing profiles Application servers Settings ※ ※ 使いません OSC 2017 Fukuoka ネクストステップ/上野和昭 34
  35. 35. 各種登録の流れ Application servers でアプリケーションサーバーの登録 ※ Deviceでデバイス情報の登録 AS routing profiles でアプリケーションサーバーへのルーティング方法の登録 ※ ※ デバイスからデータが届いているかだけの確認には必要ありません OSC 2017 Fukuoka ネクストステップ/上野和昭 35
  36. 36. Application servers でアプリケーションサーバーの登録 アプリケーションサーバーとは? プラットフォーム(Thingpark)は IoTデバイスから送られてきたデータをアプリケー ションサーバーに中継する役目しかありません。 データをエクスポートすることも出来ますが、これ はLoRaの通信状況とかを確認するためのもので、 IoTデバイスから送られてきたデータを閲覧するため のものではありません。 ここでありがちな勘違い Q:プラットフォームでセンサーの値を見られる のではないの? A:見られないことはありませんが 16進数だったりデータの区切りとかとても見辛 いですし、必要なデータだけ取り出す機能もあ りません データを加工してみやすくしたり、グラフ化す るプログラムは自分で準備してください それが アプリケーションサーバー です。 OSC 2017 Fukuoka ネクストステップ/上野和昭 36
  37. 37. アプリケーションサーバーの登録 ここに接続先を書きます。 自分の場合は PHPで書いたプログラムで受 けているのでそのアドレスを書いています。 例 https://*********.com/xxxxx.php OSC 2017 Fukuoka ネクストステップ/上野和昭 37
  38. 38. デバイス登録画面 OSC 2017 Fukuoka ネクストステップ/上野和昭 38 デバイスの登録内容は ABPモードとOTAAモードでは登録する項目が違います。 ABPモード OTAAモード
  39. 39. ABPとOTAAの違い OTAA(Over The Air Activation) あらかじめエンドデバイスに AppKey を格納して、無線でネットワークに参加する方式。 エンドデバイスは参加リクエストとして AppEUI(アプリケーション固有の64bitID)と DevEUI(デバイス固有の64bitID)を送信する。これらの情報と AppKey から DevAddr (ネットワーク内のデバイスID)、AppSKey、NwkSKeyを算出して参加承認する。以降 は AppSKey と NwkSKey で暗号化する。 ABP(Activation By Personalization) あらかじめエンドデバイスに DevAddr, AppSKey, NwkSKey を格納しておく方式。 おそらく日本国内に存在する、ほとんどのエンドデバイスが採用している方式らしいです。 OSC 2017 Fukuoka ネクストステップ/上野和昭 39
  40. 40. ABPモード時の設定項目 Administrative data OSC 2017 Fukuoka ネクストステップ/上野和昭 40 Device name と Administrative info は適当な値で 問題ないです。 Administrative locationは変更せずそのままです。 Motion indicator は意味が分かっていないので未選 択のままです。
  41. 41. ABPモード時の設定項目 Device identification OSC 2017 Fukuoka ネクストステップ/上野和昭 41 DevEUIとDevAddrはデバイス本体や資料を参照し て設定してください とマニュアルに記載されてい ますが、今回使用したデバイスにはどこにも記載が なかったので、重複しない適当な値を入れました。 Device profileはプルダウンから選択するように なっていますがリストに使っているディバイスが無 い場合は 「LoRaWAN1.0-classA-ETSI-Rx2_SF9」 を選択してください。
  42. 42. ABPモード時の設定項目 Network parameters OSC 2017 Fukuoka ネクストステップ/上野和昭 42 Connectivity plan は実証実験を申し込んだときに申請 したプランを選択します。 自分の場合は 「NTT-NEO Connectivity Supplier / Fukuoka-City-LoRaWANプラン3 (7)」 です。
  43. 43. ABPモード時の設定項目 Application layer handling OSC 2017 Fukuoka ネクストステップ/上野和昭 43 Application server rooting profile:の下に AppSKeys: とあるので Application serverとの接続するためのkeyか と思っていたら違っていました。 Device間とのKeyでした。 このキーが違っていたので、デバイスから 送っているデータと、プラットフォームで受 信しているデータが違っていて半日ほど悩み ました。 マニュアルは良く読みましょう
  44. 44. OTAAモード OSC 2017 Fukuoka ネクストステップ/上野和昭 44 OTAAモードでは まだ使っていません
  45. 45. モジュールを登録しても表示されない OSC 2017 Fukuoka ネクストステップ/上野和昭 45 モジュールを登録して Devices のトップページ に戻ってもなんか地図が表示されているだけで 登録したモジュールが表示されていない と思ったのですが 良く見ると Map の隣に Listタブがありました。 Listの文字が薄いから老眼では見えなかった (これも言い訳)
  46. 46. IoTデバイスの開発 プラットフォームの設定が一通り終わったので IoTデバイスのハードウェアとファームウェアの開発に進みます OSC 2017 Fukuoka ネクストステップ/上野和昭 46
  47. 47. センシング装置の構成 • LoRaモジュール選定 なるべく安くて技適が通っていて使いやすいもの (今回使用したLoRaモジュールは次ページを参照) • 温湿度センサー Sensirion社 SHT-2 メーカーページ • CO2センサー Winsen社 MH-Z19 メーカーページ OSC 2017 Fukuoka ネクストステップ/上野和昭 47
  48. 48. このモジュールを選択した理由は Arduino UNO と同じMCUを使っているので Arduinoの豊富なライブラリが使えるのと 開発環境も Arduino IDE が使える。 こんな単純な考えで選定したのですが これが後でとんでももないことに メーカーページ 日本の代理店 OSC 2017 Fukuoka ネクストステップ/上野和昭 48
  49. 49. 基板の製作 全頁までの部品を使って以下の2枚の基板を設計・製作しました メインボード LoRaモジュール 温湿度センサー USBシリアル変換器 電源周り センサー拡張シールド CO2センサー RTC microSDカードスロット GPS(未実装) OSC 2017 Fukuoka ネクストステップ/上野和昭 49
  50. 50. アクリル板でケースも作ってみました アクリル加工協力 Gooday Fab Daymyo OSC 2017 Fukuoka ネクストステップ/上野和昭 50
  51. 51. センシング装置のファームウェア • 開発環境 Arduino IDE 1.8.2 • 使用ライブラリ lmic IBM社LMiC(LoRa MAC in Cの略)ライブラリ for Arduino SHT21 温湿度センサー SHT21用ライブラリ Softwaresrial CO2センサーをUARTで接続するのに使用 • ベースとしたプログラム 株式会社 オープンウェーブ社がサンプルとして公開しているLoRaWAN用プログラム サンプルプログラム 参考ページ OSC 2017 Fukuoka ネクストステップ/上野和昭 51
  52. 52. 先ずはサンプルプログラムを動かすための準備 1. サンプルプログラムのダウンロード GitHubからダウンロード LoRaWANExample/lora-arduino/lora-arduino.ino が今回使用したサンプルです 2. Arduino IDE にArduino用LMiCのライブラリをインクルード Arduino IDE から <スケッチ> ↓ <ライブラリをインクルード> ↓ <ライブラリを管理> ↓ lmicで検索 OSC 2017 Fukuoka ネクストステップ/上野和昭 52
  53. 53. LMiCライブラリの修正 LMiCライブラリには、EUとUS基準の無線周波数の設定されているのでこれを日本の周波数に書き直します。 lorabase.h修正前 // Default frequency plan for EU 868MHz ISM band // Bands: // g1 : 1% 14dBm // g2 : 0.1% 14dBm // g3 : 10% 27dBm // freq band datarates enum { EU868_F1 = 868100000, // g1 SF7-12 EU868_F2 = 868300000, // g1 SF7-12 FSK SF7/250 EU868_F3 = 868500000, // g1 SF7-12 EU868_F4 = 868850000, // g2 SF7-12 EU868_F5 = 869050000, // g2 SF7-12 EU868_F6 = 869525000, // g3 SF7-12 EU868_J4 = 864100000, // g2 SF7-12 used during join EU868_J5 = 864300000, // g2 SF7-12 ditto EU868_J6 = 864500000, // g2 SF7-12 ditto }; enum { EU868_FREQ_MIN = 863000000, EU868_FREQ_MAX = 870000000 }; lorabase.h修正後 // Default frequency plan for EU 868MHz ISM band // Bands: // g1 : 1% 14dBm // g2 : 0.1% 14dBm // g3 : 10% 27dBm // freq band datarates enum { EU868_F1 = 868100000, // g1 SF7-12 EU868_F2 = 868300000, // g1 SF7-12 FSK SF7/250 EU868_F3 = 868500000, // g1 SF7-12 EU868_F4 = 868850000, // g2 SF7-12 EU868_F5 = 869050000, // g2 SF7-12 EU868_F6 = 869525000, // g3 SF7-12 EU868_J4 = 864100000, // g2 SF7-12 used during join EU868_J5 = 864300000, // g2 SF7-12 ditto EU868_J6 = 864500000, // g2 SF7-12 ditto }; enum { EU868_FREQ_MIN = 863000000, EU868_FREQ_MAX = 870000000 }; Arduino IDEを通常通りインストールした場合 ¥Documents¥Arduino¥libraries¥arduino-lmic-master¥src¥lmic¥lorabase.h OSC 2017 Fukuoka ネクストステップ/上野和昭 53
  54. 54. Network Session Key、App Session Key、Device Address の変更 lora-arduino.ino //ttn static const PROGMEM u1_t NWKSKEY[16] = { 0x19, 0x7C, 0x79, 0x8E, 0x6D, 0xDE, 0xEB, 0xA6, 0x92, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0FF, 0xFF }; // LoRaWAN AppSKey, application session key // This is the default Semtech key, which is used by the prototype TTN // network initially. //ttn static const u1_t PROGMEM APPSKEY[16] = { 0x07, 0x8C, 0xB1, 0x4F, 0x1E, 0xAD, 0x39, 0x4A, 0x99, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0FF, 0xFF }; // LoRaWAN end-device address (DevAddr) // See http://thethingsnetwork.org/wiki/AddressSpace //ttn static const u4_t DEVADDR = 0x2600FFFF; OSC 2017 Fukuoka ネクストステップ/上野和昭 54 ソースコードの以下の青字の部分をプラットフォームに登録した内容と同じに変更します。
  55. 55. サンプルプログラムをコンパイルした結果 OSC 2017 Fukuoka ネクストステップ/上野和昭 55 このサンプルプログラムはセンサーからの データの取り込みはやっておらず だだ単に“Hello, world!” と送っているだけ なのにプログラムエリアがほとんど残ってい ないこの事実
  56. 56. サンプルプログラムを実行してみる OSC 2017 Fukuoka ネクストステップ/上野和昭 56 Arduino IDE のシリアルモニタで見てみると なんか動いているっぽいです。
  57. 57. Thingparkでモニターしてみると OSC 2017 Fukuoka ネクストステップ/上野和昭 57 ちゃんとデータが届いています(プラットフォームのWiressLoggerのページで確認できます)
  58. 58. OSC 2017 Fukuoka ネクストステップ/上野和昭 58 データは届いているけどそのデータは正しいの? これがデバイスか らのデータです。 “Hello, world!” をアスキーコード(16進 数)で送っているので 48656c6c6f2c20776f726c6421 は正 しいデータとなります。 ↓ ↑ の矢印の左の + ボタンを押すと詳細データが表示されます。
  59. 59. OSC 2017 Fukuoka ネクストステップ/上野和昭 59 わざとデバイス側の APPSKEY を違う値にしてみました。 これがデバイスか らのデータです。 48656c6c6f2c20776f726c6421 が 正しい値なのに a1482d9da949e2869a19a95e33 と 違った値になっています。
  60. 60. “Hello, world!” を送り続けてもそれはIoTじゃないよ IoTデバイスのサンプルプログラムなら 文字列とかではなくて カウンター地でも良いので変化するデータにして欲しかった。 まあ、LoRaサーバーまでデータがつながったのが分かっただけでも良しとしましょう 次ページからは実際にセンサーのデータを送った結果です。 このサンプルプログラムを変更して実現しましたがプログラムの変更箇所の詳細は割愛し ます。 OSC 2017 Fukuoka ネクストステップ/上野和昭 60
  61. 61. 送るデータ形式を決める LoRaデバイスからLoRaサーバーへ送るデータ形式は バイナリデータでもアスキーコードでもなんでも構いません。 今回は温度データ、湿度データ二酸化炭素濃度データを 4文字ずつのアスキーコードで送ることにしました。 例 温度データ 28.05℃ → 2805 → 32383035 湿度データ 45.62% → 4562 → 34353632 CO2濃度データ 620rpm → 0620 → 30363230 OSC 2017 Fukuoka ネクストステップ/上野和昭 61
  62. 62. メモリがかなりやばい状況に OSC 2017 Fukuoka ネクストステップ/上野和昭 62 プログラム領域がほとんど残っていません。 残り106バイト このあとどうするの(泣)
  63. 63. 何とか温湿度、CO2データを取り込めました OSC 2017 Fukuoka ネクストステップ/上野和昭 63 データ : 333136333437383130353030002a2a 温度 湿度 CO2 ダミー 温度 : 31.63℃ 湿度 : 47.81% CO2 : 500ppm
  64. 64. プラットフォーム以降のデータ処理 プラットフォームまでデータが届いているのを確認できたので このデータを可視化するための作業に入ります。 プラットフォームからアプリケーションサーバーへは JsonまたはXML形式でデータを送れます。 今回はjsonデータをPHPで書いたプログラムで受けて、 MySQLへのデータ保存と Thingspeak へのデータ中継をしました。 OSC 2017 Fukuoka ネクストステップ/上野和昭 64
  65. 65. プラットフォームからデータが飛んで来ているかの確認 プラットフォームから送られてきたデータはPHPプログラムでバックエンドで処理される のでブラウザ上にデータを表示させたりすることが出来ません。 そこでデータを受信したらログファイルに書き込む方法でデバッグしました。 確認する内容は 送られて来たjsonデータ そのjsonデータから必要なデータに展開するパース処理が意図通りに動いているか OSC 2017 Fukuoka ネクストステップ/上野和昭 65
  66. 66. jsonデータ ログから以下のようなjsonデータが送られてきているのを確認しました。 {“DevEUI_uplink”: {“Time”: “2017-10-03T02:56:24.671+02:00”,“DevEUI”: “ACFF48FF45FFAB02”,“FPort”: “1”,“FCntUp”: “4”,“ADRbit”: “1”,“MType”: “2”,“FCntDn”: “4”,“payload_hex”: “323936343534353130373637002a2a”,“mic_hex”: “350bfda0”,“Lrcid”: “00000201”,“LrrRSSI”: “-102.000000”,“LrrSNR”: “7.500000”,“SpFact”: “7”,“SubBand”: “G0”,“Channel”: “LC2”,“DevLrrCnt”: “1”,“Lrrid”: “65D2A341”,“Late”: “0”,“LrrLAT”: “33.588482”,“LrrLON”: “130.397430”,“Lrrs”: {“Lrr”: [{“Lrrid”: “65D2A341”,“Chain”: “0”,“LrrRSSI”: “-102.000000”,“LrrSNR”: “7.500000”,“LrrESP”: “-102.710815”}]},“CustomerID”: “100007297”,“CustomerData”: {“alr”:{“pro”:“LORA/Generic”,“ver”:“1”}},“ModelCfg”: “0”,“DevAddr”: “76FFFF02”}} このデータを基に • DevAdde : • Time : • payload_hex : をパースして ログ に書いてみました。 OSC 2017 Fukuoka ネクストステップ/上野和昭 66
  67. 67. OSC 2017 Fukuoka ネクストステップ/上野和昭 67 必要なデータをパース出来ました
  68. 68. 次はMySQLデータベースへの保存 前頁まででデータの切り出しが出来ているので MySQLへのデータの保存はたいして難しくありません。 まずテーブルの構造は以下のようにしました。 OSC 2017 Fukuoka ネクストステップ/上野和昭 68
  69. 69. OSC 2017 Fukuoka ネクストステップ/上野和昭 69 MySQLにデータを保存できました
  70. 70. OSC 2017 Fukuoka ネクストステップ/上野和昭 70 データ部分を拡大してみました
  71. 71. もう少し センサーからデータを取得してMySQLにデータを保存するまで は出来ました。 後はそのデータの集計や表示用のWebページ(UI)を作るのみ OSC 2017 Fukuoka ネクストステップ/上野和昭 71
  72. 72. データのグラフ化 時間が無くて、 IoTデータサービスの ThingSpeakをとりあえず使いました OSC 2017 Fukuoka ネクストステップ/上野和昭 72 このデータは Fukuoka growth next 3F シェアオフィス でのデータです。
  73. 73. Thingspeakとのデータ接続 ThingspeakとThingpark 似ていますよね、これが冒頭の アクティベーションメールを見逃してしまった原因です。 Thingspeak のホームページ Thingspeakへデータを送るのは単純で https://api.thingspeak.com/update?api_key=2MC5PWRH9ES2KJL6&field1=0 発行されたURLをたたくだけです。 今回は温度データ、湿度データ、CO2データを送るので https://api.thingspeak.com/update?api_key=2MC5PWRH9ES2KJL6&field1=28.05&field2=45.32&field3=895 こんな感じのでアドレスをPHPからcurlでたたいています。 ThingspeakとThingparkは全くの別物で、Thingspeakは今回の実証実験と全く関係ありません。 OSC 2017 Fukuoka ネクストステップ/上野和昭 73 温度 湿度 CO2
  74. 74. 今までやれていること PHPで書いたプログラムでプラットフォームからのデータ受信 ThingSpeakでグラフ化 プラットフォーム センサーからのデータ取り込んでプラットフォームへのデータ送信 MySQLへのデータ保存 ThingSpeakへのデータ送信 OSC 2017 Fukuoka ネクストステップ/上野和昭 74
  75. 75. • センシング装置の製造(現在2台しかないので5台まで増やす) • センサーデータの補正と正確化(時々変なデータを送っている) • ThingSpeakで代用している UIページの製作 • LoRaとLoRaWANに関しての勉強 今後やらないといけないこと OSC 2017 Fukuoka ネクストステップ/上野和昭 75 まだまだ課題は山積みです
  76. 76. LoRAWANに触れて思ったこと IoTビジネスに参画するパターンとして大きく次の2の場合が考えられます 1. センサーとかを作ったり使ったりするハード屋さんが参画 2. Webサービスやデータ解析をやっている企業の参画 このどちらの場合も大きな壁があると思います。 ハード屋はセンシング装置は作れても、データを受けたり処理したりプロ グラムに関しては疎い、逆にWeb屋さんにはハードを作るのが大変 ココはハード屋さんとWeb屋さんで手を繋ぎましょう OSC 2017 Fukuoka ネクストステップ/上野和昭 76
  77. 77. 最後に 福岡市LoRaWAN実証実験に参加して、まだ日が浅い為に十分な実験が出来 ていませんが、やってみたことをまとめていました。 勉強不足ゆえに間違った解釈もあると思いますので、お気づきの点はご指 摘ください。 私は福岡市内でハードウェアーの設計をメインとして個人事業主として活 動しています、IoT関連でお手伝いできることがありましたら声をかけて下 さい。 本日はご清聴ありがとうございました OSC 2017 Fukuoka ネクストステップ/上野和昭 77
  78. 78. 2017年10月7日(土) 「オープンソースカンファレンス 21017 福岡」 にて OSC 2017 Fukuoka ネクストステップ/上野和昭 78

×