LoginSignup
26
26

More than 5 years have passed since last update.

JavaScriptから部屋の植物を監視。 Parrot Flower PowerをNode.jsから制御する

Last updated at Posted at 2015-12-04

おうちハックアドベントカレンダー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を見ながら書いてみいました。

app.js
'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が利用出来るマイコンボードを置きつつロギングする必要がありそうですね。

26
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
26