使い勝手のいいmbedでIoTをかじってみる
――『作って学ぶIoTサービス開発の基本と勘所 mbedとBluemixで始めるIoTサービス開発入門』の主題はmbedでIoTをかじってみることです。Raspberry Piなど他にも選択肢がある中で、なぜmbedを選ばれたのでしょうか。
花井:IoTに利用できるデバイスはRaspberry Pi、mbed、Arduino、PICなどいくつかあります。たしかにRaspberry Piは情報も多いんですが、ほとんどPCと同じなのであまり面白みがないように感じました。また、Linuxなので電源を落とすときにはシャットダウンする必要があって、やや扱いが面倒です。
かといってPICだとメモリーが少なく、ネットワークのプログラムを書くだけでも大変です。なので、だいたい真ん中くらいの使い勝手でかつ自由度も高いmbedを選びました。
また、本書ではブラウザでコーディングができるオンラインIDEも利用しています。インストールしなくても動かせるので、非常にとっつきやすいのがいいところです。
――皆さんは普段から様々なボードを触られているんですか?
花井:私はPICが多いですね。Raspberry Piも持ってはいます。
谷口:私もひととおり持っています。
山崎:私はRaspberry Piを持っていますが、IoTとして活用したことは実はまだないんです。ハードウェアは少し苦手なんですが、mbedであればアプリケーションを開発していた人にもどうにか扱えるかなと思います。
――本書は「かじってみる」がふさわしい内容にまとまっています。踏み込むとどこまでも凝った内容にできますが、そうならないようにするうえで意識したことはありますか?
花井:とりあえず、はんだ付けをやると敷居が高くなってしまうので、なるべくmbedのアプリケーション・ボードだけでできることを取り上げました。トランスポートに関してもMQTTのようなIoTに特化したプロトコルを使うのが通例とはいえ、できるだけそれ以外も扱ってみたいのと、さらにサーバーサイドも何でもいいということを見せたかったので、かなり色々と詰め込んでいます。
最初はPHPのWebサーバーだけあれば大丈夫という内容です。そのあとNode-REDという、ちょっと変わった開発環境でMQTTを取り入れる方法を。最後に、はんだ付けも少しやりながら音声認識に取り組めるようにしました。
――音声認識は最後の第7章で扱うメインテーマですね。
花井:Amazon Echoなどと同じで、音声認識は人間の声を認識させてコンピューターを動かす仕組みです。デバイス側で音声認識をするのは大変なんですが、サーバー側で処理できれば開発はそんなに難しくないということを解説しています。
――前提知識としてはどういったことが必要でしょうか。
花井:回路についてはわからなくても大丈夫です。しかし、サーバーサイドアプリケーションの作り方はある程度知っている必要がありますね。あと、C++を書くことができれば本書は問題なく読み進めていけると思います。
ちなみに、Raspberry Piは別格とはいえ、IoTのような組み込みをやるなら、今のところCかC++でないとできません。
――Web系のエンジニアだとC言語には触っていない方が多そうですね。皆さんの周りだとけっこういらっしゃるのでしょうか。
花井:ほとんどいないですね(笑)。
山崎:mbedのデベロッパー向けサイトやオンラインIDEから他人が書いたソースコードを見ることができます。簡単な制御であれば既にあるライブラリを用いて対応できるんじゃないでしょうか。
あと、今回は本番IoTではなくプロトタイプ的なものなので、それほど厳密なコードは意識しなくてもいいのかなと思います。
章ごとに違った入口がある
――内容についても少し教えていただけますか?
谷口:「第3章 センサーのデータをWebサーバーに送付するmbedアプリケーションを作成する」は私が担当したんですが、CとPHPを使うのはハードルが高いような気がして、なるべく長くならないように書きました。
IoTの面白いところはまさに章題にあるように、センサーで取得した面白いデータをサーバーに送付するところです。データベースに書き込むためのサーバー側のPHPアプリケーションも作成しますが、それぞれのコードがどうというよりは、面白い部分を見せられればいいなと思っています。
――Dockerも使われていますね。
谷口:IoTだから特殊なことをすると思われてもよくない一方で、新しいことを入れ込みたいという気持ちがありました。PHPについても、WebだとPHPはよく使われているので、Webをやっている人たちに人間が入力する世界だけでなく、機械からデータを集める世界もあるということを知ってほしかったんです。
本書はそもそもCodeZineでの連載が元なので、章ごとに違った入口が設けられていると考えていただきたいですね。連載時は仕事でIoTの案件を担当していて、そこで得たエッセンスを紹介したいと思っていました。
山崎:私が担当した「第1章 mbedの概要とオンラインIDEの使い方」、「第2章 mbedから取得したセンサデータをWebアプリケーションで可視化する」、「第6章> Node-RED in Bluemix for IBM Watson IoT Platformによる開発とIoTアプリケーション開発の留意点」は極力コードを書かずに、既存のものを組み合わせてできるようにしました。
仕事やプライベートとIoTの接点
――皆さんはどんなきっかけでIoTに興味を持たれたのでしょうか。
花井:私はIoTというより、PIC自体に興味を持ちました。25年近く前にPIC16C84が登場したとき、これは革命的だと感じたんです。というのも、それまではハードウェアを作るにはロジックICを組み合わせて回路を作らなければなりませんでした。ところが、PICというマイコンはもうハードウェアとしてでき上がって、しかもすべてソフトウェアで動かせるわけです。
というわけでPICを気に入ってしまい、その流れでIoTにつながっていきました。
谷口:私は本職がインフラ系でデータベースやWebサーバーをセットアップするのが仕事です。そのためプログラミングをメインでやったことがあまりありません。ただ、デバイスに関してはIoTが盛り上がってきて色々な会社が推進するようになり、変わったものもあって純粋に面白そうだと思いました。
もともとあったDockerなどの知識を広げていけばIoTにアプローチできるかなと考えて勉強していましたね。
山崎:私は会社の執筆サークルに所属しているので、何を書こうかと常に考えています。IoTに関しては電子工作をやってみたいという気持ちがあって、でもはんだ付けはしたくないと思っていたので、本書や連載は書くネタとしてちょうどよかったんです。
――そもそもなのですが、普段の仕事やプライベートとIoT、本書はどういった接点があるのでしょうか。
花井:私は3年くらい前までガチガチのSIをしていました。そのあとクラウドの部門に異動し、責任が取れるなら自由にできるという立場になったんです。とはいえ、いくら便利だという製品や技術でもいきなり使うのはリスクがあるので、自宅のサーバーにデプロイして運用してみます。いけると思えば本番で使いますので、仕事とプレイベートはけっこうつながっていますし、その延長に本書もあります。
谷口:インフラの仕事だと金融が多く、最近OSSを利用するようにもなりましたが、利用する技術の変化は比較的ゆっくりしています。ですので、趣味で流行りの技術を先食いしておくと仕事で役に立つんですよ。
山崎:私もお客様が大手企業や官公庁が多いので、開発言語やミドルウェアをおいそれと変えることはできませんし、変わる速度も早くありません。新しいことを勉強しようとするとどうしても業務時間外になるので、ニュースで見たテクノロジーを休日に試してみたり、業務で触らない言語で開発したりしています。
昨年からクラウドの部門に異動して管理職になったので、メンバーにクラウドのテクノロジーを学ばせたりビジネスを推進したりすることが仕事になりました。「知らない」では済まされないので、立場的にも色々と勉強しています。
社外も巻き込んだ執筆サークルへ
――本書、また元となった連載も、日本IBMの執筆サークルの皆さんで書かれています。花井さんが発起人とのことで、どんな経緯で発足されたのでしょうか。
花井:執筆サークルは今年で7年目くらいで、10人前後が所属しています。発足当時、私は本を書いていたんですが、ITスペシャリスト(社内での職種)のトップの人に自分だけでなく社内を巻き込んで書いてみてはどうかと言われたんです。人に書かせて出版社に売り込めと。さすがにそれは厳しいので(笑)、メンバー同士で批評し合うくらいならできると言って請け負ったんです。
ところが、やってみたら意外といい原稿ができたので、実際に出版社に持ち込んだんですよ。そのとき引っかかったネタが、実は今年ようやく本になりました。5年以上書いていたと思います。『進化する銀行システム』(2017年、技術評論社)という、銀行のシステムがどうなっているのかを解説した壮大な本です。
――谷口さんと山崎さんが執筆サークルに参加しようと思ったきっかけは何だったのですか?
谷口:サークルでは活動報告としてポスターセッションを毎年行っています。それをたまたま見たとき、展示者に「執筆って簡単なんですよ」と言われて、「じゃあ誰でも本を出せるんだ」と思って参加しました。実際にはそれほど簡単ではなかったんですが(笑)。
山崎:私はこれまではある製品やあるテクノロジーについて勉強することが多かったんですが、もう少し汎用的なテーマはないかと思って探しているときに、執筆サークルに出会いました。
――参加してみてどうでしたか?
谷口:「いっぱい書くぞ」と意気込んでいたんですが、最初の夏休みに挫折しました(笑)。量を書くのが本当に大変で、A4で20ページくらい書こうとして10ページくらいで手が止まったんです。書くのは体力がいりますし、勉強も必要です。未熟だと痛感した1年でした。
それまでアウトプットする経験がほとんどなく、それがいかに難しくて大切か、そして普通に勉強するのと書くつもりで勉強するのは違うんだと気づきました。
とはいえ、ググって自分の名前が本と一緒に表示されると嬉しいですね。こういう経験はなかなかできません。
山崎:執筆サークルのメンバー同士が同じプロジェクトにいるということはほぼありませんから、定期的な情報交換ができたり、相談できたりするのはありがたいです。別のプロジェクトでメンバーと顔を合わせることになったときもコミュニケーションしやすいですね。
花井:今年からは社外からもメンバーを入れようと思っています。それは、社内的にも積極的に外部へ情報発信する機運が高まっているためです。我々としてもやってみたかったんですよ。
社会問題にまで視野を広げてIoTを考える
――少し視野の広い話になりますが、皆さんはIoTの現在と将来をどう捉えられていますか?
花井:私は入社したときPOSを開発していました。POSは組み込み機器の一つで、メンテナンスはけっこう大変です。サーバーサイドのアプリケーションなら、バグもすぐ修正できます。ですが、組み込み機器は全国に散らばっているので、故障したらそれぞれ修理したり交換したりする必要があります。各地に拠点があればいいんですが、ないとしたら担当者が全国を回らないといけません。
ですから、IoTを推進するのはいいとしても、全国各地にある機器が故障したらどうするかについてはよく考えておく必要があります。それなりに規模のある企業でないとメンテナンスが行き届かないのではという懸念がありますね。
谷口:私が気になるのは、どうやって稼ぐのかということです。もちろんIoTは楽しいんですが、稼ぐにはかなり知恵が必要でしょう。本書でも温度センサーからの情報をサーバーに送付する方法を解説していますが、これでどうやって稼げばいいのかというと……(笑)。
花井:IoTをやるには守備範囲が広くないと難しいですよね。組み込み、サーバーサイド、データの統計処理などそれぞれ専門的な素養が必要です。全部一人でできる人材はなかなかいないでしょう。
山崎:製造業では生産ラインでの故障の検知にIoTが利用されているようですが、それ以外の基幹業務でのIoT利用のシナリオは意外と思いつきづらいのではないでしょうか。どちらかというと、スマートフォンやスマートウォッチなど通信機能の備わった製品と連動して、個人の生活を楽に、便利にするといった用途のほうが想像がつきやすいですね。
谷口:冷蔵庫などの家電を作ってきた企業がIoTに取り組もうとしていますが、既に売れた分はどうにもできませんから、そこはアイデアを絞っていただきたいですよね。
花井:アイデア勝負なところは面白いですよね。たとえば、バスの運転手が過労で事故を起こさないために加速度センサーを使うことができるかもしれません。普段の加速度と違うから過労の疑いあり、といったものです。
山崎:今まで解決できなかった社会問題にまで広げて考えてみると、いいソリューションが出てくるかもしれません。
花井:日本には「みちびき」という誤差数センチメートルで場所を特定できる日本版のGPSがあります。技術的にはすばらしいんですが、では何に使えばいいのかというと難しいんです(笑)。
着想はあると思いますが、提案してビジネスにできるかとなるとどれも二の足を踏んでしまうようなもので、IoTも今は似た状況なのではないでしょうか。だからこそ、アイデア勝負なんです。