IoTへの取り組み

~ちまたによくあるトイレ使用表示機(着座感知機)を作成~
graphic

○IoTのインパクト度を検証する
 2016年8月、7手先を読んでいるという、ソフトバンクの孫社長が、ARM社を買収した。IoTの将来性を見込んでのことだという。IoTの将来性を探るために、遅ればせながら、当社も、ちまたによくある、トイレ使用表示機を作成・運用してみて、その将来性を探ることにした。

○IoTの浸透度と、これまでの手の届く実物
 IoTは、Internet of Things(モノのインターネット)の略だが、解説を読んでも、ピンとこないのが普通ではないだろうか。浸透度では、少し専門知識がある人なら、「まぁ、概要はわかるけどね。必要性がわからない」程度ではないだろうか。一般人にとっては、「また訳の分からない単語が増えて、うっとうしい」くらいの感想しかもっていないと思う。

 以前は、現物(入手可能な機器)が限られていた。IoTという単語とともに、製品として登場してきたのが、極小コンピューターの「Edison」や「Raspberry Pi」だ。だが、私的には、まったく食指が動かなかった。PCを小さくして、I/Oをつけただけのものにしか見えなかったからだ。

Arduinoでも、Wi-Fiモジュールを追加すれば、IoTっぽいものを作ることができるが、そこまでして、ネットに繋げたい題材が思いつかなかった。
たぶんIoTは、携帯電話での売上が鈍化して将来が不安になった業界が扇動しているだけで、いずれフェードアウトするのではないかと考えていた。

○認識を改めたESP8266チップ
 きっかけは忘れたが、2016年中旬にESP8266(日本ではESP-WROOM-02)を知る機会を得た。2014年頃から販売されていて、一部ではブームになっていたようだが、IoTに感心が薄かったためか、まったく知らなかった。遅ればせながら、このチップの存在を知ってからはIoTへの認識がかわった。まずは、600円程度で購入できる価格の安さだ。

 しかし表面実装パーツということもあり、そのままで簡単には使えない。スイッチサイエンスから、ESPr Developer(以下、ESPrと称す)というESP8266をモジュール化した製品があり、これを使うと比較的簡単に利用することができる。

ESPr Developer
 ESPr Developerは、ESP8266にFDDIと3.3Vレギュレータを追加して、MILピッチ化したものだ。価格は2,000円。ちょっと、お高くなってしまうが、スマホ社会=5Vで動いている世の中では、3.3Vレギュレータは必須だ。FDDIは、微妙だが、Micro USB、1本でPCに繋がる快適さを知ってしまうと、もう後戻りできない。ということで、結局のところ、このESPr Developerをベースに、IoT機器を考えていくことにする。

○貧相なI/Oながら、絶妙なハード仕様
 まずは26.8mm×37.8mmで、マッチ箱に収まるサイズである。これくらい小さくないと、ケースにいれた時に、バカでかくなってしまう。Edison」や「Raspberry Pi」だとケースに入れると簡単に"現場のおっさん弁当箱"くらいになってしまう。GPIOは多くないが、I2CやSPIとは別に3つPinが使える。アナログ入力も1Pinある。IoTは、そんなに多くの情報をやり取りしないので、このくらいで十分だ。

○充実の、ソフト(ライブラリ)仕様
 この手のチップは、仕様書とにらめっこして、ようやく、「~をやってみた」程度のことしかできないのが通例で、実用的なものを作るところまでの気力が残っていないのが普通だが、Arduino仕様ということもあり、ライブラリが充実している。TCP/IP通信は当然として、Webサーバー、NTPクライアント、FFSまである。

○これらの機能と着座感知機事例
 さてモジュールの説明は、ひとまず置いて、具体的な製作事例に話を移す。
 着座感知機では、着座状態を感知するのに、測距センサーを用いた。人感センサーを使うのも手だが、あれは動体しか感知しない。人が静止していると、センサーとしてはOFFになってしまう。利用中なのに照明が切れてしまうトイレがあるのは、そのためだ。測距センサーは、距離が電圧で出てくるので、A/D変換が必要だが、ESPrには、幸いにも1本備わっている。

 さて感知した結果を、どうするかも考えないといけない。別に表示器を作って、TCP/IPで送信するか?。そうすると複数箇所で見たい場合は面倒なことになる。そっか!。Webサーバーにしてしまえばいいだ。これなら、ブラウザさえあれば、PCでもスマホでも、どこからでも見られる。

 できれば利用状況のログもとりたい。データはどこに記録する?SDカードか?。おっと、FFS(内蔵メモリーの一部をファイル・ストレージとして使う機能)があるじゃないか。これを使おう。

 ログには、現在時間が必要になるが、さすがにRTC(リアルタイムクロック、時間をカウントするチップ)までついてない。ん?、NTP(ネットワークから時間を取得するプロトコル)ライブラリがあるぞ、これを使えばいいだ。

 ファームウェアのアップデートで、トイレまで往復するのが面倒だなぁ。なに、OTAライブラリが使える?。ネット経由でアップデートできるってことか?

 長くなってしまって申し訳ないが、こんな感じで、こっちがやりたいことを見透かされているように、メソッド(手法)が用意されていて、できない(やらない)言い訳ができないような、万全なサポートには脱帽した。

 結局、LED2個と、測距センサーを繋いだだけで、やりたいことがすべてできてしまった。一番、面倒だったのが、プラチックケースの加工だったという落ちだ。

○着座感知機からIoT製品を考える
 ネットワーク・パワーを再認識したといってよい。今までの電子機器は、リソース(使える資源。例えば入出力ディバイスやRTC等)を、すべて自前で持っていないとなにもできない。しかしインターネットに接続された時点で状況は一変する

 好例なのが、今回でも利用したNTPだ。仮にESPr Developer にRTCが内蔵されていたとしても、初期設定で現在時刻の入力が必要になる。そうなると、何個かの入力ディバイス(ボタンスイッチ)が必要になってくる。しかしNTPが利用できれば、初期設定はおろか、定期的に時刻修正もできるので、まったく何もする必要がない。

 リセットしようが停電しようが、いつでも正確な時間を利用できるという、まさに理想的な状況を甘受できる。正にシンクライアント (Thin client)といってよい。

 今回は利用しなかったが、IFTTTのようなサービスもあり、データを送信するだけでクラウド上にデータを保存、グラフ表示させたり、メッセージアプリにメッセージ送信を表示させたりできる。それらも無料で利用できる。

Webブラウザで状態を表示するため、PCでもスマホでも利用できる。

○IoTの将来性を考える
 結論からいえば、IoTは、一般には知られないところで、じわじわ浸透するように思う。IoTの課題は2つ。ひとつは経路、もう一つは電源だ。

 現状でも経路は、社内ならWi-Fi、屋外ならモバイル通信網だが、いずれもIoTを想定していない仕様なので、将来的にはモバイルキャリアからIoT用のアクセルポイントが提供されて、どこからでも、同じ方法で接続きるようになると思われる。(現状だと、利用するアクセスポイントを決めてして、アカウント情報も組み込んでおく必要がある)

 残る問題は電源だ、5年以上持つバッテリーが開発されない限り、バッテリー電源は難しい(電波の送信はそれなりに電力が必要)。どこでも当たり前に5Vが取れるようになっていれば、状況的には少し楽になるが、現状では、100Vから変換して使うしか無い。もちろん有線なのでケーブルの取り回しも必要になる。

 まずIoT通信網が確保できれば、様々な機器に、最初から組み込まれるようになるだろう。例えば、機器で不具合が発生した場合、エラーランプ、またはエラー番号が表示されることがある。このような場合に、機器からIoT通信網でサービスセンターへ情報送信(機器ID+エラー情報)し、解析を行い、スマホで機器のQRコード(機器IDの取得のため )を読み取らせると、対処方法を表示するようなことが標準でできるようになるだろう。セキュリティやプライバシーの問題は、常につきまとうと思われるが、折り合いをつけながら、徐々に浸透していくと予測する。