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

GAS(Google Apps Script)がつくりだす JavaScriptとIoTハードウェアの禁断の関係 @秋のJavaScript祭 in mixi 2017

pokiiio
November 18, 2017

GAS(Google Apps Script)がつくりだす JavaScriptとIoTハードウェアの禁断の関係 @秋のJavaScript祭 in mixi 2017

pokiiio

November 18, 2017
Tweet

More Decks by pokiiio

Other Decks in Technology

Transcript

  1. ポキオとは • Androidエンジニア • Twitter : @pokiiio • Blog :

    Androidのメモとか (http://relativelayout.hatenablog.com/ )
  2. 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/
  3. マイコンボード INPUT OUTPUT センサー各種 電気信号 時間トリガー HTTP-GET LED スピーカー ディスプレイ

    電気信号 HTTP-POST 「HogeなINPUTがあったら、FugaなOUTPUTをする」 みたいなロジックを自由にプログラムできる! Wi-Fi付きマイコンボードならHTTP-GET/POSTも!
  4. マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model

    B マイコンボード タスク ESPr Developer Nefry BT ESP32-DevKitC ※マルチタスク可能な子もある
  5. マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model

    B • Raspberry Pi上ではOSが走る • OSがnode.jsやJohnny-Fiveをサポートすれば Raspberry Pi単体でJohnny-FiveによるGPIOの 操作が可能
  6. マイコンボードによっては母艦PC必須 マイコンボード OS タスク タスク タスク Raspberry Pi 3 Model

    B • Raspberry Pi上ではOSが走る • OSがnode.jsやJohnny-Fiveをサポートすれば Raspberry Pi単体でJohnny-FiveによるGPIOの 操作が可能 ラズパイは大丈夫
  7. 例:電車遅延通知ガジェット ②HTTP-GET ⑥何色に 光らせるか通知 ⑦言われるが ままにLEDを 光らせる ①定期的に処理を開始 遅延情報 サーバー

    GAS ③さらに HTTP-GET ④情報取得 ⑤情報をパース 面倒な処理は GASでやっちゃう マイコンは 言われるがままに LEDをを光らせる
  8. Pros. • Google Apps Script ◦ 無料 ◦ 簡単にAPIを作れる ◦

    JavaScript • マイコンボード ◦ マイコンで難しい処理をする必要がない ◦ ロジック変更はGASをいじるだけ ◦ 簡単に複数台対応できる
  9. 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
  10. 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