Inhaltsverzeichnis:
- Schritt 1: Materialien & Werkzeuge
- Schritt 2: Einrichten von Amazon Web Services
- Schritt 3: Konfigurieren von Amazon S3 und Amazon DynamoDB
- Schritt 4: AWS auf Raspberry Pi konfigurieren
- Schritt 5: Verbinden Sie die Elemente mit Raspberry Pi
- Schritt 6: Codes
- Schritt 7: Bau des Prototyps
- Schritt 8: Testen des Prototyps
- Schritt 9: Schließen
Video: Abellcadabra (Gesichtserkennungs-Türschlosssystem) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Als ich während der Quarantäne herumlag, versuchte ich einen Weg zu finden, die Zeit zu vertreiben, indem ich eine Gesichtserkennung für die Haustür baute. Ich habe es Abellcadabra genannt - was eine Kombination aus Abracadabra ist, einem Zauberspruch mit Türklingel, von dem ich nur die Klingel nehme. lol
Wie auch immer, dieses System führt die Gesichtserkennung mithilfe von Amazon Rekognition durch, wenn der Benutzer die Türklingel drückt. Rekognition wird das aufgenommene Bild mit einer Sammlung von Bildern in Amazon S3 vergleichen. Bei erfolgreicher Erkennung wird die Tür geöffnet. Wenn dies nicht erfolgreich ist, ertönt der Summer und der Benutzer kann die Option zum Entsperren mit einem RFID-Token haben. Im Inneren des Hauses befindet sich auch ein Knopf, mit dem der Hausbesitzer die Tür durch Drücken entriegeln kann.
Alle durchgeführten Erkennungen und Entsperrungen werden in Amazon DynamoDB gespeichert. Ich werde versuchen, Schritt für Schritt zu erklären, um das gesamte System aufzubauen. Ich verwende die Materialien, die ich bereits habe, weil es lange gedauert hat, etwas anderes zu bekommen, also ist es das.
Schritt 1: Materialien & Werkzeuge
Material:
- Himbeer-Pi
- Pi-Kamera
- RC-Servo (wirkt als Türschloss)
- Schaltertaste 2x
- Summer
- Magnetschalter
- RC-522 RFID-Lesegerät und -Tag
- MF, MM, FF Steckbrettdrähte
- Eisbox aus Polystrene - jede Größe wäre in Ordnung, denn dies wird unsere Tür sein.
- 1,5 Zoll Scharnier 2x
- 2,5 mm Schraube 4x
Werkzeuge
- Schraubenzieher
- Doppelseitiges Klebeband
Schritt 2: Einrichten von Amazon Web Services
Amazon Web Services ist einfach zu bedienen und kostenlos, bis Sie 5000 API-Aufrufe pro Monat erreichen. Sie können sich hier für ein AWS-Konto registrieren. Sie müssen sich für ein kostenloses Amazon Rekognition-Konto anmelden. Das kostenlose Kontingent sollte für dieses Projekt mehr als ausreichend sein.
Klicken Sie nach erfolgreicher Anmeldung auf Dienste > IAM. Von hier aus erstellen wir einen Benutzer, der über Berechtigungen für die Verwendung von Raspberry Pi verfügt.
- Klicken Sie auf Benutzer > Neuen Benutzer hinzufügen
- Geben Sie dem erstellten Benutzer einen Namen. Aktivieren Sie für den Zugriffstyp das Kontrollkästchen Programmatischer Zugriff.
- Weiter klicken.
- Klicken Sie auf Vorhandene Richtlinien direkt anhängen. Überprüfen Sie die folgenden Richtlinien:
- AWSLambdaFullAccess
- AmazonS3FullAccess
- AmazonDynamoDBFullAccess
- AmazonRekognitionFullAccess
- Administratorzugriff
- Klicken Sie erneut auf Weiter und Weiter, da wir kein Tag hinzufügen müssen.
- Überprüfen Sie, ob die ausgewählten Richtlinien mit den aufgelisteten übereinstimmen, und klicken Sie dann auf Benutzer erstellen.
Laden Sie die CSV-Datei herunter, die die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel enthält, die im nächsten Schritt verwendet werden. Klicken Sie auf Schließen.
Schritt 3: Konfigurieren von Amazon S3 und Amazon DynamoDB
Klicken Sie in der AWS-Konsole auf Services > S3
S3 funktioniert genauso wie Google Drive, wo Sie Dokumente und Bilder speichern können. Für dieses Projekt benötigen wir zwei Buckets, von denen einer eine Sammlung von Bildern speichern soll, die von Amazon Rekognition verwendet werden sollen (und der zweite das aufgenommene Bild speichern soll.
- Klicken Sie auf Bucket erstellen.
- Geben Sie den Bucket-Namen ein und klicken Sie erneut auf Weiter und Weiter.
- Deaktivieren Sie das Kontrollkästchen "Alle öffentlichen Zugriffe blockieren".
- Setzen Sie ein Häkchen bei "Ich bestätige, dass die aktuellen Einstellungen dazu führen können, dass dieser Bucket und die darin enthaltenen Objekte öffentlich werden".
- Klicken Sie auf Weiter und Bucket erstellen.
- Wiederholen Sie den Schritt für den zweiten Eimer.
- Klicken Sie auf Dienste > DynamoDB
Amazon DynamoDB wird in diesem Projekt verwendet, um die Erkennungs- und Entsperrungsdetails zu speichern. Die Details, die gespeichert werden, sind der Link zum aufgenommenen Bild, der Name des erkannten Bildes oder wenn nicht erkannt, wird der Name als "unbekannt" gespeichert, Datum und Uhrzeit der Erkennung und der Status, ob sie erfolgreich war, keine Gesichter zugeordnet, keine Gesichter erkannt, RFID entsperrt oder von innen entsperrt.
- Klicken Sie auf Neue Tabelle hinzufügen.
- Geben Sie einen beliebigen Namen für die Tabelle ein.
- Geben Sie für den Primärschlüssel "rid" als Primärschlüssel ein.
- Klicken Sie auf Erstellen.
Schritt 4: AWS auf Raspberry Pi konfigurieren
Der erste Schritt besteht darin, Ihre AWS-Anmeldeinformationen einzugeben. Geben Sie dazu in der Konsole des Raspberry Pi ein:
aws konfigurieren
Geben Sie dann Ihre AWS IAM-Anmeldeinformationen ein, die Sie erstellt haben, und stellen Sie sicher, dass Sie „us-west-2“als Ihre Region eingeben (oder die relevante Region, die Sie für AWS Rekognition eingerichtet haben). Lassen Sie das Standardausgabeformat leer.
Schritt 5: Verbinden Sie die Elemente mit Raspberry Pi
Die Verbindungen der Elemente sind also wie folgt.
- RC Servo - 1, 11, Masse
- Magnetschalter - 8, Masse
- Summer - 32, Masse
- Außentaste - 16, Masse
- Innenknopf - 18, Masse
- SDA-Pin auf RFID-Lesegerät - 24
- SCK-Pin auf RFID-Leser - 23
- MOSI-Pin auf RFID-Lesegerät - 19
- MISO-Pin auf RFID-Lesegerät - 21
- GND-Pin am RFID-Lesegerät - Masse
- RST-Pin auf RFID-Leser - 22
- 3,3 V-Pin am RFID-Leser - 17
Bitte an die nächstgelegene Masse anschließen.
Schritt 6: Codes
Sie finden den gesamten erforderlichen Code in meinem Git-Repository.
In diesem Video erfahren Sie, wie Sie Gesichter hinzufügen und Index Faces.py verwenden.
Schritt 7: Bau des Prototyps
Da ich während meines Baus kein Bild gemacht habe, lasse ich einfach das Bild meines fertigen Prototyps.
Der Prototyp ist gebaut, um eine Tür darzustellen. Die Ansicht von zeigt den Blick auf die Tür von der Außenseite des Hauses. Die Pi-Kamera wurde auf die durchschnittliche Höhe der menschlichen Augenlinie installiert, um sicherzustellen, dass das aufgenommene Bild ein zu erkennendes Gesicht enthält. Die Türklingeltaste, die die Pi-Kamera zum Aufnehmen von Bildern aktiviert, befindet sich unter der Pi-Kamera. Der RFID-Leser wird auch an der Tür angebracht, damit der Benutzer an der Tür die Tür mit einem RFID-Tag entriegeln kann, falls die Erkennung fehlgeschlagen ist.
Der rote Knopf ist der Innenknopf, mit dem die Tür von der Innenseite des Hauses entriegelt wird. Raspberry Pi wird im Inneren des Hauses platziert, damit die Leute von außen nicht daran manipulieren können. RC Servo wird als Türschloss auf der rechten Seite der Tür platziert. Der Summer ist an der Innenseite des Hauses angebracht, um sicherzustellen, dass der Summer von Personen im Inneren des Hauses gehört werden kann, wenn er klingelt. Magnetschalter wird zwischen Tür und Rahmen platziert.
Schritt 8: Testen des Prototyps
Führen Sie den Code auf dem Terminal aus
sudo python3 Dateiname.py
Drücken Sie einfach den gelben Knopf an der Außenseite des Hauses und dieses Foto ist aufgenommen.
Überprüfen Sie Ihre Amazon DynamoDB, um zu überprüfen, ob die Tabelle und S3-Buckets aktualisiert wurden, um zu sehen, ob das erfasste Bild gespeichert ist.
Schritt 9: Schließen
Wenn Sie sich entscheiden, dieses Projekt selbst zu machen, lassen Sie es mich in den Kommentaren wissen (:
Danke fürs Lesen.