ESP8266 ADC – Lire des valeurs analogiques avec Arduino IDE, MicroPython et Lua

ESP8266 ADC - Lire des valeurs analogiques avec Arduino IDE, MicroPython et Lua

ESP8266-12E et ESP8266-07 ont une broche ADC facilement accessible. Cela signifie que ces cartes ESP8266 peuvent lire des signaux analogiques. Dans ce tutoriel, nous allons vous montrer comment utiliser la lecture analogique avec l’ESP8266 à l’aide du firmware Arduino IDE, MicroPython ou Lua.

Lecture analogique ESP8266 lire ADC A0 Arduino IDE MicroPython Lua

A titre d’exemple, nous allons vous montrer comment lire les valeurs analogiques d’un potentiomètre. Ce poste est divisé en trois sections :

  1. Lecture analogique ESP8266 avec Arduino IDE
  2. Lecture analogique ESP8266 avec MicroPython
  3. Lecture analogique ESP8266 avec Lua/NodeMCU

Spécifications du CAN ESP8266

Lorsque vous vous référez à la broche ESP8266 ADC, vous entendrez souvent ces différents termes de manière interchangeable :

  • ADC (convertisseur analogique-numérique)
  • TOUT
  • Broche6
  • A0
  • Broche analogique 0

Tous ces termes font référence à la même broche dans l’ESP8266 qui est mise en évidence dans la section suivante.

Résolution ADC ESP8266

La broche ADC a une résolution de 10 bits, ce qui signifie que vous obtiendrez des valeurs comprises entre 0 et 1023.

Plage de tension d’entrée ESP8266

La plage de tension d’entrée de la broche ESP8266 ADC est de 0 à 1 V si vous utilisez la puce nue. Cependant, la plupart des cartes de développement ESP8266 sont livrées avec un diviseur de tension interne, de sorte que la plage d’entrée est de 0 à 3,3 V. Donc, en résumé :

Broche analogique ESP8266

Avec le kit ESP8266 12-E NodeMCU et d’autres cartes de développement ESP8266, il est très facile d’accéder à l’A0, il vous suffit de connecter un fil de liaison à la broche (voir figure ci-dessous).

Kit ESP8266 NodeMCU

Si vous utilisez une puce ESP8266, comme l’ESP8266-07, vous devez souder un fil à cette broche.

Pièces requises

Pour vous montrer comment utiliser la lecture analogique avec l’ESP8266, nous allons lire les valeurs d’un potentiomètre. Pour cela, vous devez câbler un potentiomètre à votre carte.

Voici le matériel dont vous avez besoin pour terminer ce didacticiel :

Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

ESP8266 ADC Lire des valeurs analogiques avec Arduino IDE

Diagramme schématique

Si vous utilisez une carte de développement ESP8266, suivez le schéma suivant.

ESP8266 ADC lire la valeur analogique Arduino IDE MicroPython Lua

Si vous utilisez une puce ESP8266 avec une plage de tension d’entrée de 0V à 1V, vous devez vous assurer que la tension d’entrée sur la broche A0 ne dépasse pas 1V. Donc, vous avez besoin d’un circuit diviseur de tension, comme indiqué ci-dessous.

Circuit de valeur analogique de lecture ADC ESP8266

Nous utilisons une résistance de 100 Ohm et une de 220 Ohm, de sorte que le Vout est de 1V.

1644239525 638 ESP8266 ADC Lire des valeurs analogiques avec Arduino IDE

Recommander la lecture : Référence de brochage ESP8266 : Quelles broches GPIO devriez-vous utiliser ?


1. Lecture analogique ESP8266 avec Arduino IDE

Cette section montre comment lire les valeurs analogiques avec l’ESP8266 à l’aide de l’IDE Arduino.

Installez ESP8266 dans l’IDE Arduino

Afin de télécharger le code sur votre ESP8266, vous devez d’abord installer le module complémentaire ESP8266, si vous ne l’avez pas déjà fait. Suivez le tutoriel suivant :

Code

Copiez le code suivant dans votre IDE Arduino.

/*********
  Rui Santos
  Complete project details at https://www.raspberryme.com  
*********/

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

int sensorValue = 0;  // value read from the pot

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

void loop() {
  // read the analog in value
  sensorValue = analogRead(analogInPin);
 
  // print the readings in the Serial Monitor
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  
  delay(1000);
}

Afficher le code brut

Le code commence par déclarer la broche analogique ESP8266 dans le AnalogInPin variable:

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

La valeur du potentiomètre sera stockée sur le sensorValue variable:

int sensorValue = 0;  // value read from the pot

Dans le mettre en place()initialisez le moniteur série à des fins de débogage :

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

Dans le boucler()nous lisons la valeur analogique en utilisant la lectureanalogique() fonction et en passant le AnalogInPin comme argument. La valeur est enregistrée sur le sensorValue variable:

sensorValue = analogRead(analogInPin);

Enfin, les lectures sont affichées sur le moniteur série, afin que vous puissiez réellement voir ce qui se passe.

Serial.print(sensorValue);

Télécharger le code

Téléchargez le code précédent sur l’ESP8266. Assurez-vous que vous avez sélectionné la bonne carte et le bon port COM. Aller à Outils> Tableau et sélectionnez le modèle ESP8266 que vous utilisez. Dans notre cas, nous utilisons le kit ESP8266 12-E NodeMCU.

1644239525 20 ESP8266 ADC Lire des valeurs analogiques avec Arduino IDE

Aller à Outils > Port et sélectionnez le port COM auquel l’ESP8266 est connecté.

1644239526 210 ESP8266 ADC Lire des valeurs analogiques avec Arduino IDE

Appuyez sur le bouton de téléchargement de l’IDE Arduino.

Noter: si vous utilisez une puce ESP-07 ou ESP-12E, vous avez besoin d’un Programmeur FTDI pour télécharger le code.

Manifestation

Après avoir téléchargé le code, ouvrez le moniteur série à un débit en bauds de 115200. Les lectures analogiques doivent être affichées.

1644239526 600 ESP8266 ADC Lire des valeurs analogiques avec Arduino IDE

Tournez le potentiomètre et voyez les valeurs augmenter ou diminuer.


2. Lecture analogique ESP8266 avec MicroPython

Cette section montre comment lire les valeurs analogiques avec l’ESP8266 à l’aide du micrologiciel MicroPython.

Pour suivre ce tutoriel, vous avez besoin du firmware MicroPython installé dans votre carte ESP8266. Vous avez également besoin d’un IDE pour écrire et télécharger le code sur votre carte. Nous suggérons d’utiliser Thonny IDE ou uPyCraft IDE :

Script – Lecture analogique ESP82266

Le script suivant pour l’ESP8266 lit les valeurs analogiques de la broche A0.

# Complete project details at https://Raspberryme.com

from machine import Pin, ADC
from time import sleep

pot = ADC(0)

while True:
  pot_value = pot.read()
  print(pot_value)
  sleep(0.1)

Afficher le code brut

Comment fonctionne le code

Pour lire les entrées analogiques, importez le ADC classe en plus de la Épingler classe de la machine module. Nous importons également le sommeil méthode.

from machine import Pin, ADC
from time import sleep

Ensuite, créez un ADC objet appelé pot sur la broche A0.

pot = ADC(0)

Dans la boucle, lisez la valeur du pot et enregistrez-la dans le pot_value variable. Pour lire la valeur du pot, utilisez le lire() méthode sur la pot objet.

pot_value = pot.read()

Ensuite, imprimez le pot_value.

print(pot_value)

A la fin, ajoutez un délai de 100 ms.

sleep(0.1)

En résumé:

  • Pour lire une valeur analogique, vous utilisez le ADC classer;
  • Pour créer un ADC objet appelez simplement CAN(0).
  • Pour lire la valeur analogique, utilisez la lire() méthode sur la ADC objet.

Manifestation

Après avoir téléchargé le code sur la carte ESP8266 à l’aide de Thonny IDE ou uPyCraft IDE, faites pivoter le potentiomètre.

Vérifiez le shell de votre IDE MicroPython pour lire les valeurs du potentiomètre.

Lectures analogiques ESP32 ESP8266 avec démonstration MicroPython

3. Lecture analogique ESP8266 avec Lua/NodeMCU

Cette section montre comment utiliser le micrologiciel NodeMCU pour lire les valeurs analogiques avec l’ESP8266.

ESP8266 clignotant avec le firmware Lua/NodeMCU

Tout d’abord, vous devez flasher vos ESP avec le firmware NodeMCU.

Je recommande d’utiliser le EDI ESPlorer qui est un programme créé par 4refr0nt pour envoyer des commandes à votre ESP8266.

Suivez ces instructions pour télécharger et installer ESPlorer IDE :

  1. Cliquez ici pour télécharger ESPlorer
  2. Décompressez ce dossier
  3. Allez dans le dossier principal
  4. Exécutez ESPlorer.jar
  5. Ouvrez ESPlorer

Test de la broche ADC (A0)

Pour envoyer des commandes avec l’ESPlorer IDE, vous devez établir une communication série avec votre ESP, suivez ces instructions :

  1. Connectez votre ESP-12E ou Programmeur FTDI à ton ordinateur
  2. Définir la mauvaise valeur sur 9600
  3. Sélectionnez votre port de programmation ESP-12E ou FTDI (COM3, par exemple)
  4. Appuyez sur Ouvrir/Fermer
EDI ESPlorer

Tapez ensuite la commande suivante :

print(adc.read(0))

Cliquez sur le bouton « Envoyer » comme indiqué ci-dessous.

ESPlorer

Il doit renvoyer une valeur comprise entre 0 et 1024. Tournez votre potentiomètre et envoyez le imprimer(adc.lire(0)) commandez quelques fois de plus pour obtenir la valeur du potentiomètre.

Lorsque votre potentiomètre est proche de 0V, il imprime 0 et lorsqu’il atteint 3,3V, il doit imprimer 1024.

Conclusion

Dans ce tutoriel, nous vous avons montré comment lire des valeurs analogiques à l’aide de la broche analogique ESP8266 (A0). Une chose importante à noter est que la plage d’entrée analogique de l’ESP8266 est soit de 0 à 1 V si vous utilisez une puce nue, soit de 0 à 3,3 V si vous utilisez une carte de développement.

Dans tous les cas, veillez toujours à ne pas dépasser la tension maximale recommandée. Vous pouvez envisager d’ajouter un circuit diviseur de tension lorsque vous avez besoin d’une plage de tension d’entrée plus élevée.

Nous espérons que vous avez trouvé ce tutoriel utile. Si vous débutez avec l’ESP8266, nous vous recommandons les ressources suivantes :

Merci d’avoir lu.