書いてね
IoTで遊んでるから、Qiitaに書いてもいいよ
と、会社で謎の**PPT(注:パワーポイント。「まーくだうん」ではない。)**を渡された。
ありがとう。でも、自分で書けば?
と返したが、
作るのは楽しいけどblog書くのは面倒なんだよね。
いやいや。。。。そこみんな一緒じゃない!?
と、まったく釈然としないまま書くことに。。。なんで!?
というわけで、謎のゴーストライター(?)登場です。
モチベーション→自動で植木鉢に水やりたい
ということのようです。
あ、そう。
と反応しましたが、PPTには下記のように書いてあります。
- 水やりを自動で行いたい。(世には朝顔やひまわりを育てて観察するという教育があり、いつしか子よりも親が熱心に観察するという奇妙な出来事があり(略))
- 植木鉢を車に積んでの帰省は・・(略)
こんなん、いちいちPPTで書くなよほんとに。
機能
というわけで、読み進めると、下記のような感じにしたいらしいです。
自動水やり
基本的に、定期的に水をあげる。
でも不要なときまで水をあげるのはエコではないので、下記のときは水をあげない。
- 雨または雪なう。または、これから雨か雪になるとき(天気APIを使って監視。降水確率80%以上でなければ、半分の量をあげる)
- 土がまだ乾いてないとき(土壌センサーで監視。乾いたらユーザーに通知)
- タンクが空のとき(どっちにしろあげらんないけど、モーター動かさないという意味ね)
リモート水やり
離れた場所のスマホとかからリモートで水をあげられるようにしたいらしいです。
そんな気まぐれであげないで!!
とは思いました。
システム構成
こんな感じね。
ここだけPPT便利ですねw
つかうもの
材料(ハード)
- RaspberryPI B+ ×1
- リレー(5V1A)×1
- ジャンパー線×10
- ブレッドボード(小さくてもよい)×1
- 電動ポンプ(自動停止機能がないもの)×1
- 乾電池(単1×2)
- ポリタンク×1(またはバケツなど)
- 湿度センサ×2(一つは土壌に、もうひとつはタンクに)
- ADCx1(2ch以上)(上記センサからの信号変換用)
最近湿度センサーよく見るなぁ。。『Web技術でハードウエア制御』 by 岩永さん
あれ?Raspberry PiってADCついてないの?
WebAPI(天気情報を取得するため)
天気によって、という機能をぶち上げた手前、WebAPIで天気情報を取得するということをやりたいようです。
MSN天気のAPIを利用するようです。
例えば、横浜の天気、下記URLで取れるらしい。
http://weather.service.msn.com/data.aspx?weadegreetype=C&culture=ja-JP&wealocations=wc:JAXX0099
結果
<weatherdata xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<weather weatherlocationcode="wc:JAXX0099" weatherlocationname="神奈川県 横浜" zipcode="" weathercityname="横浜" url="http://www.msn.com/ja-jp/weather/today/横浜,神奈川県,日本/we-city-35.467,139.622" imagerelativeurl="http://wst.s-msn.com/i/ja/" degreetype="C" provider="Foreca" attribution="提供 Foreca" attribution2="© Foreca" lat="35.4666901" long="139.6218414" timezone="9" alert="" entityid="37255" encodedlocationname="%e7%a5%9e%e5%a5%88%e5%b7%9d%e7%9c%8c+%e6%a8%aa%e6%b5%9c">
<current temperature="18" skycode="28" skytext="曇時々晴" date="2015-02-23" observationtime="16:00:00" observationpoint="Tokyo International Airport" feelslike="18" humidity="68" winddisplay="風向: 南 / 風速: 6 m/s" day="月曜日" shortday="月" windspeed="6"/>
<forecast low="" high="22" skycodeday="29" jpskycode="72" skytextday="晴時々曇" date="2015-02-23" day="月曜日" shortday="月" precip="20"/>
<forecast low="7" high="14" skycodeday="26" jpskycode="26" skytextday="曇り" date="2015-02-24" day="火曜日" shortday="火" precip="10"/>
<forecast low="5" high="13" skycodeday="30" jpskycode="60" skytextday="晴のち曇" date="2015-02-25" day="水曜日" shortday="水" precip="10"/>
<forecast low="6" high="9" skycodeday="39" jpskycode="52" skytextday="曇時々雨" date="2015-02-26" day="木曜日" shortday="木" precip="90"/>
<forecast low="5" high="13" skycodeday="28" jpskycode="63" skytextday="曇のち晴" date="2015-02-27" day="金曜日" shortday="金" precip="30"/>
<toolbar timewindow="60" minversion="1.0.1965.0"/>
</weather>
</weatherdata>
確かに使えそう。
jsonじゃねーのかよ。。。
リモートでRaspberry Piを制御するためのフレームワーク
リモートでの水やりのために、下記フレームワークを使ってRaspberry Piを遠隔制御するようです。
そして、PPTには、おもむろに下記サイトのリンクが。
『WebブラウザからRaspberry Pi を操作する(WebIOPi 利用)』by hiramine.comさん
てか、まんま出来るじゃん!
続くようです。
今回、PPTには、ここまでしか書かれていませんでしたが、
続きがあるようです。。。。えー
部品買ってきたら渡すよ
と言われましたが、さすがにそこは丁重にお断りしました。
だって、自分がやるなら違う構成にするし。。w
というわけで、開発に着手してしまったみたいなので、私もちょっとつきあってみまることにします。
進捗あったら更新します。(またPPTで渡されるのでしょう。。。)
ちゃんと作れよ!