Page 2
@sparkgene 市川 純
リクルートマーケティングパートナーズ AWSを使った環境の構築・運用をやってます
Page 4
http://www.kokuchpro.com/event/awsiot_handson/14096/
キッカケ
Page 6
週末農家の悩み
▸ 毎日畑の様子を見ることは出来ない
▸ 週末外出すると、畑仕事ができなくなることがある
▸ そんな時に限って作物がダメになってしまう
Page 7
サーバも監視するんだし、畑も監視すればいい
Page 8
センサーを使って監視しよう
水分センサー
温湿度センサー
光センサー
Page 9
Raspberry Piを使って制御します
Raspberry Pi 1 Model B (jessie)
Page 10
全体像
AWS IoT
SORACOM Air
Page 11
水分センサー(YL-69)
水分量によって電極間の抵抗値が変わることを利用して 測ります。 アナログ値で取得する方法と、一定のしきい値を超えた時に ONになるデジタル出力が可能です。
Raspberry PiはデジタルのI/Oしか無いので、 A/Dコンバータを使ってアナログ値をデジタル に変換します。
Page 12
温度&湿度センサー(DHT11)
温度と湿度を計測できるセンサー。 シリアル通信でデジタル値を取得できます。
Page 13
光量照度センサ(BH1750FVI/GY-30)
明るさ(ルクス)をデジタル値として取得できる センター。 ボードとはI2Cで繋ぎます。
Page 14
各センサーからデータを収集している様子
Page 15
データ取得~送信の流れ(常時接続)
センサーの値取得
AWS IoTへ送信
5分スリープ
繰り返し
l SORACOMへは常時接続 l スクリプト内で5分スリープ
l SORACOMのダイアルアップとスクリプトはsupervisorで自動起動させて、Raspberry Pi起動と同時にデータ送信
Page 16
データ取得~送信の流れ(間欠運転)
センサーの値取得
AWS IoTへ送信
SORACOMの接続解除
SORACOMへ接続 l センサーからのデータ取得と、送信部分は分離
l データの取得は5分おき
l データの送信は20分おき
l ネットに繋がらなければ、データをファイルへ溜め込む
ファイルに追記 ファイルから読み込み
Page 17
データ取得~送信の比較
常時接続 間欠運転
リアルタイム性 高い 20分遅れ
難易度 普通 普通
電力消費 高い 普通
気になること SORACOMの料金 ファイルの肥大
Page 18
消費電力の違い
USBモデムで接続している USBモデムで接続していない
Page 20
AWS側の構成(初期)
AWS IoT
DynamoDB
Lambda CloudWatch
stream
Page 21
送信データのフォーマット { "deviceid":"raspberrypi", "timestamp":"2016-02-14 05:55:46", "temp":"25.0", "hum":"45.0", "lx":"9737", "moi":"495” }
l データ量が多くなるがデバッグしやすい l AWS IoT SQLではJSON形式のデータに対して select temp, hum from topic と操作できる
Ø {“temp”:“25.0”, “hum”:“45.0”} といった形で取り出せる
Page 22
AWS IoT Rules
${JSONのキー}とを指定することで、 簡単にDynamoDBに保存することが可能
Page 23
AWS側の構成(現在)
AWS IoT Lambda CloudWatch
Page 24
送信データのフォーマット { "deviceid":"raspberrypi", ”metrics":"2016-02-14 05:55:46,25.0,45.0,9737,495” }
l データ量は減るが見づらい l AWS IoTのRuleで直接値を参照するのが難しい
Page 25
AWS IoT Rules
Lambdaのイベントには送信されてきたデータが渡ってくる
{ 'device': 'raspberrypi', 'metrics': '2016-02-14 10:25:03,54.0,19.0,13,482' }
Page 26
LambdaからCloudWatchに登録
CloudWatch Dashnoard で任意のメトリックスを 並べることが出来る。 Y軸の最小・最大値が指定 できるので、グラフが 見やすくなる
Page 28
“ 実際に畑に置く事を考えると。。。
電源どうする?
Page 29
ソーラーUSB電源システム
https://tokyodevices.jp/items/27
日中はソーラーパネルで 発電しつつバッテリーへ蓄電 夜間はバッテリーに蓄電した 電力を使う
Page 32
実際の畑は広い
▸ 今回はプランターを使ったけど、実際の畑だと複数のセンサーを配置しなければならない
▸ センサーを分散させると配線や電源の問題が出てくる
▸ ZigBeeとかを使って、センサーの無線化? ▹ ボタン電池でも結構持つらしい。けどセンサーと絡めると・・
Page 33
遠隔地の監視
▸ ハードの障害やソフトのアップデートなど遠隔地にモノがあると、メンテナンスが大変
▸ AWS IoTのDevice Shadowを利用してオフライン時でも指示が出せ、オンライン時に反映できる ▹ ソフトウエアの自動アップデート
Page 36
実際に考えていること
▸ 写真を撮って見れるようにする ▸ 機械学習? ▸ 通知も
Page 37
THANKS!
You can find me at @sparkgene
Page 38
l 畑の悩みの話 l 監視について考えてみる l 全体のイメージ l センサーの説明 l AWS IoTの話し l データ蓄積の話 l DynamoDBの話し l データのビジュアライズの話 l cloudwatch l SORACOMの話し l 通信料の問題 l データのダイエット l データの送り方の方針 l 電源の問題 l 消費電力の話 l 24/7電源の話
l 11.74v→11.14v