温度モニター
BBBを使った温度モニターの作成についての情報収集。
以前作成した温度/湿度/大気圧センサはここに記述
経緯
PF-ARのBPMラック内の温度を計測して、BPMデータと温度の相関を調べるために多(?)チャンネルの温度計を複数箇所に置きたいらしい。
多チャンネル温度モニターはいろいろなメーカーから出ているが、価格とEPICSの問題(?)からBBBかラズパイでやりたいらしい。
構成案
絶対値よりも相関の方が重要なので、温度を測定するセンサーはデジタル出力がお手軽でいい。
だが、BBB本体につけてしまうとBBBの発する熱で、何を測っているのかわからない状態になるので、何らかの方法で本体から離す必要がある。
デジタル出力のセンサーはほとんどがI2Cで出力するので、今回はI2C<->BBB間のデータ送受信をどうするか考える。
温度センサー
センサー部分は作成済みのものを繋いだ方が、センサー部だけ壊れても交換できるのでいい気がする。
- SHT31使用 高精度温湿度センサモジュールキット
- 温湿度センサ モジュール AM2320
- BME280使用 温湿度・気圧センサモジュールキット
- ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール
- SHT-35 1チップ高精度温度・湿度センサ・モジュール
- DC1050 1チップ温度・湿度センサ・モジュール
I2C extender
BBBには本体にI2Cマスターポートが2つあるので、それに直接接続する方法。
一般的に使われてるI2C bus extenderは P82B715 I2C バス・エクステンダ
それを使った製品もある。
Active I2C Long Cable Extender P82B715 Module
それ以外でも、こんなものもある。
Pololu I2C 長距離差動式エクステンダー
- メリット
- 接続に必要なソフトウェアは、OS標準のI2Cデバイスドライバのみ
- EPICS用のdriver supportは作成済みなので、IOCは asyn + streamdeviceで作成可能
- デメリット
- 専用のケーブルを作成する必要がある。(RJ45で代用(?))
- ケーブルのノイズ対策が必要になる可能性がある。
- センサーICを複数繋いだ時に、I2Cアドレスが重複する可能性が高い。
USB<->I2Cコンバータ
BBBとはUSBで接続し、USBデバイスのI2Cコンバート機能を使う方法。
- USB UART + CPU
USB UART変換チップの先にI2CマスターポートがあるCPUを接続し、そのCPUでデータを文字列変換してUSBに送信する。- USB UART
- CPU
- メリット
- 接続はUSBケーブルのみ
- デバイスドライバはLinux版もある。(open source版も)
- asyn + streamdeviceでIOCを作成
- CPUの場合には複数接続可能
- デメリット
- 基板作成が必須
- 複数のプログラムを作成する必要がある。(CPUを使う場合)
以前、温湿度/大気圧を計測する基板を作成するときも、電源と信号線が一体化できてケーブルも標準化されているからUSB+CPUで作成したはず。
今回は、BBB上のI2CやUSB-HIDを使うための環境がある程度整えられているので、別の選択肢でも実現は可能。
実験
今の所、候補としてはFTDI FT260を使う方法と、以前と同じUSB UART + CPUが最有力候補。
FTDI FT260の開発ボードUMFT260EV1Aを入手してもらったので、そちらで実験する。
制作
最終的には、FT260ではなく、以前と同じUSB UART + CPUの方式で制作することになった。