技術説明
道東×IoTハッカソン 2018
Apr. 27, 2017 / 釧路市観光国際交流センター
株式会社ソラコム
テクノロジー・エバンジェリスト
松下 享平
自己紹介
株式会社ソラコム / テクノロジー・エバンジェリスト
松下 享平 (まつした こうへい) “max”
静岡県民 🗻 新幹線通勤族 🚅
前職: 東証二部ハードウェア・メーカーで
IoT事業のコーディネート
好きなソラコムサービス
• SORACOM Air メタデータサービス
• SORACOM Funnel
• soracom-cli
Facebook, Twitter: ma2shita
NEW!!!
本ハッカソンで利用可能なデバイス
Arduino UNO R3
+ Grove ベースシールド
+ LoRa 開発シールド
Wio LTE
【共通】Grove センサー
「コネクタに挿すだけ」で電子回路を構築
開発環境
共通
• OS共通: Arduino IDE のインストール
LoRaWAN
• OS 共通: http://bit.ly/2Fngw5I
※30 分程度かかります
Wio LTE
• Windows: http://bit.ly/wiolte_handson_win
• macOS: http://bit.ly/wiolte_handson_macos
※60 分程度かかります
実装
IoT における開発の流れ
ビジネス要件 データフォーマット設計 ネットワーク
クラウド
デバイス
データフォーマット設計を中心にする利点
1. 設計段階:
データ処理の可/不可を基にしたデバイス、
ネットワーク、クラウドの組み合わせ検証が容易
• データサイズ=1KB/回 → LPWAで可能?等
2. 開発段階:
データフォーマットを責任分界点とした上で
各要素の並行開発が可能
センサー素子 マイコン
ゲートウェイ
基地局
クラウドモノ ネットワーク
I2C
SPI
UART
1-wire
接点
近距離無線通信
~1km
中・長距離無線通信
LoRaWAN, Sigfox 特徴 (1/2)
• 920MHz 帯による km レンジの長距離通信
• 安価な通信モジュール
• 低速度 / 低消費電力
消費電流を抑止しつつも長距離通信が可能
LoRaトランシーバー
SX1276
セルラーモデム
UC20
参考: 発光ダイオード
(LED)
消費電流 20~30 mA
※送信時
500 mA
※通信時
20 mA
LoRaWAN, Sigfox 特徴 (2/2)
ペイロードサイズ
• 11 ~ 12 bytes / 回
• 送信間隔制限や送信回数の制限あり
• LoRaWAN: 最大 4.4 秒の送信間隔
• Sigfox: 140 回/日 の回数制限あり
下り通信 (Cloud to Device) 実装
• 上り通信に対する戻り※
• LoRaWAN, Sigfox 共に利用可能
※本実装は2018年4月現在です
IoT を取り巻く無線通信
消費電流
通信距離
Wi-Fi
PAN
BLE, ZigBee, Wi-SUN
LPWA
LoRaWAN, SigFox
Cat.0, M1, NB-IoT
100mA
10m 30m 1km 10km
20mA
通信速度
100bps
1kbps
1Mbps
10Mbps
450Mbps
NFC
RFID
5G
セルラー
3G, LTE(4G)
LPWA セルラー
~11Byte
11Byte~
MByte/GByte
データ量
1日数~数十回 常時・高頻度通信通信頻度
電池駆動
数カ月~数年駆動
給電あり
電池交換前提
消費電力
セルラーと LPWA の選択基準
【LoRaWAN】ペイロード設計の手法と課題
項目 取りうる値
センサーID 0 ~ 3
物体までの距離 (cm) 0 ~ 30
[2,19]
6 byte
JSON(テキスト)
0x920213
MessagePack
3 byte
独自フォーマット
1 byte
• クラウド側で扱いやすい
• デバイスでの生成コストが高い
• クラウド・デバイス双方で
そこそこ扱いやすい
• 徹底した削減までとはいかない
• デバイスでの生成コストが低い
• クラウドでの扱いが極めて困難
7bit 6bit 5bit 4bit 3bit 2bit 1bit 0bit
0 ~ 30
(幅的には31まで)
0~3
(幅的には7まで)
0
1
2
3
https://commons.wikimedia.org/wiki/File:%E7%A7%8B%E8%91%89%E5%8E%9F%E3%83%80%E3%82%A4%E3%83%93%E3%83%AB%E9%A7%90%E8%BB%8A%E5%A0%B4.jpg
複数の超音波測距センサーで
自動車の有り無しを検出
要件
【LoRaWAN】バイナリパーサー機能
クラウド側
データ展開の手間軽減
{
"distance": 19,
"sensor_id": 2
}
7bit 6bit 5bit 4bit 3bit 2bit 1bit 0bit
0byte
0 ~ 31
(e.g. 物体までの距離)
0~7
(e.g. センサーID)
BIN 1 0 0 1 1 0 1 0
DEC 19 2
HEX 9 A
distance:0:uint:5:7 sensor_id:0:uint:3:2
デバイス側
ペイロード節約、CPU負荷低減
エッジ・コンピューティングによる LPWA 活用
マイコン
AI
動画など
カメラ
動画など
クラウド
データ量が
見合わない
エッジで判定
結果のみを
送信
動画など
SORACOM Harvest ― データ収集/蓄積/可視化
SORACOM Harvest
SORACOM Harvest上に
データが蓄積harvest.soracom.io
へ送信する実装のみでOK※
• SORACOM Web コンソールで可視化
• APIで蓄積済みデータの取得
システムをセットアップすることなく
データ収集・蓄積・可視化を行えるサービス
データフォーマット設計との
検証が簡単に可能※LoRaWAN はアドレスも不要
SORACOM Beam ― データ転送支援
SORACOM Funnel ― クラウドアダプタ
本来デバイスに実装するべき接続先設定や暗号化等を
SORACOMへオフロード(負荷を移動)
オンプレ
システムA
PaaS
SaaSなど
インターネット
beam.soracom.io
funnel.soracom.io
へ送信する実装のみでOK※
SORACOM BeamやFunnel上に
• 接続設定 (認証情報や接続先)
• 暗号化 / プロトコル変換
を保管
SORACOM Beam
SORACOM Funnel
※LoRaWAN はアドレスも不要
SORACOM サービス群を用いた開発手法
クラウド開発者
SORACOM Harvest
デバイス開発者
★
SORACOM サービス群を用いた開発手法
クラウド開発者
SORACOM Harvest
デバイス開発者
簡素なプロトコルでOK
送信先アドレスの
切り替えを行うだけ
SORACOM Funnel
SORACOM Beam
SDKや認証情報をデバイスに
セットアップ&更新する手間をゼロに
★
SORACOM サービス群を用いた開発手法
クラウド開発者
SORACOM Harvest
デバイス開発者
切り戻してデータフォー
マットを再確認するのも
容易
デバイス側なのか、
クラウド側なのか、
データフォーマット設計を基に
問題の切り分けが可能
SORACOM Funnel
SORACOM Beam
SDKや認証情報をデバイスに
セットアップ&更新する手間をゼロに
SORACOM Funnel を活用したアーキテクチャ例
Amazon
Elasticsearch Service
Amazon Athena
Amazon
QuickSight
Amazon S3
AWS IoT Core
https://d1.awsstatic.com/events/jp/2017/summit/slide/D3T5-8.pdf
Amazon Kinesis
Data Firehose
SORACOM
Funnel
HTTP, TCP, UDP
LoRa
Sigfox
データ収集
SORACOM Beam を活用したアーキテクチャ例
SORACOM
Beam
HTTP REST API
Laravel (PHP), Rails (Ruby) …
SaaS / PaaS
AWS IoT Core
PubNub
Mosquitto
Amazon MQ
LoRa
Sigfox
HTTP, TCP, UDP
SORACOM
Beam
MQTT MQTTS
データ収集
双方向通信
EC2, EB等
enebular
kintoneHTTPS
アプリケーション
ハッカソン向け SaaS / PaaS
データ可視化・検索・分析
Amazon
Elasticsearch Service
kintone
データ処理・転送
AWS IoT Core
AWS Lambda
enebular

道東 x IoT ハッカソン 2018 / 開発技術資料