Innehållsförteckning:
- Steg 1: Logga in på ditt AWS -konto
- Steg 2: Komma igång med AWS IOT "saker"
- Steg 3: Registrera en AWS IOT "sak"
- Steg 4: Aktivering av ett certifikat
- Steg 5: Lägga till en policy i ditt certifikat
- Steg 6: Första konfigurationen för AWS SNS-ämne
- Steg 7: Skapa Iot-role.trust.json-fil
- Steg 8: Skapa Iot-policy.json-fil
- Steg 9: Skapa ett AWS SNS -ämne (del 1)
- Steg 10: Skapa ett AWS SNS -ämne (del 2)
- Steg 11: Skapa ett AWS SNS -ämne (del 3)
- Steg 12: Skapa en hink på Amazon S3
- Steg 13: Skapa en AWS -policy (del 1)
- Steg 14: Skapa en AWS -policy (del 2)
- Steg 15: Skapa tabeller för DynamoDB
- Steg 16: Roomstatus.py
- Steg 17: Rfid.py
- Steg 18: Server.py
- Steg 19: Telegram.py
- Steg 20: Livestream (camera_pi.py)
Video: Seroma: Server Room Manager: 20 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Seroma är en allt-i-ett-serverrumshanterare som tillåter användare att kontrollera status för servrarna (temperatur och luftfuktighet), åtkomstloggarna för serverrummet, samt övervaka själva serverrummet för eventuella säkerhetsöverträdelser.
Steg 1: Logga in på ditt AWS -konto
- För vår loggade vi in via AWS educate student gateway eftersom vi har ett student aws -konto.
- Gå till fliken "AWS-konto" på navigeringsmenyn längst upp till höger.
- Klicka på "Gå till ditt AWS Educate Starter -konto"
- Öppna konsolen för att komma åt din AWS Management Console.
Steg 2: Komma igång med AWS IOT "saker"
- Sök efter "AWS IoT" i sökfältet i AWS -tjänster.
- Klicka på "Kom igång" för att gå till AWS IoT Console -instrumentpanelen där du kan se alla IoT -enheter som är registrerade i ditt AWS -konto.
Steg 3: Registrera en AWS IOT "sak"
- Navigera i navigeringsfältet för att hantera dina IoT -saker.
- Klicka på "Registrera en sak" om du inte har något ännu. (Om du redan har en sak klickar du på "Skapa" -knappen längst upp till höger på skärmen bredvid sökfliken.)
- Klicka på den första knappen "Skapa en enda sak".
- Skriv "RaspberryPi" som namnet på saken. För detta steg krävs ingen annan inmatning än "Namn". Klicka sedan på nästa.
Steg 4: Aktivering av ett certifikat
- I nästa steg klickar du på knappen "skapa certifikat".
- Ladda ner och spara de fyra nedladdningslänkarna på nästa sida i en fungerande katalog eller mapp. För att spara rot-CA-filen, högerklicka och spara som.
- Klicka på "Aktivera" så visas ett framgångsmeddelande.
- Använd vänliga namn för filerna genom att ta bort siffrorna framför varje filnamn och byta namn på rot -CA -filen till "rootca.pem".
- Klicka på "Bifoga en policy" för att fortsätta.
Steg 5: Lägga till en policy i ditt certifikat
- På nästa sida, om du inte har en policy, kommer de att uppmana dig att göra en på knappen "Skapa en policy".
- Om du redan har en befintlig policy klickar du på knappen "Skapa ny policy" nedan.
-
Infoga följande information i formuläret för att skapa policy.
Namn: RaspberryPiSecurityPolicy
Åtgärd: iot:*
Resurs ARN: *
Effekt: Tillåt
- Din policy bör sedan visas på fliken "Policy" under "Säkerhet".
- Gå sedan till fliken "Certifikat" som också finns under "Säkerhet" och bifoga din policy till certifikatet du skapade tidigare.
- Klicka på din policy på nästa sida och klicka sedan på "Bifoga".
- På sidan Detaljer för det du skapade, under fliken "Interact", finns en REST API -slutpunkt som ska kopieras och sparas.
- AWS ska nu ha en sak som är kopplad till en policy och har ett certifikat.
Steg 6: Första konfigurationen för AWS SNS-ämne
SSH i Raspberry Pi och installera AWS CLI med följande pipkommando:
sudo pip installera awscli
AWS CLI innehåller kommandofullständighetsfunktionen men den är inte installerad som standard. Använd följande kommando för att installera kommandofullbordningsfunktionen på Raspberry Pi: s CLI -gränssnitt:
komplett -C aws_completer aws
Konfigurera AWS CLI med Access Key ID, Secret Access Key, AWS Region Name och Command Output format med följande kommando:
aws konfigurera
Konsolen uppmanar dig sedan att fylla i följande information:
pi@raspberrypi: ~ $ aws konfigurera
AWS Access Key ID [None]: "Sätt din användares Access Key ID här" AWS Secret Access Key [None]: "Sätt din användares hemliga Access Key här" Standardregionamn [None]: eu-central-1 Standardutmatningsformat [Inga]: json pi@raspberrypi: ~ $
Steg 7: Skapa Iot-role.trust.json-fil
- Skapa en JSON-fil med ovanstående IAM-policy med filnamnet iot-role.trust.json.
- Skapa rollen med hjälp av AWS CLI med följande kommando
aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //iot-role-trust.json
Steg 8: Skapa Iot-policy.json-fil
- Skapa en JSON-fil med ovanstående policy med filnamnet iot-policy.json.
- Skapa rollpolicyn med hjälp av AWS CLI med följande kommando:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
Steg 9: Skapa ett AWS SNS -ämne (del 1)
- I sökfältet AWS-tjänster söker du efter "SNS" -tjänst eller går till
- Eftersom du inte har några ämnen nu klickar du på "Skapa nytt ämne" för att skapa ett ämne.
- Skriv in ditt ämnesnamn och visningsnamn och klicka på "Skapa ämne" så visas ett nytt ämne när alla steg har lyckats.
- Klicka på rullgardinsmenyn "Åtgärder" och "Redigera ämnespolicy".
Steg 10: Skapa ett AWS SNS -ämne (del 2)
- Ange policyn så att alla kan publicera och prenumerera, eftersom detta är begränsningar för ett AWSEducate -konto.
- Prenumerera på detta ämne för att få uppdateringar som publicerats för detta ämne.
-
Ändra protokollet till "E -post" och ange din e -postadress vid slutpunkten.
- Gå till din e -postadress där du skrev din slutpunkt, klicka på bekräftelselänken för att bekräfta din e -postabonnemang för att prenumerera på ämnet.
- Navigera till "AWS IoT" -tjänster, klicka på "Act" på navigeringsmenyn till vänster. På den här sidan visas dina regler och är tillgängliga för dig att se och redigera. För närvarande finns det inga regler för din IoT -sak, klicka på "Skapa en regel".
Steg 11: Skapa ett AWS SNS -ämne (del 3)
- Skriv ett namn i fältet Namn för din regel. Skriv in en beskrivning för din regel i fältet Beskrivning. Fortsätt till avsnittet Meddelandekälla, vi skulle välja den mest uppdaterade SQL -versionen i avsnittet "Använda SQL -version". Skriv * i attributet för att välja hela MQTT -meddelandet från ämnet, i vårt fall är vårt ämne "TempHumid".
- Lägg sedan till en "SNS" aviseringsåtgärd för din regel. Klicka sedan på "Konfigurera åtgärd".
- På sidan "Konfigurera åtgärd" väljer du det SNS -ämne som du just skapade och meddelandeformatet som RAW. Välj sedan den roll du just skapade med AWS CLI och klicka på "Lägg till åtgärd".
- Din åtgärd kommer att konfigureras och återgå till "Skapa en regel".
- Klicka på redigera om du vill redigera regeln.
Steg 12: Skapa en hink på Amazon S3
- Sök efter S3 i AWS -sökfältet.
- På Amazon S3 -sidan klickar du på knappen "Skapa hink" för att komma igång.
-
Fyll i popup-formuläret som visas med följande information:
- Skopnamn: seroma-bucket (detta måste vara unikt för alla befintliga Amazon S3-skopor)
- Region: USA västra (Oregon)
- Kopieringsinställningar: (Ignorera)
- För steg 2 till 3, hoppa helt enkelt över det genom att klicka på "Nästa" eftersom det inte finns något att ändra. Klicka på "Skapa hink" i steg 4.
- Efter skapandet bör du se din hink på hemsidan.
Steg 13: Skapa en AWS -policy (del 1)
- Klicka på hinken du skapade för att öppna sidan ovan och fortsätt till "Bucket Policy" under fliken "Behörigheter".
- Klicka sedan på länken "Policy Generator" längst ner på sidan för att skapa din AWS -policy.
-
Ange följande värden i formuläret:
- Typ av policy: S3 Bucket Policy
- Effekt: Tillåt
- Rektor: *
- AWS -tjänst: Amazon S3
- Åtgärder: GetObject
- Amazons resursnamn (ARN): arn: aws: s3::: seroma-bucket
- Efter att ha fyllt i informationen, klicka på Lägg till uttalande.
- Klicka på knappen "Skapa policy".
Steg 14: Skapa en AWS -policy (del 2)
- Kopiera de genererade koderna och klicka på Stäng.
- Återgå till din Amazon S3 Bucket Policy -editor och klistra in de tidigare kopierade koderna.
- Lägg till en "/*" i koderna precis bakom resurskoderna, som i bilden ovan, klicka sedan på spara.
- Efter att ha gjort det kommer din hink att installeras och vara klar att användas.
Steg 15: Skapa tabeller för DynamoDB
- Sök efter DynamoDB i sökfältet i AWS Services
-
Klicka på "Skapa tabell" och skapa tre tabeller med informationen nedan: (Endast "tabellnamn" och "primärnyckel" ändras)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, pk användarnamn
Steg 16: Roomstatus.py
Det här avsnittet innehåller koden för roomstatus.py, som skriver varje data om själva serverrummet varje minut. Detta inkluderar temperatur, luftfuktighet, rörelse (bilder och videor om det är sant) och åtkomstloggar. Den skriver också data till ett Google -kalkylblad, data till DynamoDB, bilder och videor (om sådana finns) till S3, visar information på LCD -skärmen, skickar ett SMS och e -postmeddelande vid misstänkt överträdelse eller när temperaturen eller luftfuktigheten är oregelbunden..
För att köra pythonfiler, byt katalog till var filen finns och skriv i konsolen: "sudo python"
Bild 2: Funktioner deklareras för att tillåta SMS och e -postvarningar och överföring till S3
Bild 3: Variabler deklarerade för funktioner och RPi för att fungera
Bild 4: Starten av slingan som hämtar värdena för temperatur och luftfuktighet från RPi. Det skriver också data till ett Google -kalkylblad
Bild 5: Säkerhetsdel i öglan. Den aktiveras bara från 19.00 till 07.00 (lediga tider). Det kommer att kontrollera om det rör sig om en minut. Om rörelse upptäcks tar det en bild och en video, laddas upp till S3, samtidigt som informationen skrivs till DynamoDB för referens senare. Efteråt kommer det att skicka ett SMS och e -post om något är oregelbundet.
Bild 6: Slutet på öglan. Det skriver också data till DynamoDB och skickar varningar i enlighet därmed. Den sista raden i slingan gör att manuset sover tills nästa minut har nåtts.
Steg 17: Rfid.py
Det här avsnittet innehåller koden för rfid.py, som lägger till funktionaliteten att spåra när en anställd kommer åt serverrummet. Det är också en del av säkerhetsaspekten för Seroma, där en anställd inte får komma åt serverrummet efter kontorstid, för att förhindra dataintrång. Det skickar också ett e -postmeddelande och SMSar all personal om det misstänks ett brott.
Bild 2: Start av RFID -läsarlogiken. När ett kort skannas mot läsaren tas det unika id (uid) för kortet. Efteråt försöker vi hitta kortets uid -värde i personaldatatabellen för att se om kortet tillhör någon av personalen. Bild 3: Om kortets uid finns i databasen kommer det att kontrollera om det är under kontoret lediga tider. Om det är det kommer det att varna resten av de anställda via SMS och e -post till de prenumererade e -postadresserna. Om det fortfarande är under kontorstid kommer det att skriva en rad till accesslog -tabellen i databasen med relevant data. Det kommer också att visa ett välkomstmeddelande på LCD -skärmen.
Steg 18: Server.py
Detta är filen server.py. Vi kommer att använda Flask -ramverket för webbportalen. HTML -filerna som ska läggas in /mallar bifogas också.
Bild 1: Första rutten för kolv definierad. Det kommer att omdirigera användaren till inloggningssidan om de inte är inloggade och instrumentpanelsidan om de är det. Definierar också en funktion som ska användas i livestream -funktionen
Bild 2, 3, 4: Rutter för kolv. Den hämtar data från DynamoDB -tabellen och returnerar dem sedan till HTML -filerna så att de kan användas där.
Bild 5: Sista 2 rutterna för Flask. Den hanterar utloggningsfunktionen och livestream -funktionen. Det anger också porten som webbplatsen ska köras vid.
Steg 19: Telegram.py
Detta avsnitt innehåller koden för Seromas telegrambot. Den använder telepotbiblioteket för att trycka på Telegrams Bot API. Det fungerar genom att acceptera de frågor som det får och visa respektive information för användaren. Användaren kan skriva "hjälp" för en fullständig lista med kommandon.
Bild 1, 2: För att konfigurera en telegrambot måste du använda BotFather. Kör bara igenom instruktionerna för att få det HTTP -API som vi behöver i vår kod.
Bild 4: Exempel på en funktion som tar ett visst antal rader med data från databasen baserat på användarens begäran
Bild 5: Hur vi tar användarens input och bestämmer vad vi ska köra därefter.
Steg 20: Livestream (camera_pi.py)
Vi har implementerat en ny funktion för vårt serverrumövervakningssystem, en livestream av vad som händer i serverrummet, detta kan nås när som helst, var som helst. Hur den här livestreamen fungerar: Det är en funktion som görs i Flask, tillsammans med Pi -kameran. Videoramar laddas ner som det händer i verkligheten, så du kan faktiskt se att det är en liten fördröjning (1-2 sekunder) när videoramar laddas ner och delas ihop. Detta kunde inte göras utan trådning, eftersom bakgrundstråden läser bildrutor från kameran och lagrar den aktuella ramen. Att samla alla dessa ramar tillsammans skulle sedan mata ut en livestream.
Bild 2: Det här är en separat fil där alla videoramar lagras och som du kan se använder vi picameramodulen för att komma åt vår hallon pi -kamera eftersom det är det vi är mest bekanta med. Vi har en klass kamera så att vi kan importera funktionen som om det är en livestream och inte flera bilder som sammanfogas, därför skulle det i huvudapplikationen ta det som en livestream utan att behöva oroa dig för vad som händer bakom kulisserna.
Bild 3: Detta är en del av vår server.py -fil där livestreamdelen är kodad. Huvudklassen vi importerade för detta är kameran från vår camera_pi.py -fil högst upp i vår server.py -fil. Vi definierade en funktion i vår rotkatalog, gen, men den kommer bara i bruk när vi går till /video_feed där vår livestream är, där den kommer att gå igenom den här funktionen och returnera liveströmmen på webbsidan.
Rekommenderad:
Cable Manager: 6 steg
Cable Manager: Som IT -student kommer alla och ber mig om en kabel till sin telefon, till internet, … Så jag ville ha ett enkelt sätt för dem att hitta kabeln de behöver utan min hjälp. Det är därför jag skapade kabelhanteraren. Detta koncept utvecklas som en sista
Task Manager - ett hushållssysselsystem: 5 steg (med bilder)
Task Manager - ett hushållssysselsystem: Jag ville försöka ta itu med ett verkligt problem i vårt hushåll (och jag föreställer mig det hos många andra läsare), vilket är hur man tilldelar, motiverar och belönar mina barn för att hjälpa till med hushållssysslor. Hittills har vi förvarat ett laminerat ark
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: 4 steg
VEX Tournament Manager Raspberry Pi 3B+ 5GHz WiFi Setup: Wifi-stöd har lagts till semi-officiellt! Se länken nedan: https: //www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Översikt: VEX-stöd för användning av Raspberry Pi single board computer (SBC) har gjort VEX-turneringsinställningar
PassPen (Arduino Password Manager): 4 steg
PassPen (Arduino Password Manager): Detta är mitt PassPen -projekt. en liten arduino nano som loggar in mig på datorerna i skolan. Den är gjord med en liten kretskort i som är utformad med knappar för att ha en nål för att låsa innan du skriver ut lösenord
Password Manager, Typer, Macro, Payload Allt i ett !: 11 steg (med bilder)
Password Manager, Typer, Macro, Payload … Allt i ett !: OBS! Om du har problem med tillverkningen av denna enhet (PCB, lödning eller andra) skicka mig ett privat meddelande här eller ett e -postmeddelande till [email protected]. Jag skickar gärna en av de datorer eller enheter jag redan producerar