$30 off During Our Annual Pro Sale. View Details »

TypeScriptでIoT開発できるらしいDeviceScriptのご紹介

 TypeScriptでIoT開発できるらしいDeviceScriptのご紹介

IoTLT vol.100(https://iotlt.connpass.com/event/285035/)での登壇資料です

DeviceScriptの仕組みや対応デバイス、ゲートウェイについてざっくり説明しています。

田中みそ

June 18, 2023
Tweet

More Decks by 田中みそ

Other Decks in Technology

Transcript

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

    View Slide

  2. 自己紹介
    田中 みそ (田中 大樹)
    Qiita: miso_develop
    Twitter: miso_develop
    Facebook: 田中みそ

    LINE API Expert

    IoT界隈やスマートスピーカー界隈に
    よくいます

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. 対応デバイス
    • おすすめは「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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 一般的な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

    View Slide

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

    View Slide