Slide 1

Slide 1 text

Node.js + Raspberry Piで お手軽IoT We Are JavaScripters! @8th 1st Day Name: Koyanagi Twitter: @mascii_k

Slide 2

Slide 2 text

自己紹介 小柳 昌生 (こやなぎ まさき) Twitter: @mascii_k 2015/07~2017/03 Web系エンジニアインターン 2017/03 東京理科大学大学院 修了 2017/04〜 SIerシステムエンジニア

Slide 3

Slide 3 text

でJSも喜ぶ IoTデバイスを作った話 1

Slide 4

Slide 4 text

学生(インターン)時代に作ったもの 学習塾向け入退室管理機器(Raspberry Piベース) ▸ NFCカードが持つIDを活用 ▸ 開発言語はJS(Node.js) + Python 2.x ▸ JSが塾に来てカードをタッチすると親にプッシュ通知 が届く仕組み

Slide 5

Slide 5 text

Pythonが必要な理由 ▸ ソニーPasoriの最新型 “RC-S380”を扱えるライブラ リが”nfcpy”しかない ▹ 最新といっても 2012/10 発売 ▹ libnfc が RC-S380 に対応していない ▸ 前回IoTLTの登壇者の方もPasori利用時 は Go + Python(nfcpy) だそそうです

Slide 6

Slide 6 text

どんなnpmパッケージを使ったか ▸ request ▹ http / https通信を行うためのクライアント ▸ onoff ▹ GPIO上のLEDをON/OFFする ▸ python-shell (+ nfcpy) ▹ 標準入出力でJSONを受け取る {"id":"01010456789ABCDE"}

Slide 7

Slide 7 text

IoT≠電子工作 2

Slide 8

Slide 8 text

Raspberry PiとテレビをHDMI接続してテレビの ON/OFFを確認する : node-cec http://qiita.com/mascii/items/132c064c30e321dea911

Slide 9

Slide 9 text

IoT≠電子工作 ▸ Raspberry Pi に4Gモデム(USBデバイス)とテレビ (HDMIケーブル)を繋げるだけでもIoTできる ▹ 「電子工作をしないIoT」もある

Slide 10

Slide 10 text

npmパッケージを作った話 3

Slide 11

Slide 11 text

Node.jsでもNFCを使ってほしい! ▸ HDMIのように、配線してnpmパッケージ入れるだけ でPasoriが使えたらいいのに... ▹ JSだけ書きたい... ▹ Python 書きたくない... ▹ JSなら非同期な処理が書きやすい ▸ npmパッケージを作ってみた!

Slide 12

Slide 12 text

node-nfcpy-id

Slide 13

Slide 13 text

デモ ▸ 私のPASMOをタッチすると LEDが青色に光り、それ以外 のカードをタッチするとLEDが 赤色に光る ▸ npmパッケージ ▹ node-nfcpy-id ▹ onoff

Slide 14

Slide 14 text

まとめ 4

Slide 15

Slide 15 text

まとめ ▸ request, Express, socket.ioなどRaspberry Pi 専用でないnpmパッケージも活用できる ▸ node-nfcpy-id というnpmパッケージ作った ▹ 近日中にQiitaに記事アップします ▸ 電子工作しないIoTもできる。そう、JSならね。

Slide 16

Slide 16 text

THANKS! Node.js + Raspberry Piでお手軽IoTしてみてください