Intel Edisonとは
Edisonは、Intelが市場投入した汎用コンピューティング・プラットフォームでIoTやロボティクスその他もろもろの開発を迅速に行えるように、さまざまな機能が組み込まれています。
Atom SoCが採用され、500MHzで動作するデュアルコア、デュアルスレッドのCPUと100MHz/32ビットのQuarkプロセッサー・マイクロコントローラーが搭載されています。その他、40個のGPIO、1GBのLPDDR3メモリ、4GBのeMMC、デュアルチャンネルのWi-Fi、BLEという必要とされそうなものすべてを、SDカード大の小ささに盛り込んで実装しています。詳細な仕様については、公式ページを参照してください。
開発では、C/C++直での開発がデフォルトでサポートされているのに加えて、Node.jsやPythonでの開発も可能です。またよく使われているArduinoやEclipseといった開発環境、Wyliodrinのようなビジュアルプログラミング環境、クロスプラットフォーム開発向けのツールであるIntel XDKといった開発環境を利用した開発も可能となっています。
今回やってみること
弊社ブログでのEdison不定期連載では、セットアップまでの内容を第1回で、BLE接続したSensorTagからのセンサー値取得とIntel IoT Platformで提供されているサービスであるIoT Analytics Dashboardとの連携までを第2回で書きました。
今回はIoT Analytics Dashboardを利用するのはそのままに、1台のみ利用だったEdisonの台数を2台に増やし、Dashboard経由で連携させて動かす簡単なサンプルを作ってみます。具体的には以下のようなイメージです。
1台目のEdisonには弊社ブログで行ったものを活用して、BLE接続したSensorTagから温度値を取得しています。取得した温度値はDashboardへ送られます。Dashboardでは、ルール設定ができるようになっているので、取得した温度値が設定したある一定の温度を超えた場合に、2台目のEdisonをコントロールし、接続されているLEDを点灯させます。
今回の利用環境
今回やってみることで利用する環境やライブラリなどを挙げておきます。冒頭に書いた通り、開発にはいくつかの言語が利用可能ですが、ここでは弊社ブログでの連載と同様にJavaScript(Node.js)を利用します。SensorTagからデータを取得する部分については弊社ブログでの実装をそのまま流用しますが、連携する2台目のEdisonについては、ロボティクスやフィジカルコンピューティング、IoTといった用途向けに開発されているフレームワークであるCylon.jsを使ってみます。
- 利用するEdisonのキット:Intel Edison Kit for Arduino
- EdisonのOS:Yocto Linux 2.1(執筆時点最新)
- Node.js:0.10.28(最新のYoctoイメージを入れた場合にデフォルトで利用できるもの)
- Cylon.js:1.0.0
- cylon-intel-iot(CylonのEdison用ドライバ):0.6.0
Edisonを使う上での初期設定やYoctoの最新イメージの導入については、Intel Developer Zone内にあるEdisonの公式サイトが充実してきましたので、そちらを参考にすれば、問題なく行えるはずです。以前はフォーラムに挙げられている各ユーザの実体験による情報を参考にしないとうまく行かなかったことも多かったですが、現在は基本的なことであれば、公式のドキュメント群を参考に進められるはずです。
また、Cylon.jsをEdison上で使うための手順についても公式サイトが詳しいので、ここでは割愛することにします。執筆時のバージョンでは、EdisonのデフォルトのNode.jsとnpmを利用して、特に問題なくインストールできました。