Elektronisches Schloss mit Arduino-Karte. Arduino-Code-Sperre

Ich habe mir neulich The Amazing Spider-Man noch einmal angesehen und in einer Szene öffnet und schließt Peter Parker die Tür ferngesteuert von seinem Laptop aus. Als ich das gesehen habe, war mir sofort klar, dass ich so ein elektronisches Schloss an der Haustür brauche.

Nach ein wenig Fummelei sammelte ich Betriebsmodell intelligentes Schloss. In diesem Artikel werde ich Ihnen sagen, wie ich es gesammelt habe.

Schritt 1: Materialliste





Um ein elektronisches Schloss auf Arduino zu montieren, benötigen Sie die folgenden Materialien:

Elektronik:

  • 5V Wandadapter

Komponenten:

  • 6 Schrauben für die Verriegelung
  • Karton
  • Drähte

Instrumente:

  • Lötkolben
  • Klebepistole
  • bohren
  • bohren
  • Pilotlochbohrer
  • Schreibwarenmesser
  • Computer mit Arduino IDE

Schritt 2: Funktionsweise des Schlosses

Die Idee ist, dass ich die Tür ohne Schlüssel öffnen oder schließen kann, ohne auch nur darauf zu gehen. Aber das ist nur die Grundidee, denn Sie können einen Klopfsensor hinzufügen, um auf ein spezielles Klopfen zu reagieren, oder Sie können ein Spracherkennungssystem hinzufügen!

Ein mit dem Riegel verbundener Servohebel schließt (0°) und öffnet (60°) den Riegel mithilfe von Befehlen, die über das Bluetooth-Modul empfangen werden.

Schritt 3: Schaltplan


Lassen Sie uns zuerst das Servo an das Arduino-Board anschließen (beachten Sie, dass, obwohl ich ein Arduino Nano-Board verwende, die Pinbelegung auf dem Uno-Board genau gleich ist).

  • Das braune Kabel des Servos ist Masse, wir verbinden es mit der Masse des Arduino
  • Das rote Kabel ist positiv, wir verbinden es mit dem 5-V-Anschluss des Arduino
  • Oranger Draht - Servoquellenausgang, verbinden Sie ihn mit Pin 9 auf Arduino

Ich rate Ihnen, das Servo zu testen, bevor Sie mit der Montage fortfahren. Wählen Sie dazu im Programm Arduino IDE in den Beispielen Sweep aus. Nachdem wir sichergestellt haben, dass das Servo funktioniert, können wir das Bluetooth-Modul anschließen. Sie müssen den rx-Pin des Bluetooth-Moduls mit dem tx-Pin des Arduino und den tx-Pin des Moduls mit dem rx-Pin des Arduino verbinden. Aber tun Sie es noch nicht! Sobald diese Verbindungen gelötet sind, können Sie keine Codes auf den Arduino hochladen, also laden Sie zuerst alle Ihre Codes hoch und löten erst dann die Verbindungen.

Hier ist das Anschlussdiagramm des Moduls und des Mikrocontrollers:

  • Rx-Modul - Tx-Arduino-Board
  • Tx-Modul - Rx-Board
  • Vcc (Pluspol) des Moduls - 3,3 V der Arduino-Platine
  • Masse mit Masse verbinden (Masse mit Masse)

Wenn Ihnen die Erklärung nicht klar ist, folgen Sie dem mitgelieferten Schaltplan.

Schritt 4: Testen

Nun, da wir alle funktionierenden Teile haben, stellen wir sicher, dass das Servo die Verriegelung bewegen kann. Bevor ich den Riegel an der Tür montierte, stellte ich ein Testmuster zusammen, um sicherzustellen, dass das Servo stark genug war. Zuerst schien mir mein Servo schwach zu sein und ich habe einen Tropfen Öl in die Verriegelung gegeben, danach hat alles funktioniert. Es ist sehr wichtig, dass der Mechanismus gut gleitet, sonst riskieren Sie, in Ihrem Zimmer eingesperrt zu werden.

Schritt 5: Gehäuse für elektrische Komponenten



Ich beschloss, nur den Controller und das Bluetooth-Modul in das Gehäuse zu stecken und das Servo draußen zu lassen. Zeichnen Sie dazu auf einem Stück Pappe den Umriss des Arduino Nano-Boards nach und fügen Sie 1 cm Platz um den Umfang hinzu und schneiden Sie es aus. Danach schneiden wir auch fünf weitere Seiten des Körpers aus. In der Vorderwand müssen Sie ein Loch für das Netzkabel des Controllers schneiden.

Maße der Kofferseiten:

  • Unten - 7,5 x 4 cm
  • Deckel - 7,5 x 4 cm
  • Links Seitenwand- 7,5 x 4 cm
  • Rechte Seitenwand - 7,5x4 cm
  • Vorderwand - 4x4 cm (mit einem Schlitz für das Netzkabel)
  • Rückwand - 4x4 cm

Schritt 6: Bewerbung

Um den Controller zu steuern, benötigen Sie ein Android- oder Windows-Gadget mit integriertem Bluetooth. Ich hatte keine Gelegenheit, die Anwendung auf Apple-Geräten zu testen, möglicherweise werden einige Treiber benötigt.

Ich bin sicher, dass einige von Ihnen die Möglichkeit haben, es sich anzusehen. Laden Sie für Android die Bluetooth-Terminal-App herunter, für Windows TeraTerm. Dann müssen Sie das Modul mit Ihrem Smartphone verbinden, der Name sollte linvor sein, das Passwort sollte 0000 oder 1234 sein. Sobald die Kopplung hergestellt ist, öffnen Sie es installierte Anwendung, geben Sie Optionen ein und wählen Sie Verbindung herstellen (nicht sicher). Ihr Smartphone ist jetzt der serielle Arduino-Monitor, was bedeutet, dass Sie mit dem Controller kommunizieren können.

Wenn Sie 0 eingeben, schließt sich die Tür und auf dem Smartphone-Bildschirm wird die Meldung „Tür geschlossen“ angezeigt.
Wenn Sie 1 eingeben, wird die Tür geöffnet und die Meldung „Tür offen“ erscheint auf dem Bildschirm.
Unter Windows ist der Vorgang derselbe, außer dass Sie die TeraTerm-Anwendung installieren müssen.

Schritt 7: Montieren Sie die Schraube


Zuerst müssen Sie das Servo mit dem Riegel verbinden. Schneiden Sie dazu die Stopfen von den Befestigungslöchern des Antriebsgehäuses ab. Wenn wir ein Servo einsetzen, sollten die Befestigungslöcher bündig mit der Verriegelung sein. Dann müssen Sie den Servohebel in den Schlitz der Verriegelung legen, wo sich der Verriegelungsgriff befand. Überprüfen Sie, wie sich das Schloss im Gehäuse bewegt. Wenn alles in Ordnung ist, fixieren Sie den Servohebel mit Klebstoff.

Jetzt müssen Sie Pilotlöcher in der Tür für die Schrauben bohren. Befestigen Sie dazu die Falle an der Tür und markieren Sie die Löcher für die Schrauben auf dem Türblatt mit einem Bleistift. Löcher für die Schrauben an den markierten Stellen ca. 2,5 cm tief bohren Riegel anbringen und mit Schrauben sichern. Überprüfen Sie das Servo erneut.

Schritt 8: Ernährung


Um das Gerät zu vervollständigen, benötigen Sie ein Netzteil, ein Kabel und einen Mini-USB-Stecker, um es mit dem Arduino zu verbinden.
Verbinden Sie die Erdungsklemme des Netzteils mit der Erdungsklemme des Mini-USB-Anschlusses, verbinden Sie das rote Kabel mit dem roten Kabel des Mini-USB-Anschlusses und führen Sie dann das Kabel vom Schloss nach Türangel, und von dort bis zum Auslass strecken.

Schritt 9: Codieren

#include Servo myservo; intpos = 0; int-Zustand; Int-Flag = 0; void setup () ( myservo.attach (9); Serial.begin (9600); myservo.write (60); delay (1000); ) void loop () ( if (Serial.available () > 0) ( state = Serial.read (); flag = 0; ) // wenn der Zustand "0" ist, wird der Gleichstrommotor ausgeschaltet, wenn (state == "0") (myservo.write (8); delay (1000); Serial. println("Tür verriegelt"); ) else if (state == "1") ( myservo.write(55); delay(1000); Serial.println("Tür entriegelt"); ) )

Schritt 10: Fertiges Arduino-Schloss

Genießen Sie Ihr Fernbedienungsschloss und vergessen Sie nicht, Ihre Freunde "aus Versehen" im Raum einzusperren.

Der Fortschritt steht nicht still und „Smart Locks“ finden sich immer häufiger an den Türen von Wohnungen, Garagen und Häusern.

Ein ähnliches Schloss öffnet sich, wenn Sie eine Taste auf Ihrem Smartphone drücken. Glücklicherweise haben Smartphones und Tablets bereits Einzug in unseren Alltag gehalten. In einigen Fällen sind „Smart Locks“ mit „ Cloud-Services"wie ein Google-Laufwerk und aus der Ferne öffnen. Darüber hinaus ermöglicht diese Option, anderen Personen den Zugriff zum Öffnen der Tür zu gewähren.

In diesem Projekt wird eine DIY-Version eines intelligenten Schlosses auf Arduino implementiert, das von überall auf der Welt ferngesteuert werden kann.

Darüber hinaus hat das Projekt die Möglichkeit hinzugefügt, das Schloss nach der Fingerabdruckerkennung zu öffnen. Dafür wird ein Fingerabdrucksensor integriert. Beide Optionen zum Öffnen von Türen funktionieren auf Basis der Adafruit IO-Plattform.

Ein solches Schloss kann ein toller erster Schritt in Ihrem Smart-Home-Projekt sein.

Einrichten des Fingerabdrucksensors

Um mit dem Fingerabdrucksensor zu arbeiten, gibt es eine hervorragende Bibliothek für Arduino, die das Einrichten des Sensors erheblich vereinfacht. Dieses Projekt verwendet ein Arduino Uno. Das Adafruit CC3000-Board wird verwendet, um eine Verbindung zum Internet herzustellen.

Beginnen wir mit dem Anschließen der Stromversorgung:

  • Verbinden Sie den 5-V-Pin von der Arduino-Platine mit der roten Stromschiene;
  • Der GND-Pin des Arduino wird mit der blauen Schiene auf der lötfreien Platine verbunden.

Kommen wir zum Anschließen des Fingerabdrucksensors:

  • Schließen Sie zuerst die Stromversorgung an. Dazu wird die rote Ader mit der +5 V-Schiene und die schwarze Ader mit der GND-Schiene verbunden;
  • Das weiße Sensorkabel wird mit Pin 4 des Arduino verbunden.
  • Das grüne Kabel geht an Pin 3 des Mikrocontrollers.

Schauen wir uns nun das CC3000-Modul an:

  • Verbinden Sie den IRQ-Pin der CC3000-Platine mit Pin 2 des Arduino.
  • VBAT - an Stift 5.
  • CS - an Stift 10.
  • Danach müssen Sie die SPI-Pins mit dem Arduino verbinden: MOSI, MISO und CLK - jeweils mit den Pins 11, 12 und 13.

Und schließlich müssen Sie Strom liefern: Vin - an Arduino 5V (rote Schiene auf Ihrer Platine) und GND an GND (blaue Schiene auf dem Steckbrett).

Ein Foto des vollständig zusammengebauten Projekts ist unten gezeigt:

Bevor Sie eine Skizze entwickeln, die Daten zu Adafruit IO hochlädt, müssen Sie Ihre Fingerabdruckdaten an den Sensor übergeben. Sonst wird er dich in Zukunft nicht mehr erkennen ;). Wir empfehlen, den Fingerabdrucksensor separat mit dem Arduino zu kalibrieren. Wenn Sie zum ersten Mal mit diesem Sensor arbeiten, empfehlen wir Ihnen, den Kalibrierungsprozess und die detaillierte Anleitung zum Arbeiten mit dem Fingerabdrucksensor zu lesen.

Wenn Sie dies noch nicht getan haben, melden Sie sich für ein Adafruit IO-Konto an.

Danach können wir gehen nächster Schritt Entwicklung eines "intelligenten Schlosses" auf Arduino: nämlich die Entwicklung eines Sketches, der Daten an Adafruit IO übermittelt. Da das Programm ziemlich umfangreich ist, werden wir in dem Artikel nur seine Hauptteile hervorheben und betrachten und dann einen Link zu GitHub geben, wo Sie die vollständige Skizze herunterladen können.

Die Skizze beginnt mit dem Laden aller notwendigen Bibliotheken:

#enthalten

#enthalten

#enthalten

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#enthalten

#enthalten >

Danach müssen Sie die Skizze leicht korrigieren, indem Sie die Parameter Ihres WLAN-Netzwerks einfügen und die SSID und das Passwort (Passwort) angeben:

#define WLAN_SECURITY WLAN_SEC_WPA2>

Außerdem müssen Sie einen Namen und einen AIO-Schlüssel (Schlüssel) eingeben, um Ihr Adafruit IO-Konto zu betreten:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key">

Die folgenden Zeilen sind für die Interaktion und Verarbeitung der Daten des Fingerabdrucksensors zuständig. Wenn der Sensor aktiviert war (Fingerabdruck abgeglichen), steht er auf „1“:

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/fingerprint";

Adafruit_MQTT_Publish-Fingerabdruck = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Außerdem müssen wir eine Instanz des SoftwareSerial-Objekts für unseren Sensor erstellen:

SoftwareSerial mySerial(3, 4);

Danach können wir ein Objekt für unseren Sensor erstellen:

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

Innerhalb des Sketches legen wir fest, welche FingerID zukünftig die Sperre aktivieren soll. In diesem Beispiel wird 0 verwendet, was der ID des ersten vom Sensor verwendeten Fingerabdrucks entspricht:

int fingerID = 0;

Danach initialisieren wir den Zähler und die Verzögerung (Verzögerung) in unserem Projekt. Grundsätzlich möchten wir, dass das Schloss nach dem Öffnen automatisch funktioniert. Dieses Beispiel verwendet eine Verzögerung von 10 Sekunden, aber Sie können diesen Wert an Ihre Bedürfnisse anpassen:

int Aktivierungszähler = 0;

int lastActivation = 0;

int Aktivierungszeit = 10 * 1000;

Im Hauptteil der Funktion setup() initialisieren wir den Fingerabdrucksensor und stellen sicher, dass der CC3000-Chip mit Ihrem WLAN-Netzwerk verbunden ist.

Im Hauptteil der Funktion loop() stellen wir eine Verbindung zu Adafruit IO her. Dafür ist folgende Zeile zuständig:

Nach dem Verbinden mit der Adafruit IO-Plattform prüfen wir den letzten Fingerabdruck. Wenn es übereinstimmt und die Sperre nicht aktiviert ist, senden wir eine „1“ zur Verarbeitung an Adafruit IO:

if (fingerprintID == fingerID && lockState == false) (

Serial.println (F ("Zugriff gewährt!"));

lockState=true;

Serial.println (F ("Fehlgeschlagen"));

Serial.println (F ("OK!"));

lastActivation = millis();

Wenn innerhalb der Funktion loop() die Sperre aktiviert ist und wir den oben angegebenen Verzögerungswert erreicht haben, senden wir "0":

if ((activationCounter - lastActivation > activationTime) && lockState == true) (

lockState=false;

if (! Fingerabdruck.publish(state)) (

Serial.println (F ("Fehlgeschlagen"));

Serial.println (F ("OK!"));

Sie können die neueste Version des Codes auf GitHub herunterladen.

Es ist Zeit, unser Projekt zu testen! Vergessen Sie nicht, alle erforderlichen Arduino-Bibliotheken herunterzuladen und zu installieren!

Stellen Sie sicher, dass Sie alle notwendigen Änderungen an der Skizze vorgenommen haben, und laden Sie sie auf Ihren Arduino hoch. Öffnen Sie dann das Fenster des seriellen Monitors.

Wenn der Arduino eine Verbindung herstellt WiFi-Netzwerke, blinkt der Fingerabdrucksensor rot. Legen Sie Ihren Finger auf den Sensor. Das Fenster des seriellen Monitors sollte die ID-Nummer anzeigen. Bei Übereinstimmung erscheint die Meldung „OK!“. Das bedeutet, dass die Daten an die Adafruit IO-Server gesendet wurden.

Schema und Skizze zum weiteren Aufbau des Schlosses am Beispiel einer LED

Wenden wir uns nun dem Teil des Projekts zu, der direkt für die Verwaltung verantwortlich ist Türschloss. Zu verbinden drahtloses Netzwerk und Aktivierung/Deaktivierung der Sperre benötigen Sie ein zusätzliches Adafruit ESP8266 Modul (das ESP8266 Modul muss nicht von Adafruit sein). Das folgende Beispiel zeigt Ihnen, wie einfach es ist, mit Adafruit IO zwischen zwei Plattformen (Arduino und ESP8266) zu kommunizieren.

In diesem Abschnitt werden wir nicht direkt mit dem Schloss arbeiten. Stattdessen verbinden wir die LED einfach mit dem Stift, an dem später das Schloss angeschlossen wird. Dies ermöglicht es, unseren Code zu testen, ohne sich mit den Besonderheiten des Schlossdesigns zu befassen.

Die Schaltung ist ganz einfach: Zuerst den ESP8266 auf dem Steckbrett installieren. Installieren Sie dann die LED. Vergessen Sie nicht, dass der lange (positive) Schenkel der LED über einen Widerstand verbunden ist. Der zweite Zweig des Widerstands ist mit Pin 5 des ESP8266-Moduls verbunden. Die zweite (Kathoden-) LED ist mit dem GND-Pin des ESP8266 verbunden.

Völlig zusammengesetzte Schaltung auf dem Foto unten gezeigt.


Schauen wir uns nun die Skizze an, die wir für dieses Projekt verwenden. Auch hier ist der Code ziemlich umfangreich und komplex, daher werden wir nur die Hauptteile davon abdecken:

Wir beginnen damit, die notwendigen Bibliotheken einzubinden:

#enthalten

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

WLAN-Einstellungen konfigurieren:

#define WLAN_SSID "your_wifi_ssid"

#define WLAN_PASS "dein_wifi_passwort"

#define WLAN_SECURITY WLAN_SEC_WPA2

Wir konfigurieren auch die Adafruit IO-Parameter. Wie im vorigen Abschnitt:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Wir geben an, an welchen Pin wir die LED angeschlossen haben (in Zukunft wird es unser Schloss oder Relais sein):

Int RelaisPin = 5;

Interaktion mit dem Fingerabdrucksensor, wie im vorherigen Abschnitt:

const char LOCK_FEED PROGMEM = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

Im Hauptteil der Funktion setup() geben wir an, dass der Pin, an den die LED angeschlossen ist, im OUTPUT-Modus arbeiten soll:

PinMode (RelaisPin, AUSGANG);

Innerhalb der Schleife loop() prüfen wir zunächst, ob wir uns mit Adafruit IO verbunden haben:

Danach prüfen wir, welches Signal kommt. Wird „1“ gesendet, aktivieren wir den zuvor deklarierten Pin, an dem unsere LED angeschlossen ist. Wenn wir "0" erhalten haben, setzen wir den Kontakt in den Zustand "Low":

Adafruit_MQTT_Subscribe *Abonnement;

while ((subscription = mqtt.readSubscription(1000))) (

if (Abonnement == &lock) (

Serial.print (F ("Got:"));

Serial.println ((char *) lock.lastread);

// Speichere den Befehl als String-Daten

String-Befehl = String((char *)lock.lastread);

if (Befehl == "0") (

DigitalWrite (RelaisPin, LOW);

if (Befehl == "1") (

DigitalWrite (RelaisPin, HIGH);

Finden letzte Version Sie können sich die Skizze auf GitHub ansehen.

Es ist Zeit, unser Projekt zu testen. Vergessen Sie nicht, alle notwendigen Bibliotheken für Ihren Arduino herunterzuladen und zu überprüfen, ob Sie die richtigen Änderungen an der Skizze vorgenommen haben.

Zur Programmierung des ESP8266-Chips kann ein einfacher USB-FTDI-Konverter verwendet werden.

Laden Sie die Skizze zum Arduino hoch und öffnen Sie das Fenster des seriellen Monitors. Auf diese Phase Wir haben gerade überprüft, ob wir eine Verbindung zu Adafruit IO herstellen konnten: Wir werden uns die verfügbaren Funktionen weiter ansehen.

Testen des Projekts

Jetzt fangen wir an zu testen! Gehen Sie zum Benutzermenü Ihres Adafruit IO im Feeds-Menü. Überprüfen Sie, ob Kanäle für Fingerabdruck und Sperre erstellt wurden oder nicht (auf dem Druckbildschirm unten sind dies die Fingerabdruck- und Sperrzeilen):


Wenn sie nicht vorhanden sind, müssen Sie sie manuell erstellen.

Jetzt müssen wir den Datenaustausch zwischen Fingerabdruck- und Sperrkanal sicherstellen. Der Sperrkanal muss auf „1“ gesetzt werden, wenn der Fingerabdruckkanal auf „1“ gesetzt ist und umgekehrt.

Dazu verwenden wir ein sehr leistungsfähiges Adafruit IO-Tool: Trigger. Trigger sind im Wesentlichen Bedingungen, die Sie auf konfigurierte Kanäle anwenden können. Das heißt, sie können verwendet werden, um zwei Kanäle miteinander zu verbinden.

Erstellen Sie einen neuen reaktiven Trigger aus dem Abschnitt „Trigger“ in Adafruit IO. Dies bietet die Möglichkeit, Daten zwischen den Kanälen des Fingerabdrucksensors und des Schlosses auszutauschen:


So sollte es aussehen, wenn beide Trigger konfiguriert sind:

Alle! Jetzt können wir unser Projekt wirklich testen! Wir legen unseren Finger auf den Sensor und sehen, wie der Arduino anfing mit der LED zu blinken, was der Datenübertragung entspricht. Danach sollte die LED am ESP8266-Modul zu blinken beginnen. Das bedeutet, dass er begann, Daten über MQTT zu empfangen. Die LED auf der Platine sollte an dieser Stelle ebenfalls aufleuchten.

Nach der Verzögerung, die Sie in der Skizze eingestellt haben (Standard ist 10 Sekunden), erlischt die LED. Glückwünsche! Sie können die LED mit Ihrem Fingerabdruck von überall auf der Welt steuern!

Einrichten eines elektronischen Schlosses

Wir haben den letzten Teil des Projekts erreicht: Direktes Verbinden und Steuern eines elektronischen Schlosses mit einem Arduino und einem Fingerabdrucksensor. Das Projekt ist nicht einfach, Sie können alle Quellen in der oben dargestellten Form verwenden, aber anstelle einer LED ein Relais anschließen.

Um das Schloss direkt anzuschließen, benötigen Sie zusätzliche Komponenten: ein 12-V-Netzteil, eine Strombuchse, einen Transistor (in dieses Beispiel Es wird ein IRLB8721PbF-MOSFET verwendet, aber ein anderer, beispielsweise ein TIP102-Bipolartransistor, kann verwendet werden. Wenn Sie einen Bipolartransistor verwenden, müssen Sie einen Widerstand hinzufügen.

Unten gezeigt Schaltplan Anschließen aller Komponenten an das ESP8266-Modul:


Beachten Sie, dass Sie bei Verwendung eines MOSFET keinen Widerstand zwischen ESP8266 Pin 5 und dem Transistor benötigen.

Das fertig montierte Projekt ist auf dem Foto unten dargestellt:


Schalten Sie das ESP8266-Modul mit dem FTDI-Modul ein und schließen Sie die 12-V-Stromversorgung an die Buchse an. Wenn Sie die oben empfohlenen Pins für den Anschluss verwendet haben, müssen Sie an der Skizze nichts ändern.

Jetzt können Sie Ihren Finger auf den Sensor legen: Das Schloss sollte auf Ihren Fingerabdruck reagieren. Das folgende Video zeigt das automatische Smart-Lock-Projekt in Aktion:

Weiterentwicklung des Smart Lock Projekts

In unserem Projekt wird die Fernsteuerung des Türschlosses per Fingerabdruck freigegeben.

Fühlen Sie sich frei zu experimentieren, die Skizze und den Kabelbaum zu ändern. So können Sie beispielsweise ein elektronisches Türschloss durch ein Relais ersetzen, um die Leistung Ihres 3D-Druckers, Roboterarms oder Quadrocopters zu steuern...

Sie können Ihre entwickeln vernetztes Haus". Aktivieren Sie beispielsweise das Bewässerungssystem aus der Ferne auf dem Arduino oder schalten Sie das Licht im Raum ein ... Vergessen Sie nicht, dass Sie mit Adafruit IO eine nahezu unbegrenzte Anzahl von Geräten gleichzeitig aktivieren können.

Hinterlassen Sie Ihre Kommentare, Fragen und teilen Sie persönliche Erfahrung unter. In der Diskussion entstehen oft neue Ideen und Projekte!

In diesem Artikel zeige ich Ihnen, wie Sie ein Zahlenschloss aus Arduino herstellen. Dazu benötigen wir rote und grüne LEDs, einen Summer, einen Arduino Nano, ein LCD-Display mit I2C-Konverter, einen Servoantrieb und eine 4x4-Matrix-Tastatur. Beim Einschalten zeigt das Display „Code eingeben“ an.

die rote LED leuchtet auf,

und das Grün erlischt, wird das Servo auf 0° gestellt. Bei der Eingabe von Zahlen leuchtet * auf dem Display auf.

Wenn der Code falsch eingegeben wurde, zeigt das Display „Code eingeben.“ an. Ist der Code korrekt, ertönt ein Signalton, das Servo dreht sich um 180°, das Display zeigt „Open“.

die grüne LED leuchtet auf,

und rot erlischt. Nach 3 Sekunden kehrt das Servo in seine Ausgangsposition zurück, die rote LED leuchtet auf und die grüne LED erlischt, das Display zeigt „Close“ an.

dann steht auf dem Display "Code eingeben.". Jetzt über das Schema. Zuerst verbinden wir das Arduino mit Drähten mit dem Steckbrett (Leistungskontakte).

Dann schließen wir eine Matrixtastatur an die Kontakte D9 - D2 an.

Dann das Servo. Wir verbinden es mit Pin 10.

Rote LED an Pin 11.

Grün - an Pin 12.

Summer - an Pin 13.

Laden Sie nun die Skizze hoch.

#enthalten #enthalten #enthalten #enthalten arduino_KB KB(9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd (0x27, 16, 2); Servo-Servo int pass = (3, 6, 1, 8); int ein; intr = 11; int g = 12; void setup() (KB.begin(KB1); pinMode(r, OUTPUT); pinMode(g, OUTPUT); lcd.init(); lcd.backlight(); digitalWrite(g, LOW); digitalWrite(r, HIGH ); servo.attach(10); servo.write(0); lcd.setCursor(0, 0); ) void loop() ( lcd.clear(); lcd.print("Code eingeben."); while ( !KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.clear(); lcd.setCursor(0, 0); lcd.print("*"); while (!KB. check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); while (!KB.check(KEY_DOWN)) ( delay(1); ) in = KB.getNum; lcd.print("*"); if (in == pass) ( if (in == pass) ( if (in == pass) ( if (in == pass) ( lcd.clear(); lcd.setCursor(0, 0); lcd.print("Öffnen."); Ton( 13, 400, 750); servo.write (180); digitalWrite (r, LOW); digitalWrite (g, HIGH); delay (3000); lcd.clear (); lcd.setCursor (0, 0); lcd. print("Schließen."); Tone(13, 300, 700); servo.write(0); digitalWrite(g, LOW); digitalWrite(r, HIGH); dela y(1000); ) ) ) ) )

Das ist alles. Genießen Sie die Code-Sperre!

Liste der Funkelemente

Bezeichnung Art Konfession Menge NotizLadenMein Notizbuch
E1 Arduino-Board

Arduino Nano 3.0

1 5V Zum Merkzettel
E8, E9 Widerstand

220 Ohm

2 smd Zum Merkzettel
E6 Leuchtdiode

AL102G

1 Rot Zum Merkzettel
E7 Leuchtdiode

AL307G

1 Grün Zum Merkzettel
E3 LCD BildschirmMit I2C-Schnittstelle1 Grüne Hintergrundbeleuchtung Zum Merkzettel
E5 ServoSG901 180 Grad Zum Merkzettel
E2 Summer5V1 Bu Zum Merkzettel
E4 Klaviatur4x41 Matrix Zum Merkzettel
Nein Brotbrett640 Punkte1 ohne Löten
Zufällig haben wir uns bei der Arbeit entschieden, ein Zahlenschloss an unserer Tür anzubringen, weil wir, wenn wir ständig hineinlaufen, aus dem Büro rennen, dessen Tür in Abwesenheit von Bewohnern ständig geschlossen werden muss. Schlüssel werden oft drinnen vergessen. Im Allgemeinen haben wir entschieden, dass ein Zahlenschloss ein guter Ausweg ist.

Nachdem ich chinesische Flohmärkte und ebay durchstöbert hatte, fand ich nichts billiges und mehr oder weniger seriöses und beschloss, es selbst zu machen. Ich werde sofort reservieren, dass die Arduino-Plattform wegen ihrer Einfachheit ausgewählt wurde, da es überhaupt keine Erfahrung mit Mikrocontrollern gab.

Idee

An der Tür mit draußen die Tür muss eine Tastatur haben, auf der das Passwort eingegeben wird, mit Innerhalb den Rest der Struktur fixiert. Ein Reedschalter wird verwendet, um das vollständige Schließen der Tür zu steuern. Beim Verlassen des Büros drückt eine Person „*“ auf der Tastatur und ohne auf das Schließen der Tür zu warten, geht der Türschließer seiner Arbeit nach. Wenn die Tür vollständig geschlossen ist, schließt der Reed-Schalter und das Schloss wird geschlossen. Die Tür wird durch Eingabe eines 4-stelligen Passworts und Drücken von „#“ geöffnet.

Zubehör

Arduino UNO = 18 $
Arduino-Protoschild + Steckbrett = 6 $
L293D = $1
Kabelbündel 30 Stück für Bredboard = 4 $
2 RJ45-Buchsen = 4 $
2 RJ45-Stecker = 0,5 $
Zentralverriegelungsbetätiger = 250 Rubel.
Reedschalter = kostenlos aus dem alten Fenster gerissen.
Riegelstangen aus Metall in gigantischen Größen = gratis
Gehäuse einer alten D-LINK Nabe aus 1,5 mm Eisen = frei
Stromversorgung vom selben D-LINK-Hub für 12 und 5 V = ebenfalls kostenlos
Ein Haufen Schrauben und Muttern zum Befestigen all dieser Dinge am Gehäuse = 100 Rubel.
Bedienfeld von Einbrecheralarm= frei.

Gesamt: 33,5 $ und 350 Rubel.

Nicht so wenig, sagst du, und du wirst sicher Recht haben, aber für das Vergnügen muss man bezahlen! Und es ist immer schön, etwas mit den eigenen Händen zu sammeln. Darüber hinaus kann das Design stark im Preis reduziert werden, wenn Sie einen nackten MK ohne Arduino verwenden.

Montagevorbereitung

Ich möchte ein paar Worte zum Kauf eines Schlüsselelements des Antriebsdesigns sagen. In einem örtlichen Autohaus boten sie mir zwei Arten von Stellgliedern an: „mit zwei Drähten und mit fünf“. Laut der Verkäuferin waren sie genau gleich und der Unterschied in der Anzahl der Drähte bedeutete absolut nichts. Wie sich jedoch später herausstellte, ist dem nicht so! Ich entschied mich für ein Gerät mit zwei Drähten, es wurde mit 12 V betrieben. Das Fünf-Draht-Design verfügt über Endschalter, um die Bewegung des Hebels zu steuern. Dass ich das falsche gekauft habe, habe ich erst gemerkt, als ich es zerlegt habe und es zu spät war, es zu wechseln. Der Hub des Hebels erwies sich als zu kurz, um den Riegel richtig zu drücken, daher war es notwendig, ihn ein wenig zu modifizieren, nämlich zwei Gummischeiben zu entfernen, die den Hub des Betätigungshebels verkürzen. Dazu musste der Körper mit einer gewöhnlichen Metallsäge zusammengesägt werden, da sich die zweite Unterlegscheibe darin befand. Das blaue Klebeband zu uns hat uns wie immer später beim Zusammenbau geholfen.
Zur Ansteuerung des Stellmotors wurde der Motortreiber L293D verwendet, der einer Spitzenlast von bis zu 1200 mA standhält, in unserem Fall stieg die Spitzenlast bei gestopptem Stellmotor auf nur 600 mA.
Kontakte von Tastatur, Lautsprecher und zwei LEDs wurden vom Bedienfeld des Sicherheitsalarms entfernt. Die Fernbedienung und das Hauptgerät sollten mit Twisted Pair und RJ45-Steckern verbunden werden

Programmierung.

Also, da ich bisher keine Erfahrung mit Arduino-Programmierung hatte. Ich habe die Entwicklungen und Artikel anderer Leute von der arduino.cc-Website genutzt. Wen es interessiert, kann sich diesen hässlichen Code ansehen :)

Foto und Video



Arduino und Aktuator


Netzteil


Klaviatur


Espagnolette (mit einer Metallnadel mit dem Aktuator verbunden und auf die zur Schönheit ein Schrumpfschlauch aufgebracht wird)

Video des Gerätebetriebs:

Zufällig haben wir uns bei der Arbeit entschieden, ein Zahlenschloss an unserer Tür anzubringen, weil wir, wenn wir ständig hineinlaufen, aus dem Büro rennen, dessen Tür in Abwesenheit von Bewohnern ständig geschlossen werden muss. Schlüssel werden oft drinnen vergessen. Im Allgemeinen haben wir entschieden, dass ein Zahlenschloss ein guter Ausweg ist.

Nachdem ich chinesische Flohmärkte und ebay durchstöbert hatte, fand ich nichts billiges und mehr oder weniger seriöses und beschloss, es selbst zu machen. Ich werde sofort reservieren, dass die Arduino-Plattform wegen ihrer Einfachheit ausgewählt wurde, da es überhaupt keine Erfahrung mit Mikrocontrollern gab.

Idee

An der Tür, an der Außenseite der Tür, sollte sich eine Tastatur befinden, auf der das Passwort eingegeben wird, und der Rest der Struktur ist an der Innenseite befestigt. Ein Reedschalter wird verwendet, um das vollständige Schließen der Tür zu steuern. Beim Verlassen des Büros drückt eine Person „*“ auf der Tastatur und ohne auf das Schließen der Tür zu warten, geht der Türschließer seiner Arbeit nach. Wenn die Tür vollständig geschlossen ist, schließt der Reed-Schalter und das Schloss wird geschlossen. Die Tür wird durch Eingabe eines 4-stelligen Passworts und Drücken von „#“ geöffnet.

Zubehör

Arduino UNO = 18 $
Arduino-Protoschild + Steckbrett = 6 $
L293D = $1
Kabelbündel 30 Stück für Bredboard = 4 $
2 RJ45-Buchsen = 4 $
2 RJ45-Stecker = 0,5 $
Zentralverriegelungsbetätiger = 250 Rubel.
Reedschalter = kostenlos aus dem alten Fenster gerissen.
Riegelstangen aus Metall in gigantischen Größen = gratis
Gehäuse einer alten D-LINK Nabe aus 1,5 mm Eisen = frei
Stromversorgung vom selben D-LINK-Hub für 12 und 5 V = ebenfalls kostenlos
Ein Haufen Schrauben und Muttern zum Befestigen all dieser Dinge am Gehäuse = 100 Rubel.
Das Bedienfeld der Sicherheitsalarmanlage = kostenlos.

Gesamt: 33,5 $ und 350 Rubel.

Nicht so wenig, sagst du, und du wirst sicher Recht haben, aber für das Vergnügen muss man bezahlen! Und es ist immer schön, etwas mit den eigenen Händen zu sammeln. Darüber hinaus kann das Design stark im Preis reduziert werden, wenn Sie einen nackten MK ohne Arduino verwenden.

Montagevorbereitung

Ich möchte ein paar Worte zum Kauf eines Schlüsselelements des Antriebsdesigns sagen. In einem örtlichen Autohaus boten sie mir zwei Arten von Stellgliedern an: „mit zwei Drähten und mit fünf“. Laut der Verkäuferin waren sie genau gleich und der Unterschied in der Anzahl der Drähte bedeutete absolut nichts. Wie sich jedoch später herausstellte, ist dem nicht so! Ich entschied mich für ein Gerät mit zwei Drähten, es wurde mit 12 V betrieben. Das Fünf-Draht-Design verfügt über Endschalter, um die Bewegung des Hebels zu steuern. Dass ich das falsche gekauft habe, habe ich erst gemerkt, als ich es zerlegt habe und es zu spät war, es zu wechseln. Der Hub des Hebels erwies sich als zu kurz, um den Riegel richtig zu drücken, daher war es notwendig, ihn ein wenig zu modifizieren, nämlich zwei Gummischeiben zu entfernen, die den Hub des Betätigungshebels verkürzen. Dazu musste der Körper mit einer gewöhnlichen Metallsäge zusammengesägt werden, da sich die zweite Unterlegscheibe darin befand. Das blaue Klebeband zu uns hat uns wie immer später beim Zusammenbau geholfen.
Zur Ansteuerung des Stellmotors wurde der Motortreiber L293D verwendet, der einer Spitzenlast von bis zu 1200 mA standhält, in unserem Fall stieg die Spitzenlast bei gestopptem Stellmotor auf nur 600 mA.
Kontakte von Tastatur, Lautsprecher und zwei LEDs wurden vom Bedienfeld des Sicherheitsalarms entfernt. Die Fernbedienung und das Hauptgerät sollten mit Twisted Pair und RJ45-Steckern verbunden werden

Programmierung.

Also, da ich bisher keine Erfahrung mit Arduino-Programmierung hatte. Ich habe die Entwicklungen und Artikel anderer Leute von der arduino.cc-Website genutzt. Wen es interessiert, kann sich diesen hässlichen Code ansehen :)

Foto und Video



Arduino und Aktuator


Netzteil


Klaviatur


Espagnolette (mit einer Metallnadel mit dem Aktuator verbunden und auf die zur Schönheit ein Schrumpfschlauch aufgebracht wird)

Video des Gerätebetriebs: