Node.js + Raspberry Piでお手軽IoTWe Are JavaScripters! @8th 1st DayName: KoyanagiTwitter: @mascii_k
View Slide
自己紹介小柳 昌生 (こやなぎ まさき)Twitter: @mascii_k2015/07~2017/03 Web系エンジニアインターン2017/03 東京理科大学大学院 修了2017/04〜 SIerシステムエンジニア
でJSも喜ぶIoTデバイスを作った話1
学生(インターン)時代に作ったもの学習塾向け入退室管理機器(Raspberry Piベース)▸ NFCカードが持つIDを活用▸ 開発言語はJS(Node.js) + Python 2.x▸ JSが塾に来てカードをタッチすると親にプッシュ通知が届く仕組み
Pythonが必要な理由▸ ソニーPasoriの最新型 “RC-S380”を扱えるライブラリが”nfcpy”しかない▹ 最新といっても 2012/10 発売▹ libnfc が RC-S380 に対応していない▸ 前回IoTLTの登壇者の方もPasori利用時は Go + Python(nfcpy) だそそうです
どんなnpmパッケージを使ったか▸ request▹ http / https通信を行うためのクライアント▸ onoff▹ GPIO上のLEDをON/OFFする▸ python-shell (+ nfcpy)▹ 標準入出力でJSONを受け取る{"id":"01010456789ABCDE"}
IoT≠電子工作2
Raspberry PiとテレビをHDMI接続してテレビのON/OFFを確認する: node-cec http://qiita.com/mascii/items/132c064c30e321dea911
IoT≠電子工作▸ Raspberry Pi に4Gモデム(USBデバイス)とテレビ(HDMIケーブル)を繋げるだけでもIoTできる▹ 「電子工作をしないIoT」もある
npmパッケージを作った話3
Node.jsでもNFCを使ってほしい!▸ HDMIのように、配線してnpmパッケージ入れるだけでPasoriが使えたらいいのに...▹ JSだけ書きたい...▹ Python 書きたくない...▹ JSなら非同期な処理が書きやすい▸ npmパッケージを作ってみた!
node-nfcpy-id
デモ▸ 私のPASMOをタッチするとLEDが青色に光り、それ以外のカードをタッチするとLEDが赤色に光る▸ npmパッケージ▹ node-nfcpy-id▹ onoff
まとめ4
まとめ▸ request, Express, socket.ioなどRaspberry Pi専用でないnpmパッケージも活用できる▸ node-nfcpy-id というnpmパッケージ作った▹ 近日中にQiitaに記事アップします▸ 電子工作しないIoTもできる。そう、JSならね。
THANKS!Node.js + Raspberry Piでお手軽IoTしてみてください