Arduino, Tutoriels

Système de sécurité de porte contrôlé par Arduino

Système De Sécurité De Porte Contrôlé Par Arduino

Introduction au Système de sécurité de porte

Le Système de sécurité de porte à écran tactile basé sur Arduino intègre des mesures de sécurité numériques avec des avancées technologiques. Ce dispositif s’appuie sur une plateforme Arduino, qui est reconnue pour sa robustesse et son adaptabilité dans une variété d’applications de systèmes automatisés.

Ce système se caractérise par son interface à écran tactile, qui facilite une interaction intuitive et réactive. Au cœur de son fonctionnement, il utilise un numéro d’identification personnel (PIN) pour permettre un accès sécurisé et spécifique à chaque utilisateur.

Ce système démontre comment les technologies numériques peuvent améliorer les mécanismes traditionnels, se positionnant comme une réponse innovante dans le secteur de la sécurité personnelle et de la propriété.

Les Composants du Circuit dans le Système de sécurité de Porte à Écran Tactile

Le schéma de circuit pour le Système de sécurité de porte à écran tactile détaille les connexions électriques et les composants qui forment le cadre opérationnel de l’appareil. Le système comprend plusieurs composants, chacun ayant une fonction distincte :

  1. Arduino Uno : Sert de contrôleur central qui exécute la logique du programme, y compris l’interface utilisateur sur l’écran tactile et le processus de vérification du mot de passe.
  2. Écran TFT LCD de 2,4 pouces : Ce composant, monté directement sur l’Arduino, affiche le clavier tactile pour l’interaction utilisateur et fournit une rétroaction visuelle pour les opérations telles que la saisie du PIN et le statut du système.
  3. Verrou à Solénoïde : Fonctionne comme le mécanisme de verrouillage qui s’engage ou se désengage en fonction de la commande de l’Arduino, conditionnelle à une saisie réussie du PIN.
  4. Module de Relais : Agit comme intermédiaire pour contrôler le circuit à courant élevé du verrou à solénoïde, assurant que l’Arduino à faible puissance puisse actionner le verrou en toute sécurité sans être directement exposé à des niveaux de courant élevés.
  5. Buzzer : Émet un signal sonore en réponse aux actions de l’utilisateur, telles que les pressions de touche ou les tentatives d’accès, contribuant au système de rétroaction utilisateur.

Logique de programmation pour l’interface utilisateur et la vérification du mot de passe

La logique de programmation pour le système basé sur Arduino peut être divisée en deux segments principaux : la création de l’interface utilisateur (UI) et la vérification du mot de passe.

Création de l’Interface Utilisateur

L’UI est le pont entre l’utilisateur et la fonctionnalité de la machine. Dans ce système, l’UI est affichée sur un écran tactile TFT LCD de 2,4 pouces, qui est directement contrôlé par l’Arduino Uno. L’interface graphique, conçue à l’aide de la bibliothèque de l’Arduino, présente une grille de boutons correspondant aux chiffres numériques nécessaires pour la saisie du PIN.

Pour la création de cette interface, des coordonnées sont définies pour l’entrée tactile, qui s’alignent avec la représentation visuelle des boutons sur l’écran. Lorsqu’un utilisateur interagit avec l’écran, les coordonnées tactiles sont capturées et traitées par l’Arduino. La réactivité de l’UI est cruciale, fournissant une rétroaction visuelle immédiate aux entrées tactiles pour guider l’utilisateur à travers le processus de saisie du PIN.

Vérification du Mot de Passe

La vérification du mot de passe est une fonctionnalité de sécurité critique. Lorsqu’un utilisateur entre un PIN, le système capture l’entrée sous forme d’une chaîne de caractères ou de chiffres.

Cette entrée est ensuite comparée à un mot de passe préétabli stocké en toute sécurité dans la mémoire non volatile de l’Arduino, comme l’EEPROM, qui préserve les données même lorsque l’alimentation est coupée.

Si le PIN saisi correspond au mot de passe stocké, un signal est envoyé pour activer le module de relais, qui à son tour active le verrou à solénoïde, déverrouillant la porte. A l’inverse, si le PIN est incorrect, le système fournit une alerte visuelle et sonore, et l’accès est refusé. Cette boucle logique continue de surveiller une saisie correcte, assurant un accès autorisé uniquement.

Système De Sécurité De Porte Contrôlé Par Arduino

Code pour le Système de sécurité de porte

  • Configuration Initiale et Définitions
#include <SPFD5408_Adafruit_GFX.h> // Bibliothèque graphique de base
#include <SPFD5408_Adafruit_TFTLCD.h> // Bibliothèque spécifique au matériel
#include <SPFD5408_TouchScreen.h> // Bibliothèque de l'écran tactile
#include <EEPROM.h> // Bibliothèque mémoire pour stocker les données
// Définitions des pins pour l'écran tactile
#define YP A1
#define XM A2
#define YM 7
#define XP 6
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
// Définitions des couleurs pour l'écran
#define WHITE   0x0000 //Black->White
#define YELLOW    0x001F //Blue->Yellow
#define CYAN     0xF800 //Red->Cyan
#define PINK   0x07E0 //Green-> Pink
#define RED    0x07FF //Cyan -> Red
#define GREEN 0xF81F //Pink -> Green 
#define BLUE  0xFFE0 //Yellow->Blue
#define BLACK   0xFFFF //White-> Black
#define MINPRESSURE 10
#define MAXPRESSURE 1000
// Données de calibrage pour l'écran tactile
#define TS_MINX 125
#define TS_MINY 85
#define TS_MAXX 965
#define TS_MAXY 905
// Initialisation de l'écran tactile avec réglage de sensibilité
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
// Initialisation du TFT LCD avec configurations des pins
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
String symbol[4][3] = {
  { "1", "2", "3"},
  { "4", "5", "6"},
  { "7", "8", "9"},
  { "x", "0", "OK"}
};
int X,Y;
int Number;
int relayPin = 11;// set pin 11 for relay output
int buzzer = 12;
int pass, currentpage;
int password;
int addr = 0;
int addr1 = 1;
unsigned long interval = 2000;
unsigned long previousMillis = 0;
unsigned long currentMillis;

Cette section comprend les importations de bibliothèques nécessaires pour l’affichage graphique et la fonctionnalité de l’écran tactile. Les définitions des pins établissent la communication entre l’Arduino et le matériel d’affichage, et les définitions des couleurs sont utilisées pour dessiner sur l’écran. Les valeurs de calibrage sont cruciales pour le mappage précis des coordonnées tactiles.

  • Fonction de Configuration
void setup() {
Serial.begin(9600); // Commencer la communication série pour le débogage
tft.reset(); // Réinitialiser l'affichage
tft.begin(0x9341); // Initialiser l'affichage avec le CI pilote
tft.setRotation(2); // Définir l'orientation de l'affichage
tft.fillScreen(WHITE); // Définir le fond en blanc
draw_BoxNButtons(); // Dessiner l'UI initiale pour le verrou
pinMode(relayPin, OUTPUT); // Définir le pin du relais comme sorti
pinMode(buzzer, OUTPUT); // Définir le pin du buzzer comme sortie
digitalWrite(relayPin, LOW); // Assurer que le relais est éteint au départ
digitalWrite(relayPin, LOW);// set relay pin to LOW
currentpage = 0;
pass = 0;
}

Dans la fonction de configuration, les conditions initiales sont définies. L’affichage est initialisé et l’interface utilisateur est dessinée. Les pins pour contrôler le relais et le buzzer sont définis comme sorties. Cette fonction pose les bases avant que l’appareil n’entre dans la boucle de programme principale.

  • Boucle de Programme Principale
void loop() {
currentMillis = millis(); // Capturer le temps actuel
TSPoint p = waitTouch(); // Obtenir les coordonnées du toucher
X = p.y; Y = p.x; // Normaliser les coordonnées du toucher
DetectButtons(); // Fonction pour détecter les pressions de boutons
delay(300); // Délai anti-rebond pour l'entrée tactile
}

TSPoint waitTouch() {
  TSPoint p;
  do {
    p = ts.getPoint(); 
    pinMode(XM, OUTPUT);
    pinMode(YP, OUTPUT);
  } while((p.z < MINPRESSURE )|| (p.z > MAXPRESSURE));
  p.x = map(p.x, TS_MINX, TS_MAXX, 0, 320);
  p.y = map(p.y, TS_MINY, TS_MAXY, 0, 240);;
  return p;
}

La fonction loop est le cœur du programme, où l’appareil vérifie continuellement l’interaction de l’utilisateur. Il capture l’entrée tactile et détermine si l’un des boutons de l’affichage a été pressé.

  • Détection de Boutons et Vérification du Mot de Passe
void DetectButtons()
{
   if (currentpage == 0)
   {
    tft.fillRect(0, 0, 240, 80, CYAN);  
    tft.setCursor(10, 20);
    tft.setTextSize(4);
    tft.setTextColor(BLACK);
  if (X<80 && X>0) //Detecting Buttons on Column 1
  {
    if (Y>0 && Y<80) 
    {Serial.println ("Cancel"); 
    Number=0; 
    if ((unsigned long)(currentMillis - previousMillis) >= interval) {
      Serial.print("Detected");
      currentpage = 1;
      previousMillis = millis();
    }
    }
     if (Y>80 && Y<140)
    {Serial.println ("Button 7");
    if (Number==0)
    Number=7;
    else
    Number = (Number*10) + 7; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<200) 
    {Serial.println ("Button 4"); 
    if (Number==0)
    Number=4;
    else
    Number = (Number*10) + 4; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>200 && Y<260) 
    {Serial.println ("Button 1");
    if (Number==0)
    Number=1;
    else
    Number = (Number*10) + 1;
    tft.println(Number); 
    delay(150);
    } 
  }
    if (X<160 && X>80) 
  {
    if (Y>0 && Y<85)
    {Serial.println ("Button 0"); 
    if (Number==0)
    Number=0;
    else
    Number = (Number*10) + 0; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>85 && Y<140)
    {Serial.println ("Button 8"); 
    if (Number==0)
    Number=8;
    else
    Number = (Number*10) + 8; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<192)
    {Serial.println ("Button 5");
    if (Number==0)
    Number=5;
    else
    Number = (Number*10) + 5; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>192 && Y<245)
    {Serial.println ("Button 2");
    if (Number==0)
    Number=2;
    else
    Number = (Number*10) + 2; 
    tft.println(Number); 
    delay(150);
    }   
  }
    if (X<240 && X>160) 
  {
    if (Y>0 && Y<85)
    {Serial.println ("OK"); 
    checkPassword();
    Number = 0;
    delay(150);
    }
     if (Y>85 && Y<140)
    {Serial.println ("Button 9"); 
    if (Number==0)
    Number=9;
    else
    Number = (Number*10) + 9; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<192)
    {Serial.println ("Button 6"); 
    if (Number==0)
    Number=6;
    else
    Number = (Number*10) + 6; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>192 && Y<245)
    {Serial.println ("Button 3");
    if (Number==0)
    Number=3;
    else
    Number = (Number*10) + 3; 
    tft.println(Number); 
    delay(150);
    }   
  }
}
if (currentpage == 1) {
    tft.fillScreen(BLACK);
    tft.setCursor(30, 55);
    tft.setTextSize(3);
    tft.setTextColor(BLUE);
    tft.println("Reset PIN?");
    tft.fillRect  (35,140,60,50,BLUE);
    tft.fillRect  (140,140,60,50,RED);
    tft.setTextSize(2);
    tft.setTextColor(WHITE);
    tft.setCursor(45, 157);
    tft.println("Yes"); 
    tft.setCursor(157, 157);
    tft.println("No"); 
    if (Y>140 && Y<190) 
    {
     if (X>35 && X<95){
      Serial.print("Yes");
      setup();
      pass = 1;
      checkPassword();
     }
     if (X>140 && X<200){
      Serial.print("No");
      setup();
     }    
   }
}
if (currentpage == 2)
{
    tft.fillRect(0, 0, 240, 80, CYAN);  
    tft.setCursor(10, 20);
    tft.setTextSize(4);
    tft.setTextColor(BLACK);
  if (X<80 && X>0) 
  {
    if (Y>0 && Y<80) 
    {Serial.println ("Set");
    Serial.println(Number);
    int password1 = (Number / 100); 
    int password2 = (Number % 100); 
    Serial.println(password1);
    Serial.println(password2);
    EEPROM.write(addr, password1);
    EEPROM.write(addr1, password2);
    setup();
    Number = 0;
    }
     if (Y>80 && Y<140) 
    {Serial.println ("Button 7");
    if (Number==0)
    Number=7;
    else
    Number = (Number*10) + 7; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<200) 
    {Serial.println ("Button 4"); 
    if (Number==0)
    Number=4;
    else
    Number = (Number*10) + 4; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>200 && Y<260) 
    {Serial.println ("Button 1");
    if (Number==0)
    Number=1;
    else
    Number = (Number*10) + 1; 
    tft.println(Number); 
    delay(150);
    } 
  }
    if (X<160 && X>80) 
  {
    if (Y>0 && Y<85)
    {Serial.println ("Button 0"); 
    if (Number==0)
    Number=0;
    else
    Number = (Number*10) + 0; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>85 && Y<140)
    {Serial.println ("Button 8"); 
    if (Number==0)
    Number=8;
    else
    Number = (Number*10) + 8; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<192)
    {Serial.println ("Button 5");
    if (Number==0)
    Number=5;
    else
    Number = (Number*10) + 5; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>192 && Y<245)
    {Serial.println ("Button 2");
    if (Number==0)
    Number=2;
    else
    Number = (Number*10) + 2; 
    tft.println(Number); 
    delay(150);    
    }   
  }
    if (X<240 && X>160) 
  {
   // if (Y>0 && Y<85)
    //{Serial.println ("OK");     
    //delay(150);
    //}
     if (Y>85 && Y<140)
    {Serial.println ("Button 9"); 
    if (Number==0)
    Number=9;
    else
    Number = (Number*10) + 9; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>140 && Y<192)
    {Serial.println ("Button 6"); 
    if (Number==0)
    Number=6;
    else
    Number = (Number*10) + 6; 
    tft.println(Number); 
    delay(150);
    }
     if (Y>192 && Y<245)
    {Serial.println ("Button 3");
    if (Number==0)
    Number=3;
    else
    Number = (Number*10) + 3; 
    tft.println(Number); 
    delay(150);
    }   
  }
}
}

void checkPassword() {
// Cette fonction lit le mot de passe stocké dans l'EEPROM,
// le compare avec le PIN entré et déclenche le relais
// pour déverrouiller la porte si le PIN est correct.
int value1 = EEPROM.read(addr) ;
     int value2 = EEPROM.read(addr1) ;
     password = (value1*100)+(value2);
  if (pass == 0){
     Serial.print(password);
     Serial.println();
     Serial.print(Number);
     if (Number == password){
      Serial.println("Access Granted");
      Serial.println("Relay ON");
      tft.fillScreen(BLACK);
      tft.setCursor(25, 115);
      tft.setTextSize(5);
      tft.setTextColor(BLUE);
      tft.println("Welcome");
      digitalWrite(relayPin, HIGH);
      digitalWrite(buzzer, HIGH);
      delay(1000);
      digitalWrite(buzzer, LOW);
      Serial.println("Relay OFF");
      delay(8000);
      digitalWrite(relayPin, LOW);
} 
     else {
      Serial.println("Access Denied");
      tft.fillScreen(BLACK);
      tft.setCursor(30, 100);
      tft.setTextSize(5);
      tft.setTextColor(RED);
      tft.println("Access  Denied");
      delay(2000);
      digitalWrite(relayPin, LOW);
   }
     Number = 0;
     setup();
   }
if (pass==1){
  tft.fillRect(0, 0, 240, 80, CYAN);
  tft.setCursor(5, 10);
  tft.setTextSize(2);
  tft.setTextColor(BLACK);
  tft.println("Enter Current PIN:");
  if (X<240 && X>160 && Y>0 && Y<85)
    { 
      Serial.println ("OK");
      Serial.print(password);
      Serial.println(Number);
    if (Number == password){
      Number = 0;
      tft.fillRect(0, 0, 240, 80, CYAN);
      tft.setCursor(5, 10);
      tft.setTextColor(BLACK);
      currentpage = 2;
      tft.println("Enter New PIN:");
      if (X<80 && X>0 && Y>0 && Y<80){
        Serial.print("Set");
      }
      }
    else{
      Serial.println("Wrong Pin");
      tft.fillScreen(BLACK);
      tft.setCursor(60, 100);
      tft.setTextSize(5);
      tft.setTextColor(RED);
      tft.println("Wrong");
      tft.setCursor(86, 140);
      tft.println("Pin");
      delay(2000);
      setup();
    }
    }  
    }
}
}

DetectButtons est une fonction dédiée à interpréter l’entrée de l’utilisateur à partir de l’écran tactile, la traduisant en pressions de boutons, et gérant les changements de l’UI. La fonction checkPassword compare l’entrée avec le mot de passe stocké et contrôle le relais pour verrouiller ou déverrouiller la porte en conséquence.

  • Dessiner l’UI
void draw_BoxNButtons() {
// Cette fonction utilise la bibliothèque TFT LCD pour dessiner les éléments de l'UI sur l'écran,
// comme la boîte de saisie du PIN et les boutons du clavier.

  tft.fillRect(0, 0, 240, 80, CYAN);
  tft.setCursor(37, 27);
  tft.setTextSize(3);
  tft.setTextColor(BLACK);
  tft.println("Enter PIN");
 //Draw First Column
  tft.fillRect  (0,260,80,60,RED);
  tft.fillRect  (0,200,80,60,BLACK);
  tft.fillRect  (0,140,80,60,BLACK);
  tft.fillRect  (0,80,80,60,BLACK);
 //Draw SEcond Column
  tft.fillRect  (80,260,80,60,BLACK);
  tft.fillRect  (80,200,80,60,BLACK);
  tft.fillRect  (80,140,80,60,BLACK);
  tft.fillRect  (80,80,80,60,BLACK);
 //Draw Third Column  
  tft.fillRect  (160,260,80,60,BLUE);
  tft.fillRect  (160,200,80,60,BLACK);
  tft.fillRect  (160,140,80,60,BLACK);
  tft.fillRect  (160,80,80,60,BLACK);
  //Draw Horizontal Lines
  for (int h=80; h<=320; h+=60)
  tft.drawFastHLine(0, h, 240, WHITE);
  //Draw Vertical Lines
  for (int v=0; v<=240; v+=80)
  tft.drawFastVLine(v, 80, 240, WHITE);
  //Display keypad lables 
  for (int j=0;j<4;j++) {
    for (int i=0;i<3;i++) {
      tft.setCursor(22 + (85*i), 100 + (60*j));
      tft.setTextSize(3);
      tft.setTextColor(WHITE);
      tft.println(symbol[j][i]);
    }
  }
}

Enfin, la fonction draw_BoxNButtons est appelée au début pour initialiser l’affichage avec la disposition du pavé numérique, et elle peut être appelée à nouveau pour actualiser l’UI si nécessaire.


Conception d’un Boîtier Imprimé en 3D pour le Système de sécurité de porte à Écran Tactile Arduino

La conception d’un boîtier imprimé en 3D pour le système de sécurité de porte à écran tactile Arduino suit une approche méthodique pour s’assurer que le boîtier est à la fois fonctionnel et adapté aux dimensions spécifiques de l’appareil. Le processus implique plusieurs étapes de la conceptualisation à l’impression finale.

Étape 1 : Analyse Dimensionnelle

Commencez par mesurer tous les composants, y compris l’Arduino Uno, le bouclier d’affichage TFT LCD et les modules supplémentaires tels que la serrure électromagnétique et le relais.

Étape 2 : Conceptualisation du Design

À l’aide d’un logiciel de modélisation 3D, tel qu’Autodesk Fusion 360 ou SolidWorks, esquissez le concept de design initial. Ce modèle virtuel sert de plan. Le design doit inclure une base pour monter l’Arduino, des emplacements pour l’affichage, des ouvertures pour les câbles et des points de montage pour la serrure électromagnétique.

3D Printed Casing

Étape 3 : Incorporation des Fonctionnalités

Intégrez les fonctionnalités nécessaires dans le design, telles que la ventilation pour la dissipation de la chaleur, les canaux de gestion des câbles et les ports d’accès pour les connexions USB. Un mécanisme de fermeture sécurisé, comme des languettes à encliquetage ou des trous pour vis, est également nécessaire.

Étape 4 : Prototypage

Une fois le design terminé, produisez un prototype à l’aide d’une imprimante 3D. Cette étape est pour vérifier que le boîtier répond à toutes les exigences et s’adapte précisément aux composants. Des ajustements au design sont souvent nécessaires, et cette étape permet d’affiner le boîtier.

Étape 5 : Itération Finale du Design et Impression

Appliquez toutes les modifications issues des retours sur le prototype pour finaliser le design. Lorsque vous êtes satisfait, préparez le modèle 3D pour l’impression en découpant le design en couches à l’aide d’un logiciel de découpage. Imprimez la version finale du boîtier.

Étape 6 : Assemblage et Tests

Après l’impression, assemblez les composants dans le boîtier. Vérifiez que le boîtier prend en charge toutes les fonctionnalités, telles que l’interaction avec l’écran tactile et l’actionnement du mécanisme de verrouillage. Assurez-vous que l’assemblage final est robuste et répond aux besoins opérationnels du système.

Ce guide étape par étape garantit que la conception du boîtier est non seulement personnalisée aux dimensions spécifiques du système de verrouillage de porte basé sur Arduino, mais également qu’elle répond aux exigences d’application pratique.

Procédures de Test pour le Système de sécurité de porte à Écran Tactile Arduino

Système De Sécurité De Porte Contrôlé Par Arduino

Pour s’assurer de la fonctionnalité et de la fiabilité du système de verrouillage de porte à écran tactile Arduino, un processus de test complet est essentiel. Ce processus implique plusieurs étapes clés pour garantir que chaque composant et le système dans son ensemble fonctionnent comme prévu.

  • Étape 1 : Test Fonctionnel des Composants Individuels

Commencez par tester chaque composant séparément. Vérifiez que l’Arduino démarre correctement, que l’affichage TFT LCD s’allume et affiche l’interface utilisateur attendue, et que la réponse tactile est correcte et constante. Testez la serrure électromagnétique solénoïde et le module de relais en envoyant manuellement des commandes d’ouverture/fermeture depuis l’Arduino pour confirmer leur intégrité opérationnelle.

  • Étape 2 : Test du Système Intégré

Une fois les composants individuels vérifiés, passez au test du système intégré. Cela implique de s’assurer que l’ensemble du système fonctionne de manière unie comme prévu. Chargez la version finale du logiciel sur l’Arduino et interagissez avec l’écran tactile pour entrer des codes PIN. Observez la réponse du système aux entrées de PIN correctes et incorrectes, en vous assurant que le verrou à solénoïde s’active de manière appropriée.

  • Étape 3 : Test d’Endurance

Le test d’endurance implique une utilisation répétée sur une période prolongée pour simuler des conditions d’utilisation normales. Faites fonctionner le système de manière continue, en entrant des codes PIN à plusieurs reprises et en déclenchant le mécanisme de verrouillage. Ce test aide à identifier les problèmes potentiels qui pourraient survenir lors d’une utilisation régulière, comme l’usure de l’écran tactile ou une défaillance mécanique dans le mécanisme de verrouillage.

  • Étape 4 : Test de l’Alimentation et de la Consommation

Vérifiez les exigences d’alimentation du système et sa consommation. Assurez-vous que le système peut fonctionner de manière constante dans ses conditions d’alimentation attendues sans surchauffe ou dysfonctionnement. Portez une attention particulière aux exigences de tension du verrou à solénoïde et à la stabilité de l’alimentation électrique sous charge.

  • Étape 5 : Test des Erreurs et des Cas Limites

Testez le comportement du système dans des conditions d’erreur ou de cas limites. Cela comprend des scénarios tels que des entrées de PIN successives rapides, des touches simultanées sur l’écran et le fonctionnement lors de fluctuations de puissance. Le système devrait gérer ces conditions avec grâce, sans se planter ou se bloquer.

  • Étape 6 : Test de Sécurité

Étant donné que le système est conçu pour la sécurité, il est crucial de tester les vulnérabilités potentielles. Tentez de contourner le mécanisme de verrouillage sans le bon PIN et vérifiez s’il existe des failles logicielles ou matérielles qui pourraient être exploitées.

  • Étape 7 : Vérification Finale

Dans la dernière étape, effectuez une vérification complète pour confirmer que toutes les parties du système fonctionnent comme prévu. Cela inclut une inspection visuelle des connexions matérielles, une révision de la logique logicielle et une dernière exécution de tous les cas de test.

Problèmes Communs et Solutions lors de l’Installation du Système de sécurité de porte à Écran Tactile :

Catégorie de ProblèmeProblème CourantRésolution
Réactivité de l’Écran TactileL’écran tactile peut ne pas répondre de manière précise ou pas du tout.Vérifiez la calibration, contrôlez l’installation du pilote, assurez-vous de la connexion correcte, et recalibrez si nécessaire.
Dysfonctionnement du Verrou à SolénoïdeLe verrou à solénoïde pourrait échouer à s’engager ou à se désengager.Vérifiez l’alimentation pour une tension et un courant appropriés, inspectez les connexions du module de relais et testez séparément.
Comportement Incohérent ou ErreursLe système se comporte de manière imprévisible ou se réinitialise de manière inattendue.Revoir le code pour des erreurs logiques, assurer l’absence d’interférences électriques et stabiliser l’alimentation de l’Arduino.
Problèmes d’Affichage sur l’Écran TFTL’affichage peut ne pas s’afficher correctement ou présenter des problèmes graphiques.Confirmez que l’écran TFT est correctement installé et compatible, réinstallez ou mettez à jour les bibliothèques nécessaires.
Traitement Incorrect du Code PINLe système pourrait ne pas reconnaître le code PIN correct.Debuggez le code pour une capture et un traitement précis du PIN, validez la logique de comparaison du PIN.
Défis de l’Installation PhysiqueDifficulté à intégrer les composants dans le boîtier ou à monter le système.Assurez-vous de la précision des mesures du boîtier, ajustez la conception pour l’ajustement des composants, et consultez les directives d’installation du verrou de porte.
Problèmes de Retour Audio ou de BuzzerLe buzzer peut ne pas sonner ou sonner en continu.Vérifiez les connexions du buzzer, vérifiez la logique du code pour déclencher le buzzer, et assurez-vous que les spécifications du buzzer correspondent à la sortie de l’Arduino.

Vidéo descriptive du Système de sécurité de porte contrôlé par Arduino

Liens outilles

  1. Téléchargement de l’Arduino IDE : https://www.arduino.cc/en/software
  2. GitHub Arduino Repository : https://github.com/arduino/Arduino/
  3. Pour découvrir plus de tutoriel, vous pouvez consulter notre bloc https://www.moussasoft.com/tutoriels-electroniques