RaspberryPiとZabbixスーパーバイザーで読み取るアナログセンサー
インターフェイスとしてRaspberryPiを使用して読み取るアナログセンサー
Raspberry Piにはアナログ入力が組み込まれていないため、利用可能なセンサーの多くを使用するのは少し面倒です。 RPiで簡単に構成できるA / Dインターフェースが必要であり、MCP3008がその答えです。
MCP3008は、10ビットの8チャネルアナログ-デジタルコンバータ(ADC)です。安価で接続が簡単で、追加のコンポーネントは必要ありません。 PiのGPIOヘッダーでサポートされているSPIバスプロトコルを使用します。
この記事では、MCP3008デバイスを使用して、さまざまなセンサーで使用できる8つのアナログ入力を提供する方法について説明します。以下の回路例では、MCP3008を使用して光センサーを読み取り、Zabbix内の光を制御/監視しています。
ハードウェア:
- ラズベリーパイ
- MCP30088チャンネルADC
- 光依存抵抗(LDR)
- 10オーム抵抗器
- ブレッドボード
- いくつかの配線
SPIバス
MCP3008はアナログ値を読み取り、SPIバスによって送信される10ビットの数値を提供します。
シリアルペリフェラルインターフェイスバスまたはSPIバスは、全二重モードで動作する同期シリアルデータリンク標準です。
デバイスは、マスターデバイスがデータフレームを開始するマスター/スレーブモードで通信します。個々のスレーブ選択ラインで複数のスレーブデバイスを使用できます。
SPIは、3線式、2線式、および1線式のシリアルバスとは対照的に、4線式シリアルバスと呼ばれることもあります。 SPIはしばしばSSI(同期シリアルインターフェース)と呼ばれます。
RPiでハードウェアSPIを有効にするには、システムファイルの1つに変更を加える必要があります。
sudo nano /etc/modprobe.d/raspi-blacklist.conf
行spi-bcm2708の前に「#」文字を追加します。 CTRL-X、Y、Returnの順に使用してファイルを保存し、終了します。次を使用して再起動します:
sudo再起動
変更が機能したことを確認するには、次のコマンドを実行します:
lsmod
出力に「spi_bcm2708」が表示されます。
PythonSPIラッパーをインストールする
このプロジェクトでは、Pythonを使用します。PythonでSPIバスからデータを読み取るために、「py-spidev」というライブラリをインストールできます。これをインストールするには、最初に「python-dev」をインストールする必要があります:
sudo apt-get install python-dev
次に、「py-spidev」をダウンロードしてコンパイルし、使用できるようにします:
mkdir py-spidevcd py-spidevwget https://raw.github.com/doceme/py-spidev/master/setup.pywget https://raw.github.com/doceme/py-spidev/master/spidev_module .csudo python setup.py install
MCP3008 | RPi |
---|---|
VDD | 3.3V |
VREF | 3.3V |
AGND | グラウンド |
CLK | GPIO11(P1-23) |
DOUT | GPIO9(P1-21) |
DIN | GPIO10(P1-19) |
CS | GPIO8(P1-24) |
DGND | グラウンド |
CH0-CH7ピンは8つのアナログ入力です。
光依存抵抗器
LDR EG&G Vactec、VT43、CdS、8Ωから300KΩを選択しました 。通常の照明では抵抗は約10KΩですが、暗闇では2MΩ以上に増加します。
光が多い場合、LDRの抵抗は低くなり、出力電圧は0Vに向かって低下します。
暗くなると、LDR抵抗が増加し、出力電圧が3.3Vに向かって増加します。このプロジェクトではLDRを使用しましたが、何らかの現象に応じて抵抗を変化させるデバイスを使用して、制御対象のICに配線することができます。
データの読み取り
ADCは10ビットであるため、0から1023(2の10の累乗)までの数値の範囲を報告できます。 0の読み取り値は入力が0Vであることを意味し、1023の読み取り値は入力が3.3Vであることを意味します。 0〜3.3Vの範囲は、0〜10000ルクスの範囲に相当します。
詳細:RaspberryPiとZabbixスーパーバイザーで読み取るアナログセンサー
製造プロセス
- 1線式DS18B20センサーとRaspberryPiを使用して温度を測定します
- RaspberryPiとNagiosを使用して室温を監視する
- DS18B20で温度を読み取る|ラズベリーパイ2
- Webベースのチャートを備えたホーム(ルーム)温度および湿度モニター– Raspberry Pi
- RASPBERRYPIによる温度測定
- MoteinoとRaspberryPiを使用して室温を監視する
- ラズベリーパイで温度を監視する
- SensorflareとRaspberryPiを備えた433MHzスマートホームコントローラー
- 1つのGPIOピンでアナログセンサーを読み取る
- RaspberryPiにアナログ入力のないアナログセンサー
- Samsung SAMIIO、Arduino UNO、RaspberryPiで数分で火災探知機を作る