Ceci est une ancienne révision du document !
Table des matières
À quoi sert un convertisseur analogique-numérique (ADC) ?
Le Raspberry Pi, contrairement à un Arduino, n’a pas d’entrée analogique. Il ne peut lire que des valeurs numériques (0 ou 1, HIGH ou LOW). Or, certains capteurs — comme la sonde d’humidité du sol Gravity SEN0193 — peuvent envoyer une tension variable représentant un niveau d’humidité, et non un simple “sec” ou “humide”.
👉 C’est là qu’intervient le convertisseur analogique-numérique (ADC), comme le MCP3008.
Pourquoi préférer une lecture analogique pour la sonde SEN0193 ?
La sonde Gravity SEN0193, selon sa version, peut fonctionner en deux modes :
-
Numérique : elle renvoie simplement 1 (sol sec) ou 0 (sol humide). C’est tout.
-
Analogique : elle renvoie une valeur continue entre 0 et 3.3V, que le MCP3008 convertit en une valeur entre 0 et 1023.
Avantages de l’analogique :
-
Permet un suivi plus fin et progressif de l’humidité (utile pour déclencher l’arrosage à un seuil précis).
-
Donne la possibilité de créer des graphiques, des seuils personnalisés, des alertes…
-
Ouvre la voie à une gestion intelligente et économe de l’eau.
Présentation du MCP3008
Le MCP3008 est une petite puce qui permet de convertir jusqu’à 8 signaux analogiques en valeurs numériques que le Raspberry Pi peut comprendre, via le protocole SPI.
Il se connecte au Raspberry Pi via la breadboard pour simplifier les branchements.
Branchement du MCP3008
La puce MCP3008 doit être connectée au breadboard à cheval sur la “tranchée centrale”, tu assures que chaque broche du MCP3008 est sur une rangée indépendante, ce qui permet de câbler proprement
MCP3008 | Fonction | Branche sur la breadboard |
——— | —————— | —————————————- |
16 (VDD) | Alimentation | Un jumper vers la ligne rouge (3.3V) |
15 (VREF) | Référence | Ligne rouge aussi |
14 (AGND) | Masse analogique | Ligne bleue (GND) |
9 (DGND) | Masse numérique | Ligne bleue (GND) |
13 (CLK) | Horloge SPI | Vers GPIO11 du Pi |
12 (DOUT) | Données vers Pi | GPIO9 |
11 (DIN) | Données du Pi | GPIO10 |
10 (CS) | Chip Select | GPIO5 |
1 (CH0) | Canal analogique 0 | Vers la sortie AO de ta sonde analogique |
Broche | Nom | Rôle / Explication |
——— | ————- | ——————————————————————————————————————————————- |
16 | VDD | Tension d’alimentation du circuit numérique (généralement 3,3V ou 5V). |
15 | VREF | Tension de référence pour la conversion analogique. En général, on la relie à VDD. La précision des mesures dépend de cette valeur. |
14 | AGND | Masse (GND) pour la partie analogique (capteurs). À relier au GND du circuit. |
13 | CLK | Horloge SPI. Le Raspberry Pi envoie un signal ici pour cadencer les échanges de données. |
12 | DOUT | Data OUT : les données numériques sortent du MCP3008 vers le Raspberry Pi. |
11 | DIN | Data IN : le Raspberry Pi envoie des commandes vers le MCP3008 (ex : “lis le canal 0”). |
10 | CS | Chip Select (ou CE = Chip Enable). Sert à dire “je parle maintenant à ce composant SPI”. |
9 | DGND | Masse (GND) pour la partie numérique (Raspberry Pi). À relier au GND général. |
1 à 8 | CH0 à CH7 | Canaux analogiques d’entrée (pour capteurs). Le MCP3008 peut lire jusqu’à 8 capteurs analogiques. CH0 est le plus utilisé. |
-
🟥 VDD + VREF = alimentent la puce et définissent la précision.
-
🟦 AGND + DGND = masses nécessaires pour les parties analogiques et numériques.
-
📡 CLK, DOUT, DIN, CS = communication SPI avec le Raspberry Pi.
-
🌱 CH0 à CH7 = brancher ici les capteurs analogiques, comme l’humidité du sol SEN0193.
Le protocole SPI
C’est un protocole de communication utilisé pour faire dialoguer un microcontrôleur (comme le Raspberry Pi) avec des composants externes
Le protocole SPI utilise 4 fils :
Nom du fil | Fonction | Correspondance sur le Raspberry Pi |
————— | ————————————————————– | ———————————- |
`MOSI` | Master Out Slave In : le Pi envoie les données vers le capteur | GPIO10 (Pin 19) |
`MISO` | Master In Slave Out : le Pi lit les données du capteur | GPIO9 (Pin 21) |
`SCLK` ou `CLK` | Clock : le signal d’horloge synchronise les échanges | GPIO11 (Pin 23) |
`CS` ou `CE` | Chip Select : active le capteur concerné | Par exemple GPIO5 (Pin 29) |
C’est un bus rapide, synchrone (horloge partagée), plein-duplex (on peut envoyer et recevoir en même temps).
Activer le protocole SPI
Aller dans l'interface d'administration du Raspberry Pi :
sudo raspi-config
-
Aller dans Interfaces
-
Activer SPI
-
Redémarrer
Installation de la bibliothèque
Pour pouvoir installer la bibliothèque, commençons pas entrer dans notre environnement virtuel :
source meteo/bin/activate
Installation de la bibliothèque :
pip3 install Adafruit_CircuitPython_MCP3xxx
Suite vers Convertisseur analogique / numérique