20
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IoTLTAdvent Calendar 2017

Day 12

Mongoose OSでJavaScript IoT入門 #IoTLT

Posted at

IoTLT Advent Calendar 12日目です。

JavaScript IoT

IoT機器に用いられるマイコンは、一般的にはC言語をベースに開発すると思います。これをJavaScriptを使って同等の操作を実現するアプローチを「JavaScript IoT」と呼びます。

「JavaScript IoT」のメリットは、Webエンジニアが手軽にIoTプロトタイピングを始められることです。「組み込みやC言語の知識はないけど、JavaScriptだったらわかる...!」という人にオススメです。

有名どころだと、Johnny-Fiveというロボティクスフレームワークがあります。
image.png

Mongoose OSとは

image.png

簡単に言うと、「IoT開発ボード用のOS」です。
Mongoose OSを使ったIoT開発では、

  1. IoT開発ボードにOSイメージを書き込む。
  2. Webエディタでコードを書く。
  3. ソースコードをIoT開発ボードに書き込む。

の大きく3つのステップがあり、一度OSイメージを書き込んだ後はWebエディタ上でコーディング→コンパイル→IoT開発ボードへのバイナリ書き込みが可能になります。
JavaScriptを使ってコーディングできることが最大の特徴です。

Mongoose OSが使えるIoT開発ボード

ESP8266, ESP32が載った開発ボードが一般的です。
スイッチサイエンスさんで販売されている「ESPr Developer」が使いやすいのでオススメです。
https://www.switch-science.com/catalog/3210/

image.png

開発の始め方

mos のinstall

CLIツール mos をインストールします。
https://mongoose-os.com/software.html

image.png

Webエディタの起動

mos がインストールできたら、Terminalで mos と入力します。すると、ブラウザ上でエディタが起動します。

4c4ccea3aa9d5fb59e9a78184c8ab516.gif

デバイスのセットアップ

エディタ起動時に、

  • デバイスの接続
  • OSイメージの書き込み(初回のみ)
  • WiFiへの接続

を行います。すべてブラウザ上でセットアップできるので順番に進めていきましょう。

image.png

コーディング

セットアップが成功したら Device Statusonline に変わり、コーディングが可能な状態になります。

image.png

基本的に init.js を編集します。
例えば「タッチセンサーをタップしたら、Touched!!とコンソール出力する」というだけの単純なプログラムは、以下のようになります。(不要なloadがあるので、実際はもう少し短いコードになります。)

image.png

AWS IoTとの連携

Mongoose OSは、AWS IoTとの連携を公式にサポートしています。
https://mongoose-os.com/docs/cloud_integrations/aws.html

これに関しては @1ft-seabass さんの https://www.1ft-seabass.jp/memo/2017/07/30/mongoose-os-espr-developer-32-aws-iot-connect/ が詳しかったのですが、最近Mongoose OS側の仕様が変わったようです...。
新しい方法について検証中なので、また後日このエントリをアップデートしたいと思います。

資料

先日、JavaScript祭りでMongoose OSについてLTしました。こちらもぜひご覧ください。
発表スライド: https://speakerdeck.com/shanonim/iot-with-mongoose-os-and-ifttt

image.png

参考リンク

20
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?