ESP32 - mesurer la tension

Dans ce guide, nous allons apprendre à mesurer une tension allant de 0V à 16,5V à l'aide d'un capteur de tension avec un ESP32. Nous expliquerons les étapes en détail.

Capteur de tension ESP32

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Voltage Sensor
1×Jumper Wires
1×(Recommended) Screw Terminal Expansion Board for ESP32
1×(Recommended) Power Splitter For ESP32

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de tension

Un capteur de tension est un circuit diviseur de tension prêt à l'emploi qui utilise des résistances spécifiques pour faciliter la mesure de la tension. Il comporte deux résistances : l'une est de 30 KΩ et l'autre de 7,5 KΩ. Si l'ADC a une tension de référence de 5V, le capteur peut mesurer des tensions de 0 à 25V DC. Lorsque la tension de référence de l'ADC est de 3,3V, il peut mesurer des tensions de 0 à 16,5V DC.

Connecteur

Un capteur de tension est doté de deux types de broches :

  • Interface d'entrée (connectez là où vous souhaitez mesurer la tension) :
    • Broche VCC : Connectez cette broche positive au point de tension plus élevé.
    • Broche GND : Connectez cette broche négative au point de tension plus bas.
  • Interface de sortie (connectez à l'ESP32) :
    • Broche Vout (S) : Connectez cette broche signal à une broche analogique sur l'ESP32.
    • Broche NC (+) : Ne pas connecter cette broche ; elle n'est pas utilisée.
    • Broche GND (-) : Connectez cette broche de terre au GND (0V) de l'ESP32.
    Brochage de tension
    image source: diyables.io

Diagramme de câblage

Diagramme de câblage du capteur de tension ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Code ESP32

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'ESP32, consultez Installation du logiciel ESP32..
  • Connectez l'ESP32 au capteur de tension.
  • Connectez la carte ESP32 à votre PC via un câble USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple ESP32 Dev Module) et le port COM.
  • Copiez et collez le code ci-dessus dans Arduino IDE.
  • Appuyez sur le bouton Upload dans Arduino IDE pour compiler et téléverser le code sur l'ESP32.
  • Testez en mesurant 5V et 3.3V sur l'ESP32.
  • Vérifiez les lectures sur le Moniteur Série.
COM6
Send
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pourriez remarquer que le résultat de la mesure est incorrect ou significativement différent de la valeur réelle. Ne blâmez pas le module de capteur de tension pour cela. Le code utilise la fonction analogRead() pour lire les valeurs d'un ADC (Convertisseur Analogique-Numérique) connecté à un capteur de tension. L'ADC de l'ESP32 convient aux projets qui ne nécessitent pas une grande précision. Cependant, pour les projets nécessitant des mesures précises, veuillez noter :

  • L'ADC de l'ESP32 n'est pas parfaitement précis et peut nécessiter une calibration pour obtenir des résultats corrects. Chaque carte ESP32 peut légèrement varier, donc une calibration est nécessaire pour chaque carte individuelle.
  • La calibration peut être difficile, surtout pour les débutants, et ne fournit pas toujours les résultats exacts souhaités.

Pour les projets nécessitant une haute précision, envisagez d'utiliser un ADC externe (par exemple, ADS1115) avec l'ESP32 ou un Arduino, qui possède un ADC plus fiable. Si vous souhaitez toujours calibrer l'ADC de l'ESP32, référez-vous au Driver de Calibration ADC de l'ESP32.

Vidéo

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!