obniz(オブナイズ)は、センサーやモーターなどの電子部品を、インターネット上でかんたんに操作
できるようにするシステムで、obniz OS(オブナイズ オーエス)、obniz Board(オブナイズ ボード)、obniz Cloud(オブナイズ クラウド)で構成
されている。obniz OSが搭載
されているマイコンボードobniz Boardに接続した電子部品は、インターネット上のobniz OSを経由してパソコンやスマートフォンから遠隔
操作ができる。これを使うと、IoT(Internet of Things、モノのインターネット)がかんたんにできるんだ。
『子供の科学』本誌では、obnizを使って家をスマートホーム(いろいろなものをインターネットにつないで遠隔操作できる家)にするための装置
をつくる連載
をしてきたよ。今回からは「スタプロ」のWeb連載として、引き続きスマートホームを実現する装置をつくっていくぞ。
これまでの連載は「obnizでつくろうスマートホーム!」旧サイトで公開しているよ。これまでにつくった装置のつくり方を解説しているので、まだ見たことがない人は見てみてね。Web連載は、本誌の連載の続きになっているので、基本的なことがわからなくなったら、本誌のバックナンバーを振り返ろう。
この連載では、「KoKa obnizスマートホームキット」が必要なので、持っていない人は「KoKa Shop!」で手に入れよう。プログラミングはスマートフォンを使うよ。親子でいっしょに取り組んでみてね。
1 手洗いやうがいをする時間を測りたい
手洗いは30秒、うがいは10~15秒を2回など、ベストな時間があることを知っているかな? でもわざわざタイマーで測るのは面倒
だよね。そこで、obnizの音を鳴らす機能を使って、楽しく手洗いやうがいができる装置をつくるよ! これで、ウイルスや細菌
を撃退
しよう。
2 装置のしくみを考えよう
手洗いうがいを始める前に、装置に手をかざすと、スマートフォンから一定の時間、音楽が流れるようにしていくよ。
装置に手をかざしたことを検知
するには、「赤外線
距離
センサー」を使うよ。スマートフォンから流す音楽は、「ハッピーバースデー」にするよ。ハッピーバースデーを2回歌うと、ちょうど30秒になるから、手洗いの時間を測るのにぴったりだね!
赤外線距離センサーの詳しい説明と、スマートフォンから曲を流す方法については、『子供の科学』2020年1月号に載っているから、ぜひ読んでみてね。バックナンバーはこちらから見られるよ!
3 装置をつくろう!
さっそく装置をつくってみよう。obniz Boardに部品をつなぐだけなのでかんたんだけど、つなぐ場所はまちがえないように注意してね。
まずはこの装置をつくる部品をそろえる。「KoKa obnizスマートホームキット」にあるもので、次の部品を使うよ。
① obniz Board
② 赤外線距離センサー
③ 3ピンジャンパーケーブル
④ 電池ボックス
⑤ 電池ボックス接続用USBケーブル
① 赤外線距離センサーと3ピンジャンパーケーブルをつなごう。
② obniz Boardと赤外線距離センサーをつなごう。赤い線をobniz Boardの0番、黒い線を1番、黄色の線を2番につないでね。
③ 電池ボックスとobniz Boardをつなごう。前回と同じように、コネクターの向きに注意しながら接続
しよう。
4 プログラミングしよう!
装置ができたら、電池ボックスのスイッチをオンにして、プログラミングエディターを立ち上げよう。立ち上げる方法は、「obniz Boardとスマートフォンを接続して、プログラミングエディターを立ち上げる」(旧サイト)を参考にしてね。それでは、プログラミングをしていこう。
① 一番上にある「“obniz”をobniz id“xxxx-xxxx”に接続する」ブロックだけを残し、ほかのブロックを削除
しよう。「obniz id」のところには自分のobniz IDを入力してね。
② 赤外線距離センサーのブロックと、obniz Boardのディスプレイに文字を表示するブロックを用意するよ。
温度計のアイコンから「“obniz”に“gp2y0a21yk0f”を接続する」ブロックを、丸のアイコンから「“obniz”に“Hello,world!”を表示する」を取り出してつなげよう。“Hello,world!”は「手をかざそう」に書きかえてね。
③ 矢印が円を描
いているアイコンから「ずっと実行」ブロックを取り出して、「obnizに“手をかざそう”を表示する」ブロックにつなげる。その中に、人差し指のアイコンから「“text”をコンソールに表示する」ブロックを入れるけど、“text”には、温度計のアイコンから「“gp2y0a21yk0f”の計測距離」ブロックを取り出して組み込もう。
これで、赤外線距離センサーと手の距離をコンソールに表示することができるよ。
④ 2本の矢印が描かれたアイコンから「もしも“true”実行」「“10” “=” “10”」ブロックを取り出す。温度計のアイコンから「“gp2y0a21yk0f”の計測距離」ブロックを取り出して、「“10”“=”“10”」アイコンの左側の“10”に組み込もう。“=”は“<”、右側の“10”は“100”にする。
「“gp2y0a21yk0f”の計測距離 <“100”」となるよ。これは、「赤外線距離センサーと手の距離が10cm(100mm)より小さくなった」ということを示している。
このブロックを「もしも“true”実行」ブロックの“true”のところに組み込む。できたブロックは③でつくったブロックの下に入れよう。
⑤ 丸のアイコンから「“obniz”に“Hello,world!”を表示する」ブロックを、人のアイコンから「“ハッピーバースデー”の曲を演奏
する」ブロックを取り出してつなげよう。“Hello,world!”は「手洗いモード」に変えよう。
できたブロックは、 ④でつくったブロックの中に入れよう。「赤外線距離センサーと手の距離が10cmより小さくなったら、obniz Boardのディスプレイに「手洗いモード」と表示され、ハッピーバースデーの曲が流れる」というプログラムになっているよ。
5 赤外線センサーに手をかざして試してみよう
ここで試しに装置を動かしてみよう。プログラムを実行して、赤外線距離センサーに手をかざしてみてね。ところが、予定していたように動かない部分があるよね。順番に確認して、直していこう。
5-1「手洗いモード」だけ表示してみよう!
obniz Boardのディスプレイを見ると、「手をかざそう」の下に「手洗いモード」が表示される。「手をかざそう」が消えて、その場所に「手洗いモード」が表示された方がかっこいいよね!
そこで、丸のアイコンから「“obniz”のディスプレイを消す」ブロックを取り出し、「“obniz”に“手洗いモード”を表示する」ブロックの上に入れよう。これで直前まで表示されていた文字を消すことができるよ。
実行してみると、「手洗いモード」だけが表示されるようになったね!
5-2 ハッピーバースデーを2回流そう!
ハッピーバースデーが1回しか流れないので、30秒が測れない。2回流すには、「“ハッピーバースデー”の曲を演奏する」ブロックを2つつなげればいいかもしれない。
でも、もっとかんたんな方法があるよ。
矢印が円を描いているアイコンから「“10”回繰り返します」ブロックを取り出して、「“ハッピーバースデー”の曲を演奏する」ブロックと組み合わせてみよう。“10”回を“2”回に変えてね。
このブロックを使えば、好きな回数だけ繰り返すことができるんだ。
5-3 手をかざした後、少し待ってもらおう!
赤外線距離センサーに手をかざした後、すぐにハッピーバースデーが流れてしまう。もう少し待ってもらえたら、手を濡らしたりハンドソープを出す時間が取れて便利だね。
矢印が円を描いているアイコンから「“500”ms待つ」ブロックを取り出して、「“obniz”に“手洗いモード”を表示する」ブロックの下につなげよう。“500”msをちょうどいい時間に書きかえてね。ここでは“3000”ms(3秒)に書きかえたよ。
実行すると、赤外線距離センサーに手を近づけてから、ハッピーバースデーの曲が流れるまで、少し時間がかかるようになったね。
今回はここまで! 手洗いモードをもう少し工夫すれば、もっと便利になるかもしれないので、プログラミングにチャレンジしてみてね。
次回は「うがいモード」もプログラミングして、装置を完成させるよ!