hogehoge, world.

米国カリフォルニアのソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

Particle Mesh: Early Adopterはつらいよ (1) ~ イントロ

Particle Meshが先月到着し一ヶ月ほど触ってみたのでレポしてみる。Mesh+WiFiを備えたArgonを3台と、Meshのみ対応のXenonを2台、数ヶ月前にプレオーダーしていたものである。

f:id:tomoto335:20190103135050j:plain

こいつが何者かはHirotakaster先輩の記事に詳しいのでそちらを参照してもらうとして、筆者個人の注目ポイントや体験について書いていくことにする。

注目ポイント

1.Mesh Network

下記はParticleのBlogから引用した図であるが、この中のGatewayがArgonに相当、Repeater/EndpointがXenonに相当し、これらのデバイスIEEE 805.15.4、6LowPAN (IPv6 over Low power WPAN)、Threadといった新技術を用いた低消費電力・低速度なネットワークを構築する。ネットワーク構築は、デバイスに「このネットワークに参加する」という手続きを踏ませれば、あとは自動的にガラガラポンでデバイス間でIPv6が通るようになる感じ。

How to build a wireless mesh network – Particle Blog

https://blog.particle.io/wp-content/uploads/2018/06/wireless-mesh-network-roles.png

注目ポイント2: クラウドとのシームレスな接続

バイス側からクラウドにイベントを上げたり、クラウド側からデバイスの関数を呼び出したり変数参照したり、といったことがシームレスにできる(というプログラミングモデルになっている)。

バイス側のコードはC++Arduino的に書くのだが、ここで例えばParticle.publish()という関数を呼ぶだけで、経路を意識せずにEndpointからクラウドに直接イベントを上げることが可能である。

逆にクラウド側はREST APIを叩くことで、デバイスの関数を呼び出したり変数を書き換えたり、デバイスの状態を操作したり、これも経路を意識せずクラウド上に直接デバイスが見えている気分で扱うことが可能である。

バイスにデフォルトで仕込まれているTinkerというファームウェアがこのコンセプトのデモとしては申し分ない。Webブラウザやスマフォからピンの状態をあたかも直接いじっているかのように自由自在に読み取ったり設定したりでき、非常に面白い。

注目ポイント3: 充実のクラウド開発環境とOTAによるファーム書き換え

開発環境をクライアントPCにインストールすることなく、Web IDEでコードを書くことができる。さらにボタンを押せばクラウド上でビルドが走り、OTA (On The Air)でデバイスファームウェアのコードが書き込まれる。デバイスに物理的にケーブルをつないでモード切替ボタンを押して…というArduinoでおなじみの手順が必要がない。

注目ポイント4: 今風のデバイス登録experience

バイスクラウドに登録したりネットワークに参加させるための操作が「デバイスQRコードをスマフォで読み取る」というものになっており、あとはかなりの部分が自動化されている。この今風のexperienceはかなり新鮮。

注目ポイントのまとめ

Particle Meshは機能的にはArduinoなので、結局これで何ができるの?と聞かれたら、自分的には「ESP8266(WiFi付きArduino)で今までやってきたこととぶっちゃけそんなに変わらない」のである。ではどんな意味があるのか?というと、次のようなパラダイムの変化を予感させるところであろうか。

  • WiFiの電波が届かない所でも、電池駆動のXenonをばらまきさえすれば、勝手にクラウドにつながって仕事をしてくれる(例えばセンサデータを集めてくれる)」というのが本当なら、何か新しい扉が空きそうな予感がする。
  • バイスクラウド側に高度に統合・抽象化されていることで、開発や運用のマインドセットやexperienceが大きく変化する予感がする。例えばインテグレーションの設計がクラウド時に視点を置いたままできて、デバイスという視点であまり考えなくてよくなる。

平たくいうと、こういう技術や将来像を見せられるとテンション上がるのである。

次回、これらの期待が実際にはどうだったのか書く予定。「Early Adopterはつらいよ」に(たぶん)オチがつくよ!