Inhaltsverzeichnis:

IOT CA2 Secure Smart Home/Raum - Gunook
IOT CA2 Secure Smart Home/Raum - Gunook

Video: IOT CA2 Secure Smart Home/Raum - Gunook

Video: IOT CA2 Secure Smart Home/Raum - Gunook
Video: Smart WiFi projector of star galaxies with a laser and light music TUYA SMART 2024, Juli
Anonim
IOT CA2 Sicheres Smart Home/Raum
IOT CA2 Sicheres Smart Home/Raum
IOT CA2 Sicheres Smart Home/Raum
IOT CA2 Sicheres Smart Home/Raum

Inhaltsverzeichnis

1 Übersicht über Smart Secure Home

2 Hardwarevoraussetzungen + Setup

3 Softwarevoraussetzungen + Einrichtung

4 Himbeerpi als Ding registrieren

5 Erstellen Sie einen S3-Bucket

6 DynamoDB-Setup + Regeln

7 Erwartetes Ergebnis

8 Codes (von Pastebin)

9 Referenzen

Überblick

Willkommen! Dieses Raspberry Pi-Projekt ist ein "Smart Home"-Managementsystem mit bestimmten Sicherheitsfunktionen. Das Projekt ist in der Lage, verschiedene Werte wie Temperatur und Licht zu messen. Der Sicherheitsbereich besteht aus einem Summer, einem Kartenlesersystem (Berechtigungsausweis), einer Innen- und Außenkamera sowie einem SMS-Alarmsystem. Die folgenden Anweisungen behandeln die Einrichtung des gesamten Projekts.

Grundsätzlich haben wir einen Leuchtdioden-Widerstand und einen DHT11-Sensor, um sowohl die Temperatur als auch die Lichtwerte zu erhalten. Die Werte werden dann in „smartroom/sensors/values“veröffentlicht und das Thema wird abonniert, um zu überprüfen, ob die Werte veröffentlicht werden. Sobald die Werte veröffentlicht wurden, werden die Werte auch an unsere DynamoDB-Tabelle gesendet. Die in DynamoDB gespeicherten Werte können extrahiert und in einem Diagramm dargestellt werden, das Echtzeitwerte in unserer Weboberfläche anzeigt. (Lichtdiagramm) Neben der Verwendung der Sensoren zum Erhalten von Werten zum Zeichnen unseres Diagramms zu Analysezwecken wird unser dht11-Sensor auch als potenzieller „Feuer“-Detektor verwendet. Wenn es eine bestimmte Temperatur erreicht, die ein Feuer sein könnte, haben wir ein Skript namens publishHeat.py, das die Temperatur in einem Thema "Smartroom/Sensor/Feuer" veröffentlicht. Das Steckbrett, das die Außenseite der Wohnung symbolisiert, wird dies dann abonnieren Thema und lassen Sie eine LED aufleuchten, um anzuzeigen, dass ein potenzieller Brand vorliegen könnte. Der Alarm ertönt ebenso wie eine SMS, um den Hausbesitzer zu warnen, wenn ein potenzieller Brand ausbrechen könnte.

Um das Haus/das Zimmer zu betreten, muss der Benutzer seine Karte am RFID-Scanner antippen. Wenn die angetippte Karte falsch ist, ertönt der Alarm, bis eine Karte mit den richtigen Zugangsdaten angetippt wird. Wenn eine falsche Karte angetippt wird, macht die Überwachungskamera draußen außerdem ein Bild des Benutzers, der die Karte angetippt hat, und lädt das Bild in den S3-Bucket hoch. Der Hauseigentümer erhält außerdem eine SMS mit dem Hinweis, dass jemand versucht hat, sein Haus zu betreten. Der Raum hat auch eine LED-Anzeige außen, die anzeigt, ob die Tür auf- / verriegelt ist. Wenn die Tür verriegelt ist, leuchtet die gelbe LED. Im entsperrten Zustand leuchtet die grüne LED. Beim Antippen einer berechtigten Karte wird die Tür für 15 Sekunden entriegelt und bei leuchtender grüner LED wieder in den Entriegelungsmodus versetzt, wobei die gelbe LED leuchtet.

Benutzer können die gesammelten Daten über ein Dashboard in Node-Red anzeigen, das neben einer grafischen Darstellung eines Messgeräts und einer historischen Grafik auch die aktuellen Messwerte anzeigt. Das Dashboard enthält auch zusätzliche Funktionen wie eine Uhr, die das aktuelle Datum und die aktuelle Uhrzeit anzeigt, und Schalter zur Fernsteuerung verschiedener elektrischer Geräte, die als LEDs und ein Summer dargestellt werden.

Schließlich haben wir auch eine Telegramm-Bot-Funktion. Der Telegramm-Bot kann aus der Ferne Bilder von allem aufnehmen, was im Raum passiert, und es im S3-Bucket speichern. Diese Bilder werden in einem Ordner mit dem Namen „Homed/User“gekennzeichnet. Der Telegramm-Bot kann auch das LED-Licht im Raum fernsteuern.

Schritt 1: Hardwareanforderungen + Einrichtung

Hardwareanforderungen + Einrichtung
Hardwareanforderungen + Einrichtung
Hardwareanforderungen + Einrichtung
Hardwareanforderungen + Einrichtung

Verbinden Sie die folgenden Komponenten mit Ihren 2 Himbeer-Pis, wie in den Fritzing-Diagrammen oben gezeigt.

2 x Himbeer-Pi

3 x Steckbrett

1 x MCP3008 ADC

1 x DhT 11-Sensor

1 x LDR

1 x RFID/NFC MFRC522 Kartenleser

4 x LED

1 x LCD-Bildschirm

3 x 10k Widerstand

4 x 220/330 Widerstand

1 x Knopf

1 x Summer

34 x Stecker-zu-Stecker-Kabel

11 x Kabel von Stecker zu Buchse

Schritt 2: Softwareanforderungen + Einrichtung

Softwareanforderungen + Einrichtung
Softwareanforderungen + Einrichtung
Softwareanforderungen + Einrichtung
Softwareanforderungen + Einrichtung
Softwareanforderungen + Einrichtung
Softwareanforderungen + Einrichtung

Geben Sie die folgenden Befehle in Ihr Raspberry Pi-Terminal ein, um sicherzustellen, dass sie installiert sind.

Wenn eine der folgenden Software bereits auf Ihr pi heruntergeladen wurde, führt sudo pip install (Softwarename) --upgrade die Aktualisierung durch.

- sudo pip install gevent

- Sudo Pip Install Flask

- sudo pip install nexmo

- sudo pip install --upgrade --force-reinstall pip==9.0.3

- sudo pip install AWSIoTPythonSDK --upgrade --disable-pip-version-check

- sudo pip install --upgrade pip

- sudo apt-get install python-dev

- sudo pip install boto3

- sudo pip installieren botocore

- sudo pip install numpy

- CD ~

git-Klon

cd ~/SPI-Py

sudo python setup.py installieren"

- CD ~

git-Klon

cd ~/MFRC522-python

sudo python setup.py installieren"

- sudo nano /boot/config.txt, überprüfen Sie, ob die Zeilen device_tree_param=spi=on. sind

dtoverlay=spi-bcm2835 sind drin, sonst fügen Sie hinzu.

Schritt 3: Registrieren eines Dings

Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren
Ein Ding registrieren

a) Navigieren Sie zunächst zu IoT Core innerhalb der AWS-Website, indem Sie auf Services und dann auf IoT Core klicken.

b) Wählen Sie in der Navigationsleiste unter Verwalten Dinge aus und wählen Sie eine Sache registrieren.

c) Wählen Sie Einzelnes Ding erstellen.

d) Geben Sie einen Namen für Ihr Ding ein, zum Beispiel MyRaspberryPi2. Belassen Sie die restlichen Felder bei ihren Standardwerten. Klicken Sie unten auf der Seite auf Weiter.

e) Klicken Sie auf Zertifikat erstellen. Laden Sie alle vier Dateien herunter. Laden Sie für die Root-CA-Datei die Amazon Root CA 1 herunter und speichern Sie sie in einem Notizblock.

f) Wenn Sie fertig sind, verschieben Sie die vier Dateien in ein Verzeichnis in Raspberry Pi.

g) Klicken Sie auf Aktivieren.

h) Nachdem Sie auf Richtlinie anhängen geklickt haben, gelangen Sie auf die folgende Seite. Klicken Sie auf die Sache registrieren, die Richtlinie wird später erstellt.

i) Navigieren Sie auf dem iot-Dashboard zu den Richtlinien im sicheren Abschnitt. Klicken Sie auf Richtlinie erstellen.

j) Geben Sie einen Namen für Ihre Richtlinie ein, in diesem Beispiel ist dies MyRaspberryPiSecurityPolicy und geben Sie unter Anweisungen hinzufügen Folgendes ein. Klicken Sie dann auf Erstellen.

k) Navigieren Sie auf dem iot-Dashboard zu Zertifikaten im sicheren Abschnitt. Wählen Sie das zuvor erstellte Zertifikat aus und klicken Sie im Dropdown-Menü Aktionen auf Richtlinie anhängen. Hängen Sie die zuvor erstellte Richtlinie an.

l) Wählen Sie das zuvor erstellte Zertifikat erneut aus und klicken Sie auf das Element anhängen. Hängen Sie die zuvor erstellte Richtlinie an. Hängen Sie das zuvor erstellte Ding an.

Schritt 4: Erstellen eines S3-Buckets

Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets
Erstellen eines S3-Buckets

a) Wir beginnen mit der Verwendung der Suchfunktion in der AWS-Verwaltungskonsole und suchen nach „s3“.

b) Klicken Sie auf Bucket erstellen.

c) Geben Sie einen Namen für den Bucket ein. Für dieses Beispiel verwenden wir den Namen „sp-p1703263“. Wir werden die Region "US EAST (N. VIRGINIA)" wählen, die us-east-1 ist. Klicken Sie anschließend auf Erstellen.

d) Der neu erstellte Bucket wird im Dashboard angezeigt.

Schritt 5: DynamoDB-Tabelle erstellen und Regeln festlegen

DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen
DynamoDB-Tabelle erstellen und Regeln festlegen

a) Navigieren Sie zunächst zu den AWS-Diensten, indem Sie auf klicken

Dienste, dann DynamoDB. Klicken Sie auf Tabelle erstellen.

b) Geben Sie den Tabellennamen „iotdata“und den Primärschlüssel „deviceid“mit einem Sortierschlüssel „datetimeid“ein und klicken Sie dann unten auf der Seite auf Erstellen.

c) Navigieren Sie danach zurück zur IoT Core-Seite. Klicken Sie auf Act, dann auf Neue Regel erstellen.

d) Erstellen Sie eine Regel mit dem Namen „MyDynamoDBRule“. Geben Sie unter dem Thema der Regelabfrageanweisung "Sensoren/Licht" ein.

e) Klicken Sie im Abschnitt Eine oder mehrere Aktionen festlegen auf Aktion hinzufügen, klicken Sie auf „Nachricht in mehrere Spalten einer Datenbanktabelle aufteilen“. Klicken Sie auf Aktion konfigurieren. Wählen Sie unter Tabellenname die iotdata. Wählen Sie unter IAM-Rollenname die zuvor erstellte Rolle „dynamodb_role“aus. Klicken Sie auf Aktion hinzufügen und dann auf Regel erstellen.

f) Klicken Sie auf Regel erstellen.

Schritt 6: Erwartetes Ergebnis

Erwartetes Ergebnis
Erwartetes Ergebnis
Erwartetes Ergebnis
Erwartetes Ergebnis

Draussen

Für den Pi, der den Außenbereich des Raums darstellt, werden die Skripte heatdetector.py und AccessDoor.py ausgeführt. Wenn eine falsche Karte auf den RFID-Scanner tippt, wird der Alarm ausgelöst, wobei das gelbe LED-Licht weiterhin leuchtet. Eine SMS wird an das Telefon des Hausbesitzers gesendet, um über einen möglichen Einbruch zu informieren. Der Alarm ertönt auch. Außerdem wird ein Bild aufgenommen und sofort in den S3-Bucket hochgeladen. Ist die angetippte Karte berechtigt, leuchtet die grüne LED und der Benutzer kann eintreten. Nach 15 Sekunden wird die Tür wieder verriegelt (grüne LED erlischt und gelbe LED leuchtet wieder). Wenn die Temperatur im Zimmer/Haus zu hoch wird (auf eine Temperatur, die wir als potenziell brennend ansehen), senden wir eine SMS-Benachrichtigung an den Hausbesitzer. Der Alarm ertönt auch, wenn die rote LED außen leuchtet.

Indoor

für das pi, das den Innenraum des Raums darstellt, werden die Skripte publishHeat.py, server.py, pubsub.py, telegrambot.py ausgeführt. Pubsub.py speichert die Echtzeitwerte in DynamoDB. Wenn server.py ausgeführt wird, geben Sie die IP-Adresse des rpi ein: 5000 in den Browser, Sie werden zu unserer Weboberfläche weitergeleitet. Wir haben eine Grafik, die Echtzeit-Lichtwerte anzeigt, die von unseren Sensoren in pubsub.py in DynamoDB erhalten wurden. Zusätzlich werden auch historische Lichtwerte in unserem Webinterface angezeigt. publishHeat.py veröffentlicht Temperaturwerte für Feuersensorzwecke auf dem Outdoor-Steckbrett. telegrambot.py ermöglicht es dem Benutzer, das Ein- und Ausschalten des LED-Lichts im Raum / Zuhause fernzusteuern sowie ein Bild von dem, was im Inneren passiert, zu machen und das Bild in den S3-Bucket hochzuladen.

Zur besseren Visualisierung, wie das erwartete Ergebnis aussehen soll:

Schritt 7: Quellcodes (Pastebin)

Quellcodes (Pastebin)
Quellcodes (Pastebin)

Klick auf den Link. Besteht aus allen benötigten Quellcodes:

Schritt 8: Referenzen

Verweise
Verweise

Iotguider. (2019). Senden Sie SMS vom Raspberry Pi mit Python. [online] Verfügbar unter: https://iotguider.in/raspberrypi/send-sms-from-raspberry-pi-python/ [Zugriff am 21. August 2019].

Empfohlen: