Slide 1

Slide 1 text

TypeScriptでIoT開発できるらしい DeviceScriptのご紹介 田中みそ 2023/6/18 IoTLT vol.100

Slide 2

Slide 2 text

自己紹介 田中 みそ (田中 大樹) Qiita: miso_develop Twitter: miso_develop Facebook: 田中みそ  LINE API Expert  IoT界隈やスマートスピーカー界隈に よくいます

Slide 3

Slide 3 text

vol.100 おめでとうございます!!🎉

Slide 4

Slide 4 text

DeviceScriptとは • 今年の5月末に突如界隈をざわつかせた TypeScriptでIoTデバイスを実装できるやつ • VS Codeを中心とした開発環境が整っている • ゲートウェイを介してネットワーク経由で プログラムを配信できたりする

Slide 5

Slide 5 text

仕組み • Javaみたいな感じ Javaで書いたコード Java バイトコード Windows Java VM コンパイル 実行 Mac Java VM Linux Java VM

Slide 6

Slide 6 text

仕組み • Javaみたいな感じ TypeScriptで書いたコード DeviceScript バイトコード RP2040 DeviceScript VM コンパイル 実行 ESP32 DeviceScript VM ESP32-C3 DeviceScript VM

Slide 7

Slide 7 text

対応デバイス • 推奨 • ESP32-C3 • ESP32-S2 • 制限あり • ESP32(USB接続に問題あり) • RP2040(ネットワーク機能未サポート)

Slide 8

Slide 8 text

対応デバイス • おすすめは「Seeed Studio XIAO ESP32C3」 • M5Stack系だと「M5Stamp C3U」 • 「M5Stamp C3」はNG(外部USBが未サポート) • ボード定義が未実装なのでESP32-C3(bare)のファームを使う • 「Raspberry Pi Pico W」はネットワーク機能が 使えないけどLチカとかなら試せる https://www.switch-science.com/products/8348 https://www.switch-science.com/products/7894 https://www.switch-science.com/products/8171

Slide 9

Slide 9 text

開発ゲートウェイ • ゲートウェイを通じてデバイス管理したり、デバイスと JSONメッセージをやりとりできる • デバイスを登録しておけばプログラムをOTAデプロイできる • VS Code拡張から接続できるし、Web APIで直接操作もできる • ESP32のみ対応(RP2040は非対応) • 「運用環境への展開を目的としたものではありません」

Slide 10

Slide 10 text

開発ゲートウェイ https://microsoft.github.io/devicescript/developer/development-gateway/gateway

Slide 11

Slide 11 text

開発ゲートウェイ https://microsoft.github.io/devicescript/developer/development-gateway/gateway

Slide 12

Slide 12 text

一般的なnpmモジュールは使えない • 「@devicescript/◯◯◯」といったnpmモジュールが対応してるもの • 現状公式で用意されたものしかない • プルリク承認されれば対応npmモジュールをリリースできるっぽい • npmモジュールを活かした開発がしたい場合はFirmata(RPC)系を使う • Johnny-Fiveとか、obnizとか、opnizとか https://github.com/rwaldron/johnny-five https://obniz.com/ https://github.com/miso-develop/opniz-sdk-nodejs

Slide 13

Slide 13 text

Raspberry Pi Pico WのLチカ記事 https://qiita.com/miso_develop/items/900b91d5548b4de9042b