DIY: Erstellen eines SmartLock für Ihr Zuhause, das nur mit Ihrem Smartphone geöffnet werden kann

Heutzutage gibt es auf dem Markt so viele Schlösser, die zum Öffnen ein Passwort benötigen. Diese Schlösser sind sehr effizient, aber sehr kostspielig. Wenn wir ein Schloss für einen kleinen Zweck erstellen müssen, das automatisiert und ohne Passwort, aber mit einem Smartphone entsperrt oder gesperrt wird, können wir es mithilfe einiger Komponenten herstellen, die auf dem Markt leicht verfügbar sind.

Dieses Schloss ist sehr kostengünstig und funktioniert im kleinen Maßstab perfekt. Eine Android-Anwendung wird benötigt, um diese Sperre zu bedienen. Lassen Sie uns nun den ESP32 einrichten, die erforderlichen Pakete darauf installieren und bestimmte Hardwareänderungen vornehmen!

Automatische Türverriegelung

Lassen Sie uns ohne Zeitverlust wichtige Konzepte studieren und an diesem Projekt arbeiten.

Wie mache ich Android betrieben SmartLock?

Schritt 1: Sammeln der Komponenten

Wenn Sie vor dem Start eines Projekts befürchten, dass Sie mitten im Projekt stecken bleiben und Zeit verschwenden, gibt es einen hervorragenden Ansatz, um dies zu vermeiden. Erstellen Sie eine vollständige Liste aller Komponenten, die Sie für das Projekt benötigen, und kaufen Sie sie zunächst. Im Folgenden finden Sie eine vollständige Liste aller Komponenten, die wir in diesem Projekt verwenden werden. Alle diese Komponenten sind auf dem Markt leicht erhältlich.

Schritt 2: Erstellen der App

Da wir ein intelligentes Schloss erstellen wollen, das von einem Mobiltelefon bedient wird, müssen wir eine Android-App entwickeln, die eine Schaltfläche enthält. Durch Drücken dieser Taste können wir das Smart Lock öffnen oder schließen. Zuvor haben wir mehrere Android-Anwendungen entwickelt. Wir haben bereits eine Anwendung entwickelt, die nur aus einer Schaltfläche besteht. Mit dieser Schaltfläche werden Daten in die Datenbank gesendet. Wenn ‘1’ in die Firebase-Datenbank gedrückt wird, wird die Schaltersperre geöffnet, und wenn ‘0’ in diese Datenbank gedrückt wird, wird die Sperre geschlossen.

Lesen Sie unseren Artikel mit dem Titel Erstellen eines drahtlosen Ein / Aus-Schalters für Ihren PC, um Hilfe bei der Entwicklung Ihrer eigenen Android-Anwendung zu erhalten, mit der das Smart Lock betrieben wird.

Schritt 3: Zusammenbau der Komponenten

Da wir eine vollständige Liste aller Komponenten haben, die wir für die Fertigstellung dieses Projekts benötigen, gehen wir einen Schritt weiter und bauen alle Komponenten zusammen.

Nehmen Sie den Servomotor und verbinden Sie Vcc und Masse mit Vcc und Masse der ESP-Karte. Verbinden Sie den PWM-Pin Ihres Servomotors mit dem Pin 34 Ihrer ESP32-Karte. Stellen Sie nun sicher, dass sich an einem Servomotor ein Zahnradknopf befindet. Nehmen Sie den Griff des Schlosses durch Drehen heraus und befestigen Sie den Knopf des Getriebemotors mit Hilfe einiger Klebstoffe im Schloss.

Bohren Sie nun mit Hilfe der Bohrmaschine einige Löcher in die Tür, in der Sie dieses intelligente Schloss platzieren möchten. Stellen Sie sicher, dass Sie die Löcher so bohren, dass die Löcher des Schlosses die Löcher in der Tür überlappen und die Schraube einrastet.

Schritt 4: Arbeiten

Da wir jetzt die Hauptidee hinter diesem Projekt kennen, lassen Sie uns verstehen, wie dieses Projekt funktionieren wird.

ESP32 ist das Herzstück dieses Projekts. An diese Karte ist ein Servomotor angeschlossen, und dieser Mikrocontroller hat eine Verbindung zur Firebase-Datenbank. Wenn die Schaltfläche in der App gedrückt wird, um das Schloss zu öffnen, wird ‘1’ in die Firebase-Datenbank gedrückt, und wenn die Schaltfläche gedrückt wird, um das Schloss zu schließen, wird ‘0’ in die Firebase-Datenbank gedrückt. Die ESP-Karte liest diesen Wert kontinuierlich in der Firebase-Datenbank. Solange 0 vorhanden ist, weist der ESP32 den Servomotor an, in seiner Ausgangsposition zu bleiben. Sobald 1 in die Feuerbasis kommt, liest die ESP-Karte diese und weist den Servomotor an, eine Drehung durchzuführen, die das Schloss öffnet.

Schritt 5: Erste Schritte mit ESP32

Wenn Sie noch nicht an der Arduino IDE gearbeitet haben, machen Sie sich keine Sorgen, da unten eine schrittweise Anleitung zum Einrichten der Arduino IDE aufgeführt ist.

  1. Laden Sie die neueste Version von Arduino IDE von herunter Arduino.
  2. Schließen Sie Ihr Arduino-Board an den PC an und öffnen Sie die Systemsteuerung. Klicken Sie auf Hardware und Sound. Öffnen Sie nun Geräte und Drucker und suchen Sie den Anschluss, an den Ihre Karte angeschlossen ist. In meinem Fall ist es COM14, aber es ist auf verschiedenen Computern unterschiedlich.Port finden
  3. Klicken Sie auf Datei und dann auf Einstellungen. Kopieren Sie den folgenden Link in die URL des Additional Board Managers. “Https://dl.espressif.com/dl/package_esp32_index.json”Einstellungen
  4. Um ESP32 mit Arduino IDE verwenden zu können, müssen spezielle Bibliotheken importiert werden, mit denen wir Code auf ESP32 brennen und verwenden können. Diese beiden Bibliotheken sind unter dem unten angegebenen Link angehängt. Um die Bibliothek einzuschließen, gehen Sie zu Skizze> Bibliothek einschließen> ZIP-Bibliothek hinzufügen. Ein Feld wird angezeigt. Suchen Sie den ZIP-Ordner auf Ihrem Computer und klicken Sie auf OK, um die Ordner einzuschließen.Bibliothek einschließen
  5. Gehen Sie nun zu Skizze> Bibliothek einschließen> Bibliotheken verwalten.Bibliotheken verwalten
  6. Ein Menü wird geöffnet. Geben Sie in die Suchleiste Arduino JSON ein. Eine Liste wird angezeigt. Installieren Sie Arduino JSON von Benoit Blanchon.Arduino JSON
  7. Klicken Sie nun auf die Extras. Ein Dropdown-Menü wird angezeigt. Stellen Sie die Karte auf ESP Dev Module.Board einstellen
  8. Klicken Sie erneut auf das Menü Tool und stellen Sie den Port ein, den Sie zuvor in der Systemsteuerung beobachtet haben.Port einstellen
  9. Laden Sie nun den im obigen Link angehängten Code hoch und klicken Sie auf die Schaltfläche zum Hochladen, um den Code auf dem ESP32-Mikrocontroller zu brennen.Hochladen

Wenn Sie nun den Code hochladen, kann ein Fehler auftreten. Dies ist der häufigste Fehler, der auftreten kann, wenn Sie eine neue Version der Arduino IDE und des Arduino JSON verwenden. Im Folgenden sind die Fehler aufgeführt, die möglicherweise auf dem Bildschirm angezeigt werden.

In der Datei aus C: Benutzer Pro Dokumente Arduino Bibliotheken IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 aus C: Benutzer Pro Desktop smartHome code code.ino: 2: C. : Benutzer Pro Dokumente Arduino Bibliotheken IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: Fehler: StaticJsonBuffer ist eine Klasse von ArduinoJson 5. Weitere Informationen zum Aktualisieren Ihres Programms auf ArduinoJson finden Sie unter arduinojson.org/upgrade Version 6 StaticJsonBuffer jsonBuffer; ^ In der Datei aus C: Benutzer Pro Dokumente Arduino Bibliotheken IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 aus C: Benutzer Pro Desktop smartHome code code.ino: 2: C: Benutzer Pro Dokumente Arduino Bibliotheken IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: Fehler: StaticJsonBuffer ist eine Klasse von ArduinoJson 5. Weitere Informationen zum Aktualisieren Ihres Programms finden Sie unter arduinojson.org/upgrade ArduinoJson Version 6 gibt StaticJsonBuffer zurück() .parseObject (_data); ^ Für “WiFi.h” wurden mehrere Bibliotheken gefunden. Verwendet: C: Benutzer Pro AppData Local Arduino15 Pakete esp32 Hardware esp32 1.0.2 Bibliotheken WiFi Nicht verwendet: C: Programme ( x86) Arduino library WiFi Verwenden von Library WiFi in Version 1.0 im Ordner: C: Users Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 library WiFi Verwenden der Bibliothek IOXhop_FirebaseESP32-master im Ordner: C: Benutzer Pro Dokumente Arduino Bibliotheken IOXhop_FirebaseESP32-master (Legacy) Verwenden der Bibliothek HTTPClient in Version 1.2 im Ordner: C: Benutzer Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 Bibliotheken HTTPClient Verwenden der Bibliothek WiFiClientSecure in Version 1.0 im Ordner: C: Benutzer Pro AppData Local Arduino15 packages esp32 hardware esp32 1.0.2 Bibliotheken WiFiClientSecure Verwenden der Bibliothek ArduinoJson unter Version 6.12.0 im Ordner: C: Benutzer Pro Dokumente Arduino Bibliotheken ArduinoJson-Exit-Status 1 Fehler beim Kompilieren für das ESP32-Dev-Modul der Karte.

Es gibt keinen Grund zur Sorge, da wir diese Fehler durch Befolgen einiger einfacher Schritte beseitigen können. Diese Fehler treten auf, weil die neue Version von Arduino JSON anstelle von StaticJsonBuffer eine andere Klasse hat. Dies ist die Klasse von JSON 5. Wir können diesen Fehler also einfach beseitigen, indem wir die Version von Arduino JSON unserer Arduino IDE herunterstufen. Gehen Sie einfach zu Skizze> Bibliothek einschließen> Bibliotheken verwalten. Suchen Sie nach Arduino JSON von Benoit Blanchon, das Sie zuvor installiert haben. Deinstallieren Sie es zuerst und setzen Sie dann seine Version auf 5.13.5. Nachdem wir eine alte Version von Arduino JSON festgelegt haben, installieren Sie sie erneut und kompilieren Sie den Code neu. Dieses Mal wird Ihr Code erfolgreich kompiliert.

Um den Code herunterzuladen, klicken Hier.

Schritt 6: Code

Der Code dieses Projekts ist sehr einfach, aber einige Teile davon werden unten erklärt.

1. Zu Beginn des Codes werden drei Bibliotheken eingefügt. Die erste besteht darin, Wifi auf der ESP-Karte zu aktivieren, die zweite darin, ESP die Verwendung eines Servomotors zu ermöglichen, und die dritte darin, die ESP-Karte mit der Firebase-Datenbank zu verbinden. Danach fügen wir den Firebase-Host, die Authentifizierung, den Namen unserer lokalen Internetverbindung und das Kennwort in den Code ein. Erstellen Sie anschließend ein Objekt zur Verwendung des Servomotors.

einschließen<WiFi.h> // Bibliothek einschließen, um WiFi #include zu verwenden <Servo.h> // Bibliothek für Servomotor einschließen #include <IOXhop_FirebaseESP32.h> // Bibliothek einschließen, um eine Verbindung zu Firebase herzustellen #define FIREBASE_HOST “xxxxxxxxxx” // xxxxxxxxxx durch Ihren Firebase-Host hier ersetzen #define FIREBASE_AUTH “xxxxxxxxxxx” // xxxxxxxxxxx durch Ihre Firebase-Authentifizierung hier ersetzen #xx ” xxxxxxxxxx durch den Namen unserer Wifi-Verbindung #define WIFI_PASSWORD “xxxxxxxxxx” // Ersetze xxxxxxxxxx durch dein Wifi-Passwort Servo myservo; // Objekt für Servomotor erstellen int pos = 0; // Variable int state erstellen; // Variable erstellen

2. void setup () ist eine Funktion, die in einem Programm nur einmal ausgeführt wird, wenn die Mikrocontroller-Karte eingeschaltet oder die Aktivierungstaste gedrückt wird. Die Baudrate wird in dieser Funktion eingestellt. Die Baudrate ist tatsächlich die Kommunikationsgeschwindigkeit in Bit pro Sekunde, über die der Mikrocontroller mit den externen Geräten kommuniziert. Der Servomotor ist mit dem Pin 34 der ESP-Karte verbunden. In dieser Funktion wird Code geschrieben, um den Mikrocontroller mit der lokalen Internetverbindung zu verbinden.

void setup () {Serial.begin (115200); // Baudrate einstellen myservo.attach (34); // PWM-Pin des Servomotors mit Pin34 von ESP32 verbinden myservo.write (60); Verzögerung (1000); // Verbindung zu WiFi herstellen. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println (“Verbinden”); while (WiFi.status ()! = WL_CONNECTED) {Serial.print (“.”); Verzögerung (500); } Serial.println (); Serial.print (“verbunden:”); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }}

3. void loop () ist eine Funktion, die in einer Schleife immer wieder ausgeführt wird. In dieser Funktion teilen wir dem Mikrocontroller mit, welche Operationen wie ausgeführt werden sollen. Hier werden Daten aus der Firebase gelesen und in der Variablen mit dem Namen state gespeichert. Wenn der Zustand den Wert ‘0’ enthält, wird die Position des Servomotors auf 8 Grad eingestellt. Wenn der Wert im variablen Zustand gleich ‘1’ ist, wird die Position des Servomotors auf 55 Grad eingestellt.

void loop () {state = Serial.println (Firebase.getFloat (“motor”)); // lese die Daten aus der Firebase // wenn der Zustand ‘0’ ist, schaltet sich der Gleichstrommotor aus if (state == ‘0’) {myservo.write (8); // Position der Servomotorverzögerung einstellen (1000); // warte auf eine zweite Serial.println (“Door Locked”); } else if (state == ‘1’) {myservo.write (55); // neue Position der Servomotorverzögerung einstellen (1000); // warte eine Sekunde Serial.println (“Door UnLocked”); } // Fehler behandeln if (Firebase.failed ()) {Serial.print (“Einstellung / Nummer fehlgeschlagen:”); Serial.println (Firebase.error ()); Rückkehr; } delay (1000);

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *