Raspberry Pi自体にはAD変換の機能はないが、AD変換ICを接続することによってアナログ電圧を測定することができる。今回は、Raspberry PiのSPIインターフェースを介してAD変換ICと接続した。更に、AD変換ICに温度センサーICを接続して簡易な温度計測をしてみた。
AD変換IC | MCP3204-B | 12ビット、4チャネル、SPI接続 |
温度センサーIC | LM35DZ | 3端子、温度係数10mV/℃、測定範囲0-100℃、精度±1℃ |
AD変換の基準電圧はRaspberry Piの3.3Vを使用した。従って、分解能は3300 / 4096 = 0.8mv となる。温度センサーICは、その仕様から0-1.0Vの範囲で1mVの分解能で測定できれば十分なので、オペアンプ等で増幅せずに直接AD変換ICに接続した。また、テストのために、別のチャネルを使って可変抵抗による分圧を測定した。
WebIOPiをダウンロードして展開する
$ wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
$ tar xvzf WebIOPi-0.6.0.tar.gz
展開されたディレクトリでsetup.shを実行するとインストールされる。
$ cd WebIOPi-0.6.0/
$ sudo ./setup.sh
configファイルに接続したAD変換ICを登録する
$ sudo nano /etc/webiopi/config
:
[DEVICES]
adc = MCP3204
:
ブート時に自動的にWebIOPiのWebサーバが起動するよう設定したうえで再起動する。
$ sudo update-rc.d webiopi defaults
$ sudo reboot
WebIOPiのWebサーバのポートはデフォルトで8000なのでPCなどのブラウザからは次のURLでデフォルトのトップページが表示できる。なお、ログインのid/passwordは、標準でwebiopi/raspberryであるが、必要に応じてwebiopi-passwdコマンドで変更できる。
メイン画面: http:// Raspberry Piのipアドレス:8000/
GPIO Header画面: GPIOコネクタの設定と状態
Device Monitor画面: configファイルに登録したAD変換ICの各チャネルの生電圧が自動更新表示される。CH0の可変抵抗をまわして、0Vから3.3Vの間が測定されることが確認できた。CH1は室温とほぼ同じ23℃に相当する電圧0.23Vを示した。