- Qu'est-ce que MicroPython?
- Pourquoi MicroPython for NodeMCU?
- Qu'est-ce qu'un ESP8266 (NodeMCU)?
- Matériel utilisé
- Installation du micrologiciel MicroPython pour ESP8266
- Communication avec le NodeMCU avec PuTTY
- Télécharger un code de clignotement de LED basé sur Python à l'aide d'Ampy
- MicroPython sur ESP8266: Obtenir la température et l'humidité avec DHT22
Pour un débutant intéressé par la programmation de microcontrôleurs compatibles Wi-Fi comme l'ESP8266, comprendre l'environnement de programmation ESP-IDF ou l'IDE Arduino peut être une tâche ardue, la syntaxe cryptique des langages C et C ++ nécessite plus de connaissances en informatique, ce qui est pourquoi ces langages ne sont pas toujours adaptés aux débutants, alors dans cet article, nous allons apprendre à configurer et à programmer un ESP8266 avec MicroPython, et enfin, nous obtiendrons les données de température et d'humidité de notre capteur de température et d'humidité DHT22 préféré. Auparavant, nous avons également fait un tutoriel sur la façon de programmer ESP32 avec Micro Python, vous pouvez également le vérifier si vous êtes intéressé.
Qu'est-ce que MicroPython?
Nous pouvons dire que MicroPython est une version en dés de python, conçue pour fonctionner avec des microcontrôleurs et des systèmes embarqués. La syntaxe et le processus de codage de MicroPython ressemblent à python. Donc, si vous connaissez déjà python, vous savez déjà comment écrire votre code en utilisant MicroPython. Si vous êtes un fan de Python, vous pouvez consulter cet article.
MicroPython a été développé au Royaume-Uni, par une équipe dirigée par Damion Jones, et ils ont lancé un Kickstarter à l'époque, où ils ont lancé un ensemble particulier de cartes de développement qui exécuteraient un micrologiciel, ce qui vous permet d'exécuter MicroPython par-dessus, le firmware a maintenant été porté pour fonctionner sur l'ESP8266, que vous apprendrez dans cet article.
Pourquoi MicroPython for NodeMCU?
Python est l'un des langages de programmation les plus utilisés et les plus faciles à apprendre à ce jour. Ainsi, avec l'introduction de MicroPython, la programmation de microcontrôleurs matériels est devenue très simple. Si vous n'avez jamais programmé de microcontrôleur auparavant et que vous souhaitez commencer à apprendre à programmer, MicroPython est un bon début.
MicroPython utilise une version allégée des bibliothèques standard Python, donc toutes les bibliothèques standard ne sont pas disponibles. Mais MicroPython inclut des modules simples et faciles à utiliser pour s'interfacer avec le matériel, ce qui signifie qu'avec l'aide de MicroPython, la lecture et l'écriture dans un registre GPIO sont devenues beaucoup plus faciles.
L'objectif ultime de MicroPython est de rendre la programmation des microcontrôleurs aussi simple que possible, afin qu'il puisse être utilisé par n'importe qui. Avec MicroPython, l'importation de bibliothèques et l'écriture de code devient facile, le code ci-dessous est un exemple simple qui fait clignoter la LED intégrée de la carte NodeMCU, nous discuterons du code en détail après l'article.
à partir de l'importation de la machine Broche à partir du moment importation de veille LED = Pin (2, Pin.OUT) tandis que True: LED.value (pas LED.value ()) sleep (0.5)
Qu'est-ce qu'un ESP8266 (NodeMCU)?
L'ESP8266 est un module Wi-Fi à faible coût, conçu pour les applications liées à l'Internet des objets (IoT).
Il est livré avec des broches d'entrée et de sortie (GPIO) à usage général et il prend également en charge une variété de protocoles couramment utilisés tels que SPI, I2C, UART, etc. Mais, la caractéristique la plus intéressante de ce microcontrôleur est qu'il dispose d'un Wi-Fi intégré. Avec lui, nous pouvons nous connecter très facilement à n'importe quel Wi-Fi 2,4 GHz.
Maintenant que les bases sont terminées, nous pouvons passer à la partie pratique où nous allons vous montrer le matériel requis et le processus d'installation de MicroPython sur l'ESP8266 IC.
Matériel utilisé
Liste des matériaux utilisés
- 1 x planche à pain
- 1 x ESP8266 (NodeMCU)
- 1 x DHT22 (capteur de température et d'humidité)
- 1 x 3 mm LED (diode électroluminescente)
- 1 x résistance 1K
- 5 x fil de cavalier
Installation du micrologiciel MicroPython pour ESP8266
Il existe deux façons d'installer le micrologiciel MicroPython sur l'ESP8266 dans cet article. Nous parlerons des deux, mais d'abord, nous devons le télécharger.
Téléchargement du micrologiciel MicroPython pour ESP8266:
Avant de connecter la carte NodeMCU (ESP8266) à notre PC, nous devons télécharger la dernière version de MicroPython après quoi nous pouvons installer le firmware sur le NodeMCU, vous pouvez le télécharger à partir de la page de téléchargement officielle de Micropython
Installation du micrologiciel MicroPython sur ESP8266:
Avant de pouvoir installer le micrologiciel sur l'ESP8266, nous devons nous assurer que nous avons le bon lecteur pour le convertisseur USB vers série, la plupart des cartes NodeMCU utilisent un IC convertisseur CP2102 USB vers UART, c'est pourquoi nous devons télécharger et installer le pilote pour le convertisseur CP2102 USB vers UART, une fois le lecteur téléchargé et installé, nous devons télécharger l'esptool, qui est un outil basé sur python conçu pour lire et écrire le firmware sur ESP8266.
Le moyen le plus simple d'obtenir Python est via le Microsoft Store, à partir de là, vous devez télécharger et installer une copie de Python. Une fois Python installé, nous pouvons utiliser la commande pip3 install esptool pour installer l'esptool. Le processus ressemblera à quelque chose comme l'image ci-dessous.
Une fois installé, vérifiez si vous accédez à esptool depuis le terminal de commande.
Pour ce faire, exécutez simplement la commande, version esptool.py si vous obtenez une fenêtre comme l'image ci-dessous, vous avez installé avec succès esptool sur votre PC Windows.
Et si vous rencontrez des difficultés pour accéder à esptool à partir de la fenêtre de commande, essayez d'ajouter le chemin d'installation complet à la variable d'environnement Windows.
Recherche du PORT alloué à la carte NodeMCU:
Maintenant, nous devons trouver le port alloué pour la carte NodeMCU, pour ce faire, allez simplement dans la fenêtre de votre gestionnaire de périphériques et recherchez une option appelée Ports si vous développez que vous pouvez trouver le port associé à la carte NodeMCU. Pour nous, cela ressemble à l'image ci-dessous.
Effacement de la mémoire flash de l'ESP8266:
Maintenant que nous avons déterminé le port COM associé, nous pouvons préparer le module NodeMCU en effaçant la mémoire flash de celui-ci. Pour ce faire, la commande suivante est utilisée, esptool.py --port COM6 erase_flash . Le processus ressemblera à l'image ci-dessous.
Installation du micrologiciel:
L'exécution de la commande suivante installera le binaire MicroPython sur la carte NodeMCU, une fois installé, ce binaire nous permettra de télécharger nos programmes python et de communiquer avec la boucle de lecture, d'évaluation et d'impression .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = detect 0 esp8266-20200911-v1.13.bin
Le processus ressemblera à l'image ci-dessous,
Veuillez noter qu'au moment de l'installation, le binaire était sur mon bureau, j'ai donc un cd sur mon bureau et j'exécute la commande.
Maintenant que c'est fait, il est temps de communiquer avec la carte et de faire clignoter certaines LED.
Communication avec le NodeMCU avec PuTTY
Maintenant, commençons notre premier programme Hello World en utilisant PuTTY, PuTTY pour ce faire, nous devons définir le type de connexion sur Serial, ensuite nous définissons la ligne série (dans notre cas, son COM6), et enfin, nous définissons la vitesse sur 115200 bauds.
Si tout est fait correctement, une fenêtre similaire à l'image ci-dessous apparaîtra, et nous pouvons facilement y écrire notre code, cela fonctionne généralement comme un terminal iPython. De plus, nous avons lancé notre premier programme hello world qui ne comporte que deux lignes simples, et une fois que nous avons mis notre instruction d'impression, nous avons obtenu notre réponse.
Télécharger un code de clignotement de LED basé sur Python à l'aide d'Ampy
Accéder à MicroPython à l'aide du terminal PuTTY est un bon moyen de communiquer avec le module ESP, mais un autre moyen simple consiste à télécharger le code via l'outil Adafruit Ampy, pour installer ampy, nous pouvons simplement exécuter une simple installation pip3 adafruit- ampy et il installera ampy sur notre PC. Le processus ressemblera à l'image ci-dessous.
Maintenant, une fois que vous l'avez, nous avons encore besoin de nos informations sur le port série auquel nous sommes connectés. Dans notre cas, c'est COM6. Il ne nous reste plus qu'à écrire notre code LED Blink avec MicroPython, pour cela, nous avons utilisé le guide fourni sur le site officiel de micro python
Avec l'aide du guide, le code suivant est créé.
à partir de l'importation de la machine Broche à partir du moment importation de veille LED = Pin (2, Pin.OUT) tandis que True: LED.value (pas LED.value ()) sleep (0.5)
Le code est très simple. Tout d'abord, nous importons la bibliothèque Pin de la machine. Classe de pin. Ensuite, nous devons importer la bibliothèque de temps, qui est utilisée pour créer une fonction de retard. Ensuite, nous définissons Pin2 (qui est la LED intégrée attachée au module ESP12E) comme sortie. Ensuite, nous avons mis en place une boucle while où nous allumons et éteignons la LED avec un retard de 500 ms.
C'est ainsi que vous téléchargez le code sur NodeMCU. Pour ce faire, vous devez exécuter la commande ampy suivante, ampy --port COM6 mettre main.py
Si le programme est exécuté corrigé, vous verrez une LED clignoter comme indiqué ci-dessous.
Remarque: lors du téléchargement du code, j'ai défini l'emplacement de mon invite actuelle sur mon bureau, je n'ai donc pas besoin de spécifier un chemin complet pour le fichier main.py si ce n'est pas le cas car vous devez spécifier le chemin complet de votre main. fichier.py.
Ensuite, nous passons à l'obtention de nos données de température et d'humidité à partir du capteur DHT22.
MicroPython sur ESP8266: Obtenir la température et l'humidité avec DHT22
Schéma d'interface DHT22 avec NodeMCU:
Le schéma de circuit complet de ce projet se trouve ci-dessous. J'ai utilisé le fritzing pour créer ce circuit.
Comme vous pouvez le voir, le circuit est très simple et peut être facilement construit sur une maquette à l'aide de fils de pontage. Le circuit complet peut être alimenté en utilisant le port micro-USB sur NodeMCU. Ma configuration matérielle est illustrée ci-dessous.
Code:
Il est très facile d'obtenir les données de température et d'humidité d'un capteur DHT22 ou DHT11 à l'aide d'un MicroPython car le micrologiciel MicroPython que nous avons installé précédemment est livré avec une bibliothèque DHT intégrée.
1. Nous commençons notre code en important la bibliothèque DHT et la bibliothèque de broches de la classe machine.
import dht à partir de la broche d'importation de la machine
2. Ensuite, nous créons un objet DHT qui fait référence à la broche, dans laquelle nous avons attaché notre capteur.
capteur = dht.DHT22 (broche (14))
3. Enfin, pour mesurer la valeur du capteur, nous devons utiliser les trois commandes suivantes.
capteur.mesure () capteur.température () capteur.humidité ()
Pour le code final, nous le mettons dans une boucle while avec et imprimons les valeurs qui marquent la fin de notre code. De plus, le capteur DHT22 a besoin de 2 secondes avant de pouvoir lire des données, nous devons donc ajouter un délai de 2 secondes.
à partir de l'importation de la machine Pin de l'heure importation sommeil import dht dht22 = dht.DHT22 (Pin (14)) while True: try: sleep (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () print ('Temperature:% 3.2f C'% temp) print ('Humidity:% 3.2f %%'% hum) sauf OSError as e: print ('Failed to read data from the DHT22 sensor.')
Une fois le codage terminé, nous pouvons télécharger le code à l'aide de la commande ampy.
ampy --port COM6 mettre main.py
Après avoir exécuté le code avec succès, vous pouvez surveiller les valeurs de température et d'humidité sur n'importe quel moniteur série. J'ai utilisé du mastic et comme vous pouvez le voir ci-dessous, j'ai pu recevoir des valeurs de température et d'humidité sur COM5.
J'espère que vous avez apprécié l'article et appris quelque chose d'utile. Si vous avez des questions, vous pouvez les laisser dans la section commentaires ci-dessous ou utiliser nos forums pour publier d'autres questions techniques.