LoginSignup
3
3

More than 5 years have passed since last update.

Heroku ではじめる IoT

Last updated at Posted at 2018-06-26

2018/6/25 に行われた Heroku Meetup #21 の LT で発表した内容となります。
https://herokujp.doorkeeper.jp/events/75593

Node.js の IoT フレームワークである zetta を Heroku にデプロイして、 L チカ( LED を点滅させること)を実行するまでをまとめました。

Zetta を Heroku にデプロイする

上記のページに deploy to heroku button があるので、こちらを利用して Zetta を Heroku にデプロイします。

image.png

Heroku にデプロイした Zetta サーバーのURLを確認する

http://{your-app-name}.herokuapp.com

ブラウザに「{"class":["root"],」ではじまるJSONが表示されていれば、デプロイ成功です。

{"class":["root"],
"links":[{"rel":["self"],"href":"http://xxx.herokuapp.com/"},
{"title":"cloud","rel":["http://rels.zettajs.io/server"],
"href":"http://xxx.herokuapp.com/servers/cloud"},
{"rel":["http://rels.zettajs.io/events"],
"href":"ws://xxx.herokuapp.com/events"},
{"title":"Device Tutorial","rel":["http://rels.zettajs.io/peer",
"http://rels.zettajs.io/server"],
"href":"http://xxx.herokuapp.com/servers/Device%20Tutorial"},
{"rel":["http://rels.zettajs.io/peer-management"],
"href":"http://xxx.herokuapp.com/peer-management"}],
"actions":[{"name":"query-devices",
"method":"GET",
"href":"http://xxx.herokuapp.com/",
"type":"application/x-www-form-urlencoded",
"fields":[{"name":"server","type":"text"},
{"name":"ql","type":"text"}]}]}

ローカル PC にモックデバイスを作成する

上記のページの説明にしたがってモックデバイスを作成します。
Heroku の Zetta サーバーと通信するため、 link を追記する必要があります。

.link('http://{your-app-name}.herokuapp.com/’)
index.js
process.EventEmitter = require('events').EventEmitter
var zetta = require("zetta");
var led = require("zetta-led-mock-driver");
var DEVICE = require("./device.js");

zetta()
 .name("Device Tutorial")   
 .use(DEVICE)
 .link('http://{your-app-name}.herokuapp.com/')
 .listen(1337, function(err) {
   console.log("Zetta server is running on port 1337");
 });

モックデバイスを起動する

node.js v8 では正常に通信できないため、node.js v6 でモックデバイスを起動してください。

image.png

Browser でモックデバイスを操作する

上記のページの zetta-browser を Heroku にデプロイして、 Zetta サーバーの URL を指定するとモックデバイスを操作することができます。

http://{your-app-name}.herokuapp.com/#/device?url=http:%2F%2F{your-app-name}.herokuapp.com%2Fservers%2FDevice%2520Tutorial%2Fdevices%2Fb7427fa5-7f75-4d7b-89bc-aab1bcd2b788

image.png

ブラウザで turn-on 、 turn-off をクリックすると、モックデバイスを起動したコンソールに turn-on 、 turn-off が表示されることを確認できます。
image.png

Zetta とは

詳細は上記ページで確認できます。

・Node.js で開発されたIoT 用途のフレームワーク。OSS。
・ラズベリーパイなどのハードウェア側のハブとして利用できる。
・デバイスを検索して識別することが可能。
・リアルタイムに通信可能。
・エンドポイントとして REST API を利用できる。

3
3
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
3
3