Raspberry PiとZabbixでアナログセンサーを読み取り - ステップバイステップガイド
Raspberry PiとZabbixでアナログセンサーを読み取り
Raspberry Piにはネイティブなアナログ入力がありませんが、MCP3008 10ビット8チャネルADCを使用すれば、アナログ機能を簡単に追加できます。これはPiのGPIOヘッダーにSPIバス経由で直接接続され、追加コンポーネントを必要としません。
このチュートリアルでは、MCP3008をPiに配線し、Pythonで光従属抵抗(LDR)を読み取り、データをZabbixに供給して監視する手順を説明します。
ハードウェア:
- Raspberry Pi
- MCP3008 8チャネルADC
- 光従属抵抗(LDR)
- 10kΩ抵抗
- ブレッドボード
- 配線少し
SPIバスの理解
MCP3008は、マスター/スレーブモードで動作する全二重同期シリアルプロトコルであるSPIインターフェース経由で10ビットデジタル値を送信します。複数のスレーブがバスを共有でき、各々独自のCSラインで選択されます。
Raspberry Piでは、SPIは4ピンヘッダー(GPIO8、9、10、11)で公開されています。ハードウェアSPIドライバーを有効にするには、ブラックリストファイルを編集:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
spi-bcm2708を含む行を見つけ、先頭に#を付けてコメントアウト。保存して再起動:
sudo reboot
再起動後、ドライバーがロードされているか確認:
lsmod | grep spi_bcm2708
spi_bcm2708がリストされるはずです。
Python SPIライブラリのインストール
PythonからSPIバスにアクセスするため、py-spidevを使用します。まずPython開発ヘッダーをインストール:
sudo apt-get install python-dev
次にライブラリをダウンロードしてインストール:
mkdir py-spidev cd py-spidev wget https://raw.github.com/doceme/py-spidev/master/setup.py wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c sudo python setup.py install
MCP3008をRaspberry Piに接続
| MCP3008ピン | Raspberry Piピン |
|---|---|
| VDD | 3.3V |
| VREF | 3.3V |
| AGND | GND |
| CLK | GPIO11(P1-23) |
| DOUT | GPIO9(P1-21) |
| DIN | GPIO10(P1-19) |
| CS | GPIO8(P1-24) |
| DGND | GND |
MCP3008のCH0-CH7の8ピンがアナログ入力として機能。この例ではそのうちの1つをLDRに接続します。
光従属抵抗(LDR)の使用
我々はLDR EG & G Vactec、VT43、CdS、8Ω-300kΩを使用。通常の照明では抵抗は約10kΩ、暗闇では2MΩ以上に上昇します。
光がLDRに当たると抵抗が低下し、MCP3008入力の電圧を0V側に引き下げます。暗闇では抵抗が上昇し、電圧を3.3V基準側に押し上げます。
物理量に応じて抵抗が変化するセンサーなら、この方式で配線可能です。
ADC出力の解釈
MCP3008は0から1023の10ビット数値を生成し、0は0V、1023は3.3Vに対応。LDRの場合、これは約0-10,000ルクスの光強度範囲に変換されます。
これらの生の値を、Raspberry PiのPythonスクリプト経由でZabbixに送信することで、ダッシュボード作成、閾値設定、アラートトリガーが可能になります。
詳細: Raspberry PiとZabbix Supervisorでアナログセンサーを読み取り
製造プロセス
- 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
- Raspberry PiとNagiosで室温を効率監視
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- Raspberry Pi & Webダッシュボードで自宅温度・湿度監視 – リアルタイムリモート追跡
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- ホームエナジーセンター:Raspberry PiとMoteinoで太陽光発電、ソーラー熱、室温を監視
- Raspberry Piでサーバークローゼットの温度を正確に監視
- SensorflareとRaspberry Piで433MHzスマートホームコントローラーを構築
- Raspberry Piで単一GPIOピンを使ってアナログセンサーを測定
- ネイティブADCなしでRaspberry Pi上のアナログセンサーを測定
- Samsung SAMI、Arduino UNO、Raspberry Piで高速・信頼性の高い火災検知システムを構築