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

IoTで畑を監視してみる