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 Slide

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

    LINE API Expert

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

    View Slide

  3. opnizとは

    View Slide

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

    View Slide

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

    View Slide

  6. opniz
    obniz clone

    View Slide

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

    View Slide

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

    View Slide

  9. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide