Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Serrure de porte protégée par mot de passe basée sur Arduino et Android

Composants et fournitures

Arduino UNO
× 1
Module Bluetooth HC-05
× 1
Servos (Tower Pro MG996R)
× 1

Outils et machines nécessaires

Imprimante 3D (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

Présentation

Cette serrure intelligente est la serrure sécurisée, simple et facile à gérer de votre maison. Cette serrure n'a pas besoin de clés et la serrure est fixée à l'intérieur de la porte et vous pouvez la contrôler de l'extérieur de la porte en utilisant Bluetooth. Comme la serrure est à l'intérieur de la porte, il n'y a aucun moyen de casser la porte par un voleur. Une application Android est requise pour ouvrir et fermer le verrou et j'expliquerai en détail comment développer une application Android dans la dernière partie du didacticiel. Un mot de passe est envoyé à la serrure à l'aide de l'application Android et si le mot de passe correspond à votre mot de passe de verrouillage prédéfini, la serrure sera ouverte et enverra un retour à votre téléphone comme si la serrure était ouverte.

Conception 3D de serrure de porte

Toutes les pièces de la serrure sont imprimées en 3D. Je tiens à remercier l'utilisateur de Thingiverse ridercz pour son joli design. Il a conçu et publié cette serrure de porte à servomoteur sur thingverse.com. Tous les fichiers à l'exception de Rack_Holder.stl sont extraits de sa conception. Vous pouvez télécharger les fichiers ci-dessous ou sur Thingiverse.com.

Certains fichiers ont une version LT. La version légère nécessite moins de PLA que la version normale et a moins de résistance. J'ai imprimé la version LT et ça marche bien. J'ai utilisé Anet A8 pour imprimer toutes les pièces. Des photos des pièces imprimées sont jointes.

Assemblage de pièces imprimées en 3D

Assemblez toutes les pièces imprimées une par une comme indiqué sur les photos. Vous pouvez également suivre les instructions vidéo jointes dans la première étape. Après l'assemblage, utilisez quatre vis pour bien fixer toutes les pièces.

Programme Arduino pour la serrure de porte protégée par mot de passe de contrôle Bluetooth

Le code pour la serrure de porte intelligente de contrôle Bluetooth est très simple. J'ai conçu une application Android de telle sorte qu'elle envoie une commande avec le mot de passe. En fait, j'ai défini deux commandes, l'une est "OPEN=" et l'autre est "CLOSE=" et le mot de passe peut contenir n'importe quel chiffre, plus tard ou un symbole ou une combinaison de ceux-ci comme vous le souhaitez. Dans l'application, j'ai utilisé deux boutons, un pour ouvrir la porte et un autre pour fermer la porte. Lorsque le mot de passe est donné à la boîte de mot de passe et que le bouton d'ouverture est cliqué, l'application joint la commande "OPEN=" avec le mot de passe et l'envoie à arduino. J'ajoute le signe '=' avec la commande pour cela, je séparerai la commande et le mot de passe en utilisant ce '=' . Après avoir reçu la chaîne du téléphone, le programme arduino sépare la commande et le mot de passe de la chaîne de réception et les enregistre dans deux variables distinctes. Ensuite, vérifiez d'abord le mot de passe, si le mot de passe correspond au mot de passe enregistré, ouvrez la porte pour la commande "OUVERT" et fermez la porte pour la commande "FERMER". "=" aide à séparer la commande et le mot de passe. Le croquis complet de l'arduino est donné ci-dessous.

Schéma

La connexion entre les composants est très simple. Tout d'abord, connectez le module Bluetooth HC-05 à l'Arduino. Notez le schéma. La broche TX de la carte Arduino est connectée à la broche RX du module Bluetooth et la broche RX de l'Arduino est connectée à la broche TX du module Bluetooth.

Réglage de la serrure à la porte

J'espère que vous avez programmé votre carte Arduino avec le croquis joint à l'étape précédente et que vous avez déjà testé toutes les connexions selon le schéma. Si vous avez terminé toutes les étapes, il est grand temps de placer la serrure à l'endroit approprié de la porte. Tout d'abord, placez la serrure avec quatre vis. Ensuite, fixez le module Bluetooth au bon endroit de la serrure et ajoutez de la colle chaude pour bien ajuster le module avec la serrure. Après cela, placez la carte Arduino sur le côté inférieur de la serrure et connectez tous les fils selon le schéma. Après avoir placé le verrou et effectué les connexions, vous devez mettre le verrou sous tension. J'ai utilisé un adaptateur mural 5V, 1A pour alimenter le circuit.

Développement d'applications Android pour serrure de porte protégée par mot de passe

Je vais vous montrer comment développer une application Android Bluetooth à l'aide de MIT App Inventor. J'utilise App Inventor car il ne nécessite aucun codage et aucune installation de logiciel. Vous n'avez besoin que d'un compte google. Allez sur http://ai2.appinventor.mit.edu/, vous demanderez de vous connecter en utilisant le compte google.

Connectez-vous à App Inventor à l'aide de Gmail et suivez les étapes ci-dessous :

  • je. Accepter les conditions générales image 1
  • ii. Cliquez sur « répondre au sondage plus tard », puis sur « continuer » pour faire disparaître l'image de l'écran de démarrage 2, 3
  • iii. Commencer un nouveau projet (pas d'espaces !) image 4
  • iv. Nommez le projet "BluetoothControlDoorLock" (pas d'espaces !) image 5

Vous êtes maintenant dans le Designer, où vous disposez l'« interface utilisateur » de votre application (image 6). La fenêtre de conception est l'endroit où vous présentez l'apparence de votre application et spécifiez les fonctionnalités qu'elle doit avoir. Vous choisissez des éléments pour l'interface utilisateur tels que des boutons, une image, une étiquette, des zones de texte et des fonctionnalités telles que la synthèse vocale, le Bluetooth, les capteurs et le GPS.

Maintenant, suivez la figure 7 et ajoutez un sélecteur de liste à la visionneuse. Renommez-le en "Connect to Bluetooth Device" (image 8). Ajoutez une étiquette, une zone de texte de mot de passe et deux boutons illustrés à la figure 10. Modifiez les propriétés de texte des composants en tant que « Saisir le mot de passe », « Ouvrir la porte » et « Fermer la porte » respectivement. L'interface utilisateur finale devrait ressembler à la figure 11. Ajoutez maintenant un client Bluetooth à la visionneuse. C'est un composant invisible et il n'a pas d'interface utilisateur. Voir l'image 12.

Passer à l'éditeur de blocs

Il est temps de dire à votre application quoi faire ! Cliquez sur "Blocs" pour passer à l'éditeur de blocs (image 13). Considérez les boutons Concepteur et Blocs comme des onglets :vous les utilisez pour vous déplacer entre les deux zones d'App Inventor. L'éditeur de blocs est l'endroit où vous programmez le comportement de votre application. Il existe des blocs intégrés qui gèrent des choses comme les mathématiques, la logique et le texte. Ci-dessous se trouvent les blocs qui vont avec chacun des composants de votre application. Pour que les blocs d'un certain composant s'affichent dans l'éditeur de blocs, vous devez d'abord ajouter ce composant à votre application via le concepteur.

Concevons des blocs pour List Picker. Le sélecteur de liste est un élément de l'interface utilisateur lorsque vous cliquez dessus, il affiche une liste des éléments correspondants, voici le périphérique Bluetooth couplé. Il faut ajouter deux blocs ListPicker.BeforePicking et ListPicker.AfterPicking (image 14). Les blocs complets sont illustrés aux figures 18 et 19.

Créer un fichier apk

Notre conception est terminée, nous devons maintenant créer le fichier apk pour notre téléphone Android. Cliquez pour créer le menu et sélectionnez "App (enregistrer .apk sur mon ordinateur)". Attend une minute. Un fichier apk sera téléchargé dans votre dossier de téléchargement par défaut. Installez-le et utilisez-le.

Une application Android plus riche en fonctionnalités

À l'étape précédente, je vous ai montré comment développer une application Bluetooth de base dans App Inventor. Mais cette application n'est pas si conviviale. Il ne vous montrera aucun message, que votre porte soit ouverte ou fermée ou que Bluetooth ne puisse pas se connecter pour une erreur. J'ai joint ici une application plus avancée pour notre projet.

Lorsque vous exécutez votre application, cette application vérifie que votre radio Bluetooth est activée ou non, sinon, une boîte de dialogue d'activation Bluetooth apparaîtra. Cliquez sur Oui pour allumer votre radio Bluetooth. Ensuite, associez l'appareil à l'aide du bouton d'appariement de l'appareil. Cliquez ensuite sur le bouton pour vous connecter, si vous êtes connecté avec succès à n'importe quel appareil, l'application affiche l'adresse MAC et le nom de l'appareil connecté. Entrez le mot de passe dans la case du mot de passe, puis cliquez sur le bouton d'ouverture de la porte. Si vous avez entré le mot de passe correct, la porte sera ouverte et l'application vous montrera un message indiquant que votre porte est maintenant ouverte. Ensuite, entrez à nouveau le mot de passe si vous souhaitez fermer la porte. Si vous donnez le mauvais mot de passe, l'application affichera un message de mot de passe erroné.

Le fichier source complet d'App Inventor (BTcontrol.aia) est joint à la présente. Si vous n'aimez pas créer votre propre application ou la modifier, téléchargez simplement BTcontrol.apk et installez-le sur votre pone Android.

Vous pouvez également le télécharger depuis Google Play Store en utilisant le lien :

https://play.google.com/store/apps/details?id=appinventor.ai_khairul_uapstu.BTcontrol&hl=en

Pour modifier la source, cliquez sur le menu "Projets" et sélectionnez "Importer un projet (.aia) depuis mon ordinateur" illustré à la figure 24 et parcourez le fichier BTcontrol.aia depuis votre ordinateur. Après l'importation, vous pouvez le modifier facilement.

Si vous souhaitez en savoir plus sur le développement d'applications Android à l'aide d'App Inventor, parcourez :http://appinventor.mit.edu/explore/ai2/tutorials.html. Vous pouvez également essayer http://meta-guide.com/videography/100-best-appinventor-videos/

Code

  • Esquisse Arduino
Arduino SketchArduino
#include Servo myservo ; // crée un objet servo pour contrôler un servoString inputString ="";String command ="";String value ="";String password ="arduPi"; // c'est le mot de passe pour ouvrir et fermer votre porte // vous pouvez définir n'importe quel mot de passe à l'aide de chiffres et de symbolesboolean stringComplete =false; void setup(){ //démarrer la connexion série Serial.begin(9600); // le débit en bauds est de 9600 doit correspondre à Bluetooth // La fonction String reserve() vous permet d'allouer un tampon en mémoire pour manipuler les chaînes. inputString.reserve(50); // réserve 50 octets en mémoire à sauvegarder pour la manipulation de chaînes command.reserve(50); valeur.réserve (50); chaîne booléenneOK =faux ; monservo.attach(9) ; // attache le servo sur la broche 9 à l'objet servo }void loop(){ // si arduino reçoit un caractère de fin de chaîne comme \n stringComplete sera défini sur true if (stringComplete) { //Serial.println(inputString); retard (100); // a identifié la position de '=' dans la chaîne et défini son index sur la variable pos int pos =inputString.indexOf('='); // valeur de la variable pos> ou =0 signifie '=' présent dans la chaîne reçue. if (pos> -1) { // la fonction substring (start, stop) coupe une portion spécifique de la chaîne du début à la fin // ici la commande sera la portion de la chaîne reçue jusqu'à '=' // laisse la chaîne reçue ouverte=test123 // alors la commande est 'open' command =inputString.substring(0, pos); // la valeur sera d'après =à la commande de nouvelle ligne // pour l'exemple ci-dessus, la valeur est test123 // nous ignorons simplement le '=' en prenant le premier paramètre de la sous-chaîne comme 'pos+1' // nous utilisons '=' comme séparateur entre la commande et la valeur // sans '=' aucun autre caractère peut être utilisé // nous utilisons =menas notre commande ou mot de passe ne doit pas contenir de '=', sinon cela provoquera une erreur value =inputString.substring(pos+1 , inputString.length()-1); // extrait la commande jusqu'à \n exclu //Serial.println(commande); //Série.println(valeur); // mot de passe.compareTo(value) compare entre la chaîne de mot de passe et la chaîne de valeur, si la correspondance renvoie 0 if(!password.compareTo(value) &&(commande =="OPEN")){ // si le mot de passe correspond et la commande est 'OPEN ' que la porte devrait s'ouvrir openDoor(); // appelle la fonction openDoor() Serial.println(" OPEN"); // envoie un retour ouvert au téléphone delay(100); } else if(!password.compareTo(value) &&(command =="CLOSE")){ // si le mot de passe correspond et que la commande est 'CLOSE' alors la porte doit fermer closeDoor(); Serial.println(" FERMER"); // a envoyé la chaîne " CLOSE" au téléphone delay(100); } else if(password.compareTo(value)){ // si le mot de passe ne correspond pas, il envoie un mauvais retour au téléphone Serial.println(" WRONG"); retard (100); } } // efface la chaîne pour la prochaine itération inputString =""; stringComplete =false; } }void serialEvent() { while (Serial.available()) { // obtenir le nouvel octet :char inChar =(char)Serial.read(); //Serial.write(inChar); // l'ajoute à inputString :inputString +=inChar; // si le caractère entrant est une nouvelle ligne ou un retour chariot, définissez un indicateur // pour que la boucle principale puisse faire quelque chose à ce sujet :if (inChar =='\n' || inChar =='\r') { stringComplete =vrai; } }}void openDoor(){ myservo.write(0); retard (100); }void closeDoor(){ myservo.write(65); retard (100); }

Pièces et boîtiers personnalisés

Thingverse
https://www.thingverse.com/thing:2350856CAD fichier sur thingverse.com

Schémas

door-lock_android_source_PDi5PbxDwC.aia door-lock_android_app_K05l3Csr61.apk

Processus de fabrication

  1. Coffre bancaire
  2. Canal et écluse
  3. Tutoriel sur le verrouillage RFID Arduino
  4. Télécommande universelle utilisant Arduino, 1Sheeld et Android
  5. Animation LCD et jeux
  6. Contrôler un robot Roomba avec Arduino et un appareil Android
  7. Serrure de porte basée sur un mot de passe
  8. Automates cellulaires basés sur Arduino et OLED
  9. Serrure de porte intelligente utilisant la page de connexion WiFi par Arduino et ESP8266