Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
意外と役に立ったopniz 田中みそ 2021/6/15 IoTLT vol.76 @Youtube
Slide 2
Slide 2 text
最近CO2センサーを買った • 前から気になってたけど5,000円以上 して高くて買えなかった • 今年の2月から秋月で2,500円ほどで 販売されていたのを知る • 「MH-Z19C」ってやつ • 買った https://akizukidenshi.com/catalog/g/gM-16142/
Slide 3
Slide 3 text
まずobnizで動かそうとしてみる • obnizパーツライブラリに「MH_Z19B」というひとつ前の型のがある • https://obniz.com/ja/sdk/parts/MH_Z19B/README.md • 動かなかった😢
Slide 4
Slide 4 text
M5StickCで動かしてみる • いくつか記事参考にして実装して動いた! • 「mhz19_uart 」というライブラリを使用 • https://github.com/nara256/mhz19_uart [参考記事] • M5StickC Plus + MH-Z19C の二酸化炭素計 • MH-Z19CとM5StickCで二酸化炭素濃度モニタリング https://twitter.com/miso_develop/status/1401067983313641473
Slide 5
Slide 5 text
動いたらデータを蓄積したい • 過去にSwitchBot温度計のデータをGoogle Spreadsheetsに 蓄積する仕組みを作ってあるので流用したい • データ送信にはGoogle SpreadsheetsにHTTP POSTする • ESP32でHTTPS送るには証明書をハードコーディングしたりと つらたんな想い出が… • あとあといろいろやることも考えるとラズパイから Node.jsで制御したい(obniz脳)
Slide 6
Slide 6 text
MH-Z19Cのobnizパーツライブラリ作るかな… MH-Z19B のobnizパーツライブラリのソースと MH-Z19C のArduinoライブラリのソースをにらめっこして MH-Z19C のobnizパーツライブラリ作るかな… と考えてたらふと思い出したのが、
Slide 7
Slide 7 text
_人人人人人人人人_ > opniz <  ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄ https://github.com/miso-develop/opniz
Slide 8
Slide 8 text
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 スケッチ書き込み 実装
Slide 9
Slide 9 text
問題を整理 • Node.jsで書いて遠隔制御したい • obnizのパーツライブラリが対応してない • Arduinoライブラリはある
Slide 10
Slide 10 text
Firmataのつらいとこ • なにかしらのパーツのライブラリって大抵Arduinoライブラリが まず作られるけど、obnizといったFirmata系の仕組みだと 各言語ごとにライブラリを別途実装しないといけない • たとえば今回だと、既にあるMH-Z19C対応のArduinoライブラリを そのままobnizから使えたらスーパー便利だけど、そうはいかないので obnizパーツライブラリとして別途実装する必要がある
Slide 11
Slide 11 text
opnizなら… opnizはArduinoライブラリ含むESP32上のコードを そのままNode.jsから実行できる仕組みになっている。 (橋渡しする関数クラスを書く必要があるけど定型的に書ける) TCP opniz Arduinoライブラリ opniz Node.js SDK スケッチ書き込み 実装 mhz19_uart mhz19_uartライブラリのCO2濃度 取得メソッドを実行する関数を実装 Node.js側から任意のタイミングで ESP32側で実装した関数を実行
Slide 12
Slide 12 text
無事さくっと実装できた! 家族4人での就寝中のCO2濃度がちょっとやばめだったり、 壁向きに机を置くとCO2濃度増え気味ということがわかってきた https://twitter.com/miso_develop/status/1401453640120864774 https://twitter.com/miso_develop/status/1401460641760636934
Slide 13
Slide 13 text
こんなケースで便利 • Node.jsで書いて遠隔制御したい • obnizのパーツライブラリが対応してない • Arduinoライブラリはある
Slide 14
Slide 14 text
是非ともお試しいただき、 ご意見・アイデア等頂けますと幸いです…! よろしくお願いいたします…!! https://github.com/miso-develop/opniz