Les portes à ouverture à distance sont des systèmes automatisés permettant de contrôler l'ouverture et la fermeture d'une porte sans avoir besoin d'une action physique directe sur celle-ci. Ce type de système est de plus en plus utilisé dans les maisons intelligentes, les bureaux, les garages ou encore les établissements sécurisés.
Le principe repose généralement sur l’utilisation d’un microcontrôleur (comme une carte Arduino, ESP32 ou Micro:bit), couplé à un servomoteur ou un moteur électrique, qui actionne l’ouverture de la porte. Le contrôle à distance peut se faire via différents moyens :
- une télécommande ou un bouton sans fil,
- un smartphone via Bluetooth ou Wi-Fi,
- un capteur de mouvement,
- ou encore un système RFID (carte ou badge d’accès).
Ces portes intelligentes offrent plus de confort, de sécurité et permettent de contrôler l’accès à certains espaces. Elles sont aussi très utilisées dans les projets pédagogiques et domotiques pour apprendre la programmation, l'électronique et l'automatisation.
Ce projet permet de contrôler l’ouverture d’une porte grâce à une télécommande infrarouge, en utilisant un capteur KY-032 connecté à une carte Arduino UNO. Lorsqu’un signal IR valide est détecté, un servomoteur ouvre ou ferme la porte, et un afficheur LCD I2C affiche l'état actuel ("Porte ouverte" ou "Porte fermée").
Fonctionnement du système
1- L’utilisateur appuie sur un bouton de la télécommande en direction du capteur KY-032.
2- Le capteur détecte la lumière infrarouge et envoie un signal HAUT ou BAS à l'Arduino.
3- L'Arduino actionne le servomoteur pour ouvrir ou fermer la porte.
4- Le LCD affiche l'état actuel de la porte.
1. Carte Arduino UNO
La carte Arduino UNO est le cœur du système. C’est un microcontrôleur basé sur l’ATmega328P qui permet de lire les signaux des capteurs, traiter les informations, et envoyer des commandes aux actionneurs comme un servomoteur ou un écran.
Rôle dans le système : Contrôler l’ouverture/fermeture de la porte selon le signal reçu du capteur infrarouge.
2. Capteur infrarouge KY-032
Le capteur infrarouge KY-032 est un détecteur qui capte la lumière infrarouge émise par une télécommande ou un autre objet infrarouge. Il agit comme un détecteur d'obstacle ou de signal infrarouge, en renvoyant un signal numérique à la carte Arduino.
Rôle dans le système : Détecter un appui sur la télécommande IR (comme un déclencheur d’action).
3. Servomoteur (ex: SG90)
Un servomoteur est un moteur contrôlé en angle. Il est utilisé ici pour ouvrir ou fermer une porte automatiquement. Sa rotation est limitée, ce qui est parfait pour des mouvements contrôlés comme une charnière de porte.
Rôle dans le système : Actionner mécaniquement l’ouverture ou la fermeture de la porte.
4. Afficheur LCD I2C
L'écran LCD permet d’afficher des messages comme “Porte ouverte” ou “Porte fermée”. Grâce au module I2C, il utilise seulement 2 broches (SDA et SCL) pour communiquer avec l’Arduino, ce qui économise des pins.
5. Télécommande infrarouge
Une télécommande infrarouge classique (comme celles des télévisions) émet un signal IR lorsqu’un bouton est pressé. Ce signal est détecté par le capteur KY-032.
Rôle dans le système : Déclencher l’action d’ouverture ou fermeture de la porte à distance.
Une télécommande infrarouge (IR) envoie des signaux codés sous forme de lumière infrarouge.
Le breadboard facilite les connexions des composants sans soudure.
Les fils de connexion 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 LCD I2C à l'Arduino
LCD I2C Display Pin | Arduino Pin |
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |
Connexion du servomoteur à l'Arduino
Servomoteur | Arduino UNO |
Fil marron (-) | GND |
Fil rouge (+) | 5V |
Fil jaune | Broche numérique N°2 |
Connexion du capteur KY-032 à l'Arduino
KY-032 Pin | Arduino Oin |
GND | GND |
+ | 3V3 |
OUT | Pin 3 |
Voici un programme complet Arduino pour ouvrir une porte à l’aide d’une carte Arduino, d’un servomoteur, d’un capteur infrarouge KY-032, d’une télécommande infrarouge, et d’un afficheur LCD I2C.
Ce code utilise ces bibliothèques LiquidCrystal_I2C et IRremote. Assure-toi de les installer dans l'IDE Arduino en suivant ces étapes :
Allez dans Sketch > Inclure une bibliothèque > Gérer les bibliothèques et recherchez LiquidCrystal_I2C et IRremote.
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 |
// Inclusion des bibliothèques nécessaires #include <IRremote.hpp> #include <LiquidCrystal_I2C.h> #include<Servo.h> //include the servo library // Déclaration des broches #define IR_RECEIVE_PIN 3 Servo servo; //create a servo object int position_servo = 85; //initial position of the servo pour fermer la porte LiquidCrystal_I2C lcd(0x27, 40, 4); // Adresse I2C et dimensions de l'écran LCD (20 colonnes, 4 lignes) void setup() { servo.attach(2); //pin used by the servo servo.write(85); lcd.init(); lcd.backlight(); lcd.clear(); lcd.setCursor(1, 1); lcd.print("Porte fermee"); // Afficheur "porte fermee" dans l'afficheur LCD Serial.begin(9600); // Establish serial communication IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Initialser la capteur infrarouge KY-032 } void loop() { if (IrReceiver.decode()) // Si un signal IR est recu de la telecommande { Serial.println(IrReceiver.decodedIRData.decodedRawData); // Print "old" raw data if (IrReceiver.decodedIRData.decodedRawData==4077715200){ // Si on appuie sur le bouton 1 de la telecommande if (position_servo==85) { lcd.clear(); lcd.setCursor(1, 1); lcd.print("La porte s'ouvre"); for (int i=85; i>20 ; i--) { servo.write(i); // Rotation du servomoteur pour ouvrir la porte delay(100); } lcd.clear(); lcd.setCursor(1, 1); lcd.print("Porte ouverte"); position_servo=20; }} if (IrReceiver.decodedIRData.decodedRawData==3877175040){ // Si on appuie sur le bouton 2 de la telecommande if (position_servo==20) { lcd.clear(); lcd.setCursor(1, 1); lcd.print("La porte se ferme"); for (int i=20; i<85 ; i++) { servo.write(i); // Rotation du servomoteur pour fermer la porte delay(100); } lcd.clear(); lcd.setCursor(1, 1); lcd.print("Porte fermee"); position_servo=85; } } IrReceiver.printIRSendUsage(&Serial); // Print the statement required to send this data IrReceiver.resume(); // Enable receiving of the next value } } |
Résumé du fonctionnement du code
1- Le capteur KY-032 détecte un signal infrarouge (émis par une télécommande).
2- L'Arduino change l'état de la porte :
a) Si elle est fermée, il ordonne le servomoteur pour ouvrir la porte.
b) Si elle est ouverte, il ordonne le servomoteur pour fermer la porte.
3- L'écran LCD affiche l’état actuel de la porte à chaque changement.
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