PICK UP

ZUGYUUUN!を使って電気ケトルをスマートにしてみた:前編

LAB

小柴篤史

初めまして!都内の理系大学院で情報工学を専攻しております、小柴と申します。 とあるご縁からBunnyhopさんの学生アルバイトとして勤務中です。

今回は僕が初めて記事を書かせていただきます!頑張ります!!

電気ケトルの使いづらさを解消したい

弊社は電気ケトルが置いてある台所と仕事用の机が離れています。

電気ケトルは沸騰完了時に「カチッ」と音が鳴る(スイッチが戻る音)のですが、近くにいないと気づきにくいです。 そのため、お湯を沸かして作業を続けてたら沸騰したことに気づかず、また沸かし直すことに。。。 だからといってケトルを気にしすぎると集中して仕事ができません。

そこで、Raspberry Piなどのガジェットを使ってケトルの状態を監視し、お湯が沸いたらユーザに通知するケトル監視システムを作ります! 名付けて「スマートケトル」です! 概観としては、以下の図のようなイメージです。

gaiyou_smartkettle

期待できる効果としては、

  • 沸騰にすぐ気がつく
  • 仕事に集中できる
  • 能率アップ

などなど。これは作るしかないですね!

これがスマートケトルだ!

というわけで早速作っていきましょう。 最初に、通知システムにどんな機能があれば良いか検討します。

基本的には、

(1)なんらかの方法でケトルの沸騰を検知し
(2)なんらかの方法でユーザに通知する

といった形になると思います。 ガジェットを使った監視システムといえば、弊社サービスのZUGYUUUN!が活用できそうですね! というわけで、ZUGYUUUN!を使った(1)ケトルの監視方法、(2)ユーザへの通知方法を考えていきましょう!

(1) ケトルの監視方法

問題となるのは、「何を元に沸騰を検知するのか」です。一番単純な方法はお湯の温度を取得することですが、ケトルの中に温度センサを常時入れておくわけにもいきません。 何かいい方法はないか試行錯誤を重ねるうちに、沸騰中のケトルの表面温度がかなり高くなる(50〜60℃程度まで上がる)ことが判明しました。そこで、ケトルの表面に温度センサを貼り付け、その温度が一定値を超えたら通知する、という手段を取ることにしました!

(2) ユーザへの通知方法

次に通知方法を考えます。こちらは、色々な手法が考えられます。ブザーやライトなどの聴覚、視覚に直接訴えるもの、メールやslack通知を利用する手段もあります。お湯を沸かすたびにメールやslack通知が来るのも少し面倒ですので、今回はブザーとライトを使ってみましょう。 しかし、ケトルの近くに設置しても気づきにくい問題は解決できず、意味がありません。そこで、温度監視用とユーザ通知用の2台のRaspberry Piによる構成にして、通知用Raspberry Piをユーザの近くに置き、ZUGYUUUN!を使ってRaspberry Pi間で通信を行うことで対応します。これで通知の問題もOKです。

以上のアイデアをまとめると、以下のようになります。

overall_smartkettle

このように、スマートケトルは、

台所側に設置する温度監視用のRaspberry Pi
業務スペース側に設置するユーザ通知用のRaspberry Pi

の2台構成とします。

温度監視用Raspberry Piは、ケトル表面に設置した温度センサから表面温度を監視します。温度センサはケトルの使用時に邪魔にならないように、簡単に着脱可能とします。沸騰を検知した(温度が閾値を超えた)ら、ユーザ通知用Raspberry Piに伝え、通知用Raspberry Piはライトと電子ブザーを起動します。このような2台のラズベリーパイ間の通信もZUGYUUUN!を使えば簡単にできるのです!

以上で、スマートケトルの全体構成ができました。あとは作りながら適宜調節していきましょう!

※どうやってケトルが沸騰したことを監視するのか、とか、どうやってユーザに通知するのか、とか、考えることがたくさんあって大変ですが、楽しいです!電子工作の醍醐味ですね!

まずは温度監視システムを作ってみよう!

今回はシステム実装の最初の段階として、一つ目の機能の「温度監視」を行うシステムを作ってみたいと思います。それでは早速、必要な道具を検討していきます。 まずは

ZUGYUUUN!の動作環境であるRaspberry Pi。そして、温度を計測する必要があるので温度センサですね! ZUGYUUUN!APIは現在SPIに対応しているので、SPI通信に対応している温度センサを探します。すると、秋月電子にSPI対応のADT7310という温度センサを使った温度センサモジュールが売っていました。

この温度センサは105℃まで計測可能で、分解能0.0078℃と高精度です。また、ICのControlレジスタへ値を書き込むことで、計測モードをいくつか設定できるのですが、そのうちcontinious read modeに設定すると、240msごとに温度を自動的に再計測してくれます。 今回作成するスマートケトルでは数100ms単位で温度が取れれば良いので、性能としては十分ですね!これを使いましょう!

ADT7310

温度センサの写真です。黒いIC部分が温度センサの本体です。センサを電気ケトルの表面にしっかりと貼り付けられるように、付属のピンヘッダは基板の裏側に水平にはんだ付けします。

Raspberry Piと温度センサをつなぐと、以下のようになります。

IMG_7563

温度監視システムの実装と動作テスト

それでは、プログラムの実装を行います! 今回は、温度センサの動作確認が主な目的となります。そこで、まずは温度変化を検知できるか確認するため、温度センサの値が予め設定した閾値を超えたらLEDを光らせるプログラムを書いてみます。また、通知を行う閾値を低めに設定し、体温での動作テストを行ってみます。

まず最初に、PinOut図を示します。Raspberry Piと温度センサは、電源供給用の3.3VとGround、そしてSPI通信用の4つのIOポート(MOSI, MISO, SCLK, CE0)の計6本のIOポートで接続されます。LEDは、余っている適当なGPIOポートとGroundに、抵抗をかませて接続します。

temptest_pinout

プログラムは、温度センサの初期設定のため、最初に一度だけセンサのControl Registerに書き込みを行います。その後は500msごとにセンサの値を読み取り、読み取った温度をwebブラウザに表示します。また、温度を閾値との比較を行い、閾値より温度が低ければ何もせず、高ければLEDを光らせます。

プログラムを実行すると、このように温度がディスプレイに表示されます。

IMG_7616

動作テストを行ってみます。 通知を行う温度の閾値を30℃に設定して、体温を使って温度センサに熱を与えていきます。温度が30℃を越えると、、、温度がLEDが光ります!

IMG_7619

ちょっとわかりにくいですが、赤色LEDが点灯しています!これで、温度監視→沸騰検知→ユーザ通知(LED)の一連の流れがひとまず完成しました!

まとめと次回の予定

最後まで閲覧いただきありがとうございました。

最後にまとめですが、今回は、

  • ZUGYUUUN!を用いたスマートケトルの提案
  • スマートケトルの全体構成と二つの機能(温度監視、ユーザ通知)の検討
  • 機能その1: 温度監視システムの試作

を行いました。また、スマートケトル完成のための工程図は以下となります。

作業工程図_smartkettle

ここまでは順調に進んでいますね!

次回は、もう一つの機能であるユーザ通知システムの試作を行い、 スマートケトルを完成させたいと思います。

もし興味を持っていただけましたら、後編の記事を近日公開予定ですので、 弊社のblogをこまめにチェックしていただけると嬉しいです!
それではまた!