Auslesen von analogen Sensoren mit Raspberry Pi und Zabbix Supervisor
Analoge Sensoren lesen mit Raspberry Pi als Schnittstelle
Der Raspberry Pi hat keine eingebauten analogen Eingänge, was bedeutet, dass es etwas mühsam ist, viele der verfügbaren Sensoren zu verwenden. Wir brauchen eine einfach zu konfigurierende A/D-Schnittstelle im RPi und der MCP3008 ist die Antwort.
Der MCP3008 ist ein 10-Bit-8-Kanal-Analog-Digital-Wandler (ADC). Es ist günstig, einfach anzuschließen und benötigt keine zusätzlichen Komponenten. Es verwendet das SPI-Busprotokoll, das vom GPIO-Header des Pi unterstützt wird.
In diesem Artikel wird erläutert, wie Sie mit einem MCP3008-Gerät 8 analoge Eingänge bereitstellen, die Sie mit einer Reihe von Sensoren verwenden können. In der folgenden Beispielschaltung verwende ich einen MCP3008, um einen Lichtsensor zu lesen und das Licht in Zabbix zu steuern/überwachen.
Die Hardware:
- Himbeer-Pi
- MCP3008 8-Kanal-ADC
- Lichtabhängiger Widerstand (LDR)
- 10-Kohm-Widerstand
- Breadboard
- Einige Verkabelung
SPI-Bus
Der MCP3008 liest den Analogwert und gibt eine 10-Bit-Zahl aus, die über den SPI-Bus übertragen wird.
Der Serial Peripheral Interface Bus oder SPI-Bus ist ein synchroner serieller Datenverbindungsstandard, der im Vollduplex-Modus arbeitet.
Geräte kommunizieren im Master/Slave-Modus, wobei das Master-Gerät den Datenrahmen initiiert. Mehrere Slave-Geräte sind mit einzelnen Slave-Auswahlleitungen zulässig.
SPI wird manchmal als serieller Vierdrahtbus bezeichnet, im Gegensatz zu seriellen Drei-, Zwei- und Eindrahtbussen. SPI wird oft als SSI (Synchronous Serial Interface) bezeichnet.
Um Hardware-SPI auf dem RPi zu aktivieren, müssen wir eine der Systemdateien ändern:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Fügen Sie ein '#'-Zeichen vor der Zeile spi-bcm2708 hinzu. Verwenden Sie STRG-X, dann Y, dann Zurück, um die Datei zu speichern und zu beenden. Starten Sie neu, indem Sie Folgendes verwenden:
sudo reboot
Um zu überprüfen, ob die Änderung funktioniert hat, führen Sie den folgenden Befehl aus:
lsmod
In der Ausgabe sollte „spi_bcm2708″ aufgeführt sein.
Python SPI Wrapper installieren
In diesem Projekt werden wir Python verwenden und Um Daten vom SPI-Bus in Python zu lesen, können wir eine Bibliothek namens 'py-spidev' installieren. Um es zu installieren, müssen wir zuerst ‘python-dev’ installieren:
sudo apt-get install python-dev
Zum Abschluss können wir 'py-spidev' herunterladen und gebrauchsfertig kompilieren:
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 installieren
MCP3008 | RPi |
---|---|
VDD | 3,3V |
VREF | 3,3V |
AGND | ERDE |
CLK | GPIO11 (P1-23) |
DOUT | GPIO9 (P1-21) |
DIN | GPIO10 (P1-19) |
CS | GPIO8 (P1-24) |
DGND | ERDE |
Die CH0-CH7-Pins sind die 8 analogen Eingänge.
Lichtabhängiger Widerstand
Ich habe mich für einen LDR EG &G Vactec, VT43, CdS, 8 Ω bis 300 KΩ . entschieden . Bei normaler Beleuchtung beträgt sein Widerstand ungefähr 10 kOhm, während er im Dunkeln auf über 2 MOhm ansteigt.
Bei viel Licht hat der LDR einen niedrigen Widerstand, was dazu führt, dass die Ausgangsspannung gegen 0 V abfällt.
Wenn es dunkel ist, erhöht sich der LDR-Widerstand, was dazu führt, dass die Ausgangsspannung auf 3,3 V ansteigt. In diesem Projekt wurde ein LDR verwendet, aber jedes Gerät, das seinen Widerstand abhängig von einem Phänomen ändert, kann verwendet und im zu steuernden IC verdrahtet werden.
Lesen der Daten
Der ADC ist 10 Bit groß und kann einen Zahlenbereich von 0 bis 1023 (2 hoch 10) melden. Ein Messwert von 0 bedeutet, dass der Eingang 0 V beträgt und ein Messwert von 1023 bedeutet, dass der Eingang 3,3 V beträgt. Unser 0-3.3V-Bereich würde einem 0-10000 Lux-Bereich entsprechen.
Weitere Informationen:Lesen von analogen Sensoren mit Raspberry Pi und Zabbix Supervisor
Herstellungsprozess
- Messen Sie Temperaturen mit einem 1-Draht-DS18B20-Sensor und Raspberry Pi
- Überwachen der Raumtemperaturen mit einem Raspberry Pi und Nagios
- Temperatur lesen mit DS18B20 | Raspberry Pi 2
- Heim-(Raum-)Temperatur- und Feuchtigkeitsmonitor mit webbasiertem Diagramm – Raspberry Pi
- Temperaturmessung mit RASPBERRY PI
- Überwachen der Raumtemperaturen mit Moteinos und Raspberry Pi
- Überwachen der Temperatur mit Raspberry Pi
- 433 MHz Smart Home Controller mit Sensorflare und einem RaspberryPi
- Lesen analoger Sensoren mit einem GPIO-Pin
- Analoge Sensoren ohne analoge Eingänge auf dem Raspberry Pi