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.
A titre d’exemple, nous allons vous montrer comment lire les valeurs analogiques d’un potentiomètre. Ce poste est divisé en trois sections :
- Lecture analogique ESP8266 avec Arduino IDE
- Lecture analogique ESP8266 avec MicroPython
- 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).
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 !
Diagramme schématique
Si vous utilisez une carte de développement ESP8266, suivez le schéma suivant.
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.
Nous utilisons une résistance de 100 Ohm et une de 220 Ohm, de sorte que le Vout est de 1V.
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);
}
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.
Aller à Outils > Port et sélectionnez le port COM auquel l’ESP8266 est connecté.
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.
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)
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.
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 :
- Cliquez ici pour télécharger ESPlorer
- Décompressez ce dossier
- Allez dans le dossier principal
- Exécutez ESPlorer.jar
- 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 :
- Connectez votre ESP-12E ou Programmeur FTDI à ton ordinateur
- Définir la mauvaise valeur sur 9600
- Sélectionnez votre port de programmation ESP-12E ou FTDI (COM3, par exemple)
- Appuyez sur Ouvrir/Fermer
Tapez ensuite la commande suivante :
print(adc.read(0))
Cliquez sur le bouton « Envoyer » comme indiqué ci-dessous.
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.