Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Node.js + Raspberry Piで お手軽IoT

Node.js + Raspberry Piで お手軽IoT

Masaki Koyanagi

June 05, 2017
Tweet

More Decks by Masaki Koyanagi

Other Decks in Programming

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. IoT≠電子工作
    2

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  12. node-nfcpy-id

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide