L’objectif principal de ce tutoriel est d’apprendre à contrôler l’allumage et l’extinction d’une lampe (fonctionnant sous 220V) à l’aide d’un bouton poussoir relié à la carte ESP8266 NodeMCU, en passant par un module relais.
Ce projet permet de comprendre comment une simple action manuelle (appui sur un bouton) peut être traduite par le microcontrôleur en un signal électrique qui commande un circuit de puissance, comme une lampe domestique.
Objectifs pédagogiques détaillés
1- Comprendre le principe de commande d’un appareil électrique à distance
Le tutoriel montre comment utiliser la carte ESP8266 NodeMCU comme interface entre un capteur (le bouton poussoir) et un actionneur (le relais qui contrôle la lampe).
Le microcontrôleur détecte l’état du bouton (appuyé ou non) et active ou désactive le relais en conséquence.
2- Apprendre à interfacer un relais avec une carte ESP8266 NodeMCU
Le relais agit comme un interrupteur électronique permettant à la carte (fonctionnant en 3,3V) de contrôler un circuit à haute tension (220V) sans contact direct.
Vous découvrirez comment connecter correctement le relais pour commander la lampe en toute sécurité.
3- Découvrir le fonctionnement du bouton poussoir en entrée numérique
Le bouton poussoir sera connecté à une broche GPIO configurée en entrée, avec une résistance de pull-up interne ou externe.
Vous apprendrez comment lire l’état du bouton dans un programme MicroPython et réagir à ses changements d’état.
4- Programmer la carte ESP8266 NodeMCU en MicroPython
Vous écrirez un programme en MicroPython permettant de lire l’état du bouton poussoir, de changer l’état du relais selon l’appui sur le bouton, donc d’allumer ou d’éteindre la lampe.
1. Carte ESP8266 NodeMCU
C’est le microcontrôleur principal du système.
Elle lit l’état du bouton poussoir et envoie un signal logique à la broche de commande du relais.
2. Module Relais
Il sert d’interrupteur électronique entre la carte ESP8266 (basse tension) et la lampe 220V (haute tension).
Il isole la partie commande (3,3V) de la partie puissance (220V) grâce à un opto-coupleur.
3. Lampe (220V)
Rôle : C’est la charge électrique à contrôler.
Elle s’allume ou s’éteint selon l’état du relais (activé ou désactivé).
4. Bouton poussoir
Il sert à envoyer un signal d’entrée à la carte ESP8266 NodeMCU.
Lorsqu’on appuie sur le bouton, la carte détecte un changement d’état et inverse la commande du relais (ON ↔ OFF).
5. Fils de connexion (Jumpers)
Il relie les différents composants (ESP8266 ↔ relais ↔ bouton poussoir).
6. Plaque d’essai (Breadboard)
Rôle : Permet de réaliser le montage des composants sans soudure.
Idéale pour tester le circuit avant une réalisation définitive.
7. Source d’alimentation 220V
Il alimente la lampe via le relais.
Attention : Ne jamais connecter directement le 220V à la carte ESP8266 !
Le relais est là pour assurer une isolation électrique sécurisée.
1- Connectez le relais à la carte ESP8266 :
- Connecter la broche (-) du relais à la broche GND de la carte ESP8266
- Connecter la broche (+) du relais à la broche 3V de la carte ESP8266
- Connecter la broche (S) du relais à la broche numérique D0 (GPIO16) de la carte ESP8266
2- Prenez un bouton poussoir et utilisez les fils de raccordement pour le à la carte la carte ESP8266 :
- Connectez une patte du bouton-poussoir à la broche D1 (GPIO5) de la carte ESP8266.
- Connectez une autre patte du bouton-poussoir à la broche GND de la carte ESP8266.
3- Connectez la source d'alimentation de la lampe (220V) au relais :
- Connectez la phase de la lampe à la borne normalement ouverte (NO) du relais.
- Connectez la phase de la source d'alimentation à la borne commune (COM) du relais.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import machine from machine import Pin import time # definir les pins du bouton et du relais button = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP) relay_lamp=Pin(16, Pin.OUT) relay_lamp_state=0; while True: first = button.value() time.sleep(0.01) second = button.value() if first and not second: print('Button pressed!') if (relay_lamp_state==0): relay_lamp.value(1) # allumer la lampe relay_lamp_state=1 else: relay_lamp.value(0) # eteindre la lampe relay_lamp_state=0; time.sleep(0.5) elif not first and second: print('Button released!') |
Lorsque le bouton est enfoncé (l'état est bas), la lampe s'allume. Si le bouton est enfoncé une autre fois, la lampe s'éteint. Le délai de 0.5 seconde est utilisé pour éviter le rebond du bouton-poussoir, qui peut provoquer plusieurs activations du bouton en appuyant une seule fois.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info