Entrées et sorties numériques ESP32/ESP8266 avec MicroPython

Entrées et sorties numériques ESP32/ESP8266 avec MicroPython

Ce tutoriel montre comment contrôler les GPIO ESP32 et ESP8266 en tant qu’entrées numériques et sorties numériques à l’aide du micrologiciel MicroPython. A titre d’exemple, vous apprendrez à lire la valeur d’un bouton poussoir et à allumer une LED en conséquence.

esp32 esp8266 entrées et sorties micropython

Conditions préalables

Pour suivre ce tutoriel, vous avez besoin du firmware MicroPython installé dans vos cartes ESP32 ou 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 :

Si c’est la première fois que vous traitez avec MicroPython, nous vous recommandons de suivre ce guide : Premiers pas avec MicroPython sur ESP32 et ESP8266

Aperçu du projet

Pour vous montrer comment utiliser les entrées et les sorties numériques, nous allons créer un exemple de projet simple avec un bouton-poussoir et une LED. Nous allons lire l’état du bouton-poussoir et allumer la LED en conséquence, comme illustré dans la figure suivante.

Entrees et sorties numeriques ESP32ESP8266 avec MicroPython

Entrées numériques

Pour obtenir la valeur d’un GPIO, vous devez d’abord créer un Épingler objet et définissez-le comme entrée. Par example:

button = Pin(4, Pin.IN)

Ensuite, pour obtenir sa valeur, vous devez utiliser le valeur() méthode sur la Épingler objet sans passer d’argument. Par exemple, pour obtenir l’état d’un Épingler objet appelé bouton, utilisez l’expression suivante :

button.value()

Nous vous montrerons plus en détail comment tout fonctionne dans l’exemple de projet.

Sorties numériques

Pour activer ou désactiver un GPIO, vous devez d’abord le définir comme sortie. Par example:

led = Pin(5, Pin.OUT)

Pour contrôler le GPIO, utilisez le valeur() méthode sur la Épingler objet et passe 1 ou 0 comme argument. Par exemple, la commande suivante définit un Épingler objet (LED) trop haut:

led.value(1)

Pour régler le GPIO sur LOW, passez 0 comme argument :

led.value(0)

Schématique

Avant de procéder, vous devez assembler un circuit avec une LED et un bouton-poussoir. Nous connecterons la LED à GPIO 5 et le bouton poussoir pour GPIO 4.

Pièces requises

Voici une liste des pièces dont vous avez besoin pour construire le circuit :

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 !

1642127047 80 Entrees et sorties numeriques ESP32ESP8266 avec MicroPython

Schéma – ESP32

Suivez le diagramme schématique suivant si vous utilisez une carte ESP32 :

1642127047 17 Entrees et sorties numeriques ESP32ESP8266 avec MicroPython

Schéma – ESP8266

Suivez le diagramme schématique suivant si vous utilisez une carte ESP8266 :

1642127047 548 Entrees et sorties numeriques ESP32ESP8266 avec MicroPython

Sur l’ESP8266, la broche marquée D1 correspond à GPIO 5 et la broche marquée D2 correspond à GPIO 4.

Scénario

Le code suivant lit l’état du bouton-poussoir et allume la LED en conséquence. Le code fonctionne pour les cartes ESP32 et ESP8266.

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

from machine import Pin
from time import sleep

led = Pin(5, Pin.OUT)
button = Pin(4, Pin.IN)

while True:
  led.value(button.value())
  sleep(0.1)

Afficher le code brut

Comment fonctionne le code

Vous commencez par importer le Épingler classe de la machine module, et le sommeil classe de la temps module.

from machine import Pin
from time import sleep

Ensuite, créez un Épingler objet appelé LED au GPIO 5. Les LED sont des sorties, passez donc en second argument Pin.OUT.

led = Pin(5, Pin.OUT)

Nous créons également un objet appelé bouton au GPIO 4. Les boutons sont des entrées, utilisez donc Broche. IN.

button = Pin(4, Pin.IN)

Utiliser bouton. valeur() pour retourner/lire l’état du bouton. Ensuite, passez le bouton. valeur() expression comme argument de la valeur de la LED.

led.value(button.value())

De cette façon, lorsque nous appuyons sur le bouton, bouton. valeur() Retour 1. Donc, c’est la même chose que d’avoir led.value(1). Cela définit l’état de la LED sur 1, allumant la LED. Lorsque le bouton-poussoir n’est pas enfoncé, bouton. valeur() Retour 0. Nous avons donc led.value(0), et la LED reste éteinte.

Manifestation

Enregistrez le code sur votre carte ESP en utilisant Thonny IDE ou uPyCraft IDE. Ensuite, la LED doit s’allumer lorsque vous appuyez sur le bouton et rester éteinte lorsque vous le relâchez.

1642127047 590 Entrees et sorties numeriques ESP32ESP8266 avec MicroPython

Conclusion

Pour conclure, pour lire la valeur d’un GPIO, il suffit d’utiliser le valeur() méthode sur le correspondant Épingler objet. Pour définir la valeur d’un GPIO, il suffit de passer en argument 1 ou 0 à la valeur() méthode pour l’activer ou le désactiver, respectivement.

Nous espérons que vous avez trouvé ce tutoriel utile. Si vous débutez avec MicroPython, vous aimerez peut-être également les ressources suivantes :

Merci d’avoir lu.

  • ANGEEK D1 V3.0.0 4MB WiFi IoT Carte de développement, Module WLAN pour ESP8266 pour MicroPython, Arduin, Nodemcu (Trois Packs)
    Il s'agit du module D1 V3.0 pour le module WIFI ESP8266. La nouvelle version v3.0.0 ajoute maintenant la fonctionnalité de cavalier de sommeil profond et des circuits optimisés. Il est compatible avec MicroPython et NodeMCU. est une carte de développement WLAN avec une puce CH340C et une interface micro USB. Compacte, elle offre 4 Mo de mémoire flash pour tous vos projets. Cette carte de développement possède 11 broches d'entrée/sortie numériques, qui ont toutes (sauf D0) une fonction d'interruption/PWM/I2C/simple ligne.