この記事はJavaScript Advent Calendar 2018の12日目です
@n0bisuke さんと合わせて2日連続でjavascriptのIoTに関するAdventCalendarになりました。
・・・と言っても、話が続いてるというわけでは無いです
前半戦なので、全体感ということで、JavascriptでIoTをやろうとしたときに
どんなやり方があるよという話をしたいと思います。
IoTやるとどんな事ができるよ!の話はこちらのAdventCalendarでも見ていただければと思います。
それぞれマイコンボードごとに分類してます。
Raspberry PiでIoT
javascriptのパワーユーザーならこれが一番違和感なく簡単なんじゃないでしょうか。
Linuxが手足のように使えるレベルの知識がある人向け。
-
Raspberry Pi にnodejsをインストール・実行でIoTを行う
Raspberry PiはただのLinux PCなので、node.jsがそのまま入ります。そのまま動かせばjavasriptで入出力ができます。
Linuxの環境構築はとてもめんどいですが、パワーユーザーならきっと日常的にやってるはず。 -
CHIRIMENというミドルウェアを入れ、Raspberry Pi内のブラウザでjavascriptを実行
CHIRIMENというのを入れると、電子工作に必須のio制御が内部ブラウザからの関数呼び出しでできるます。ブラウザカスタマイズしたのかな?
ESPでIoT
RaspberryPiとは逆に、電子工作バリバリできまっせ!という人はこちらがおすすめです。
なによりも安い
-
ModdableをつかってJavascriptをコンパイルして書き込んで使う
javascriptだってコンパイルすればただのアセンブラ。こういう系はjavascriptの機能が一部使えないことが多いですが、どこまで使えるのかはちょっと探しきれませんでした・・・。 -
Mongoose OSをつかってJavascriptをコンパイルして書き込んで使う
こちらも同じで書き込んで使います。evalとか使えるのかな・・・?
Moddableとの違いもよくわかってないです。
ArduinoでIoT
電子工作といえばarduino!というぐらい簡単にプログラムが書けます。C言語なら。
JavaScriptで書こうとするとひと工夫必要です。
-
Johnny-FiveというOSをarduinoに入れ、有線で接続したPCでnode.jsを動かしarduinoに指示を出す
生のnode.jsを使うことができるので、なんでもやりたい放題です。そのかわり、有線でPCとArduinoをつないでおく必要があります。動作中ずっと。
obnizでIoT
クラウド上のAPIを叩くとマイコンの入出力が制御できるというマイコン。
他のボードとはインターネット越しの制御がよくも悪くも違う。
-
obnizが用意しているクラウドのサーバー上のAPIをjavascriptで叩いて使う
APIなのでブラウザから指示を送れます。ブラウザ上のボタンを押したらモーターが回る などのブラウザ連携ができるのが特徴ですね。 -
obnizが用意しているクラウドのサーバー上のAPIをnode.jsで叩いて使う
こちらも同じですね。node.jsでも動くのでサーバーサイドからもいろいろできます。
(むしろjavascriptじゃなくてもいい・・・?)
VUIと組み合わせてgoogle home連携とかも簡単です。
#まとめ