Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Node.js + Raspberry Piで お手軽IoT
Masaki Koyanagi
June 05, 2017
Programming
2
1.3k
Node.js + Raspberry Piで お手軽IoT
Masaki Koyanagi
June 05, 2017
Tweet
Share
More Decks by Masaki Koyanagi
See All by Masaki Koyanagi
WebHID API でリングコン のセンサー値を取得してみた
mascii
1
480
Pros and Cons で考える Vue 2 Composition API
mascii
4
590
Joy-ConをJavaScriptでプレゼンリモコンにした話
mascii
0
260
TypeScript で Optional Chaining を使ってみた
mascii
1
470
Vue.jsでCSS Modulesを使ってみた
mascii
0
79
不変量
mascii
1
62
Nuxt.js+Firebaseで個人サービスを作るまで
mascii
1
1.5k
JavaScriptのバージョンの話
mascii
1
1.4k
あなたのお家に眠るラズパイを救出したい
mascii
4
2.6k
Other Decks in Programming
See All in Programming
Get Ready for Jakarta EE 10
ivargrimstad
0
2.7k
Terraform Plan/Apply結果の自動通知
ymmy02
0
280
GDG Seoul IO Extended 2022 - Android Compose
taehwandev
0
330
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
260
Licences open source : entre guerre de clochers et radicalité
pylapp
2
510
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
190
Running Laravel/PHP on AWS (AWS Builders Day Taiwan 2022)
dwchiang
0
170
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
1
1.9k
GoogleI/O2022 LT報告会資料
shinsukefujita1126
0
390
Modern Android Developer ~ 안내서
pluu
1
660
[DevTrends - Jun/2022] Arquitetura baseada em eventos
camilacampos
0
160
Java アプリとAWS の良い関係 - AWS でJava アプリを実行する一番簡単な方法教えます / AWS for Javarista
kanamasa
2
1.3k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
How GitHub (no longer) Works
holman
296
140k
Ruby is Unlike a Banana
tanoku
91
9.2k
The Language of Interfaces
destraynor
148
20k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
127
8.5k
Producing Creativity
orderedlist
PRO
334
37k
StorybookのUI Testing Handbookを読んだ
zakiyama
5
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1.1k
Designing for Performance
lara
597
63k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
GraphQLの誤解/rethinking-graphql
sonatard
28
6.6k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Transcript
Node.js + Raspberry Piで お手軽IoT We Are JavaScripters! @8th 1st
Day Name: Koyanagi Twitter: @mascii_k
自己紹介 小柳 昌生 (こやなぎ まさき) Twitter: @mascii_k 2015/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してみてください