おうちハックアドベントカレンダー4日目です。
IoTLTというコミュニティで活動していたりする @n0bisukeです。
次回のIoTLTは12/21にありますのでよかったらお越しください。
今回はParrot Flower Powerを使って部屋の植物の情報を取得したいと思います。
Parrot Flower Powerとは
植物プランターなどの 土の部分に突き刺すだけで土壌情報を取得することが出来るIoTデバイスです。
電池入れて土に挿すだけなのでホントに手軽です。
Amazonで現時点では7344円で買えます。http://amzn.to/1Q41Lbe
ParrotといえばMiniDroneシリーズが有名なイメージですが、こういったプロダクトも出しています。
準備
箱から開けるとこんな感じになります。けっこう箱から取り出すところで苦戦しました。
短い方の"枝"のキャップを外して電池を入れましょう。 長い方の"枝"がLEDになってますが、電池を入れると光ります。
あとは植物のそばに突き刺しましょう。
Node.jsから制御できます。
先人のチカラは偉大ですね。めちゃ簡単に制御できました。
ちなみに環境は
- Mac OS X Yosemite
- Node.js v5.1
です。
使い方
npm installしましょう。
$ npm install flower-power
サンプルコードはリポジトリ側にはなかったのですが、README.mdを見ながら書いてみいました。
'use strict'
let FlowerPower = require('flower-power');
console.log('FlowerPowerを探しています...');
//1.FlowerPowerに接続
FlowerPower.discover((fp) => {
console.log('FlowerPowerを見つけました。接続中です...');
fp.connectAndSetup((err) => {
if(err) return;
console.log('接続しました。');
action(fp);
});
});
//2.各メソッドを実行
function action(fp){
fp.ledPulse((err) => {
if(err) return;
console.log('LED on!');
});
fp.readSoilMoisture((err, soilMoisture) => {
if(err) return;
console.log('土壌湿度は'+soilMoisture+'です。');
});
fp.readSoilTemperature((err, temperature) => {
if(err) return;
console.log('土壌温度は'+temperature+'です。');
});
fp.readAirTemperature((err, temperature) => {
if(err) return;
console.log('空気中の温度は'+temperature+'です。');
});
fp.readSunlight((err, sunlight) => {
if(err) return;
console.log('照度は'+sunlight+'です。');
});
fp.readBatteryLevel((err, batteryLevel) => {
if(err) return;
console.log('バッテリーレベルは'+batteryLevel+'です。');
});
}
FlowerPowerはBLE接続して情報を取得します。
1.でBLEスキャンをしてFlowerPowerデバイスを探し出し、接続します。
2.で各メソッドを実行します。
実行してみましょう。
$node app.js
FlowerPowerを探しています...
FlowerPowerを見つけました。接続中です...
接続しました。
LED on!
土壌湿度は25.175161501381837です。
土壌温度は25.119048480359996です。
空気中の温度は26.058746040000006です。
照度は1.0485464488570566です。
バッテリーレベルは100です。
こんな感じで情報取得しつつ.ledPulse()
メソッドでLEDも光らせることが出来ていることが確認できます。
簡単ですね!
##まとめ
センサー買ってくれば自作も出来ますが、手軽さという点ではかなり優位性があるのではないでしょうか。
自宅の植物が水を欲しがっている
や空気が乾燥している
などの情報をスマートに取得するためのツールとして活用してみてはいかがでしょうか。
ホントにちゃんと運用するなら、近くにEdisonなどのBLEが利用出来るマイコンボードを置きつつロギングする必要がありそうですね。