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

意外と役に立ったopniz

 意外と役に立ったopniz

IoTLT vol.76での登壇スライドです。

「opniz」ならArduinoライブラリを使用した関数もJavaScript/TypeScriptからさくっと実行できます。
https://github.com/miso-develop/opniz

1dceaa2dcea41c16004f430c1723b20e?s=128

田中みそ

June 15, 2021
Tweet

Transcript

  1. 意外と役に立ったopniz 田中みそ 2021/6/15 IoTLT vol.76 @Youtube

  2. 最近CO2センサーを買った • 前から気になってたけど5,000円以上 して高くて買えなかった • 今年の2月から秋月で2,500円ほどで 販売されていたのを知る • 「MH-Z19C」ってやつ •

    買った https://akizukidenshi.com/catalog/g/gM-16142/
  3. まずobnizで動かそうとしてみる • obnizパーツライブラリに「MH_Z19B」というひとつ前の型のがある • https://obniz.com/ja/sdk/parts/MH_Z19B/README.md • 動かなかった😢

  4. M5StickCで動かしてみる • いくつか記事参考にして実装して動いた! • 「mhz19_uart 」というライブラリを使用 • https://github.com/nara256/mhz19_uart [参考記事] •

    M5StickC Plus + MH-Z19C の二酸化炭素計 • MH-Z19CとM5StickCで二酸化炭素濃度モニタリング https://twitter.com/miso_develop/status/1401067983313641473
  5. 動いたらデータを蓄積したい • 過去にSwitchBot温度計のデータをGoogle Spreadsheetsに 蓄積する仕組みを作ってあるので流用したい • データ送信にはGoogle SpreadsheetsにHTTP POSTする •

    ESP32でHTTPS送るには証明書をハードコーディングしたりと つらたんな想い出が… • あとあといろいろやることも考えるとラズパイから Node.jsで制御したい(obniz脳)
  6. MH-Z19Cのobnizパーツライブラリ作るかな… MH-Z19B のobnizパーツライブラリのソースと MH-Z19C のArduinoライブラリのソースをにらめっこして MH-Z19C のobnizパーツライブラリ作るかな… と考えてたらふと思い出したのが、

  7. _人人人人人人人人_ > opniz <  ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄ https://github.com/miso-develop/opniz

  8. opnizとは M5StackといったESP32デバイスをNode.jsからobnizライクに制御するための、 Node.js SDKおよびArduinoライブラリです。 ざっくり言うとサーバーを介さない、オープンソースな、obnizっぽい実装ができるなにかです。 仕組みとしてはESP32デバイスおよびNode.js SDKにてTCPサーバー/クライアントを実行し、 相互にTCP経由でJSONメッセージをやりとりしています。 TCP opniz

    Arduinoライブラリ opniz Node.js SDK スケッチ書き込み 実装
  9. 問題を整理 • Node.jsで書いて遠隔制御したい • obnizのパーツライブラリが対応してない • Arduinoライブラリはある

  10. Firmataのつらいとこ • なにかしらのパーツのライブラリって大抵Arduinoライブラリが まず作られるけど、obnizといったFirmata系の仕組みだと 各言語ごとにライブラリを別途実装しないといけない • たとえば今回だと、既にあるMH-Z19C対応のArduinoライブラリを そのままobnizから使えたらスーパー便利だけど、そうはいかないので obnizパーツライブラリとして別途実装する必要がある

  11. opnizなら… opnizはArduinoライブラリ含むESP32上のコードを そのままNode.jsから実行できる仕組みになっている。 (橋渡しする関数クラスを書く必要があるけど定型的に書ける) TCP opniz Arduinoライブラリ opniz Node.js SDK

    スケッチ書き込み 実装 mhz19_uart mhz19_uartライブラリのCO2濃度 取得メソッドを実行する関数を実装 Node.js側から任意のタイミングで ESP32側で実装した関数を実行
  12. 無事さくっと実装できた! 家族4人での就寝中のCO2濃度がちょっとやばめだったり、 壁向きに机を置くとCO2濃度増え気味ということがわかってきた https://twitter.com/miso_develop/status/1401453640120864774 https://twitter.com/miso_develop/status/1401460641760636934

  13. こんなケースで便利 • Node.jsで書いて遠隔制御したい • obnizのパーツライブラリが対応してない • Arduinoライブラリはある

  14. 是非ともお試しいただき、 ご意見・アイデア等頂けますと幸いです…! よろしくお願いいたします…!! https://github.com/miso-develop/opniz