iotで畑を監視してみる
Post on 17-Jan-2017
748 Views
Preview:
TRANSCRIPT
水分センサー(YL-69)
水分量によって電極間の抵抗値が変わることを利用して 測ります。 アナログ値で取得する方法と、一定のしきい値を超えた時に ONになるデジタル出力が可能です。
Raspberry PiはデジタルのI/Oしか無いので、 A/Dコンバータを使ってアナログ値をデジタル に変換します。
データ取得~送信の流れ(常時接続)
センサーの値取得
AWS IoTへ送信
5分スリープ
繰り返し
l SORACOMへは常時接続 l スクリプト内で5分スリープ
l SORACOMのダイアルアップとスクリプトはsupervisorで自動起動させて、Raspberry Pi起動と同時にデータ送信
データ取得~送信の流れ(間欠運転)
センサーの値取得
AWS IoTへ送信
SORACOMの接続解除
SORACOMへ接続 l センサーからのデータ取得と、送信部分は分離
l データの取得は5分おき
l データの送信は20分おき
l ネットに繋がらなければ、データをファイルへ溜め込む
ファイルに追記 ファイルから読み込み
送信データのフォーマット { "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”} といった形で取り出せる
送信データのフォーマット { "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' }
実際の畑は広い
▸ 今回はプランターを使ったけど、実際の畑だと複数のセンサーを配置しなければならない
▸ センサーを分散させると配線や電源の問題が出てくる
▸ ZigBeeとかを使って、センサーの無線化? ▹ ボタン電池でも結構持つらしい。けどセンサーと絡めると・・
遠隔地の監視
▸ ハードの障害やソフトのアップデートなど遠隔地にモノがあると、メンテナンスが大変
▸ AWS IoTのDevice Shadowを利用してオフライン時でも指示が出せ、オンライン時に反映できる ▹ ソフトウエアの自動アップデート
top related