Inhoudsopgave:

IOT CA2 Secure Smart Home/Room - Ajarnpa
IOT CA2 Secure Smart Home/Room - Ajarnpa

Video: IOT CA2 Secure Smart Home/Room - Ajarnpa

Video: IOT CA2 Secure Smart Home/Room - Ajarnpa
Video: IOT SMART SECURE ROOM CA2 DIT2A/35 2024, Juli-
Anonim
IOT CA2 Veilig Smart Home/Kamer
IOT CA2 Veilig Smart Home/Kamer
IOT CA2 Veilig Smart Home/Kamer
IOT CA2 Veilig Smart Home/Kamer

Inhoudsopgave

1 Overzicht van Smart Secure Home

2 Hardwarevereisten + Setup

3 Softwarevereisten + Setup

4 Registreer raspberrypi als een ding

5 Maak een S3-bucket

6 DynamoDB-instellingen + regels

7 Verwacht resultaat

8 codes (van Pastebin)

9 referenties

Overzicht

Welkom! Dit Raspberry Pi-project is een "smart home"-beheersysteem met bepaalde beveiligingsfuncties. Het project kan verschillende waarden meten, zoals temperatuur en licht. Het beveiligingsgedeelte bestaat uit een zoemer, een kaartscannersysteem (machtigingskaart), een binnen- en buitencamera en een sms-waarschuwingssysteem. De volgende instructies behandelen de opzet van het hele project.

Kortom, we hebben een lichtdiodeweerstand en een DHT11-sensor om zowel de temperatuur als de lichtwaarden te krijgen. De waarden worden vervolgens gepubliceerd naar ‘smartroom/sensors/values’ en er komt een abonnement op het onderwerp om te controleren of de waarden worden gepubliceerd. Zodra waarden zijn gepubliceerd, worden de waarden ook naar onze DynamoDB-tabel verzonden. De waarden die zijn opgeslagen in DynamoDB kunnen worden geëxtraheerd en worden uitgezet in een grafiek die realtime waarden weergeeft in onze webinterface. (Lichtgrafiek) Naast het gebruik van de sensoren voor het verkrijgen van waarden om onze grafiek te plotten voor analysedoeleinden, wordt onze dht11-sensor ook gebruikt als een potentiële "brand" -detector. Wanneer het een bepaalde temperatuur bereikt die een brand zou kunnen zijn, hebben we een script genaamd publishHeat.py dat de temperatuur zal publiceren naar een onderwerp 'smartroom/sensor/fire', het breadboard dat de buitenkant van het appartement symboliseert, zal zich daarop abonneren onderwerp en laat een LED branden om aan te geven dat er mogelijk brand is. Het alarm gaat ook af, evenals een sms om de huiseigenaar te waarschuwen wanneer er mogelijk brand is.

Om de woning/kamer binnen te gaan, moet de gebruiker met zijn kaart op de RFID-scanner tikken. Als de getikte kaart onjuist is, gaat het alarm af totdat er op een kaart met de juiste inloggegevens wordt getikt. Als er op een onjuiste kaart wordt getikt, maakt de bewakingscamera buiten een foto van de gebruiker die op de kaart heeft getikt en uploadt de foto naar de S3-bucket. De huiseigenaar ontvangt ook een sms waarin staat dat iemand heeft geprobeerd zijn huis binnen te komen. De kamer heeft ook een LED-indicator buiten om aan te geven of de deur ontgrendeld/vergrendeld is. Als de deur vergrendeld is, brandt de gele LED. Wanneer ontgrendeld, zal de groene LED branden. Wanneer er op een geautoriseerde kaart wordt getikt, wordt de deur gedurende 15 seconden ontgrendeld en met de groene LED verlicht, wordt de deur vervolgens weer ontgrendeld terwijl de gele LED brandt.

Gebruikers kunnen de verzamelde gegevens bekijken via een Dashboard in Node-Red dat naast een grafische weergave van een meter en een historische grafiek de huidige meetwaarden toont. Het Dashboard bevat ook extra functies zoals een klok die de huidige gegevens en tijd weergeeft en schakelt om verschillende elektrische apparaten op afstand te bedienen, die worden weergegeven als LED's en een zoemer.

Ten slotte hebben we ook een telegrambot-functie. De telegrambot kan op afstand foto's maken van wat er in de kamer gebeurt en dit in de S3-emmer opslaan. Deze foto's worden gelabeld met in een map met de naam Homed/User. De telegrambot kan ook op afstand het LED-licht in de kamer bedienen.

Stap 1: Hardwarevereisten + Setup

Hardwarevereisten + installatie
Hardwarevereisten + installatie
Hardwarevereisten + installatie
Hardwarevereisten + installatie

Verbind de volgende componenten met je 2 frambozenpi's zoals weergegeven in de fritzing-diagrammen hierboven.

2 x Raspberry Pi

3 x Breadboard

1 x MCP3008 ADC

1 x DhT 11-sensor

1 x LDR

1 x RFID/NFC MFRC522 kaartlezer

4 x LED

1 x LCD-scherm

3 x 10k Weerstand

4 x 220/330 Weerstand

1 x knop

1 x zoemer

34 x mannelijke naar mannelijke kabels

11 x mannelijke naar vrouwelijke kabels

Stap 2: Softwarevereisten + Setup

Softwarevereisten + Setup
Softwarevereisten + Setup
Softwarevereisten + Setup
Softwarevereisten + Setup
Softwarevereisten + Setup
Softwarevereisten + Setup

Typ de volgende opdrachten in uw Raspberry Pi-terminal om ervoor te zorgen dat ze zijn geïnstalleerd.

Als een van de volgende software al naar uw pi is gedownload, zal sudo pip install (Softwarenaam) --upgrade de truc doen om deze bij te werken.

- 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 installeer boto3

- sudo pip installeer botocore

- sudo pip install numpy

- cd ~

git kloon

cd ~/SPI-Py

sudo python setup.py installeren"

- cd ~

git clone

cd ~/MFRC522-python

sudo python setup.py installeren"

- sudo nano /boot/config.txt, controleer of regels device_tree_param=spi=on

dtoverlay=spi-bcm2835 zijn binnen, anders toevoegen.

Stap 3: Een ding registreren

Een ding registreren
Een ding registreren
Een ding registreren
Een ding registreren
Een ding registreren
Een ding registreren
Een ding registreren
Een ding registreren

a) Navigeer eerst naar IoT Core binnen de AWS-website door op services te klikken en vervolgens op IoT Core.

b) Selecteer in de navigatiebalk onder beheren dingen en kies iets registreren.

c) Kies Maak een enkel ding.

d) Voer een naam in voor uw ding, bijvoorbeeld MyRaspberryPi2. Laat de rest van de velden op hun standaardwaarden staan. Klik op volgende onderaan de pagina.

e) Klik op certificaat maken. Download alle vier de bestanden. Download voor het root-CA-bestand de Amazon Root CA 1 en sla het op in een notitieblok.

f) Als je klaar bent, verplaats je de vier bestanden naar een map in raspberry pi.

g) Klik op activeren.

h) Nadat u op beleid bijvoegen hebt geklikt, wordt u naar de volgende pagina gebracht. Klik op registreren, het beleid wordt later gemaakt.

i) Navigeer op het iot-dashboard naar het beleid onder het beveiligde gedeelte. Klik op een beleid maken.

j) Voer een naam in voor uw beleid, voor dit voorbeeld is dit MyRaspberryPiSecurityPolicy en toets het volgende in onder Verklaringen toevoegen. Klik vervolgens op Aanmaken.

k) Navigeer op het iot-dashboard naar certificaten onder het beveiligde gedeelte. Selecteer het certificaat dat u eerder hebt gemaakt en klik op Beleid bijvoegen in de vervolgkeuzelijst met acties. Voeg het beleid toe dat u eerder hebt gemaakt.

l) Selecteer het certificaat dat u eerder hebt gemaakt opnieuw en klik op iets toevoegen. Voeg het beleid toe dat u eerder hebt gemaakt. Bevestig het ding dat u eerder hebt gemaakt.

Stap 4: Een S3-bucket maken

Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken
Een S3-bucket maken

a) We beginnen met het gebruik van de zoekfunctie in de AWS-beheerconsole en zoeken naar "s3".

b) Klik op emmer maken.

c) Typ een naam voor de bucket. Voor dit voorbeeld gebruiken we de naam "sp-p1703263". We zullen de regio "US EAST(N. VIRGINIA)" kiezen, dat is us-east-1. Klik daarna op Maken.

d) De nieuw gemaakte bucket verschijnt in het dashboard.

Stap 5: DynamoDB-tabel maken en regels instellen

DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen
DynamoDB-tabel maken en regels instellen

a) Navigeer eerst naar de AWS-services door te klikken op

services en vervolgens DynamoDB. Klik op tabel maken.

b) Voer de tabelnaam "iotdata" en de primaire sleutel "deviceid" in met een sorteersleutel "datetimeid", en klik vervolgens op maken onderaan de pagina.

c) Navigeer daarna terug naar de IoT Core-pagina. Klik op Act en klik vervolgens op een nieuwe regel maken.

d) Maak een regel met de naam “MyDynamoDBRule”. Voer onder het onderwerp regelquery-instructie "sensoren/licht" in.

e) Klik in het gedeelte Een of meer acties instellen op actie toevoegen, klik op "bericht opsplitsen in meerdere kolommen van een databasetabel". Klik op actie configureren. Kies onder tabelnaam de iotdata. Selecteer onder IAM-rolnaam de rol die u eerder hebt gemaakt, namelijk "dynamodb_role". Klik op actie toevoegen en vervolgens op regel maken.

f) Klik op regel aanmaken.

Stap 6: Verwacht resultaat

Verwachte uitkomst
Verwachte uitkomst
Verwachte uitkomst
Verwachte uitkomst

Buitenshuis

voor de pi die de buitenkant van de kamer voorstelt, worden de scripts heatdetector.py en AccessDoor.py uitgevoerd. Als een verkeerde kaart op de RFID-scanner tikt, gaat het alarm af en blijft het gele LED-lampje branden. Er wordt een sms naar de telefoon van de huiseigenaar gestuurd om een mogelijke inbraak te melden. Alarm zal ook klinken. Er wordt ook een foto gemaakt en direct geüpload naar S3 Bucket. Als de afgetapte kaart geautoriseerd is, gaat de groene LED branden en kan de gebruiker naar binnen. De deur wordt na 15 seconden weer vergrendeld (groene led gaat uit en gele led gaat weer branden). Als de temperatuur in de kamer/het huis te hoog wordt (tot een temperatuur die wij beschouwen als huis/kamer die mogelijk in brand staat), sturen we een sms-waarschuwing naar de huiseigenaar. Het alarm zal ook afgaan terwijl de rode LED buiten brandt.

Binnen

voor de pi die de binnenkant van de kamer vertegenwoordigt, worden de scripts publishHeat.py, server.py, pubsub.py, telegrambot.py uitgevoerd. Pubsub.py slaat de real-time waarden op in DynamoDB. wanneer server.py wordt uitgevoerd, typt u het ip-adres van de rpi: 5000 in de browser, u wordt doorgestuurd naar onze webinterface. We hebben een grafiek die realtime lichtwaarden weergeeft die zijn verkregen van onze sensoren in pubsub.py in DynamoDB. Daarnaast worden ook historische lichtwaarden weergegeven in onze webinterface. publishHeat.py publiceert temperatuurwaarden naar het outdoor breadboard voor brandsensordoeleinden. telegrambot.py stelt de gebruiker in staat om op afstand het aan/uit van het LED-licht in de kamer/huis te bedienen en een foto te maken van wat er binnen gebeurt en de foto te uploaden naar de S3-emmer.

Voor een betere visualisatie van hoe het verwachte resultaat eruit zou moeten zien:

Stap 7: Broncodes (Pastebin)

Broncodes (Pastebin)
Broncodes (Pastebin)

Klik op de link. Bestaat uit alle benodigde broncodes:

Stap 8: Referenties

Referenties
Referenties

Iotguider. (2019). Verstuur sms vanaf Raspberry Pi met Python. [online] Beschikbaar op: https://iotguider.in/raspberrypi/send-sms-from-raspberry-pi-python/ [Toegankelijk op 21 aug. 2019].

Aanbevolen: