Sadržaj:

Seroma: Upravitelj poslužiteljske sobe: 20 koraka
Seroma: Upravitelj poslužiteljske sobe: 20 koraka

Video: Seroma: Upravitelj poslužiteljske sobe: 20 koraka

Video: Seroma: Upravitelj poslužiteljske sobe: 20 koraka
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, Srpanj
Anonim
Seroma: Upravitelj poslužiteljske sobe
Seroma: Upravitelj poslužiteljske sobe

Seroma je sve-u-jednom upravitelj poslužiteljske sobe koji korisnicima omogućuje provjeru statusa poslužitelja (temperatura i vlažnost), zapise pristupa poslužiteljske sobe, kao i nadzor same poslužiteljske sobe radi kršenja sigurnosti.

Korak 1: Prijavite se na svoj AWS račun

Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
Prijavite se na svoj AWS račun
  1. Za naše smo se prijavili putem AWS educate student gatewaya jer imamo studentski aws račun.
  2. Prijeđite na karticu "AWS račun" na navigacijskom izborniku u gornjem desnom kutu.
  3. Kliknite na "Idi na svoj AWS Educate Starter račun"
  4. Otvorite Konzolu za pristup AWS upravljačkoj konzoli.

2. korak: Započnite s "stvarima" AWS IOT -a

Početak rada s AWS IOT -om
Početak rada s AWS IOT -om
Početak rada s AWS IOT -om
Početak rada s AWS IOT -om
  1. Potražite "AWS IoT" na traci za pretraživanje AWS usluga.
  2. Pritisnite "Početak" za nastavak na nadzornu ploču AWS IoT Console na kojoj možete vidjeti sve IoT uređaje registrirane na vašem AWS računu.

Korak 3: Registriranje "stvari" AWS IOT -a

Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
Registriranje AWS IOT -a
  1. Na navigacijskoj traci pomaknite se da biste upravljali svojim IoT "stvarima".
  2. Kliknite na "Registrirajte stvar" ako još nemate stvar. (Ako već imate stvar, kliknite gumb "Kreiraj" u gornjem desnom kutu zaslona pored kartice za pretraživanje.)
  3. Pritisnite prvi gumb pod nazivom "Create a single thing".
  4. Upišite "RaspberryPi" kao naziv stvari. Za ovaj korak nije potreban drugi unos osim "Naziv". Nakon toga kliknite dalje.

Korak 4: Aktiviranje certifikata

Aktiviranje certifikata
Aktiviranje certifikata
Aktiviranje certifikata
Aktiviranje certifikata
  1. U sljedećem koraku kliknite gumb "stvori certifikat".
  2. Preuzmite i spremite 4 veze za preuzimanje na sljedećoj stranici u radni direktorij ili mapu. Da biste spremili root datoteku CA, desnom tipkom miša kliknite i spremite kao.
  3. Pritisnite "Aktiviraj" i trebala bi se pojaviti poruka o uspjehu.
  4. Upotrijebite prijateljska imena za datoteke uklanjanjem brojeva ispred svakog naziva datoteke i preimenovanjem root datoteke CA u "rootca.pem".
  5. Za nastavak kliknite "Priloži pravilo".

Korak 5: Dodavanje pravila vašem certifikatu

Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
Dodavanje pravila vašem certifikatu
  1. Na sljedećoj stranici, ako nemate pravilo, od vas će biti zatraženo da ga napravite na gumbu "Izradi pravilo".
  2. Ako već imate postojeće pravilo, kliknite gumb "Izradi novo pravilo" u nastavku.
  3. U obrazac za izradu politike umetnite sljedeće podatke.

    Naziv: RaspberryPiSecurityPolicy

    Radnja: iot:*

    Resurs ARN: *

    Učinak: Dopusti

  4. Vaša bi se pravila tada trebala pojaviti na kartici "Pravila" pod "Sigurnost".
  5. Zatim idite na karticu "Certifikati" koja se također nalazi pod "Sigurnost" i priložite svoja pravila certifikatu koji ste prethodno stvorili.
  6. Na sljedećoj stranici kliknite svoje pravilo, a zatim kliknite "Priloži".
  7. Na stranici Pojedinosti stvari koju ste stvorili, na kartici "Interakcija", nalazi se krajnja točka REST API -ja koju treba kopirati i spremiti.
  8. AWS bi sada trebao imati stvar koja je pridružena politici i koja ima certifikat.

Korak 6: Početno postavljanje za temu AWS SNS

Početno postavljanje za temu AWS SNS
Početno postavljanje za temu AWS SNS
Početno postavljanje za temu AWS SNS
Početno postavljanje za temu AWS SNS

SSH u Raspberry Pi i instalirajte AWS CLI pomoću sljedeće naredbe pip:

sudo pip install awscli

AWS CLI uključuje značajku dovršenja naredbe, ali nije zadano instalirana. Upotrijebite sljedeću naredbu za instaliranje značajke dovršetka naredbe na CLI sučelje Raspberry Pi:

dovršiti -C aws_completer aws

Konfigurirajte AWS CLI s ID -om pristupnog ključa, tajnim pristupnim ključem, nazivom regije AWS i izlaznim formatom naredbe pomoću sljedeće naredbe:

aws konfigurirati

Konzola će vas tada zatražiti da ispunite sljedeće podatke:

pi@raspberrypi: ~ $ aws konfigurirati

AWS ID pristupnog ključa [Nema]: "Ovdje unesite ID pristupnog ključa vašeg korisnika" AWS Tajni pristupni ključ [Ništa]: "Ovdje postavite ključ tajnog pristupa korisnika" Zadani naziv regije [Ništa]: eu-central-1 Zadani format izlaza [Ništa]: json pi@raspberrypi: ~ $

Korak 7: Stvaranje datoteke Iot-role.trust.json

Stvaranje datoteke Iot-role.trust.json
Stvaranje datoteke Iot-role.trust.json
Stvaranje datoteke Iot-role.trust.json
Stvaranje datoteke Iot-role.trust.json
  1. Napravite JSON datoteku s gore navedenim IAM pravilima s imenom datoteke iot-role.trust.json.
  2. Kreirajte ulogu pomoću AWS CLI pomoću sljedeće naredbe

aws iam create-role --role-name my-iot-role --assume-role-policy-document-file: //iot-role-trust.json

Korak 8: Stvaranje datoteke Iot-policy.json

Stvaranje datoteke Iot-policy.json
Stvaranje datoteke Iot-policy.json
Stvaranje datoteke Iot-policy.json
Stvaranje datoteke Iot-policy.json
  1. Napravite JSON datoteku s gornjim pravilima s imenom datoteke iot-policy.json.
  2. Izradite politiku uloga koristeći AWS CLI pomoću sljedeće naredbe:

aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json

Korak 9: Stvorite AWS SNS temu (1. dio)

Napravite AWS SNS temu (1. dio)
Napravite AWS SNS temu (1. dio)
Napravite AWS SNS temu (1. dio)
Napravite AWS SNS temu (1. dio)
Napravite AWS SNS temu (1. dio)
Napravite AWS SNS temu (1. dio)
  1. Na traci za pretraživanje usluga AWS potražite uslugu "SNS" ili idite na
  2. Kako sada nemate tema, kliknite "Izradi novu temu" da biste stvorili temu.
  3. Upišite naziv teme i naziv za prikaz i kliknite "Kreiraj temu" i nova tema će se pojaviti kada svi koraci budu uspješni.
  4. Kliknite padajući gumb "Radnje" i "Uredi pravila teme".

10. korak: Stvorite AWS SNS temu (2. dio)

Napravite AWS SNS temu (2. dio)
Napravite AWS SNS temu (2. dio)
Napravite AWS SNS temu (2. dio)
Napravite AWS SNS temu (2. dio)
Napravite AWS SNS temu (2. dio)
Napravite AWS SNS temu (2. dio)
  1. Postavite pravila tako da dopuštaju svima objavljivanje i pretplatu jer su to ograničenja računa AWSEducate.
  2. Pretplatite se na ovu temu da biste primali ažuriranja objavljena na tu temu.
  3. Promijenite protokol na "E -pošta" i na kraju unesite svoju e -poštu.

  4. Idite na svoju e -poštu gdje ste unijeli svoju krajnju točku, kliknite vezu za potvrdu kako biste potvrdili pretplatu na e -poštu kako biste se pretplatili na temu.
  5. Idite na "AWS IoT" usluge, na navigacijskom izborniku s lijeve strane kliknite na "Act". Ova stranica prikazuje vaša pravila koja su vam dostupna za pregled i uređivanje. Trenutačno ne postoje pravila za vašu stvar s IoT -om, kliknite "Izradi pravilo".

11. korak: Stvorite AWS SNS temu (3. dio)

Napravite AWS SNS temu (3. dio)
Napravite AWS SNS temu (3. dio)
Napravite AWS SNS temu (3. dio)
Napravite AWS SNS temu (3. dio)
Napravite AWS SNS temu (3. dio)
Napravite AWS SNS temu (3. dio)
  1. Upišite naziv u polje Naziv za svoje pravilo. U polje Opis upišite opis pravila. Nastavljajući na odjeljak Izvor poruke, odabrali bismo najnoviju verziju SQL -a u odjeljku "Korištenje verzije SQL -a". Upišite * u atribut da biste odabrali cijelu MQTT poruku iz teme, u našem slučaju naša je tema "TempHumid".
  2. Zatim dodajte radnju obavijesti "SNS" za svoje pravilo. Zatim kliknite "Konfiguriraj radnju".
  3. Na stranici "Konfiguriraj radnju" odaberite SNS temu koju ste upravo stvorili i format poruke kao RAW. Nakon toga odaberite ulogu koju ste upravo stvorili pomoću AWS CLI i kliknite "Dodaj radnju".
  4. Vaša će radnja biti konfigurirana i vratit će se na "Izradi pravilo".
  5. Pritisnite uređivanje ako želite urediti pravilo.

Korak 12: Izradite kantu na Amazonu S3

Napravite kantu na Amazonu S3
Napravite kantu na Amazonu S3
Napravite kantu na Amazonu S3
Napravite kantu na Amazonu S3
Napravite kantu na Amazonu S3
Napravite kantu na Amazonu S3
  1. Potražite S3 na AWS traci za pretraživanje.
  2. Na stranici Amazon S3 kliknite gumb "Kreiraj korpu" za početak.
  3. Popunite skočni obrazac koji se pojavi sa sljedećim podacima:

    • Naziv kante: seroma-bucket (ovo mora biti jedinstveno u svim postojećim Amazon S3 korpama)
    • Regija: Zapad SAD (Oregon)
    • Kopiraj postavke: (Zanemari)
  4. Za korake 2 do 3, jednostavno ga preskočite klikom na "Dalje" jer se ništa ne može promijeniti. U koraku 4 kliknite "Create bucket".
  5. Nakon stvaranja, trebali biste vidjeti svoju kantu na početnoj stranici.

Korak 13: Generirajte AWS politiku (1. dio)

Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
Generirajte AWS politiku (1. dio)
  1. Kliknite na spremnik koji ste stvorili za ulazak na gornju stranicu, a zatim prijeđite na "Pravila korpe" na kartici "Dopuštenja".
  2. Zatim kliknite vezu "Generator pravila" pri dnu stranice da biste generirali svoja AWS pravila.
  3. U obrazac unesite sljedeće vrijednosti:

    • Vrsta pravila: S3 kanta
    • Učinak: Dopusti
    • Ravnatelj: *
    • AWS usluga: Amazon S3
    • Radnje: GetObject
    • Naziv resursa Amazona (ARN): arn: aws: s3::: seroma-bucket
  4. Nakon što popunite podatke, kliknite Dodaj izjavu.
  5. Kliknite gumb "Generiraj pravila".

Korak 14: Generirajte AWS politiku (2. dio)

Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
Generirajte AWS politiku (2. dio)
  1. Kopirajte generirane kodove i kliknite Zatvori.
  2. Vratite se u uređivač pravila Amazon S3 Bucket Policy i zalijepite prethodno kopirane kodove.
  3. Dodajte “/*” u kodove odmah iza kodova resursa, kao na gornjoj slici, a zatim kliknite spremi.
  4. Nakon toga vaša kanta će biti uspješno postavljena i spremna za uporabu.

Korak 15: Izrada tablica za DynamoDB

Izrada tablica za DynamoDB
Izrada tablica za DynamoDB
Izrada tablica za DynamoDB
Izrada tablica za DynamoDB
  1. Potražite DynamoDB na traci za pretraživanje AWS usluga
  2. Kliknite na "Kreiraj tablicu" i izradite 3 tablice s donjim podacima: (Mijenjaju se samo "naziv tablice" i "primarni ključ")

    • accesslog, pk datetimevalue
    • sobni status, pk datetimevalue
    • osobni podaci, korisničko ime za pk

Korak 16: Roomstatus.py

Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py

Ovaj odjeljak sadrži kôd za roomstatus.py, koji svake minute zapisuje sve podatke o samoj poslužiteljskoj prostoriji. To uključuje temperaturu, vlažnost, kretanje (slike i videozapisi ako su istiniti) i zapisnike pristupa. Također zapisuje podatke u Google proračunsku tablicu, podatke u DynamoDB, slike i videozapise (ako ih ima) u S3, prikazuje podatke na LCD zaslonu, šalje SMS i e -poštu kada se sumnja na kršenje ili kada su temperatura ili vlaga neredoviti.

Da biste pokrenuli python datoteke, promijenite direktorij u mjesto gdje se datoteka nalazi i upišite u konzolu: "sudo python"

Slika 2: Deklarirane funkcije koje dopuštaju upozorenja putem SMS -a i e -pošte te prijenos na S3

Slika 3: Varijable deklarirane za funkcije i RPi za rad

Slika 4: Početak petlje koji dobiva vrijednosti temperature i vlažnosti iz RPi. Također zapisuje podatke u Google proračunsku tablicu

Slika 5: Sigurnosni dio petlje. Aktivirat će se samo od 19:00 do 7:00 (van radnog vremena). Provjerit će kretanje u rasponu od jedne minute. Ako se detektira pokret, snimit će sliku i video zapis, učitati ih na S3, a podatke će također kasnije upisati u DynamoDB za referencu. Nakon toga će poslati SMS i e -poštu ako nešto nije u redu.

Slika 6: Kraj petlje. Također zapisuje podatke u DynamoDB i u skladu s tim šalje upozorenja. Posljednji redak petlje učinit će skriptu mirovanjem do sljedeće minute.

Korak 17: Rfid.py

Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py

Ovaj odjeljak sadrži kôd za rfid.py, koji dodaje funkcionalnost za praćenje kada zaposlenik pristupi sobi poslužitelja. To je također dio sigurnosnog aspekta Serome, gdje zaposleniku nije dopušten pristup poslužiteljskoj prostoriji nakon radnog vremena, kako bi se spriječilo kršenje podataka. Također šalje e -poštu i SMS -ove svom osoblju ako se sumnja na kršenje.

Slika 2: Početak logike čitača RFID -a. Kad god se kartica skenira prema čitaču, uzima se jedinstveni ID (uid) kartice. Nakon toga pokušavamo pronaći uid vrijednost kartice u tablici podataka o osoblju da vidimo pripada li kartica nekom od osoblja. Slika 3: Ako uid kartice postoji u bazi podataka, provjerit će je li tijekom ureda van radnog vremena. Ako jest, upozorit će ostale zaposlenike putem SMS -a i e -pošte na pretplaćene adrese e -pošte. Ako je još uvijek tijekom radnog vremena, zapisat će red u tablicu pristupnog dnevnika u bazi podataka s relevantnim podacima. Također će prikazati poruku dobrodošlice na LCD zaslonu.

Korak 18: Server.py

Server.py
Server.py
Server.py
Server.py
Server.py
Server.py

Ovo je datoteka server.py. Za web portal koristit ćemo okvir Flask. Priložene su i HTML datoteke koje se stavljaju /predlošci.

Slika 1: Prva ruta za Flask definirana. Preusmjerit će korisnika na stranicu za prijavu ako nije prijavljen, te na stranicu nadzorne ploče ako jesu. Također definira funkciju koja će se koristiti u značajci prijenosa uživo

Slika 2, 3, 4: Rute za bocu. Dobiva podatke iz DynamoDB tablice, a zatim ih vraća u HTML datoteke kako bi se tamo mogli koristiti.

Slika 5: Zadnje 2 rute za Flask. Rukuje funkcijom odjave i funkcijom prijenosa uživo. Također navodi port na kojem će web stranica raditi.

Korak 19: Telegram.py

Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py

Ovaj odjeljak uključuje kôd za Seroma -in telegram bot. Koristi biblioteku telepota za dodir Telegramovog Bot API -ja. Radi na način da prihvaća upite koje dobije i prikazuje odgovarajuće podatke korisniku. Korisnik može upisati 'help' za potpuni popis naredbi.

Slika 1, 2: Da biste postavili bot za telegram, morate koristiti BotFather. Samo prođite kroz upute da biste dobili HTTP API koji nam je potreban u našem kodu.

Slika 4: Primjer funkcije koja uzima određeni broj redova podataka iz baze podataka na temelju zahtjeva korisnika

Slika 5: Kako uzimamo unos korisnika i odlučujemo što ćemo pokrenuti u skladu s tim.

Korak 20: Prijenos uživo (camera_pi.py)

Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)
Prijenos uživo (camera_pi.py)

Implementirali smo novu značajku za naš sustav za nadzor poslužiteljske sobe, prijenos uživo onoga što se događa u poslužiteljskoj sobi. Tome se može pristupiti u bilo kojem trenutku, bilo gdje. Kako ovaj prijenos uživo radi: to je značajka koja se radi u Flasku, zajedno s Pi kamerom. Video okviri se preuzimaju kao što se događa u stvarnom životu, pa zapravo možete vidjeti da postoji malo kašnjenje (1-2 sekunde) dok se video okviri preuzimaju i sastavljaju. To se ne bi moglo učiniti bez navoja jer pozadinska nit čita okvire s fotoaparata i pohranjuje trenutni okvir. Spajanjem svih ovih okvira tada bi se emitirao prijenos uživo.

Slika 2: Ovo je zasebna datoteka u kojoj su pohranjeni svi video okviri i kao što vidite, mi koristimo modul pikamera za pristup našoj malinovoj pi kameri jer nam je to najviše poznato. Imamo klasu Kamera kako bismo mogli uvesti funkciju kao da je prijenos uživo, a ne više slika koje se sastavljaju, pa bi je u glavnoj aplikacijskoj datoteci uzeli kao prijenos uživo bez brige o tome što se događa iza kulisa.

Slika 3: Ovo je dio naše datoteke server.py u kojoj je kodiran dio streama uživo. Glavna klasa koju smo uvezli za ovo je Kamera iz naše datoteke camera_pi.py na vrhu naše datoteke server.py. Definirali smo funkciju u našem korijenskom direktoriju, gen, no ona dolazi u upotrebu tek kada prijeđemo na /video_feed gdje se nalazi naš prijenos uživo, gdje će proći kroz ovu funkciju i vratiti stream uživo na web stranici.

Preporučeni: