連載
» 2014年08月01日 18時00分 UPDATE

Arduinoで始めるWeb技術者のためのIoT入門(3):夏休みの子どもの自由研究に最適! 植物からメールをもらおう (1/3)

今注目のInternet of Thingsを実現するセンサーデバイスのインターフェースとしてArduinoを使い、電子工作の基礎から実装までを紹介する連載。今回は、観葉植物の土が乾いたことを土壌温度センサーで検知し自動的にメールを送信するシステムをJavaScriptで作ります。

[岩永義弘,株式会社インターネットイニシアティブ]

JavaScriptでIoT! センサー、Arduino、メールを連携させよう

「Arduinoで始めるWeb技術者のためのIoT入門」のインデックス

連載目次

 連載「Arduinoで始めるWeb技術者のためのIoT入門」の第3回目です。前回の「電子回路を作る基礎を学びNode.jsでボードを操ろう」では、電子回路を設計・作成するための知識とJavaScriptでLEDを点滅させる方法をお伝えしました。

 今回は、いよいよインターネット越しのサービスと連携させて、IoTの世界に踏み込みます。今回からArduinoを始めるという方は、これまでの連載を読み返しておいてください。

今回やること

 応用例として、観葉植物の土が乾いたことを検知し、自動的にメールを送信するシステムを作ります。

JSArduino3_01.jpg

 実装の過程で次のことができるようになります。

  1. センサーから値を読み取る
  2. メールサーバーと連携させ、観葉植物に水やりするタイミングを通知する
  3. 不要な通知を抑制するために状態管理を導入する


用意するもの

 今回は、Arduinoボード以外に土壌温度センサーとして「Grove」のモジュールを利用します。

JSArduino3_02.jpg

 Groveシリーズのセンサーは、Arduinoに最適な抵抗を含む回路をビルトインしています。このおかげで、センサーをつなぐだけで適切な給電と値の読み出しができ、非常に便利です。1500円程度で全てそろいます。

回路作成

 回路作成といっても、今回はパーツをつなぎ合わせるだけで完成します。30秒もかからないでしょう。

JSArduino3_03.jpg 1.ArduinoにGroveベースシールドをつなぐ
JSArduino3_04.jpg 2.ベースシールドのA0端子にセンサーをつなぐ

土壌湿度センサーから値を読み出してみよう

 前回の「Lチカ」同様、Node.jsのjohnny-fiveモジュールを駆使します。あらかじめ下記コマンドを実行しておいてください。

npm install johnny-five

 最初のコードは、1秒ごとに湿度を読み込み、コンソール出力するだけです。

var j5      = require('johnny-five'),
    arduino = new j5.Board();
 
arduino.on('ready', function(){
    var sensor = new j5.Sensor({
        pin : 'A0',
        freq: 1000
    });
 
    sensor.on('data', function(){
        console.log('data: ', this.raw);
    });
});

 5〜8行目でSensorコンストラクターの引数にpinとfreqを与えています。pinにはセンサーがつながっているピンを指定し、freqにはセンサー値を読み取る周期をミリ秒で指定します。

 10〜12行目で、センサーの値が読み込まれると、Sensorのインスタンスのrawプロパティにセットされ、dataイベントが発火します。

 センサーを水に出し入れして、値が変化することを確認しましょう。これで土台ができました。ここからがIoTの面白い部分です。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。