Lecture de capteurs analogiques avec Raspberry Pi et Zabbix : Guide étape par étape
Lecture de capteurs analogiques avec Raspberry Pi et Zabbix
Bien que le Raspberry Pi ne dispose pas d'entrées analogiques natives, le MCP3008 ADC 10 bits, 8 canaux, rend trivial l'ajout de capacités analogiques. Il se branche directement sur l'en-tête GPIO du Pi via le bus SPI et ne nécessite aucun composant supplémentaire.
Ce tutoriel vous guide dans le câblage d'un MCP3008 sur le Pi, la lecture d'une résistance dépendante de la lumière (LDR) avec Python, et l'envoi des données dans Zabbix pour la surveillance.
Le matériel :
- Raspberry Pi
- MCP3008 ADC 8 canaux
- Résistance dépendante de la lumière (LDR)
- Résistance 10 kΩ
- Plaque d'essai
- Quelques fils
Comprendre le bus SPI
Le MCP3008 transmet une valeur numérique 10 bits sur l'interface SPI, un protocole série synchrone full-duplex qui fonctionne en mode maître/esclave. Plusieurs esclaves peuvent partager le bus, chacun sélectionné par sa propre ligne CS.
Sur le Raspberry Pi, le SPI est exposé via l'en-tête 4 broches (GPIO8, 9, 10, 11). Pour activer le pilote SPI matériel, éditez le fichier blacklist :
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Localisez la ligne contenant spi-bcm2708 et préfixez-la avec un # pour la commenter. Sauvegardez et redémarrez :
sudo reboot
Après redémarrage, vérifiez que le pilote est chargé :
lsmod | grep spi_bcm2708
Vous devriez voir spi_bcm2708 listé.
Installation de la bibliothèque Python SPI
Pour accéder au bus SPI depuis Python, nous utiliserons py-spidev. Installez d'abord les en-têtes de développement Python :
sudo apt-get install python-dev
Ensuite, téléchargez et installez la bibliothèque :
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
Connexion du MCP3008 au Raspberry Pi
| Broche MCP3008 | Broche Raspberry Pi |
|---|---|
| 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 |
Les huit broches CH0‑CH7 du MCP3008 servent d'entrées analogiques. Dans cet exemple, nous en connecterons une à une LDR.
Utilisation d'une résistance dépendante de la lumière (LDR)
Nous avons utilisé une LDR EG & G Vactec, VT43, CdS, 8 Ω – 300 kΩ. En éclairage normal, sa résistance est d'environ 10 kΩ ; dans l'obscurité, elle dépasse 2 MΩ.
Quand la lumière tombe sur la LDR, sa résistance chute, tirant la tension à l'entrée du MCP3008 vers 0 V. Dans l'obscurité, la résistance grimpe, poussant la tension vers la référence 3,3 V.
Tout capteur qui change de résistance avec une grandeur physique peut être câblé de cette façon.
Interprétation de la sortie ADC
Le MCP3008 produit un nombre 10 bits allant de 0 à 1023, où 0 correspond à 0 V et 1023 à 3,3 V. Pour une LDR, cela se traduit par une plage d'intensité lumineuse d'environ 0 – 10 000 lux.
Ces valeurs brutes peuvent être envoyées à Zabbix via le script Python du Raspberry Pi, vous permettant de créer des tableaux de bord, définir des seuils et déclencher des alertes.
Pour plus de détails : Lecture de capteurs analogiques avec Raspberry Pi et Zabbix Supervisor
Processus de fabrication
- Connecter plusieurs capteurs DS18B20 1-Wire à un Raspberry Pi pour une surveillance température précise
- Surveiller efficacement les températures de salle avec Raspberry Pi et Nagios
- Comment lire la température avec un DS18B20 sur Raspberry Pi 2
- Moniteur température et humidité domestique avec Raspberry Pi et tableau de bord web — Suivi à distance en temps réel
- Mesure de température sur Raspberry Pi avec capteurs 1‑Wire Maxim et pont I2C DS2482
- Centre Énergie Domestique : Surveillance panneaux solaires PV, thermiques et températures pièces avec Raspberry Pi et Moteino
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Construire un contrôleur domotique 433 MHz avec Sensorflare et Raspberry Pi
- Mesurer des capteurs analogiques sur Raspberry Pi avec une seule broche GPIO