市販の製品と“自作スマートリモコン”との仕組みの違いを考える
スマートリモコンは、なぜ外出先からでも操作できるのか?
あの暑くて長い夏はなんだったのか……と思うほど急に寒くなって、なかなか身体がついていきません。クーラーや扇風機を動かす季節から、エアコンを暖房に切り替えて動かしたい季節になってきました。季節が変わっても、引き続きスマートリモコンが活躍しそうです。
前回までは“自家製スマートリモコン”を作って、スマートリモコンの基本的な仕組みを再現してみました。しかし、市販のスマートリモコンと比べると多くの問題点(不足している機能)があり、そのうちのひとつが「家の中からしか操作できない」問題点でした。市販のスマートリモコンではこの問題を、APIサーバーをクラウド側に置くことで解決しているようです。
そこで今回(と次回)は、実際に市販のスマートリモコンを使ってみて、“自家製スマートリモコン”の機能と比べてみたいと思います。市販のスマートリモコンのサンプルとして、SwitchBotというメーカーの「SwitchBotハブミニ」(以下、ハブミニ)を入手しました。なお、SwitchBotでは何種類かのスマートリモコン製品を販売していますが、ハブミニは基本的なリモコン機能に絞ったシンプルなモデルです。
違い:「誰」が操作しようとしているのかを確認する仕組み
前回までの“自家製スマートリモコン”は、筆者の自宅内のWi-Fiネットワークに接続して、同じWi-Fiに接続したスマートフォンアプリ(以下、スマホアプリ)からの“おしゃべり”(通信)を受け取っていました。このWi-Fiに接続するためにはパスワードが必要であり、それを知っている人(たとえば筆者や家族)でないと接続できません。
そこで“自家製スマートリモコン”では「Wi-Fiに接続できている=リモコンを操作する権利を持っている」と見なし、スマホアプリ側でもAPIサーバー側でも「誰が使っているのか」を確認することはしていませんでした。「玄関ドアに鍵をかけているので、家の中のそれぞれのドアには鍵をかけない」のと同じことです。
一方、市販のスマートリモコンでは、インターネット上のクラウドにAPIサーバーを設置しています。この場合、まずは「このサービスを利用する権利を持つユーザーかどうか」を確認する必要があります。そのため、サービスを利用する前にユーザー登録や確認の作業が必要になります。
今回のハブミニでは、使用する前にまず、専用スマホアプリ(SwitchBotアプリケーション、AndroidとiOSに対応)のダウンロードとインストールを行います。
アプリを起動するとサービスへのログインが要求されますが、初めて使うので登録済みのアカウントはありません。画面下部にある「作成」ボタンをクリックしてアカウントを新規作成し、ログインします。
この段階ではまだですが、後ほどこのアカウントとユーザー(筆者)が持つハブミニをひも付けて登録します。これにより「このユーザーアカウントにログインできる=ユーザーが持つハブミニを利用する権利を持つ」というかたちで、APIサーバーを利用する権限があることを確認できるようになります。
なお、ログイン操作をするとスマホアプリからAPIサーバーに「メールアドレス」と「パスワード」の組み合わせが送信されますが、このおしゃべりはすべて暗号化されていますので、インターネット上でほかの誰かが盗み見る(盗聴する)ことはできず安全です。
違い:Wi-Fiの接続情報をスマホアプリから教える仕組み
続いてハブミニの設定を行います。ハブミニは、自宅内にあるWi-Fiネットワーク経由でインターネットに接続し、クラウド上のAPIサーバーとおしゃべりする仕組みですが、まだWi-Fiにつながっていません。そこでまず、ハブミニにWi-Fiの設定を行います。
“自家製スマートリモコン”では、Wi-Fiへの接続に必要な情報(SSIDやパスワード)をあらかじめマイコンのプログラムに書き込んでいました。ハブミニにも、何らかの方法でWi-Fi接続に必要な情報を教えてあげる必要がありますが、ハブミニにはボタン1つとLEDしかないので、長いSSIDやパスワードを入力することができません。
その代わりに、ハブミニでは「スマホアプリがハブミニにWi-Fi接続の情報を教える」仕組みを備えています。スマホアプリとハブミニがBluetoothという方式を使っておしゃべりすることで、Wi-Fi接続の情報を伝えるのです。Bluetoothは、スマホとワイヤレスイヤホン、スマホとスマートウォッチなど、身の回りの機器どうしのおしゃべりによく使われる近距離無線通信の方式のひとつです。
具体的には、ハブミニを電源に接続したうえで、SwitchBotアプリを起動、ログインし、「+デバイスを追加」ボタンをタップします。すると、スマホアプリはBluetoothを使って周囲にあるSwitchBotのデバイスを探索し、ハブミニを検出します。あとは画面の指示に従って、ハブミニ側のスイッチを長押しします。ハブミニのLEDが点滅し始めたら、スマホアプリとBluetoothでおしゃべりできる準備が整いました。
あとはスマホアプリで、このハブミニの名前や設置場所、そしてWi-Fi接続するための情報を登録します。Bluetoothを使ってハブミニにWi-Fiの情報が伝えられ、ハブミニがWi-Fiに接続できれば「オンライン」と表示されます。
Wi-Fi接続されたハブミニは、自動的にクラウド上のAPIサーバーとの通信を開始します。このときハブミニは自分固有のID番号を送信し、クラウドサーバー上でユーザーアカウントとひも付けて登録されます。先に触れたとおり、ユーザーアカウントとハブミニのID番号をひも付けることで、このハブミニを操作できるユーザーを制限している(ほかのユーザーは操作できないようにしている)わけです。
ちなみに、ハブミニのWi-Fi設定を行っている最中にほかのユーザーがSwitchBotアプリを起動して、正規のユーザーよりも先にハブミニを自分のアカウントに追加してしまえば“乗っ取られる”可能性はあります。ただし、Bluetoothの電波は遠くまでは届きませんし、ハブミニ本体のボタンも押さなければ登録できません。つまり、目の前にいなければ“乗っ取り”はできず、事実上はあり得ないと言っても差し支えないでしょう。
これでハブミニを使い始める準備が整いました。次回は、SwitchBotアプリを使ってハブミニ経由で操作する機器を登録し、“自家製スマートリモコン”との仕組みの違いを考えながら、実際に操作してみたいと思います。
週刊アスキーの最新情報を購読しよう