Les portes à ouverture à distance sont des systèmes automatisés qui permettent d’ouvrir et de fermer une porte sans contact physique direct, généralement à l’aide d’un dispositif de contrôle tel qu’une télécommande, une application mobile, une carte RFID, un capteur infrarouge, ou un réseau sans fil (Wi-Fi, Bluetooth, etc.).
Ces portes sont souvent équipées de composants électroniques comme :
- Un microcontrôleur (ex : ESP32, Arduino)
- Un moteur ou servomoteur
- Un module de réception de signal (IR, Bluetooth, Wi-Fi)
- un afficheur (LCD)
Elles sont utilisées dans des contextes variés :
- Maisons intelligentes (domotique)
- Bâtiments sécurisés
- Portes de garage
- Portes d’entrée automatisées
- Accès contrôlé en entreprise ou à l’école
Le système présenté permet de contrôler l’ouverture et la fermeture d’une porte à l’aide d’une télécommande infrarouge, grâce à l’intégration d’un microcontrôleur ESP32, d’un servomoteur, d’un afficheur LCD I2C et d’un récepteur infrarouge. Il constitue une solution simple, économique et efficace pour la gestion d’accès à distance, souvent utilisée dans les projets de domotique.
1- Réception du signal de la télécommande :
Le capteur infrarouge (par exemple un capteur KY-022 ou VS1838B) est connecté à la carte ESP32. Il est chargé de recevoir les signaux IR émis par la télécommande. Chaque bouton de la télécommande envoie un code unique (valeur HEX), qui est traité par l’ESP32.
2- Traitement du signal par l’ESP32 :
L’ESP32 est programmé pour reconnaître les codes spécifiques correspondant aux actions "ouvrir" ou "fermer". Une fois le code détecté, l’ESP32 exécute la commande correspondante.
3- Commande du servomoteur :
Lorsqu’un code d’ouverture est reçu, l’ESP32 envoie un signal PWM au servomoteur, qui tourne généralement de 0° à 90° pour simuler l’ouverture d’une porte. En cas de fermeture, le servo revient à 0°.
Affichage de l’état sur l’écran LCD I2C :
Un afficheur LCD I2C connecté à l’ESP32 affiche en temps réel l’état du système, par exemple : « Porte ouverte » ou « Porte fermée »
1. Carte ESP32
Rôle : C’est le microcontrôleur central du projet. Il reçoit les signaux du capteur KY-032, analyse les commandes de la télécommande infrarouge, contrôle le servomoteur, et affiche l’état du système sur l’écran LCD.
2. Télécommande infrarouge
Rôle : Permet à l’utilisateur de contrôler la porte à distance en envoyant des signaux infrarouges.
3. Capteur infrarouge KY-032
Rôle : Détourné de son usage principal, il est utilisé ici comme un récepteur IR pour détecter la présence de signaux IR émis par la télécommande.
4. Servomoteur (ex: SG90)
Rôle : Il permet d’ouvrir ou fermer mécaniquement la porte en tournant à un certain angle.
5. Afficheur LCD I2C (16x2 ou 20x4)
Rôle : Affiche des informations textuelles telles que l’état de la porte (Ouverte, Fermée, En attente de commande IR, etc.).
Rôle: facilite les connexions des composants sans soudure.
Rôle : relient les composants entre eux (Arduino UNO, servomoteur, capteur KY-032) et permettent de transférer les signaux et l’alimentation.
Le prototype de maison en bois simule une vraie maison avec une porte mobile.
Il constitue un support pour fixer le servomoteur et la porte.
Connexion de l'afficheur I2C LCD à la carte ESP32
LCD I2C Pin | ESP32 pin |
VCC | 5 volt |
GND | GND |
SDA | GPIO 21 |
SCL | GPIO 22 |
Connexion du servomoteur à la carte ESP32
Servomoteur | ESP32 |
Fil marron (-) | GND |
Fil rouge (+) | 5V |
Fil jaune | GPIO 23 |
Connexion du capteur KY-032 à la carte ESP32
KY-032 | ESP32 |
GND | GND |
(+) | 3.3V |
OUT | GPIO19 |
Voici un programme complet en MicroPython pour un système d'ouverture/fermeture de porte avec ESP32, utilisant une télécommande, un capteur infrarouge KY-032, un servomoteur et un écran LCD I2C.
Bibliothèques requises
Servo → pour commander le servomoteur
i2c_lcd et lcd_api → pour afficher les informations sur l’écran LCD I2C
ir_rx → pour contrôler le capteur KY-032
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
import machine from machine import Pin, SoftI2C from time import sleep from servo import Servo from lcd_api import LcdApi from i2c_lcd import I2cLcd from ir_rx import NEC_16 I2C_ADDR = 0x27 totalRows = 4 totalColumns = 20 # === Initialisation LCD I2C === i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #initializing the I2C method for ESP32 lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) def ir_callback(data, addr, ctrl): global ir_data global ir_addr if data > 0: ir_data = data ir_addr = addr print('Data {:02x} Addr {:04x}'.format(data, addr)) # === Initialisation du capteur infrarouge (entrée) === ir_gpio=Pin(19, Pin.IN) ir = NEC_16(ir_gpio, ir_callback) ir_data = 0 ir_addr = 0 # === Initialisation Servo === motor=Servo(pin=23) # A changer selon la broche utilisée motor.move(90) # tourne le servo à 0° position_door=90 lcd.clear() lcd.move_to(1,1) lcd.putstr("Porte fermee") while True: if ir_data > 0: if ir_data==0x0C: # on appuie sur la touche 1 de la télécommande if position_door==90: #si la porte est fermee lcd.clear() lcd.move_to(1,1) lcd.putstr("Porte s'ouvre") for i in range(91,19,-1): motor.move(i) # tourne le servo à 20° pour ouvrir la porte sleep(0.1) position_door=20 lcd.clear() lcd.move_to(1,1) lcd.putstr("Porte ouverte") if ir_data==0x18: # on appuie sur la touche 2 de la télécommande if position_door==20: # si la porte est ouverte lcd.clear() lcd.move_to(1,1) lcd.putstr("Porte se ferme") for i in range(20,91): motor.move(i) # tourne le servo à 90° pour fermer la porte sleep(0.1) position_door=90 lcd.clear() lcd.move_to(1,1) lcd.putstr("Porte fermee") |
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