Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GAS(Google Apps Script)がつくりだす JavaScriptとIoTハ...
Search
pokiiio
November 18, 2017
Technology
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GAS(Google Apps Script)がつくりだす JavaScriptとIoTハードウェアの禁断の関係 @秋のJavaScript祭 in mixi 2017
https://javascript-fes.doorkeeper.jp/events/66335
https://github.com/pokiiio/2017-11-19_JSFES
pokiiio
November 18, 2017
More Decks by pokiiio
See All by pokiiio
enebularで釣果情報を収集する
pokiiio
0
310
enebular + Sonos + 導電糸で 快適テレワーク環境を作ってみた
pokiiio
0
2.5k
東京の陽性者数ばかりTVに出ててずるくない?
pokiiio
1
180
実践Node-RED活用マニュアルで電子ペーパーネタを書きました!
pokiiio
0
1.7k
テレワークを1ヶ月してみて分かった 3つのこと
pokiiio
0
460
技術書典の進捗を監視する
pokiiio
2
510
SonoSwitch
pokiiio
0
120
SonoSwitch
pokiiio
0
130
冬休みを利用して子供と遊べるゆるメカトロを作ったよ
pokiiio
0
320
Other Decks in Technology
See All in Technology
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
470
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
1.1k
2026-09-08 そのJavaモダナイゼーション、AIに丸投げで大丈夫?IBM Bobで変わる品質と効率
yutanonaka
1
150
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
130
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
3
2.6k
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
470
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
510
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
1
110
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
130
人間はどの意思決定を手放せるのか
kawasima
15
8k
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
SREへの勘違いに気づいた後の話
tomodakengo
0
150
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Agile that works and the tools we love
rasmusluckow
331
22k
Amusing Abliteration
ianozsvald
1
310
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The untapped power of vector embeddings
frankvandijk
2
1.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Six Lessons from altMBA
skipperchong
29
4.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Transcript
GAS(Google Apps Script)がつくりだす JavaScriptとIoTハードウェアの禁断の関係 @秋のJavaScript祭 in mixi 2017 ポキオ
禁断って なんだよ
ポキオとは • Androidエンジニア • Twitter : @pokiiio • Blog :
Androidのメモとか (http://relativelayout.hatenablog.com/ )
IoTLT Connpass最大の IoT関係の勉強会で ちょいちょい登壇
デブサミ2017 コミュニティ展示を させていただきました
de:code 2017 前夜祭(day0) LTしてきました
dotstudioさんで 記事も公開 京急ネタです
ハンズオン会も 開催してます IoTの楽しさを広める活動
KQ-IoT
None
京急は神 *個人の感想です
KQ : Keikyu 京急好きの京急好きによる京急好きのためのIoTガジェット 俺得だっていいじゃないか、にんげんだもの
K: クソみたいな Q: クオリティ 凝ったことはしない、最小工数でやりきる、たまに力尽く クソコードだって、動けばいいよ、にんげんだもの
KQ-IoT
はい
IoTの話
Wi-Fiが使える マイコンボードが いっぱいある
Raspberry Pi 3 Model B https://www.raspberrypi.org/ ESPr Developer https://www.switch-science.com/catalog/2500/ Nefry
BT https://dotstud.io/shop/nefry-bt-single/ ESP32-DevKitC http://akizukidenshi.com/catalog/g/gM-11819/
そもそも マイコンボードって 何ができるの?
マイコンボード INPUT OUTPUT センサー各種 電気信号 時間トリガー LED スピーカー ディスプレイ 電気信号
たとえば「リモコンの操作」 ①ボタンを押す ②ボタンが押されたことを検知 ③赤外発光ダイオードを特定の 光らせ方で光らせる ④赤外発光 ダイオードが光る ⑤チャンネルが変わる
たとえば「リモコンの操作」 ①ボタンを押す ②ボタンが押されたことを検知 ③赤外発光ダイオードを特定の 光らせ方で光らせる ④赤外発光 ダイオードが光る ⑤チャンネルが変わる INPUT OUTPUT
それに 応じて
マイコンボード INPUT OUTPUT センサー各種 電気信号 時間トリガー HTTP-GET LED スピーカー ディスプレイ
電気信号 HTTP-POST 「HogeなINPUTがあったら、FugaなOUTPUTをする」 みたいなロジックを自由にプログラムできる! Wi-Fi付きマイコンボードならHTTP-GET/POSTも!
このプログラミングを JSで行えるのが…
None
JavaScriptでIoTができる! • Jonny-Fiveはnode.js上で動作する • JavaScriptでコーディングするとマイコンボードの GPIO(入出力端子)をコントロールできる • node.js⇔マイコンボードはFirmataというプロトコルで通信する
JavaScriptでIoTができる! • Jonny-Fiveはnode.js上で動作する • JavaScriptでコーディングするとマイコンボードの GPIO(入出力端子)をコントロールできる • node.js⇔マイコンボードはFirmataというプロトコルで通信する ただし大きな制約が
マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model
B マイコンボード タスク ESPr Developer Nefry BT ESP32-DevKitC ※マルチタスク可能な子もある
マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model
B • Raspberry Pi上ではOSが走る • OSがnode.jsやJohnny-Fiveをサポートすれば Raspberry Pi単体でJohnny-FiveによるGPIOの 操作が可能
マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model
B • Raspberry Pi上ではOSが走る • OSがnode.jsやJohnny-Fiveをサポートすれば Raspberry Pi単体でJohnny-FiveによるGPIOの 操作が可能 ラズパイは大丈夫
マイコンボードによっては母艦PC必須 マイコンボード タスク • 非力なマイコンボードだとOSなし • もちろんnode.jsもだめ • Johnny-Fiveでプログラミングするには 別途PC等が必要
• PCとマイコンボードはUSB接続 or Wi-Fi接続 が必要
マイコンボードによっては母艦PC必須 マイコンボード タスク • 非力なマイコンボードだとOSなし • もちろんnode.jsもだめ • Johnny-Fiveでプログラミングするには 別途PC等が必要
• PCとマイコンボードはUSB接続 or Wi-Fi接 続が必要 IoT感が薄れる
IoTでJSを もっと使いたいなぁ…
そこでGAS
Google Apps Script https://www.google.com/script/start/
Google Apps Script • JSベース • Googleが提供するサーバサイドスクリプト環境 • 雑に言うとGoogle版VBA:Google Suiteとの連携が簡単にできる
• オレオレWebAPIが無料で簡単に作れる
例:電車遅延通知ガジェット ②HTTP-GET ③情報取得 ⑤GPIOを操作 LEDを点灯 ①定期的に処理を開始 ④情報をパース 遅延情報 サーバー
例:電車遅延通知ガジェット ②HTTP-GET ③情報取得 ⑤GPIOを操作 LEDを点灯 ①定期的に処理を開始 ④情報をパース 遅延情報 サーバー AUTHとか
あると だるい パースとか だるい
例:電車遅延通知ガジェット ②HTTP-GET ⑥何色に 光らせるか通知 ⑦言われるが ままにLEDを 光らせる ①定期的に処理を開始 遅延情報 サーバー
GAS ③さらに HTTP-GET ④情報取得 ⑤情報をパース
例:電車遅延通知ガジェット ②HTTP-GET ⑥何色に 光らせるか通知 ⑦言われるが ままにLEDを 光らせる ①定期的に処理を開始 遅延情報 サーバー
GAS ③さらに HTTP-GET ④情報取得 ⑤情報をパース 面倒な処理は GASでやっちゃう マイコンは 言われるがままに LEDをを光らせる
Pros. • Google Apps Script ◦ 無料 ◦ 簡単にAPIを作れる ◦
JavaScript • マイコンボード ◦ マイコンで難しい処理をする必要がない ◦ ロジック変更はGASをいじるだけ ◦ 簡単に複数台対応できる
Cons. • 全部JavaScriptで書けるわけではない ◦ マイコンボード上の実装は Arduino言語を… ◦ ちょっと長い…(なんとかライブラリ化したい) • 基本的にトリガーはマイコンボードから書ける必要がある
◦ リアルタイム性がアレ ◦ ユースケースによっては許容できる
デモ
構成 ②HTTP-GET ③何色に光らせるか通知 ④言われるが ままにLEDを 光らせる ①定期的に処理を開始 GAS モバイル ルーター経由
ESP8266側のコード(一部) #include <ESP8266WiFi.h> #include <Adafruit_NeoPixel.h> #include <HTTPSRedirect.h> #define PIN 4
#define NUMLED 1 #define SSID "xxxxx" #define PASSWORD "xxxxx" #define HTTPS_PORT 443 #define HOST "script.google.com" #define URL "/macros/s/xxxxx/exec" #define FINGERPRINT "08:9E:B2:B8:77:37:3E:85:26:09:CA:29:13:D2:B0:57:26:DE:C4:6D" #define INTERVAL_SEC 5
HTTPSRedirect* client = nullptr; Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_RGB
+ NEO_KHZ800); void setup() { // Serialの初期化 Serial.begin(115200); Serial.println(""); // マイコン内蔵RGB LEDの初期化 pixels.begin(); // Wi-Fi接続開始 connectWifi(); } void loop() { // Google Apps Scriptを叩く String result = doRedirectGet(); // サフィックスを念のため確認 if (!result.startsWith("pokio")) { delay(INTERVAL_SEC * 1000); return; } // 光る letMeBlink(result); } 続きはこちら… https://github.com/pokiiio/2017-11-19_JSFES
GAS側のコード function doGet() { return ContentService.createTextOutput("pokio,255,0,0"); } デモでは色を決め打ちで…
サマリ • IoTやらマイコンボードをJSで扱える環境が増えている • 一番楽なのはRaspberry Pi+Johnny-Fiveだと思う • GASもユースケースによっては有用 • マイコンボードは触らずにGASだけ触れば挙動の変更ができる
Thank you