Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino- und Android-basiertes, kennwortgeschütztes Türschloss

Komponenten und Verbrauchsmaterialien

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

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Einführung

Dieses intelligente Schloss ist das sichere, einfache und einfach zu verwaltende Schloss Ihres Hauses. Dieses Schloss benötigt keine Schlüssel und das Schloss ist in der Tür angebracht und Sie können es von außerhalb der Tür über Bluetooth steuern. Da sich das Schloss in der Tür befindet, kann ein Dieb die Tür nicht aufbrechen. Zum Öffnen und Schließen des Schlosses wird eine Android-Anwendung benötigt und ich werde im späteren Teil des Tutorials die Details erklären, wie Sie eine Android-App entwickeln können. Mit der Android-App wird ein Passwort an das Schloss gesendet. Wenn das Passwort mit Ihrem voreingestellten Passwort übereinstimmt, wird das Schloss geöffnet und eine Rückmeldung an Ihr Telefon gesendet, als wäre das Schloss geöffnet.

Türschloss 3D-Design

Alle Teile des Schlosses sind 3D-gedruckt. Ich möchte mich bei Thingiverse-Benutzer ridercz für sein schönes Design bedanken. Er entwarf und veröffentlichte dieses servobasierte Türschloss in thingiverse.com. Alle Dateien außer Rack_Holder.stl stammen aus seinem Design. Sie können die Dateien von unten oder von Thingiverse.com herunterladen.

Einige Dateien haben eine LT-Version. Die Light-Version benötigt im Vergleich zur normalen Version weniger PLA und hat weniger Stärke. Ich habe die LT-Version gedruckt und funktioniert gut. Ich habe Anet A8 zum Drucken aller Teile verwendet. Fotos der gedruckten Teile sind beigefügt..

Zusammenbau von 3D-gedruckten Teilen

Montieren Sie alle gedruckten Teile nacheinander wie auf den Fotos gezeigt. Sie können auch der im ersten Schritt beigefügten Videoanleitung folgen. Verwenden Sie nach dem Zusammenbau vier Schrauben, um alle Teile fest zu befestigen.

Arduino-Programm für Bluetooth-Steuerung Passwortgeschütztes Türschloss

Der Code für das intelligente Türschloss mit Bluetooth-Steuerung ist sehr einfach. Ich habe die Android-Anwendung so entworfen, dass sie einen Befehl mit dem Passwort sendet. Eigentlich habe ich zwei Befehle gesetzt, einer ist "OPEN=" und der andere ist "CLOSE=" und das Passwort kann jede beliebige Ziffer, später oder ein Symbol oder eine Kombination davon enthalten, wie Sie möchten. In der App habe ich zwei Knöpfe verwendet, einen zum Öffnen der Tür und einen zum Schließen der Tür. Wenn das Passwort der Passwortbox und der Öffnen-Schaltfläche gegeben wird, wird die App geklickt, um den Befehl "OPEN=" mit dem Passwort zu verbinden und an arduino zu senden. Ich füge ein '='-Zeichen mit dem Befehl hinzu, damit ich Befehl und Passwort mit diesem '=' trennen werde. Nach dem Empfang der Zeichenfolge vom Telefon trennt das Arduino-Programm Befehl und Passwort von der Empfangszeichenfolge und speichert sie in zwei separaten Variablen. Prüfen Sie dann zuerst das Passwort, wenn das Passwort mit dem gespeicherten Passwort übereinstimmt, dann öffnen Sie die Tür für den Befehl "OPEN" und schließen Sie die Tür für den Befehl "CLOSE". "=" hilft, Befehl und Passwort zu trennen. Die vollständige Arduino-Skizze ist unten angegeben.

Schema

Die Verbindung zwischen den Komponenten ist sehr einfach. Verbinden Sie zuerst das Bluetooth-Modul HC-05 mit dem Arduino. Beachten Sie den Schaltplan. Der TX-Pin des Arduino-Boards ist mit dem RX-Pin des Bluetooth-Moduls verbunden und der RX-Pin des Arduino ist mit dem TX-Pin des Bluetooth-Moduls verbunden.

Einstellen des Türschlosses

Ich hoffe, Sie haben Ihr Arduino-Board mit der im vorherigen Schritt beigefügten Skizze programmiert und bereits alle Verbindungen gemäß dem Schaltplan getestet. Wenn Sie alle Schritte abgeschlossen haben, ist es höchste Zeit, das Schloss an der entsprechenden Stelle der Tür zu platzieren. Setzen Sie zuerst das Schloss mit vier Schrauben ein. Befestigen Sie dann das Bluetooth-Modul an der richtigen Stelle des Schlosses und fügen Sie etwas Heißkleber hinzu, um das Modul fest mit dem Schloss zu verbinden. Legen Sie danach die Arduino-Platine auf die Unterseite des Schlosses und verbinden Sie alle Drähte gemäß dem Schaltplan. Nachdem Sie das Schloss platziert und die Verbindungen hergestellt haben, sollten Sie das Schloss einschalten. Ich habe einen 5V, 1A Wandadapter verwendet, um die Schaltung mit Strom zu versorgen.

Android-App-Entwicklung für passwortgeschütztes Türschloss

Ich zeige Ihnen, wie Sie mit MIT App Inventor eine Bluetooth-Android-Anwendung entwickeln. Ich verwende App Inventor, da keine Codierung und keine Softwareinstallation erforderlich ist. Sie benötigen lediglich ein Google-Konto. Gehen Sie zu http://ai2.appinventor.mit.edu/, Sie werden aufgefordert, sich mit einem Google-Konto anzumelden.

Melden Sie sich mit Google Mail bei App Inventor an und führen Sie die folgenden Schritte aus:

  • ich. AGB akzeptieren Bild 1
  • ii. Klicken Sie auf "Später an Umfrage teilnehmen" und dann auf "Weiter", um das Begrüßungsbild zu schließen 2, 3
  • iii. Starte ein neues Projekt (keine Leerzeichen!) Bild 4
  • iv. Benennen Sie das Projekt "BluetoothControlDoorLock" (keine Leerzeichen!) Bild 5

Sie befinden sich nun im Designer, wo Sie die „Benutzeroberfläche“ Ihrer App gestalten (Bild 6). Im Designer-Fenster legen Sie das Erscheinungsbild Ihrer App fest und legen fest, welche Funktionen sie haben soll. Sie wählen Dinge für die Benutzeroberfläche wie Schaltflächen, Bild, Beschriftung, Textfelder und Funktionen wie Text-to-Speech, Bluetooth, Sensoren und GPS.

Folgen Sie nun der Abbildung 7 und fügen Sie dem Viewer eine Listenauswahl hinzu. Benennen Sie es in "Mit Bluetooth-Gerät verbinden" um (Bild 8). Fügen Sie ein Label, ein Passwort-Textfeld und zwei Schaltflächen hinzu, wie in Abbildung 10 gezeigt. Ändern Sie die Texteigenschaften der Komponenten als "Passwort eingeben", "Tür öffnen" bzw. "Tür schließen". Die endgültige Benutzeroberfläche sollte wie in Abbildung 11 aussehen. Fügen Sie nun dem Viewer einen Bluetooth-Client hinzu. Es ist eine unsichtbare Komponente und hat keine Benutzeroberfläche. Siehe Bild 12.

Wechseln Sie zum Blockeditor

Es ist Zeit, Ihrer App zu sagen, was sie tun soll! Klicken Sie auf "Blöcke", um zum Blockeditor zu wechseln (Bild 13). Stellen Sie sich die Schaltflächen Designer und Blöcke wie Registerkarten vor – Sie verwenden sie, um zwischen den beiden Bereichen von App Inventor hin und her zu wechseln. Im Blockeditor programmieren Sie das Verhalten Ihrer App. Es gibt eingebaute Blöcke, die Dinge wie Mathematik, Logik und Text verarbeiten. Darunter befinden sich die Blöcke, die zu jeder der Komponenten in Ihrer App gehören. Damit die Blöcke für eine bestimmte Komponente im Blockeditor angezeigt werden, müssen Sie diese Komponente zuerst über den Designer zu Ihrer App hinzufügen.

Lassen Sie uns Blöcke für List Picker entwerfen. List Picker ist ein UI-Element, wenn es angeklickt wird, zeigt es eine Liste der entsprechenden Elemente an. Hier ist das gekoppelte Bluetooth-Gerät. Wir müssen zwei Blöcke ListPicker.BeforePicking und ListPicker.AfterPicking hinzufügen (Bild 14). Vollständige Blöcke sind in den Abbildungen 18 und 19 dargestellt.

Apk-Datei erstellen

Unser Design ist fertig, jetzt müssen wir die APK-Datei für unser Android-Handy erstellen. Klicken Sie hier, um das Menü zu erstellen und wählen Sie "App (.apk auf meinem Computer speichern)". Warte eine Minute. Eine APK-Datei wird in Ihren Standard-Downloadordner heruntergeladen. Installieren und verwenden Sie es.

Eine funktionsreichere Android-App

Im vorherigen Schritt habe ich Ihnen gezeigt, wie Sie eine grundlegende Bluetooth-App in App Inventor entwickeln. Aber diese App ist nicht so benutzerfreundlich. Es wird Ihnen keine Nachricht angezeigt, entweder Ihre Tür ist offen oder geschlossen oder Bluetooth kann aufgrund eines Fehlers nicht verbunden werden. Ich habe hier eine erweiterte App für unser Projekt angehängt.

Wenn Sie diese App ausführen, überprüfen Sie, ob Ihr Bluetooth-Radio aktiviert ist oder nicht. Wenn nicht, wird ein Bluetooth-Aktivierungsdialogfeld angezeigt. Klicken Sie auf Ja, um Ihr Bluetooth-Radio einzuschalten. Koppeln Sie dann das Gerät über die Schaltfläche Gerät koppeln. Klicken Sie dann auf die Schaltfläche zum Verbinden. Bei erfolgreicher Verbindung mit einem Gerät zeigt die Anwendung die MAC-Adresse und den Namen des verbundenen Geräts an. Geben Sie das Passwort in das Passwortfeld ein und klicken Sie dann auf die Schaltfläche Tür öffnen. Wenn Sie das richtige Passwort eingegeben haben, wird die Tür geöffnet und die Anwendung zeigt Ihnen eine Nachricht an, dass Ihre Tür jetzt geöffnet ist. Geben Sie dann das Passwort erneut ein, wenn Sie die Tür schließen möchten. Wenn Sie das falsche Passwort eingeben, zeigt die App eine falsche Passwortnachricht an.

Die vollständige App Inventor-Quelldatei (BTcontrol.aia) ist hiermit beigefügt. Wenn Sie keine eigene App erstellen oder ändern möchten, laden Sie einfach die BTcontrol.apk herunter und installieren Sie sie auf Ihrem Android-Pone.

Sie können es auch über den Link aus dem Google Play Store herunterladen:

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

Um die Quelle zu ändern, klicken Sie auf das Menü "Projekte" und wählen Sie "Projekt (.aia) von meinem Computer importieren", wie in Abbildung 24 gezeigt, und durchsuchen Sie die Datei BTcontrol.aia von Ihrem Computer. Nach dem Import können Sie es leicht ändern.

Wenn Sie mehr über die Entwicklung von Android-Apps mit App Inventor erfahren möchten, besuchen Sie:http://appinventor.mit.edu/explore/ai2/tutorials.html. Sie können auch http://meta-guide.com/videography/100-best-appinventor-videos/

. ausprobieren

Code

  • Arduino-Skizze
Arduino-SkizzeArduino
#include Servo myservo; // Servo-Objekt erstellen, um einen servoString zu steuern inputString ="";String command ="";String value ="";String password ="arduPi"; // Dies ist das Passwort zum Öffnen und Schließen Ihrer Tür // Sie können ein beliebiges Passwort mit Ziffern und Symbolen setzenboolean stringComplete =false; Void setup () {// Serielle Verbindung starten Serial.begin (9600); // Baudrate ist 9600 muss mit Bluetooth übereinstimmen //Die Funktion String reserve() ermöglicht es Ihnen, einen Puffer im Speicher für die Manipulation von Strings zuzuweisen. inputString.reserve(50); // 50 Byte im Speicher reservieren, um sie für die String-Manipulation zu speichern command.reserve(50); Wert.Reserve(50); boolescher StringOK =false; myservo.attach(9); // bindet das Servo an Pin 9 an das Servo-Objekt an}void loop () { // Wenn Arduino ein String-Beendigungszeichen wie \n empfängt StringComplete auf true gesetzt wird if (stringComplete) {//Serial.println (inputString); Verzögerung (100); // identifizierte die Position von '=' im String und setzte seinen Index auf die pos-Variable int pos =inputString.indexOf('='); // Wert der POS-Variablen> oder =0 bedeutet, dass '=' im empfangenen String vorhanden ist. if (pos> -1) { // substring(start, stop) Funktion schneidet einen bestimmten Teil des Strings von Anfang bis Ende // hier ist der Befehl der Teil des empfangenen Strings bis '=' // lass den empfangenen String offen sein=test123 // dann ist der Befehl 'open' command =inputString.substring(0, pos); // Wert wird von after =bis zum Newline-Befehl sein // für das obige Beispiel ist der Wert test123 // wir ignorieren einfach das '=' und nehmen den ersten Parameter des Teilstrings als 'pos+1' // wir verwenden '=' als a Trennzeichen zwischen Befehl und Wert // ohne '=' kann jedes andere Zeichen verwendet werden // wir verwenden =menas unser Befehl oder Passwort darf kein '=' enthalten, sonst wird ein Fehler verursacht value =inputString.substring(pos+1 , inputString.length()-1); // Befehl extrahieren bis \n exluded //Serial.println(command); //Seriell.println(Wert); // password.compareTo(value) Vergleich zwischen Passwort tring und value string, wenn Übereinstimmung 0 zurückgeben if(!password.compareTo(value) &&(command =="OPEN")){ // wenn Passwort übereinstimmt und der Befehl 'OPEN . ist ' dann sollte sich die Tür öffnen openDoor(); // openDoor () Funktion aufrufen Serial.println ( " OPEN"); // offenes Feedback an Telefonverzögerung gesendet (100); } else if(!password.compareTo(value) &&(command =="CLOSE")){ // Wenn das Passwort übereinstimmt und der Befehl 'CLOSE' ist, sollte die Tür closeDoor() schließen; Serial.println ("SCHLIESSEN"); // "CLOSE"-String an die Telefonverzögerung gesendet (100); aufrechtzuerhalten. Sonst if (password.compareTo (value)) {// wenn das Passwort nicht übereinstimmt als falsches Feedback an das Telefon Serial.println ("FALSCH"); Verzögerung (100); } } // lösche den String für die nächste Iteration inputString =""; stringComplete =false; } }void serialEvent() { while (Serial.available()) { // Hole das neue Byte:char inChar =(char)Serial.read(); //Seriell.write (inChar); // zum inputString hinzufügen:inputString +=inChar; // wenn das eingehende Zeichen ein Zeilenumbruch oder ein Wagenrücklauf ist, setze ein Flag // damit die Hauptschleife etwas dagegen tun kann:if (inChar =='\n' || inChar =='\r') { stringComplete =wahr; } }}void openDoor () { myservo.write (0); Verzögerung (100); }void closeDoor () { myservo.write (65); Verzögerung (100); }

Kundenspezifische Teile und Gehäuse

Thingiverse
https://www.thingiverse.com/thing:2350856CAD-Datei auf thingiverse.com

Schaltpläne

door-lock_android_source_PDi5PbxDwC.aia door-lock_android_app_K05l3Csr61.apk

Herstellungsprozess

  1. Banktresor
  2. Kanal und Schleuse
  3. Anleitung zum Arduino-RFID-Schloss
  4. Universelle Fernbedienung mit Arduino, 1Sheeld und Android
  5. LCD-Animation und -Spiele
  6. Steuerung eines Roomba-Roboters mit Arduino und Android-Gerät
  7. Passwortbasiertes Türschloss
  8. Python3- und Arduino-Kommunikation
  9. Arduino- und OLED-basierte zelluläre Automaten
  10. Smart Door Lock mit WLAN-Anmeldeseite von Arduino &ESP8266