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

ひとりopniz Meetup vol.1「opnizとは(迫真)」

ひとりopniz Meetup vol.1「opnizとは(迫真)」

2023/3/23 IoTLT vol.97(https://iotlt.connpass.com/event/276206/) 登壇資料です。

opniz SDK for Node.js: https://github.com/miso-develop/opniz-sdk-nodejs
opniz Arduino Library for M5Unified: https://github.com/miso-develop/opniz-arduino-m5unified

田中みそ

March 23, 2023
Tweet

More Decks by 田中みそ

Other Decks in Programming

Transcript

  1. ひとりopniz Meetup vol.1
    「opnizとは(迫真)」
    田中みそ
    2023/3/23 IoTLT vol.97

    View full-size slide

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

    LINE API Expert

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

    View full-size slide

  3. opnizとは
    • M5StackといったESP32デバイスをNode.jsからobnizライクに遠隔制御
    するためのフレームワーク
    • Node.js SDKとArduinoライブラリがあり、WebSocketやTCPで相互通信
    を行う

    View full-size slide

  4. opnizとは
    await opniz.dis.fillpix(0xff0000)
    {
    “method”: “M5.dis.fillpix”,
    “params”: [“0xff0000”]
    }
    M5.dis.fillpix(0xff0000)
    たとえばM5ATOMライブラリの`M5.dis.fillpix(0xff0000)`を実行するとき…

    View full-size slide

  5. opniz
    obniz clone

    View full-size slide

  6. opnizの最初の発表スライドで答えは出ていた
    2021/3/16 の IoTLT vol.73 登壇スライドより

    View full-size slide

  7. opnizの最初の発表スライドで答えは出ていた
    試行錯誤の過程でM5ATOMで実装していたことをNode.jsへ移行していってる
    (サーバー)
    (デバイス)

    View full-size slide

  8. ハードウェアとソフトウェアで責務を切り分け、
    運用の中で変更が発生しやすいソフト側を容易に
    (書込不要で)変更できるようにする仕組み
    opnizとは(迫真)
    誤)JavaScriptでIoT開発できるっぽいやつ
    正)

    View full-size slide

  9. opnizの最初の発表スライドで答えは出ていた
    試行錯誤の過程でM5ATOMで実装していたことをNode.jsへ移行していってる
    (サーバー)
    (デバイス)

    View full-size slide

  10. デバイスの責務
    センサー値の取得、モーター制御といった電子パーツの制御
    (デバイスでしかできないこと)
    サーバーの責務
    ビジネスロジック
    (デバイスじゃなくてもできること)
    デバイスとサーバーで責務を分ける

    View full-size slide

  11. フロントエンド バックエンド
    クライアント / サーバー構成みたいな感じ
    クライアント サーバー
    (ブラウザ、アプリとか)
    HTTPS
    (JSON)

    View full-size slide

  12. デバイスエンド バックエンド
    クライアント / サーバー構成みたいな感じ
    デバイス サーバー
    WebSocket
    (JSON-RPC)
    opniz Arduino Library opniz Node.js SDK

    View full-size slide

  13. • 通信のオーバーヘッドが発生
    • 障害点、管理要素が増える
    • 個人開発としては障害切り分けがわかりやすい
    • 開発を分業しやすくなる
    デバイスとサーバーで責務を分ける影響

    View full-size slide

  14. デバイスとサーバーで責務を分ける影響
    • 通信のオーバーヘッドが発生
    • 障害点、管理要素が増える
    • 個人開発としては障害切り分けがわかりやすい
    • 開発を分業しやすくなる

    View full-size slide

  15. 「IoTエンジニア」
    IoTエンジニア
    ハードウェアもソフトウェアもいけるひと

    View full-size slide

  16. 「IoTエンジニア」
    IoTエンジニア
    ハードウェアもソフトウェアもいけるひと

    View full-size slide

  17. 「IoTエンジニア」
    IoTエンジニア
    ハードウェアもソフトウェアもいけるひと
    IoT フルスタック エンジニア


    View full-size slide

  18. 「IoTエンジニア」
    ハードウェア得意で
    ソフトウェアも少しいける人
    ソフトウェア得意で
    ハードウェアも少しいける人

    View full-size slide

  19. 「IoTエンジニア」
    ハードウェア得意で
    ソフトウェアも少しいける人
    ソフトウェア得意で
    ハードウェアも少しいける人
    共同開発!
    (opnizで…!)

    View full-size slide

  20. デバイスエンド バックエンド
    ひとり開発でもopnizで責務を明確にできる
    デバイス サーバー
    WebSocket (JSON-RPC)
    opniz Arduino Library opniz Node.js SDK
    見通しの良いアーキテクチャに!

    View full-size slide

  21. • opnizとは、ハードウェアとソフトウェアの開発を
    切り離してよしなに繋げるツール(フレームワーク)
    • デバイスとサーバーで責務をわけると良さげ
    • ハードウェア得意な人とソフトウェア得意な人とで
    共同開発したらよりすごいプロダクトが生まれるかも…!
    まとめ

    View full-size slide