2023年4月7日金曜日

CO2センサーの話 その2

前の記事の続きです。
タイトルは異なってますが、続きの内容なので「その2」としてます。

風呂に浸かりながらインターフェースについて検討。
やはり風呂での検討は思案が進んで良いのです。

単にセンサーの値を飛ばすだけが目的ならば、力技で繋いで済む話。
しかしどうせならば、更にプラスαを加えたいところ。
てなわけで、仕事場兼居間のCO2値をモニターしてやることに。
するとここで問題となるのが、「かんたんスマートモニター」までの距離。
「かんたんスマートモニター」の本体は隣の部屋の窓際にあります。
なのでここまでセンサーの線を引っ張る必要があります。
そうなると一番有力な手段は差動信号による非同期シリアルですね。

差動の非同期シリアルというとRS-485を思い浮かべる方が多いかと。
非常に一般的であり、「かんたんスマートモニター」でも一応サポートしてます。
しかしRS-485は半2重動作なのに対し、
CO2センサーの非同期シリアルポートは全2重動作です。
CO2センサーをRS-485のネットワークに乗せるには、
マイコン等による送受制御動作が不可避。

なのでここはRS-485に拘らず、全2重方式で通信することにしましょう。
いわゆるRS-422方式ですね。


ちなみに差動の非同期シリアル以外も検討してみましたが、
I2Cをケーブルで引き延ばすにはリピーターICを噛ます必要があります。
普段I2Cを使っていない身として、そんな石を持っているわけもなく、
わざわざ揃えなきゃならない & I2Cの実装の手間も大きい、
という点を顧みると全くお手軽さが無い為、I2C案は没です。

次にPWMを使う案ですが、PWM出力はLPFを通すとアナログ電圧値になるので、
「かんたんスマートモニター」のアナログ入力に繋ぐことで、
割りと簡単に値を読み取ることができます。
ケーブルを延ばすのも そんなに苦にはなりません。
ただ、まずLPF回路を作成する手間が発生することと、
「かんたんスマートモニター」標準のアナログ入力分解能が10bitという点がネック。
10bitということは1/1024までしか細分化できません。
せっかくセンサー自体は0から32000ppmまでの値が測れるのに、
10bitの分解能は ちともったいないですよね。
ということで、アナログ信号案も没に。


話を戻しまして、RS-422での通信ですが、
センサー側はシリアル通信線2本を差動信号トランシーバーに繋げば完了。
難しい回路ではないので、特に問題にはなりません。

「かんたんスマートモニター」側も、製作済みのモジュールを刺せば完了・・・・・
と思いきや、RS-422動作可能なモジュールが無いことに気づきました。 orz
既に有るのはRS-485動作専用品だったのです。
RS-422動作可能なトランシーバーを搭載しているにもかかわらず、
基板上でTXとRXを接続してしまっているので、半2重専用なのです。
う~~ん、さてどうしたものか。
この機会にRS-422動作可能な基板を作るのも有りかなぁ・・・・・

0 件のコメント:

コメントを投稿