Analoge Sensoren Uitlezen met Raspberry Pi en Zabbix: Een Stapsgewijze Handleiding
Analoge Sensoren Uitlezen met Raspberry Pi en Zabbix
Hoewel de Raspberry Pi geen native analoge ingangen heeft, maakt de MCP3008 10-bit, 8-kanaals ADC het triviaal om analoge mogelijkheden toe te voegen. Het plugt direct in de GPIO-header van de Pi via de SPI-bus en vereist geen extra componenten.
Deze tutorial leidt u door het bedraden van een MCP3008 aan de Pi, het uitlezen van een licht-gevoelige weerstand (LDR) met Python, en het voeden van de data in Zabbix voor monitoring.
De hardware:
- Raspberry Pi
- MCP3008 8-kanaals ADC
- Licht-gevoelige weerstand (LDR)
- 10 kΩ-weerstand
- Breadboard
- Wat bedrading
De SPI-bus Begrijpen
De MCP3008 transmet een 10-bit digitaal waarde over de SPI-interface, een full-duplex, synchroon serieel protocol dat in master/slave-modus werkt. Meerdere slaves kunnen de bus delen, elk geselecteerd door zijn eigen CS-lijn.
Op de Raspberry Pi wordt SPI blootgelegd via de 4-pins-header (GPIO8, 9, 10, 11). Om de hardware-SPI-driver in te schakelen, bewerk het blacklist-bestand:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Zoek de regel met spi-bcm2708 en prefixeer het met een # om het uit te commentariëren. Sla op en herstart:
sudo reboot
Na herstart, verifieer dat de driver geladen is:
lsmod | grep spi_bcm2708
U zou spi_bcm2708 gelist moeten zien.
De Python SPI-bibliotheek Installeren
Om de SPI-bus vanuit Python te benaderen, gebruiken we py-spidev. Installeer eerst de development-headers voor Python:
sudo apt-get install python-dev
Download en installeer vervolgens de bibliotheek:
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
De MCP3008 Verbinden met de Raspberry Pi
| MCP3008 Pin | Raspberry Pi Pin |
|---|---|
| VDD | 3,3 V |
| VREF | 3,3 V |
| AGND | GND |
| CLK | GPIO11 (P1‑23) |
| DOUT | GPIO9 (P1‑21) |
| DIN | GPIO10 (P1‑19) |
| CS | GPIO8 (P1‑24) |
| DGND | GND |
De acht CH0‑CH7-pins op de MCP3008 dienen als analoge ingangen. In dit voorbeeld zullen we er een verbinden met een LDR.
Een Licht-gevoelige Weerstand (LDR) Gebruiken
We gebruikten een LDR EG & G Vactec, VT43, CdS, 8 Ω – 300 kΩ. In normale verlichting is de weerstand ongeveer 10 kΩ; in duisternis stijgt hij boven de 2 MΩ.
Wanneer licht op de LDR valt, daalt de weerstand, wat de spanning op de MCP3008-input naar 0 V trekt. In het donker stijgt de weerstand, wat de spanning naar de 3,3 V-referentie duwt.
Elke sensor die de weerstand verandert met een fysieke hoeveelheid, kan op deze manier bedraad worden.
De ADC-output Interpreteren
De MCP3008 produceert een 10-bit getal van 0 tot 1023, waar 0 overeenkomt met 0 V en 1023 met 3,3 V. Voor een LDR vertaalt dit zich in een lichtintensiteitsbereik van ongeveer 0 – 10.000 lux.
Deze ruwe waarden kunnen naar Zabbix gestuurd worden via het Python-script van de Raspberry Pi, waardoor u dashboards kunt maken, drempels instellen, en alerts kunt triggeren.
Voor meer detail: Analoge Sensoren Uitlezen met Raspberry Pi en Zabbix Supervisor
Productieproces
- Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
- Efficiënt Kamertemperaturen Monitoren Met Raspberry Pi En Nagios
- Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
- Thuis Temperatuur & Vochtigheid Monitor Met Raspberry Pi & Web Dashboard – Real-Time Remote Tracking
- Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
- Home Energy Centre: Zonnepanelen, thermische panelen en kamertemperaturen monitoren met Raspberry Pi en Moteino
- Accurate temperatuurbewaking in een serverkast met Raspberry Pi
- Een 433 MHz Slimme Huiscounter Bouwen met Sensorflare en Raspberry Pi
- Analoge Sensoren Meten op de Raspberry Pi met een Enkele GPIO-pin
- Analoge Sensoren Meten op Raspberry Pi Zonder Native ADC
- Een Snel, Betrouwbare Brandsdetectiesysteem Bouwen met Samsung SAMIIO, Arduino UNO & Raspberry Pi