Intégration du capteur d'eau haute sensibilité Phantom YoYo avec l'ADC MCP3008 sur Raspberry Pi
Pourquoi utiliser le MCP3008 ?
Le MCP3008 est un ADC compact et peu coûteux avec interface SPI. Sa résolution 10 bits donne 1024 niveaux discrets, permettant une discrimination fine de tension. Avec une référence 3,3 V, la sortie du capteur peut être convertie en tension en utilisant :
tension = (lecture / 1023.0) * Vref
Par exemple, une lecture brute de 523 correspond à :
523 / 1023 * 3,3 ≈ 1,687 V
Mesurez toujours la tension d'alimentation réelle (ex: 3,301 V sur mon Pi) et utilisez cette valeur pour Vref afin d'améliorer la précision.
Vue d'ensemble matérielle
- Capteur : Phantom YoYo Water Sensor – 3 broches (–, +, s). Connectez – à la masse Pi, + à 3,3 V (ou 5 V), s au canal 1 du MCP3008.
- MCP3008 : 8 canaux d'entrée, broches SPI, Vref, Vdd, et AGND. Connectez Vref à 3,3 V, AGND à la masse Pi, Vdd à 3,3 V, et la masse à la masse Pi.
- Potentiomètre : Optionnel – utilisé pour démontrer la conversion ADC sur le canal 0.
Schéma de câblage
Reportez-vous au schéma inclus pour le mapping des broches. Connexions clés :
- MCP3008 Vref (Broche 15) → Pi 3,3 V
- MCP3008 AGND (Broche 14) → Pi GND
- MCP3008 Vdd (Broche 16) → Pi 3,3 V
- MCP3008 CH0 (Broche 1) → Sortie potentiomètre
- MCP3008 CH1 (Broche 2) → Broche s du capteur d'eau
- Lignes SPI (CS, CLK, DO, DI) → Broches SPI du Pi
Configuration logicielle
Type de projet : Plateforme Windows Universelle. Deux jauges affichent :
- Tension brute du potentiomètre (canal 0).
- Niveau d'eau normalisé (0–100) du capteur (canal 1).
Initialisation du MCP3008
private Mcp3008 _mcp3008;
protected override async void OnNavigatedTo(NavigationEventArgs e) {
_mcp3008 = new Mcp3008(0); // Bus SPI 0
await _mcp3008.InitializeAsync();
}
Lecture d'un canal
float voltage = _mcp3008.Read(Mcp3008.Channels.Single0).AsScaledValue(3.3f);
Pour une mesure différentielle, remplacez Single0 par Differential0. Libérez l'objet à la navigation :
_mcp3008.Dispose();
_mcp3008 = null;
Calibration et mesure
Utilisez un multimètre pour vérifier la tension du potentiomètre par rapport à la lecture du MCP3008. Réglez le multimètre sur tension DC ; comparez les deux valeurs pour valider la précision.
Exécution de l'application
- Compilez en configuration ARM, choisissez Remote Machine.
- Définissez l'adresse IP du Pi dans les propriétés du projet et désactivez l'authentification.
- Appuyez sur F5 pour déployer et lancer.
L'application affiche une jauge à 360° pour le niveau d'eau. Note : la sortie du capteur n'est pas strictement linéaire ; des valeurs plus élevées correspondent à plus d'eau mais la relation est empirique. La jauge est à des fins d'illustration.
Le code source et la documentation supplémentaire sont disponibles sur la page du projet.
Processus de fabrication
- Comment fonctionnent les arroseurs de pelouse : conception, histoire et fabrication moderne
- ON Semiconductor lance le capteur d'image ARX3A0 basse consommation, haute cadence pour vision intelligente
- Comment connecter un thermomètre numérique DS18B20 One-Wire à un Raspberry Pi – Guide étape par étape
- Connecter des capteurs analogiques au Raspberry Pi avec MCP3008 – Câblage, configuration SPI et code Python d'exemple
- Intégration du capteur d'eau haute sensibilité Phantom YoYo avec l'ADC MCP3008 sur Raspberry Pi
- Insight : Un capteur haptique souple améliore la sensibilité tactile des robots
- ToughMet® 3TS Tube TS105 (C72900) – Alliage haute résistance, anti-grippage pour charges extrêmes
- Pompes haute pression industrielles pour systèmes d'irrigation fiables
- Pompes à eau automatiques : fonctionnement et importance