Cuprins:
- Pasul 1: conectați-vă la contul dvs. AWS
- Pasul 2: Noțiuni introductive despre „lucrurile” AWS IOT
- Pasul 3: Înregistrarea unui „lucru” AWS IOT
- Pasul 4: Activarea unui certificat
- Pasul 5: Adăugarea unei politici la certificatul dvs
- Pasul 6: Configurare inițială pentru subiectul AWS SNS
- Pasul 7: Crearea fișierului Iot-role.trust.json
- Pasul 8: Crearea fișierului Iot-policy.json
- Pasul 9: Creați un subiect AWS SNS (partea 1)
- Pasul 10: Creați un subiect AWS SNS (partea 2)
- Pasul 11: Creați un subiect AWS SNS (partea 3)
- Pasul 12: Creați o bucket pe Amazon S3
- Pasul 13: Generați o politică AWS (partea 1)
- Pasul 14: Generați o politică AWS (partea 2)
- Pasul 15: Crearea tabelelor pentru DynamoDB
- Pasul 16: Roomstatus.py
- Pasul 17: Rfid.py
- Pasul 18: Server.py
- Pasul 19: Telegram.py
- Pasul 20: Livestream (camera_pi.py)
Video: Seroma: Manager cameră server: 20 de pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Seroma este un manager de cameră server all-in-one care permite utilizatorilor să verifice starea serverelor (temperatura și umiditatea), jurnalele de acces ale camerei serverului, precum și să monitorizeze camera serverului în sine pentru orice încălcare a securității.
Pasul 1: conectați-vă la contul dvs. AWS
- Pentru al nostru, ne-am conectat prin intermediul portalului AWS educate student, deoarece avem un cont de student aws.
- Mergeți la fila „Cont AWS” din meniul de navigare din partea dreaptă sus.
- Faceți clic pe „Accesați contul dvs. AWS Educate Starter”
- Deschideți Consola pentru a accesa AWS Management Console.
Pasul 2: Noțiuni introductive despre „lucrurile” AWS IOT
- Căutați „AWS IoT” în bara de căutare a serviciilor AWS.
- Faceți clic pe „Începeți” pentru a trece la tabloul de bord AWS IoT Console, unde puteți vizualiza toate dispozitivele IoT înregistrate în contul dvs. AWS.
Pasul 3: Înregistrarea unui „lucru” AWS IOT
- În bara de navigare, navigați pentru a vă gestiona „Lucrurile” IoT.
- Faceți clic pe „Înregistrați un lucru” dacă nu aveți încă un lucru. (Dacă aveți deja un lucru, dați clic pe butonul „Creați” din partea dreaptă sus a ecranului de lângă fila de căutare.)
- Faceți clic pe primul buton numit „Creați un singur lucru”.
- Tastați „RaspberryPi” ca nume al lucrului. Pentru acest pas, nu este necesară nicio intrare în afară de „Nume”. După ce faceți acest lucru, faceți clic pe Următorul.
Pasul 4: Activarea unui certificat
- La pasul următor, faceți clic pe butonul „creați certificatul”.
- Descărcați și stocați cele 4 linkuri de descărcare din pagina următoare într-un director sau folder de lucru. Pentru a salva fișierul CA rădăcină, faceți clic dreapta și salvați ca.
- Faceți clic pe „Activare” și va apărea un mesaj de succes.
- Utilizați nume prietenoase pentru fișiere, eliminând numerele din fața fiecărui nume de fișier și redenumind fișierul CA rădăcină în „rootca.pem”.
- Faceți clic pe „Atașați o politică” pentru a continua.
Pasul 5: Adăugarea unei politici la certificatul dvs
- În pagina următoare, dacă nu aveți o politică, acestea vă vor solicita să faceți una pe butonul „Creați o politică”.
- Dacă aveți deja o politică existentă, faceți clic pe butonul „Creați o politică nouă” de mai jos.
-
Introduceți următoarele informații în formularul de creare a politicii.
Nume: RaspberryPiSecurityPolicy
Acțiune: iot: *
Resursă ARN: *
Efect: Permiteți
- Politica dvs. ar trebui să apară apoi în fila „Politică” sub „Securitate”.
- Apoi, accesați fila „Certificate” aflată și sub „Securitate” și atașați politica dvs. la certificatul pe care l-ați creat anterior.
- În pagina următoare, faceți clic pe politica dvs., apoi faceți clic pe „Atașați”.
- În pagina Detalii a lucrului pe care l-ați creat, sub fila „Interacționați”, există un punct final REST API care ar trebui copiat și salvat.
- AWS ar trebui să aibă acum un lucru atașat unei politici și care are un certificat.
Pasul 6: Configurare inițială pentru subiectul AWS SNS
SSH în Raspberry Pi și instalați AWS CLI utilizând următoarea comandă pip:
sudo pip instalează awscli
AWS CLI include funcția de finalizare a comenzilor, dar nu este instalată implicit. Utilizați următoarea comandă pentru a instala funcția de finalizare a comenzii pe interfața CLI a Raspberry Pi:
complet -C aws_completer aws
Configurați AWS CLI cu ID-ul cheii de acces, cheia de acces secret, numele regiunii AWS și formatul de ieșire comandă utilizând următoarea comandă:
aws configure
Consola vă va solicita apoi să completați următoarele informații:
pi @ raspberrypi: configurare ~ $ aws
ID cheie de acces AWS [Niciuna]: „Puneți aici ID-ul cheii de acces a utilizatorului” Cheie de acces secret AWS [Niciuna]: „Puneți aici cheia de acces secretă a utilizatorului” Nume regiune implicit [Nici unul]: eu-central-1 Format de ieșire implicit [Niciuna]: json pi @ raspberrypi: ~ $
Pasul 7: Crearea fișierului Iot-role.trust.json
- Creați un fișier JSON cu politica IAM de mai sus cu numele de fișier iot-role.trust.json.
- Creați rolul utilizând AWS CLI utilizând următoarea comandă
aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //iot-role-trust.json
Pasul 8: Crearea fișierului Iot-policy.json
- Creați un fișier JSON cu politica de mai sus cu numele de fișier iot-policy.json.
- Creați politica de roluri utilizând AWS CLI utilizând următoarea comandă:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
Pasul 9: Creați un subiect AWS SNS (partea 1)
- În bara de căutare a serviciilor AWS, căutați serviciul „SNS” sau accesați
- Deoarece nu aveți subiecte acum, faceți clic pe „Creați subiect nou” pentru a crea un subiect.
- Tastați numele subiectului și numele afișat și faceți clic pe „Creați subiect” și va apărea un subiect nou când toți pașii vor avea succes.
- Faceți clic pe butonul drop-down „Acțiuni” și „Editați politica subiectului”.
Pasul 10: Creați un subiect AWS SNS (partea 2)
- Setați politica pentru a permite tuturor să publice și să se aboneze, deoarece acestea sunt limitele unui cont AWSEducate.
- Abonați-vă la acest subiect pentru a primi actualizări publicate la acest subiect.
-
Schimbați protocolul în „E-mail” și introduceți e-mailul dvs. la punctul final.
- Accesați adresa de e-mail unde ați introdus punctul final, faceți clic pe linkul de confirmare pentru a vă confirma abonamentul la e-mail pentru a vă abona la subiect.
- Navigați la serviciile „AWS IoT”, în meniul de navigare din stânga, faceți clic pe „Act”. Această pagină este unde regulile dvs. sunt afișate și disponibile pentru a fi vizualizate și editate. În prezent, nu există reguli pentru chestiunea dvs. IoT, faceți clic pe „Creați o regulă”.
Pasul 11: Creați un subiect AWS SNS (partea 3)
- Tastați un nume în câmpul Nume pentru regula dvs. În câmpul Descriere, tastați o descriere pentru regula dvs. Continuând cu secțiunea Sursă mesaj, am alege cea mai actualizată versiune SQL din secțiunea „Utilizarea versiunii SQL”. Tastați * în atribut pentru a selecta întregul mesaj MQTT din subiect, în cazul nostru subiectul nostru este „TempHumid”.
- Apoi adăugați o acțiune de notificare „SNS” pentru regula dvs. Apoi, faceți clic pe „Configurare acțiune”.
- În pagina „Configurare acțiune”, alegeți subiectul SNS pe care tocmai l-ați creat și formatul mesajului ca RAW. După aceea, alegeți rolul pe care tocmai l-ați creat folosind AWS CLI și faceți clic pe „Adăugați acțiune”.
- Acțiunea dvs. va fi configurată și va reveni la „Creați o regulă”.
- Faceți clic pe editați dacă doriți să editați regula.
Pasul 12: Creați o bucket pe Amazon S3
- Căutați S3 în bara de căutare AWS.
- În pagina Amazon S3, faceți clic pe butonul „Create Bucket” pentru a începe.
-
Completați formularul pop-up care apare cu următoarele informații:
- Numele cupei: seroma-cup (acesta trebuie să fie unic pentru toate cupele Amazon S3 existente)
- Regiune: Vestul SUA (Oregon)
- Copiați setările: (Ignorați)
- Pentru pașii de la 2 la 3, pur și simplu săriți-l făcând clic pe „Următorul”, deoarece nu este nimic de modificat. La pasul 4, faceți clic pe „Creați cupă”.
- După creație, ar trebui să vă vedeți cupa pe pagina principală.
Pasul 13: Generați o politică AWS (partea 1)
- Faceți clic pe bucket-ul pe care l-ați creat pentru a intra în pagina de mai sus, apoi treceți la „Policy Bucket” sub fila „Permissions”.
- Apoi, faceți clic pe linkul „Generator de politici” din partea de jos a paginii pentru a genera politica dvs. AWS.
-
În formular, introduceți următoarele valori:
- Tipul politicii: Politica S3 Bucket
- Efect: Permiteți
- Director: *
- Serviciu AWS: Amazon S3
- Acțiuni: GetObject
- Numele resursei Amazon (ARN): arn: aws: s3::: seroma-bucket
- După completarea informațiilor, faceți clic pe Adăugați o declarație.
- Faceți clic pe butonul „Generați politica”.
Pasul 14: Generați o politică AWS (partea 2)
- Copiați codurile generate și faceți clic pe închidere.
- Reveniți la editorul dvs. Amazon S3 Bucket Policy și lipiți codurile copiate anterior.
- Adăugați un „/ *” în coduri chiar în spatele codurilor Resurse, ca în imaginea de mai sus, apoi faceți clic pe Salvați.
- După ce faceți acest lucru, cupa dvs. va fi configurată cu succes și gata de utilizare.
Pasul 15: Crearea tabelelor pentru DynamoDB
- Căutați DynamoDB în bara de căutare AWS Services
-
Faceți clic pe „Creați tabelul” și creați 3 tabele cu informațiile de mai jos: (Doar „numele tabelului” și „cheia principală” sunt modificate)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, nume de utilizator pk
Pasul 16: Roomstatus.py
Această secțiune conține codul pentru roomstatus.py, care scrie toate datele referitoare la camera serverului în fiecare minut. Aceasta include temperatura, umiditatea, mișcarea (imagini și videoclipuri dacă sunt adevărate) și jurnalele de acces. De asemenea, scrie date pe o foaie de calcul Google, date pe DynamoDB, imagini și videoclipuri (dacă există) pe S3, afișează informații pe ecranul LCD, trimite un SMS și un e-mail atunci când există o încălcare suspectată sau când temperatura sau umiditatea sunt neregulate..
Pentru a rula fișiere python, schimbați directorul în care este situat fișierul și tastați în consolă: "sudo python"
Pic 2: Funcții declarate pentru a permite alerte SMS și e-mail și încărcarea în S3
Pic 3: Variabile declarate pentru a funcționa funcțiile și RPi
Pic 4: Începutul buclei care obține valorile de temperatură și umiditate din RPi. De asemenea, scrie datele pe o foaie de calcul Google
Pic 5: Securitate parte a buclei. Se va activa numai între orele 19:00 și 07:00 (ore libere). Acesta va verifica mișcarea într-un interval de un minut. Dacă este detectată mișcare, va lua o imagine și un videoclip, le va încărca în S3, în timp ce va scrie informații în DynamoDB pentru referință ulterior. Ulterior, va trimite un SMS și un e-mail dacă ceva este neregulat.
Pic 6: sfârșitul buclei. De asemenea, scrie date pe DynamoDB și trimite alerte în consecință. Ultima linie a buclei va face ca scriptul să rămână în repaus până la atingerea minutului următor.
Pasul 17: Rfid.py
Această secțiune conține codul pentru rfid.py, care adaugă funcționalitatea de urmărit atunci când un membru al personalului accesează camera serverului. De asemenea, face parte din aspectul de securitate al Seroma, în cazul în care un membru al personalului nu are voie să acceseze camera serverului după orele de birou, pentru a preveni o încălcare a datelor. De asemenea, trimite un e-mail și SMS-uri tuturor personalului în cazul în care se suspectează o încălcare.
Pic 2: Începutul logicii cititorului RFID. Ori de câte ori un card este scanat împotriva cititorului, este luat ID-ul unic (uid) al cardului. Ulterior, încercăm să găsim valoarea uid a cardului în tabelul de date al personalului pentru a vedea dacă cardul aparține vreunui membru al personalului. Figura 3: Dacă uidul cardului există în baza de date, acesta va verifica dacă este în timpul biroului în afara orelor. Dacă este, va alerta restul angajaților prin SMS și e-mail adresele de e-mail abonate. Dacă este încă în timpul orelor de birou, va scrie un rând în tabelul de jurnal de acces din baza de date cu datele relevante. De asemenea, va afișa un mesaj de bun venit pe ecranul LCD.
Pasul 18: Server.py
Acesta este fișierul server.py. Vom folosi cadrul Flask pentru portalul web. Fișierele HTML care urmează să fie introduse / șabloane sunt atașate, de asemenea.
Pic 1: Primul traseu pentru Flask definit. Acesta va redirecționa utilizatorul către pagina de autentificare dacă nu este conectat și pagina de tablou de bord dacă este autentificat. De asemenea, definește o funcție care trebuie utilizată în funcția de transmisie în direct
Pic 2, 3, 4: Rute pentru Flask. Obține date din tabelul DynamoDB și apoi le returnează în fișierele HTML, astfel încât să poată fi utilizate acolo.
Pic 5: Ultimele 2 trasee pentru Flask. Se ocupă de funcția de deconectare și funcția de transmisie în direct. De asemenea, specifică portul pe care va rula site-ul web.
Pasul 19: Telegram.py
Această secțiune include codul pentru botul telegramei Seroma. Utilizează biblioteca telepot pentru a atinge API-ul Bot al Telegram. Funcționează acceptând întrebările pe care le primește și afișând informațiile respective utilizatorului. Utilizatorul poate tasta „help” pentru o listă completă de comenzi.
Pic 1, 2: Pentru a configura un bot de telegramă, trebuie să utilizați BotFather. Pur și simplu parcurgeți instrucțiunile pentru a obține API-ul HTTP de care avem nevoie în cod.
Pic 4: Exemplu de funcție care preia un anumit număr de rânduri de date din baza de date pe baza cererii utilizatorului
Imaginea 5: Cum luăm informațiile utilizatorului și decidem ce să rulăm în consecință.
Pasul 20: Livestream (camera_pi.py)
Am implementat o nouă caracteristică pentru sistemul nostru de monitorizare a camerei server, un flux live a ceea ce se întâmplă în camera server, care poate fi accesat în orice moment, oriunde. Cum funcționează acest flux live: este o caracteristică care se realizează în Flask, împreună cu camera Pi. Cadrele video sunt descărcate așa cum se întâmplă în viața reală, astfel încât puteți vedea de fapt că există o ușoară întârziere (1-2 secunde), deoarece cadrele video sunt descărcate și împărțite împreună. Acest lucru nu se poate face fără filetare, deoarece firul de fundal citește cadrele de pe cameră și stochează cadrul curent. Punerea în comun a tuturor acestor cadre va genera apoi un flux live.
Pic 2: Acesta este un fișier separat în care sunt stocate toate cadrele video și, după cum puteți vedea, folosim modulul picamera pentru a accesa camera noastră raspberry pi, deoarece asta ne cunoaște cel mai mult. Avem un aparat foto de clasă, astfel încât să putem importa funcția ca și cum ar fi un flux live și nu mai multe imagini care se unesc, prin urmare, în fișierul principal al aplicației ar fi luat ca un flux live, fără a fi nevoie să vă faceți griji cu privire la ceea ce se întâmplă în culise.
Pic 3: Aceasta face parte din fișierul nostru server.py în care este codată partea fluxului live. Clasa principală pe care am importat-o pentru aceasta este Camera din fișierul nostru camera_pi.py din partea de sus a fișierului server.py. Am definit o funcție în directorul nostru rădăcină, gen, cu toate acestea, aceasta intră în funcțiune doar când ne îndreptăm către / video_feed unde se află fluxul nostru live, unde va trece prin această funcție și va returna fluxul live de pe pagina web.
Recomandat:
Manager ferestre încorporate: 10 pași
Manager ferestre încorporate: Acest proiect arată cum să implementați un manager ferestre cu ferestre mobile suprapuse pe un microcontroler încorporat cu un panou LCD și un ecran tactil. Există pachete software disponibile în comerț pentru a face acest lucru, dar costă bani și sunt aproape
Monitor cameră server: 4 pași
Monitor cameră cameră: una dintre problemele unei camere server este temperatura. Cu diferite echipamente care produc căldură, aceasta crește rapid. Și dacă aerul condiționat nu reușește, oprește rapid totul. Pentru a prezice aceste situații putem dobândi unul din mai multe medii
Manager cablu: 6 pași
Manager de cablu: În calitate de student la IT, toată lumea vine să-mi ceară un cablu pentru telefonul lor, pentru internet … Așa că am vrut o modalitate ușoară pentru ei de a găsi cablul de care au nevoie fără ajutorul meu. De aceea am creat managerul de cablu. Acest concept este dezvoltat ca o finală
Task Manager - un sistem de gestionare a treburilor casnice: 5 pași (cu imagini)
Manager de sarcini - un sistem de gestionare a treburilor gospodăriei: am vrut să încerc să abordez o problemă reală cu care se confruntă gospodăria noastră (și, îmi imaginez, cea a multor alți cititori), care este modul de a-mi aloca, motiva și recompensa copiii pentru că au ajutat cu treburile casnice. Până acum, am păstrat o foaie laminată
VEX Tournament Manager Raspberry Pi 3B + 5GHz Configurare WiFi: 4 pași
VEX Tournament Manager Raspberry Pi 3B + 5GHz Configurare WiFi: Suportul Wifi a fost adăugat semi-oficial! Vedeți linkul de mai jos: https: //www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Overview: Suportul VEX pentru utilizarea computerului de bord unic Raspberry Pi (SBC) a făcut ca configurarea turneului VEX să fie mu