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.

  • GERUI 3 x D1 ESP8266 Mini Board NodeMCU WiFi ESP8266-12F CH340G Module Wi-Fi Type C
    D1 mini est une mini carte WiFi NodeMcu basée sur un ESP-8266-12F avec port micro USB. Cette carte Wi-Fi contient 9 broches d'entrée/sortie numériques, toutes les broches ont interrupt / pwm / I2C / 1 fil. Cette mini carte D1 ESP8266 est basée sur ESP-8266. Grâce à sa forme ultra-compacte, le D1 Mini NodeMcu avec module Wi-Fi ESP8266-12F se range très facilement de manière décentralisée. La carte de développement drathlose D1 Mini est compatible avec D1 Mini et peut être programmée dans l'IDE Arduino. Avec interrupteur d'alimentation 5 V 1 A (entrée maximale 24 V).1 broche ADC (entrée 0-3,3 V). Prise en charge OTA.
  • AZDelivery ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board avec CP2102 (successeur de ESP8266) Compatible avec Arduino incluant Un E-Book!
    ✅ Que vous soyez débutant ou expert, AZDelivery ESP32 NodeMCU Module WLAN WiFi est le microcontrôleur qu’ il vous faut! ✅ Il vous assure un prototypage facile grâce à une programmation simple via le script Lua ou dans Arduino-IDE et un design compatible breadboard. Vous aurez ainsi la l’opportunité de développer des projets uniques et étonnants en rapport avec l’IoT, des horloges décoratives à LED, des outils de mesures de la qualité de l’air à l’intérieur. ✅ Cette carte est équipée de puces Wi-Fi et Bluetooth bimode 2,4 GHz de TSMC ainsi que de la technologie 40nm basse consommation. ✅ Le module a 38 broches et offre plus de fonctions qu'un module à 30 broches. Il est également plus petit et plus pratique à utiliser. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • diymore 3 pièces ESP8266 WiFi NodeMCU Modules CP2102 12E compatibles avec IDE/Micropython
    Cette carte de développement NodeMCU ESP8266 12E prend en charge tous les ports E/S et sans fil 802.11, qui peuvent être téléchargés directement sans réinitialisation. Prend en charge le mode de fonctionnement STA/AP/STA+AP. Cette carte de développement dispose d'un micro-USB intégré avec flash et interrupteur de réinitialisation, qui est facile à programmer. ESP8266 CP2102 12E module sans fil série WiFi. API pilotée par des événements utilisés dans les applications réseau, elle favorise les développeurs à écrire du code pour les opérations MCU, accélérant considérablement votre processus de développement d'applications Internet of Things.