Indholdsfortegnelse:
- Trin 1: Log ind på din AWS -konto
- Trin 2: Kom godt i gang med AWS IOT "ting"
- Trin 3: Registrering af en AWS IOT "ting"
- Trin 4: Aktivering af et certifikat
- Trin 5: Tilføjelse af en politik til dit certifikat
- Trin 6: Indledende opsætning af AWS SNS-emne
- Trin 7: Oprettelse af Iot-role.trust.json-fil
- Trin 8: Oprettelse af Iot-policy.json-fil
- Trin 9: Opret et AWS SNS -emne (del 1)
- Trin 10: Opret et AWS SNS -emne (del 2)
- Trin 11: Opret et AWS SNS -emne (del 3)
- Trin 12: Opret en spand på Amazon S3
- Trin 13: Opret en AWS -politik (del 1)
- Trin 14: Opret en AWS -politik (del 2)
- Trin 15: Oprettelse af tabeller til DynamoDB
- Trin 16: Roomstatus.py
- Trin 17: Rfid.py
- Trin 18: Server.py
- Trin 19: Telegram.py
- Trin 20: Livestream (camera_pi.py)
Video: Seroma: Server Room Manager: 20 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Seroma er en alt-i-en serverrumsmanager, der giver brugerne mulighed for at kontrollere serverens status (temperatur og luftfugtighed), adgangslogfiler i serverrummet samt overvåge selve serverrummet for eventuelle sikkerhedsbrud.
Trin 1: Log ind på din AWS -konto
- For vores loggede vi ind via AWS educate student gateway, da vi har en student aws -konto.
- Gå til fanen "AWS-konto" i navigationsmenuen øverst til højre.
- Klik på "Gå til din AWS Educate Starter -konto"
- Åbn konsol for at få adgang til din AWS Management Console.
Trin 2: Kom godt i gang med AWS IOT "ting"
- Søg efter “AWS IoT” i søgefeltet til AWS -tjenester.
- Klik på "Kom i gang" for at fortsætte til AWS IoT Console dashboard, hvor du kan se alle IoT -enheder, der er registreret på din AWS -konto.
Trin 3: Registrering af en AWS IOT "ting"
- I navigationslinjen skal du navigere for at administrere dine IoT "Ting".
- Klik på "Registrer en ting", hvis du ikke har noget endnu. (Hvis du allerede har en ting, skal du klikke på knappen "Opret" øverst til højre på skærmen ved siden af fanen Søg.)
- Klik på den første knap kaldet "Opret en enkelt ting".
- Skriv "RaspberryPi" som navnet på tingen. Til dette trin kræves ingen anden input end "Navn". Klik derefter på næste.
Trin 4: Aktivering af et certifikat
- I det næste trin skal du klikke på knappen "opret certifikat".
- Download og gem de 4 downloadlink på den næste side i et arbejdende bibliotek eller en mappe. For at gemme rod-CA-filen skal du højreklikke og gemme som.
- Klik på "Aktiver", og en succesmeddelelse skal vises.
- Brug venlige navne til filerne ved at fjerne tallene foran hvert filnavn og omdøbe rod -CA -filen til "rootca.pem".
- Klik på "Vedhæft en politik" for at fortsætte.
Trin 5: Tilføjelse af en politik til dit certifikat
- Hvis du ikke har en politik på den næste side, beder de dig om at lave en på knappen "Opret en politik".
- Hvis du allerede har en eksisterende politik, skal du klikke på knappen "Opret ny politik" herunder.
-
Indsæt følgende oplysninger i formularen til oprettelse af politikker.
Navn: RaspberryPiSecurityPolicy
Handling: iot:*
Ressource ARN: *
Effekt: Tillad
- Din politik skal derefter vises på fanen "Politik" under "Sikkerhed".
- Gå derefter til fanen "Certifikater", der også er under "Sikkerhed", og vedhæft din politik til det certifikat, du tidligere har oprettet.
- På den næste side skal du klikke på din politik og derefter klikke på "Vedhæft".
- På siden Detaljer for den ting, du oprettede, under fanen "Interact" er der et REST API -slutpunkt, som skal kopieres og gemmes.
- AWS skal nu have en ting, der er knyttet til en politik og har et certifikat.
Trin 6: Indledende opsætning af AWS SNS-emne
SSH i Raspberry Pi og installer AWS CLI ved hjælp af følgende pip -kommando:
sudo pip installer awscli
AWS CLI inkluderer kommandofuldførelsesfunktion, men den er ikke installeret som standard. Brug følgende kommando til at installere kommandofuldførelsesfunktionen på Raspberry Pi's CLI -interface:
komplet -C aws_completer aws
Konfigurer AWS CLI med Access Key ID, Secret Access Key, AWS Region Name og Command Output format ved hjælp af følgende kommando:
aws konfigurere
Konsollen vil derefter bede dig om at udfylde følgende oplysninger:
pi@raspberrypi: ~ $ aws konfigurer
AWS-adgangsnøgle-id [Ingen]: "Sæt din brugers adgangsnøgle-id her" AWS-hemmelig adgangsnøgle [Ingen]: "Sæt din brugers hemmelige adgangsnøgle her" Standardregionnavn [Ingen]: eu-central-1 Standardoutputformat [Ingen]: json pi@raspberrypi: ~ $
Trin 7: Oprettelse af Iot-role.trust.json-fil
- Opret en JSON-fil med ovenstående IAM-politik med filnavnet iot-role.trust.json.
- Opret rollen ved hjælp af AWS CLI ved hjælp af følgende kommando
aws iam create-role --role-name my-iot-role-assume-role-policy-document file: //iot-role-trust.json
Trin 8: Oprettelse af Iot-policy.json-fil
- Opret en JSON-fil med ovenstående politik med filnavnet iot-policy.json.
- Opret rollepolitikken ved hjælp af AWS CLI ved hjælp af følgende kommando:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
Trin 9: Opret et AWS SNS -emne (del 1)
- I søgefeltet AWS-tjenester søger du efter “SNS” -tjeneste eller går til
- Da du ikke har nogen emner nu, skal du klikke på "Opret nyt emne" for at oprette et emne.
- Indtast dit emnes navn og visningsnavn, og klik på "Opret emne", og et nyt emne vises, når alle trin er vellykkede.
- Klik på rullemenuen "Handlinger" og "Rediger emnepolitik".
Trin 10: Opret et AWS SNS -emne (del 2)
- Indstil politikken, så alle kan publicere og abonnere, da dette er begrænsninger for en AWSEducate -konto.
- Abonner på dette emne for at modtage opdateringer offentliggjort til dette emne.
-
Skift protokollen til "E -mail", og indtast din e -mail ved slutpunktet.
- Gå til din e -mail, hvor du skrev dit slutpunkt, klik på bekræftelseslinket for at bekræfte dit e -mail -abonnement for at abonnere på emnet.
- Naviger til "AWS IoT" -tjenester, klik på "Act" i navigationsmenuen til venstre. Denne side er, hvor dine regler vises og er tilgængelige for dig at se og redigere. I øjeblikket er der ingen regler for din IoT -ting, klik på "Opret en regel".
Trin 11: Opret et AWS SNS -emne (del 3)
- Indtast et navn i feltet Navn for din regel. Indtast en beskrivelse for din regel i feltet Beskrivelse. Fortsat til meddelelseskildeafsnittet, ville vi vælge den mest opdaterede SQL -version i afsnittet "Brug af SQL -version". Skriv * i attributten for at vælge hele MQTT -beskeden fra emnet, i vores tilfælde er vores emne "TempHumid".
- Tilføj derefter en "SNS" -meddelelseshandling for din regel. Klik derefter på "Konfigurer handling".
- På siden "Konfigurer handling" skal du vælge det SNS -emne, du lige har oprettet, og meddelelsesformatet som RAW. Vælg derefter den rolle, du lige har oprettet ved hjælp af AWS CLI, og klik på "Tilføj handling".
- Din handling konfigureres og vender tilbage til "Opret en regel".
- Klik på rediger, hvis du vil redigere reglen.
Trin 12: Opret en spand på Amazon S3
- Søg efter S3 i søgefeltet AWS.
- På Amazon S3 -siden skal du klikke på knappen "Opret spand" for at komme i gang.
-
Udfyld pop op-formularen, der vises med følgende oplysninger:
- Spandnavn: seroma-spand (dette skal være unikt for alle eksisterende Amazon S3-spande)
- Region: USA vest (Oregon)
- Kopiindstillinger: (Ignorer)
- For trin 2 til 3 skal du bare springe det over ved at klikke på "Næste", da der ikke er noget, der skal ændres. I trin 4 skal du klikke på "Opret spand".
- Efter oprettelsen skal du se din spand på startsiden.
Trin 13: Opret en AWS -politik (del 1)
- Klik på den spand, du oprettede for at gå ind på ovenstående side, og gå derefter til "Bucket Policy" under fanen "Tilladelser".
- Klik derefter på linket "Policy Generator" nederst på siden for at generere din AWS -politik.
-
Indtast følgende værdier i formularen:
- Politiktype: S3 Bucket Policy
- Effekt: Tillad
- Forstander: *
- AWS -service: Amazon S3
- Handlinger: GetObject
- Amazon ressource navn (ARN): arn: aws: s3::: seroma-bucket
- Når du har udfyldt oplysningerne, skal du klikke på Tilføj erklæring.
- Klik på knappen "Generer politik".
Trin 14: Opret en AWS -politik (del 2)
- Kopier de genererede koder, og klik på Luk.
- Vend tilbage til din Amazon S3 Bucket Policy -editor, og indsæt de tidligere kopierede koder.
- Tilføj et "/*" i koderne lige bag ressourcekoderne, som på billedet ovenfor, og klik derefter på Gem.
- Efter at have gjort det, bliver din spand opsat og klar til brug.
Trin 15: Oprettelse af tabeller til DynamoDB
- Søg efter DynamoDB i søgefeltet AWS Services
-
Klik på "Opret tabel" og opret 3 tabeller med nedenstående oplysninger: (Kun "tabelnavn" og "primærnøgle" ændres)
- accesslog, pk datetimevalue
- roomstatus, pk datetimeværdi
- staffdata, pk brugernavn
Trin 16: Roomstatus.py
Dette afsnit indeholder koden til roomstatus.py, som hvert minut skriver alle data vedrørende selve serverrummet. Dette inkluderer temperatur, fugtighed, bevægelse (billeder og videoer, hvis det er sandt) og adgangslogfiler. Det skriver også data til et Google -regneark, data til DynamoDB, billeder og videoer (hvis nogen) til S3, viser oplysninger på LCD -skærmen, sender en SMS og e -mail, når der er mistanke om overtrædelse, eller når temperaturen eller luftfugtigheden er uregelmæssig.
For at køre python -filer skal du ændre bibliotek til hvor filen er placeret og skrive i konsollen: "sudo python"
Billede 2: Funktioner erklæret for at tillade SMS- og e -mail -advarsler og upload til S3
Billede 3: Variabler erklæret for funktioner og RPi til at fungere
Billede 4: Start af sløjfen, der henter temperatur- og fugtighedsværdierne fra RPi. Det skriver også dataene til et Google -regneark
Billede 5: Sikkerhedsdel af sløjfen. Det aktiveres kun fra kl. 19 til kl. 7 (slukket tid). Det vil kontrollere bevægelse i løbet af et minuts spænd. Hvis der registreres bevægelse, tager det et billede og en video, uploader det til S3, mens det også skriver oplysninger til DynamoDB til reference senere. Bagefter sender den en sms og e -mail, hvis noget er uregelmæssigt.
Billede 6: Sløjfens ende. Det skriver også data til DynamoDB og sender advarsler i overensstemmelse hermed. Den sidste linje i sløjfen får scriptet til at sove, indtil det næste minut er nået.
Trin 17: Rfid.py
Dette afsnit indeholder koden til rfid.py, som tilføjer funktionaliteten til at spore, når en medarbejder får adgang til serverrummet. Det er også en del af sikkerhedsaspektet ved Seroma, hvor en medarbejder ikke må få adgang til serverrummet efter kontortid for at forhindre et datainbrud. Det sender også en e -mail og sms'er alle ansatte, hvis der er mistanke om brud.
Billede 2: Start af RFID -læserlogikken. Når et kort scannes mod læseren, tages kortets unikke id (uid). Bagefter forsøger vi at finde kortets uid -værdi i personaledatatabellen for at se, om kortet tilhører nogen af medarbejderne. Billede 3: Hvis kortets uid findes i databasen, vil det kontrollere, om det er under kontoret off-timer. Hvis det er det, vil det advare resten af medarbejderne via SMS og e -mail til de abonnerede e -mail -adresser. Hvis det stadig er i kontortiden, vil det skrive en række til accesslog -tabellen i databasen med de relevante data. Det vil også vise en velkomstmeddelelse på LCD -displayet.
Trin 18: Server.py
Dette er filen server.py. Vi vil bruge Flask -rammen til webportalen. HTML -filerne, der skal indsættes /skabeloner er også vedhæftet.
Billede 1: Første rute for kolbe defineret. Det vil omdirigere brugeren til login -siden, hvis de ikke er logget ind, og dashboard -siden, hvis de er det. Definerer også en funktion, der skal bruges i livestream -funktionen
Billede 2, 3, 4: Ruter til kolbe. Det henter data fra DynamoDB -tabellen og returnerer dem derefter til HTML -filerne, så de kan bruges der.
Billede 5: Sidste 2 ruter til Flask. Det håndterer logout -funktionen og livestream -funktionen. Det angiver også den port, webstedet vil køre på.
Trin 19: Telegram.py
Dette afsnit indeholder koden til Seromas telegrambot. Det bruger telepotbiblioteket til at trykke på Telegrams Bot API. Det fungerer ved at acceptere de forespørgsler, det får, og vise de respektive oplysninger til brugeren. Brugeren kan skrive 'hjælp' for at få en komplet liste over kommandoer.
Billede 1, 2: For at konfigurere en telegram -bot skal du bruge BotFather. Kør bare igennem instruktionerne for at få den HTTP API, som vi har brug for i vores kode.
Billede 4: Eksempel på en funktion, der tager et bestemt antal rækker af data fra databasen baseret på brugerens anmodning
Billede 5: Hvordan vi tager brugerens input og beslutter, hvad der skal køres i overensstemmelse hermed.
Trin 20: Livestream (camera_pi.py)
Vi har implementeret en ny funktion til vores overvågningssystem til serverrum, en live stream af hvad der foregår i serverrummet, dette kan tilgås når som helst og hvor som helst. Sådan fungerer denne livestream: Det er en funktion, der udføres i Flask, sammen med Pi -kameraet. Videorammer downloades, som det sker i virkeligheden, så du kan faktisk se, at der er en lille forsinkelse (1-2 sekunder), når videorammer downloades og deles sammen. Dette kunne ikke gøres uden trådning, da baggrundstråden læser rammer fra kameraet og gemmer den aktuelle ramme. At dele alle disse rammer sammen ville derefter udsende en livestream.
Billede 2: Dette er en separat fil, hvor alle videorammer er gemt, og som du kan se, bruger vi picamera -modul til at få adgang til vores hindbær pi -kamera, da det er det, vi er mest bekendt med. Vi har et klassekamera, så vi kunne importere funktion, som om det er en livestream og ikke flere billeder, der samler sig, derfor ville hovedprogrammet tage det som en livestream uden at skulle bekymre dig om, hvad der sker bag kulisserne.
Billede 3: Dette er en del af vores server.py -fil, hvor livestreamdelen er kodet. Hovedklassen, vi importerede til dette, er kameraet fra vores camera_pi.py -fil øverst i vores server.py -fil. Vi definerede en funktion i vores rodmappe, gen, men den kommer først i brug, når vi går over til /video_feed, hvor vores livestream er, hvor den vil gå gennem denne funktion og returnere livestreamen på websiden.
Anbefalede:
Embedded Window Manager: 10 trin
Embedded Window Manager: Dette projekt viser, hvordan man implementerer en vinduesmanager med bevægelige overlappede vinduer på en integreret mikro-controller med et LCD-panel og en berøringsskærm. Der er kommercielt tilgængelige softwarepakker til at gøre dette, men de koster penge og er tæt på
Server Room Monitor: 4 trin
Server Room Monitor: Et af problemerne med et serverrum er temperaturen. Med forskelligt udstyr, der producerer varme, stiger dette hurtigt. Og hvis klimaanlægget svigter, stopper det hurtigt alt. For at forudsige disse situationer kan vi erhverve et af flere miljøer
Cable Manager: 6 trin
Cable Manager: Som IT -studerende kommer alle og beder mig om et kabel til deres telefon, til internet, … Så jeg ville have en nem måde for dem at finde det kabel, de har brug for, uden min hjælp. Derfor skabte jeg kabelmanageren. Dette koncept udvikles som en sidste
Task Manager - et husholdningsopgavehåndteringssystem: 5 trin (med billeder)
Task Manager - et husholdningsledelsessystem: Jeg ville forsøge at løse et reelt problem i vores husstand (og jeg forestiller mig mange andre læsere), som er, hvordan jeg tildeler, motiverer og belønner mine børn for at hjælpe med huslige gøremål. Indtil nu har vi beholdt et lamineret ark
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: 4 trin
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: Wifi support er blevet semi-officielt tilføjet! Se nedenstående link: https: //www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Oversigt: VEX-understøttelse af brug af Raspberry Pi single board computer (SBC) har gjort VEX-turneringsopsætning til