Innholdsfortegnelse:
- Trinn 1: Logg på AWS -kontoen din
- Trinn 2: Komme i gang med AWS IOT "ting"
- Trinn 3: Registrering av en AWS IOT "ting"
- Trinn 4: Aktivering av et sertifikat
- Trinn 5: Legge til en policy i sertifikatet ditt
- Trinn 6: Første oppsett for AWS SNS Topic
- Trinn 7: Opprette Iot-role.trust.json-fil
- Trinn 8: Opprette Iot-policy.json-fil
- Trinn 9: Lag et AWS SNS -emne (del 1)
- Trinn 10: Lag et AWS SNS -emne (del 2)
- Trinn 11: Lag et AWS SNS -emne (del 3)
- Trinn 12: Lag en bøtte på Amazon S3
- Trinn 13: Lag en AWS -policy (del 1)
- Trinn 14: Lag en AWS -policy (del 2)
- Trinn 15: Opprette tabeller for DynamoDB
- Trinn 16: Roomstatus.py
- Trinn 17: Rfid.py
- Trinn 18: Server.py
- Trinn 19: Telegram.py
- Trinn 20: Livestream (camera_pi.py)
Video: Seroma: Server Room Manager: 20 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Seroma er en alt-i-ett-serverrombehandler som lar brukerne sjekke statusen til serverne (temperatur og fuktighet), tilgangsloggene til serverrommet, samt overvåke selve serverrommet for eventuelle sikkerhetsbrudd.
Trinn 1: Logg på AWS -kontoen din
- For vår, logget vi inn via AWS educate student gateway da vi har en student aws -konto.
- Gå til kategorien "AWS-konto" på navigasjonsmenyen øverst til høyre.
- Klikk på "Gå til AWS Educate Starter -kontoen din"
- Åpne konsollen for å få tilgang til AWS Management Console.
Trinn 2: Komme i gang med AWS IOT "ting"
- Søk etter “AWS IoT” i søkefeltet til AWS -tjenester.
- Klikk på "Kom i gang" for å fortsette til dashbordet i AWS IoT Console, hvor du kan se alle IoT -enhetene som er registrert i AWS -kontoen din.
Trinn 3: Registrering av en AWS IOT "ting"
- I navigasjonslinjen navigerer du for å administrere IoT -tingene dine.
- Klikk på "Registrer en ting" hvis du ikke har noe enda. (Hvis du allerede har en ting, klikker du på "Opprett" -knappen øverst til høyre på skjermen ved siden av fanen Søk.)
- Klikk på den første knappen som heter "Lag en enkelt ting".
- Skriv "RaspberryPi" som navnet på tingen. For dette trinnet kreves ingen annen input enn "Navn". Etter å ha gjort det, klikker du på neste.
Trinn 4: Aktivering av et sertifikat
- I neste trinn klikker du på "opprett sertifikat" -knappen.
- Last ned og lagre de fire nedlastingskoblingene på neste side i en fungerende katalog eller mappe. For å lagre rot-CA-filen, høyreklikk og lagre som.
- Klikk på "Aktiver" og en suksessmelding skal vises.
- Bruk vennlige navn på filene ved å fjerne tallene foran hvert filnavn, og gi nytt navn til rot -CA -filen til "rootca.pem".
- Klikk på "Legg ved en policy" for å fortsette.
Trinn 5: Legge til en policy i sertifikatet ditt
- På den neste siden, hvis du ikke har en policy, vil de be deg om å lage en på "Opprett en policy" -knappen.
- Hvis du allerede har en eksisterende policy, klikker du på "Opprett ny policy" -knappen nedenfor.
-
Sett inn følgende informasjon i policyopprettingsskjemaet.
Navn: RaspberryPiSecurityPolicy
Handling: iot:*
Ressurs ARN: *
Effekt: Tillat
- Retningslinjene dine skal da vises i kategorien "Policy" under "Sikkerhet".
- Gå deretter til kategorien "Sertifikater" som også er under "Sikkerhet", og legg ved politikken din til sertifikatet du opprettet tidligere.
- På neste side klikker du på retningslinjene dine og klikker deretter "Legg ved".
- På siden Detaljer for tingen du opprettet, under fanen "Samhandle", er det et REST API -endepunkt som skal kopieres og lagres.
- AWS skal nå ha en ting som er knyttet til en policy og har et sertifikat.
Trinn 6: Første oppsett for AWS SNS Topic
SSH i Raspberry Pi og installer AWS CLI ved hjelp av følgende pip -kommando:
sudo pip installer awscli
AWS CLI inkluderer kommandofullføringsfunksjon, men den er ikke installert som standard. Bruk følgende kommando for å installere kommandofullføringsfunksjonen på Raspberry Pi's CLI -grensesnitt:
komplett -C aws_completer aws
Konfigurer AWS CLI med Access Key ID, Secret Access Key, AWS Region Name og Command Output format ved å bruke følgende kommando:
aws konfigurere
Konsollen vil deretter be deg om å fylle ut følgende informasjon:
pi@raspberrypi: ~ $ aws konfigurere
AWS Access Key ID [None]: "Sett brukerens Access Key ID her" AWS Secret Access Key [None]: "Sett brukerens hemmelige tilgangsnøkkel her" Standard regionnavn [None]: eu-central-1 Standard output format [Ingen]: json pi@raspberrypi: ~ $
Trinn 7: Opprette Iot-role.trust.json-fil
- Opprett en JSON-fil med ovennevnte IAM-policy med filnavnet iot-role.trust.json.
- Lag rollen ved hjelp av AWS CLI ved å bruke følgende kommando
aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //iot-role-trust.json
Trinn 8: Opprette Iot-policy.json-fil
- Lag en JSON-fil med retningslinjene ovenfor med filnavnet iot-policy.json.
- Opprett rollepolicyen ved hjelp av AWS CLI ved å bruke følgende kommando:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
Trinn 9: Lag et AWS SNS -emne (del 1)
- I søkefeltet til AWS-tjenester, Søk etter “SNS” -tjeneste eller gå til
- Siden du ikke har noen emner nå, klikker du på "Opprett nytt emne" for å opprette et emne.
- Skriv inn emnens navn og visningsnavn, og klikk "Opprett emne", og et nytt emne vil vises når alle trinnene er vellykkede.
- Klikk på rullegardinmenyen "Handlinger" og "Rediger emnepolicy".
Trinn 10: Lag et AWS SNS -emne (del 2)
- Angi retningslinjene slik at alle kan publisere og abonnere, ettersom dette er begrensninger for en AWSEducate -konto.
- Abonner på dette emnet for å motta oppdateringer publisert til dette emnet.
-
Endre protokollen til "E -post" og skriv inn e -posten din ved sluttpunktet.
- Gå til e -posten din der du skrev inn endepunktet ditt, klikk på bekreftelseslenken for å bekrefte e -postabonnementet ditt for å abonnere på emnet.
- Naviger til “AWS IoT” -tjenester, klikk på “Act” i navigasjonsmenyen til venstre. Denne siden er hvor reglene dine vises og er tilgjengelige for deg å se og redigere. Foreløpig er det ingen regler for IoT -tingen din, klikk på "Opprett en regel".
Trinn 11: Lag et AWS SNS -emne (del 3)
- Skriv inn et navn i feltet Navn for regelen. Skriv inn en beskrivelse for regelen i feltet Beskrivelse. Fortsett til delen Meldingskilde, ville vi velge den mest oppdaterte SQL -versjonen i delen "Bruke SQL -versjon". Skriv * i attributtet for å velge hele MQTT -meldingen fra emnet, i vårt tilfelle er temaet vårt “TempHumid”.
- Legg deretter til en "SNS" varslingshandling for regelen din. Klikk deretter "Konfigurer handling".
- På siden "Konfigurer handling" velger du SNS -emnet du nettopp har opprettet, og meldingsformatet som RAW. Velg deretter rollen du nettopp opprettet ved hjelp av AWS CLI, og klikk på "Legg til handling".
- Handlingen din blir konfigurert og går tilbake til "Opprett en regel".
- Klikk på rediger hvis du vil redigere regelen.
Trinn 12: Lag en bøtte på Amazon S3
- Søk etter S3 i AWS -søkefeltet.
- På Amazon S3 -siden klikker du på "Create Bucket" -knappen for å komme i gang.
-
Fyll ut popup-skjemaet som vises med følgende informasjon:
- Bucket Name: seroma-bucket (dette må være unikt for alle eksisterende Amazon S3-bøtter)
- Region: USA vest (Oregon)
- Kopiinnstillinger: (Ignorer)
- For trinn 2 til 3, hopper du bare over det ved å klikke "Neste" da det ikke er noe som skal endres. I trinn 4 klikker du på "Opprett bøtte".
- Etter opprettelsen bør du se bøtta på hjemmesiden.
Trinn 13: Lag en AWS -policy (del 1)
- Klikk på bøtten du opprettet for å gå til siden ovenfor, og fortsett til "Bucket Policy" under "Tillatelser" -fanen.
- Klikk deretter på koblingen "Policy Generator" nederst på siden for å generere AWS -policyen din.
-
Skriv inn følgende verdier i skjemaet:
- Type retningslinjer: S3 Bucket Policy
- Effekt: Tillat
- Rektor: *
- AWS -tjeneste: Amazon S3
- Handlinger: GetObject
- Amazonas ressursnavn (ARN): arn: aws: s3::: seroma-bucket
- Etter å ha fylt ut informasjonen, klikker du på Legg til erklæring.
- Klikk på knappen "Generer retningslinjer".
Trinn 14: Lag en AWS -policy (del 2)
- Kopier kodene som er generert, og klikk på Lukk.
- Gå tilbake til Amazon S3 Bucket Policy -editoren og lim inn de tidligere kopierte kodene.
- Legg til en “/*” i kodene rett bak ressurskodene, som på bildet ovenfor, og klikk deretter på lagre.
- Etter at du har gjort det, blir skuffen din vellykket satt opp og klar til bruk.
Trinn 15: Opprette tabeller for DynamoDB
- Søk etter DynamoDB i søkelinjen i AWS Services
-
Klikk på "Lag tabell" og lag 3 tabeller med informasjonen nedenfor: (Bare "tabellnavn" og "primærnøkkel" endres)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, pk brukernavn
Trinn 16: Roomstatus.py
Denne delen inneholder koden for roomstatus.py, som skriver alle data om selve serverrommet hvert minutt. Dette inkluderer temperatur, fuktighet, bevegelse (bilder og videoer hvis det er sant) og tilgangslogger. Den skriver også data til et Google -regneark, data til DynamoDB, bilder og videoer (hvis noen) til S3, viser informasjon på LCD -skjermen, sender en SMS og e -post når det er mistanke om brudd, eller når temperaturen eller fuktigheten er uregelmessig.
For å kjøre python -filer, bytt katalog til hvor filen er plassert og skriv inn konsollen: "sudo python"
Bilde 2: Funksjoner erklært for å tillate SMS- og e -postvarsler, og opplasting til S3
Bilde 3: Variabler deklarert for funksjoner og RPi for å fungere
Bilde 4: Start av sløyfen som henter temperatur og fuktighet fra RPi. Den skriver også dataene til et Google -regneark
Bilde 5: Sikkerhetsdel av løkken. Den aktiveres bare fra kl. 19.00 til 07.00 (utenom åpningstid). Den vil se etter bevegelse i løpet av ett minutt. Hvis det oppdages bevegelse, vil det ta et bilde og en video, laste den opp til S3, mens den også skriver informasjon til DynamoDB for referanse senere. Etterpå vil den sende en SMS og e -post hvis noe er uregelmessig.
Bilde 6: Sluttenden. Den skriver også data til DynamoDB og sender varsler tilsvarende. Den siste linjen i sløyfen får scriptet til å sove til neste minutt er nådd.
Trinn 17: Rfid.py
Denne delen inneholder koden for rfid.py, som legger til funksjonaliteten for å spore når en medarbeider får tilgang til serverrommet. Det er også en del av sikkerhetsaspektet til Seroma, der en medarbeider ikke har tilgang til serverrommet etter kontortid, for å forhindre brudd på data. Den sender også en e -post og SMSer alle ansatte hvis det er mistanke om brudd.
Bilde 2: Starten på RFID -leserlogikken. Når et kort blir skannet mot leseren, blir den unike ID (uid) for kortet tatt. Etterpå prøver vi å finne kortets uid -verdi i personaldatatabellen for å se om kortet tilhører noen av de ansatte. Bilde 3: Hvis uid av kortet finnes i databasen, vil det sjekke om det er under kontoret off-timer. Hvis det er det, vil det varsle resten av de ansatte via SMS og e -post til de abonnerte e -postadressene. Hvis det fortsatt er i kontortiden, vil det skrive en rad til accesslog -tabellen i databasen med de relevante dataene. Det vil også vise en velkomstmelding på LCD -skjermen.
Trinn 18: Server.py
Dette er filen server.py. Vi bruker Flask -rammeverket for nettportalen. HTML -filene som skal settes inn /maler er også vedlagt.
Bilde 1: Første rute for kolbe definert. Det vil omdirigere brukeren til påloggingssiden hvis de ikke er logget inn, og dashbordssiden hvis de er det. Definerer også en funksjon som skal brukes i livestream -funksjonen
Bilde 2, 3, 4: Ruter for kolbe. Den henter data fra DynamoDB -tabellen og returnerer dem deretter til HTML -filene slik at de kan brukes der.
Bilde 5: Siste 2 ruter for Flask. Den håndterer avloggingsfunksjonen og livestream -funksjonen. Den spesifiserer også porten nettstedet skal kjøre på.
Trinn 19: Telegram.py
Denne delen inneholder koden for Seromas telegrambot. Den bruker telepotbiblioteket til å trykke på Telegrams Bot API. Det fungerer ved å godta spørsmålene det får og vise den respektive informasjonen til brukeren. Brukeren kan skrive 'hjelp' for en fullstendig liste over kommandoer.
Bilde 1, 2: For å sette opp en telegram -bot må du bruke BotFather. Bare følg instruksjonene for å få HTTP -API -et vi trenger i koden vår.
Bilde 4: Eksempel på en funksjon som tar et visst antall rader med data fra databasen basert på brukerens forespørsel
Bilde 5: Hvordan vi tar brukerens innspill og bestemmer hva vi skal kjøre deretter.
Trinn 20: Livestream (camera_pi.py)
Vi har implementert en ny funksjon for vårt overvåkingssystem for serverrom, en direktesending av det som skjer i serverrommet, dette kan nås når som helst, hvor som helst. Hvordan denne livestrømmen fungerer: Det er en funksjon som gjøres i Flask, sammen med Pi -kameraet. Videorammer lastes ned slik det skjer i virkeligheten, så du kan faktisk se at det er en liten forsinkelse (1-2 sekunder) ettersom videorammer blir lastet ned og satt sammen. Dette kunne ikke gjøres uten tråding, ettersom bakgrunnstråden leser rammer fra kameraet og lagrer gjeldende ramme. Hvis du deler alle disse rammene sammen, sendes deretter en livestream.
Bilde 2: Dette er en egen fil der alle videorammer er lagret, og som du kan se bruker vi picamera -modulen for å få tilgang til bringebær -pi -kameraet vårt, da det er det vi er mest kjent med. Vi har et klassekamera slik at vi kan importere funksjonen som om det er en livestream og ikke flere bilder som samles, og derfor vil hovedprogrammet ta det som en livestream uten å måtte bekymre deg for hva som skjer bak kulissene.
Bilde 3: Dette er en del av vår server.py -fil der live stream -delen er kodet. Hovedklassen vi importerte for dette er kameraet fra vår camera_pi.py -fil øverst i server.py -filen. Vi definerte en funksjon i rotkatalogen vår, gen, men den blir bare tatt i bruk når vi drar til /video_feed hvor livestrømmen vår er, hvor den vil gå gjennom denne funksjonen og returnere livestrømmen på nettsiden.
Anbefalt:
Cable Manager: 6 trinn
Cable Manager: Som IT -student kommer alle og ber meg om en kabel til telefonen, til internett, … Så jeg ville ha en enkel måte for dem å finne kabelen de trenger uten min hjelp. Det er derfor jeg opprettet kabelbehandleren. Dette konseptet utvikles som en siste
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: 4 trinn
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: Wifi-støtte er blitt semi-offisielt lagt til! Se lenken under: https: //www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Oversikt: VEX-støtte for bruk av Raspberry Pi single board computer (SBC) har gjort VEX-turneringsoppsett mu
PassPen (Arduino Password Manager): 4 trinn
PassPen (Arduino Password Manager): Dette er mitt PassPen -prosjekt. en liten arduino nano som logger meg på datamaskinene på skolen. Den er laget med en liten PCB i designet med knapper for å ha en pin for å tillate låsing før du skriver ut passord
Password Manager, Typer, Makro, nyttelast Alt i ett !: 11 trinn (med bilder)
Password Manager, Typer, Macro, Payload … Alt i ett !: OBS: Hvis du har problemer med å lage denne enheten (PCB, lodding eller andre), send meg en privat melding her eller en e -post til [email protected]. Jeg sender gjerne en av PC -ene eller enhetene jeg allerede produserer
Social Circle Relationship Manager: 7 trinn (med bilder)
Social Circle Relationship Manager: Hva er det? Det kan være tøft å holde kontakten med alle de viktige menneskene i din sosiale krets, spesielt når du bor i en storby, en arbeidsnarkoman, en student eller alle de ovennevnte. Social Circle tilbyr en måte å holde alle dine kjære i ett