Satura rādītājs:
- 1. darbība: piesakieties savā AWS kontā
- 2. darbība. Darba sākšana ar AWS IOT “lietām”
- 3. darbība: reģistrējiet AWS IOT “lietu”
- 4. darbība. Sertifikāta aktivizēšana
- 5. darbība: politikas pievienošana sertifikātam
- 6. darbība. AWS SNS tēmas sākotnējā iestatīšana
- 7. darbība: faila Iot-role.trust.json izveide
- 8. darbība. Iot-policy.json faila izveide
- 9. darbība. Izveidojiet AWS SNS tēmu (1. daļa)
- 10. darbība: izveidojiet AWS SNS tēmu (2. daļa)
- 11. darbība. Izveidojiet AWS SNS tēmu (3. daļa)
- 12. darbība: izveidojiet spaini vietnē Amazon S3
- 13. darbība: izveidojiet AWS politiku (1. daļa)
- 14. darbība: izveidojiet AWS politiku (2. daļa)
- 15. solis: tabulu izveide DynamoDB
- 16. darbība: Roomstatus.py
- 17. darbība. Rfid.py
- 18. darbība: Server.py
- 19. darbība: Telegram.py
- 20. darbība: tiešraide (camera_pi.py)
Video: Seroma: Servera telpas pārvaldnieks: 20 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Seroma ir universāls serveru telpas pārvaldnieks, kas lietotājiem ļauj pārbaudīt serveru statusu (temperatūru un mitrumu), serveru telpas piekļuves žurnālus, kā arī uzraudzīt, vai serveru telpā nav konstatēti drošības pārkāpumi.
1. darbība: piesakieties savā AWS kontā
- Mūsu gadījumā mēs pieteicāmies, izmantojot AWS izglītības studentu vārteju, jo mums ir studentu aws konts.
- Virzieties uz cilni “AWS konts” navigācijas izvēlnē augšējā labajā stūrī.
- Noklikšķiniet uz “Doties uz savu AWS Educate Starter kontu”
- Atveriet konsoli, lai piekļūtu savai AWS pārvaldības konsolei.
2. darbība. Darba sākšana ar AWS IOT “lietām”
- AWS pakalpojumu meklēšanas joslā meklējiet “AWS IoT”.
- Noklikšķiniet uz “Sākt darbu”, lai pārietu uz AWS IoT Console informācijas paneli, kurā varat apskatīt visas jūsu AWS kontā reģistrētās IoT ierīces.
3. darbība: reģistrējiet AWS IOT “lietu”
- Navigācijas joslā pārvietojieties, lai pārvaldītu savas IoT lietas.
- Noklikšķiniet uz "Reģistrēt lietu", ja jums vēl nav lietas. (Ja jums jau ir kaut kas, noklikšķiniet uz pogas “Izveidot” ekrāna augšējā labajā stūrī blakus meklēšanas cilnei.)
- Noklikšķiniet uz pirmās pogas ar nosaukumu “Izveidot vienu lietu”.
- Ierakstiet “RaspberryPi” kā lietas nosaukumu. Lai to izdarītu, nav jāievada nekas cits kā “Nosaukums”. Pēc tam noklikšķiniet uz Tālāk.
4. darbība. Sertifikāta aktivizēšana
- Nākamajā solī noklikšķiniet uz pogas “izveidot sertifikātu”.
- Lejupielādējiet un saglabājiet 4 lejupielādes saites nākamajā lapā darba direktorijā vai mapē. Lai saglabātu saknes CA failu, ar peles labo pogu noklikšķiniet un saglabājiet kā.
- Noklikšķiniet uz “Aktivizēt” un parādīsies paziņojums par veiksmi.
- Izmantojiet failiem draudzīgus nosaukumus, noņemot ciparus katra faila nosaukuma priekšā un pārdēvējot saknes CA failu par "rootca.pem".
- Lai turpinātu, noklikšķiniet uz “Pievienot politiku”.
5. darbība: politikas pievienošana sertifikātam
- Ja jums nav politikas, nākamajā lapā jums tiks piedāvāts to izveidot, nospiežot pogu “Izveidot politiku”.
- Ja jums jau ir esoša politika, noklikšķiniet uz tālāk esošās pogas “Izveidot jaunu politiku”.
-
Politikas izveides veidlapā ievietojiet šādu informāciju.
Nosaukums: RaspberryPiSecurityPolicy
Darbība: iot:*
Resurss ARN: *
Efekts: atļaut
- Pēc tam jūsu politikai vajadzētu parādīties cilnes “Politika” sadaļā “Drošība”.
- Pēc tam dodieties uz cilni “Sertifikāti”, kas atrodas arī sadaļā “Drošība”, un pievienojiet savu politiku iepriekš izveidotajam sertifikātam.
- Nākamajā lapā noklikšķiniet uz savas politikas un pēc tam noklikšķiniet uz “Pievienot”.
- Izveidotās lietas detalizētās informācijas cilnē “Mijiedarboties” ir REST API galapunkts, kas jākopē un jāsaglabā.
- AWS tagad vajadzētu būt lietai, kas ir pievienota politikai un kurai ir sertifikāts.
6. darbība. AWS SNS tēmas sākotnējā iestatīšana
SSH Raspberry Pi un instalējiet AWS CLI, izmantojot šādu pip komandu:
sudo pip instalējiet awscli
AWS CLI ietver komandu pabeigšanas funkciju, taču tā nav instalēta pēc noklusējuma. Izmantojiet šo komandu, lai Raspberry Pi CLI saskarnē instalētu komandu pabeigšanas funkciju:
pilnīgs -C aws_completer aws
Konfigurējiet AWS CLI ar piekļuves atslēgas ID, slepeno piekļuves atslēgu, AWS reģiona nosaukumu un komandu izvades formātu, izmantojot šādu komandu:
aws konfigurēt
Pēc tam konsole liks jums aizpildīt šādu informāciju:
pi@raspberrypi: ~ $ aws konfigurēt
AWS piekļuves atslēgas ID [nav]: "Ievietojiet lietotāja piekļuves atslēgas ID šeit" AWS slepenās piekļuves atslēga [nav]: "Ievietojiet lietotāja slepeno piekļuves atslēgu šeit" Noklusējuma reģiona nosaukums [Nav]: eu-central-1 Noklusējuma izvades formāts [Nav]: json pi@raspberrypi: ~ $
7. darbība: faila Iot-role.trust.json izveide
- Izveidojiet JSON failu ar iepriekš minēto IAM politiku ar faila nosaukumu iot-role.trust.json.
- Izveidojiet lomu, izmantojot AWS CLI, izmantojot šādu komandu
aws iam create-role --role-name my-iot-role-pieņemsim lomu-politikas dokumenta fails: //iot-role-trust.json
8. darbība. Iot-policy.json faila izveide
- Izveidojiet JSON failu ar iepriekš minēto politiku ar faila nosaukumu iot-policy.json.
- Izveidojiet lomu politiku, izmantojot AWS CLI, izmantojot šādu komandu:
aws iam put-role-policy-lomas nosaukums IoTRole-politikas nosaukums iot-policy-politikas dokumenta fails: //iot-policy.json
9. darbība. Izveidojiet AWS SNS tēmu (1. daļa)
- AWS pakalpojumu meklēšanas joslā meklējiet pakalpojumu “SNS” vai dodieties uz vietni
- Tā kā jums pašlaik nav nevienas tēmas, noklikšķiniet uz “Izveidot jaunu tēmu”, lai izveidotu tēmu.
- Ierakstiet tēmas nosaukumu un parādāmo vārdu un noklikšķiniet uz “Izveidot tēmu”, un, kad visas darbības būs veiksmīgas, parādīsies jauna tēma.
- Noklikšķiniet uz nolaižamās pogas “Darbības” un “Rediģēt tēmas politiku”.
10. darbība: izveidojiet AWS SNS tēmu (2. daļa)
- Iestatiet politiku, lai ikviens varētu publicēt un abonēt, jo tas ir AWSEducate konta ierobežojums.
- Abonējiet šo tēmu, lai saņemtu par šo tēmu publicētos atjauninājumus.
-
Mainiet protokolu uz “E -pasts” un beigu punktā ievadiet savu e -pastu.
- Dodieties uz savu e -pastu, kurā ierakstījāt savu galapunktu, noklikšķiniet uz apstiprinājuma saites, lai apstiprinātu savu e -pasta abonementu, lai abonētu šo tēmu.
- Dodieties uz pakalpojumiem “AWS IoT”, kreisajā navigācijas izvēlnē noklikšķiniet uz “Rīkoties”. Šajā lapā tiek parādīti jūsu noteikumi un tie ir pieejami apskatei un rediģēšanai. Pašlaik jūsu IoT lietai nav noteikumu, noklikšķiniet uz “Izveidot kārtulu”.
11. darbība. Izveidojiet AWS SNS tēmu (3. daļa)
- Ierakstiet nosaukumu savas kārtulas laukā Nosaukums. Laukā Apraksts ierakstiet kārtulas aprakstu. Turpinot sadaļu Ziņojuma avots, sadaļā “SQL versijas izmantošana” mēs izvēlētos jaunāko SQL versiju. Ierakstiet * atribūtā, lai no tēmas atlasītu visu MQTT ziņojumu, mūsu gadījumā mūsu tēma ir “TempHumid”.
- Pēc tam savai kārtulai pievienojiet paziņojuma darbību “SNS”. Pēc tam noklikšķiniet uz “Konfigurēt darbību”.
- Lapā “Konfigurēt darbību” izvēlieties tikko izveidoto SNS tēmu un ziņojuma formātu kā RAW. Pēc tam izvēlieties lomu, kuru tikko izveidojāt, izmantojot AWS CLI, un noklikšķiniet uz “Pievienot darbību”.
- Jūsu darbība tiks konfigurēta un atgriezīsies sadaļā “Izveidot kārtulu”.
- Noklikšķiniet uz rediģēt, ja vēlaties rediģēt kārtulu.
12. darbība: izveidojiet spaini vietnē Amazon S3
- Meklējiet S3 AWS meklēšanas joslā.
- Lai sāktu darbu, Amazon S3 lapā noklikšķiniet uz pogas “Izveidot kausu”.
-
Aizpildiet parādīto uznirstošo veidlapu ar šādu informāciju:
- Kausa nosaukums: seroma-spainis (tam jābūt unikālam visos esošajos Amazon S3 spaiņos)
- Reģions: ASV rietumi (Oregona)
- Kopēšanas iestatījumi: (ignorēt)
- No 2. līdz 3. darbībai vienkārši izlaidiet to, noklikšķinot uz “Tālāk”, jo nekas nav jāmaina. 4. solī noklikšķiniet uz “Izveidot kopu”.
- Pēc izveides mājas lapā vajadzētu redzēt savu segmentu.
13. darbība: izveidojiet AWS politiku (1. daļa)
- Noklikšķiniet uz izveidotā segmenta, lai atvērtu iepriekš minēto lapu, pēc tam cilnē “Atļaujas” pārejiet uz sadaļu “Kausa politika”.
- Pēc tam lapas apakšdaļā noklikšķiniet uz saites “Politiku ģenerators”, lai izveidotu savu AWS politiku.
-
Veidlapā ievadiet šādas vērtības:
- Politikas veids: S3 kausa politika
- Efekts: atļaut
- Galvenais: *
- AWS pakalpojums: Amazon S3
- Darbības: GetObject
- Amazon resursa nosaukums (ARN): arn: aws: s3::: seroma-bucket
- Pēc informācijas aizpildīšanas noklikšķiniet uz Pievienot paziņojumu.
- Noklikšķiniet uz pogas “Izveidot politiku”.
14. darbība: izveidojiet AWS politiku (2. daļa)
- Kopējiet ģenerētos kodus un noklikšķiniet uz aizvērt.
- Atgriezieties savā Amazon S3 kausa politikas redaktorā un ielīmējiet iepriekš kopētos kodus.
- Pievienojiet “/*” kodiem tieši aiz resursu kodiem, piemēram, iepriekš redzamajā attēlā, un pēc tam noklikšķiniet uz Saglabāt.
- Pēc tam jūsu spainis tiks veiksmīgi iestatīts un gatavs lietošanai.
15. solis: tabulu izveide DynamoDB
- Meklējiet DynamoDB AWS pakalpojumu meklēšanas joslā
-
Noklikšķiniet uz "Izveidot tabulu" un izveidojiet 3 tabulas ar tālāk norādīto informāciju: (Tiek mainīts tikai "tabulas nosaukums" un "primārā atslēga")
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, pk lietotājvārds
16. darbība: Roomstatus.py
Šajā sadaļā ir kods roomstatus.py, kas katru minūti raksta visus datus par pašu serveru telpu. Tas ietver temperatūru, mitrumu, kustību (attēlus un videoklipus, ja tie ir patiesi) un piekļuves žurnālus. Tas arī raksta datus Google izklājlapā, datus DynamoDB, attēlus un videoklipus (ja tādi ir) S3, parāda informāciju LCD ekrānā, sūta SMS un e -pastu, ja ir aizdomas par pārkāpumu vai ja temperatūra vai mitrums ir neregulārs.
Lai palaistu python failus, nomainiet direktoriju uz faila atrašanās vietu un ierakstiet konsolē: "sudo python"
2. attēls: funkcijas, kas atļautas SMS un e -pasta brīdinājumiem, un augšupielāde S3
3. attēls: mainīgie, kas deklarēti, lai funkcijas un RPi darbotos
4. attēls: cikla sākums, kas no RPi iegūst temperatūras un mitruma vērtības. Tas arī raksta datus Google izklājlapā
5. attēls: cilpas drošības daļa. Tas tiks aktivizēts tikai no pulksten 19:00 līdz 7:00 (ārpus darba laika). Tas pārbaudīs kustību vienas minūtes laikā. Ja tiek konstatēta kustība, tā uzņems attēlu un video, augšupielādēs to S3, vienlaikus rakstot informāciju arī DynamoDB, lai to varētu izmantot vēlāk. Pēc tam tā nosūtīs īsziņu un e -pastu, ja kaut kas notiks nepareizi.
6. attēls: cilpas beigas. Tā arī raksta datus DynamoDB un attiecīgi nosūta brīdinājumus. Pēdējā cilpas rinda liks skriptam gulēt, līdz tiks sasniegta nākamā minūte.
17. darbība. Rfid.py
Šajā sadaļā ir kods rfid.py, kas papildina funkcionalitāti, lai izsekotu, kad kāds darbinieks piekļūst serveru telpai. Tā ir arī daļa no Seroma drošības aspekta, kur darbiniekam nav atļauts piekļūt serveru telpai pēc darba laika, lai novērstu datu pārkāpumu. Tā arī nosūta e -pastu un īsziņas visiem darbiniekiem, ja ir aizdomas par pārkāpumu.
2. attēls: RFID lasītāja loģikas sākums. Ikreiz, kad karte tiek skenēta pret lasītāju, tiek ņemts kartes unikālais ID (uid). Pēc tam mēs cenšamies tabulas personāla datu tabulā atrast kartes uid vērtību, lai redzētu, vai karte pieder kādam personālam. 3. attēls. Ja kartes ID ir datu bāzē, tā pārbaudīs, vai tā ir biroja laikā ārpus darba laika. Ja tā ir, tas brīdinās pārējos darbiniekus, izmantojot SMS un e -pastu, abonētās e -pasta adreses. Ja tas joprojām ir darba laikā, tas rakstīs rindu datu bāzes Accesslog tabulā ar attiecīgajiem datiem. Tas arī parādīs sveiciena ziņojumu LCD displejā.
18. darbība: Server.py
Šis ir server.py fails. Tīmekļa portālam mēs izmantosim kolbas ietvaru. Ir pievienoti arī HTML faili, kas jāievieto /veidnēs.
1. attēls: definēts pirmais kolbas maršruts. Tas novirzīs lietotāju uz pieteikšanās lapu, ja viņš nav pieteicies, un informācijas paneļa lapu, ja tas ir izdarīts. Nosaka arī funkciju, kas jāizmanto tiešraides funkcijā
2., 3., 4. attēls: kolbas maršruti. Tas iegūst datus no DynamoDB tabulas un pēc tam atgriež tos HTML failos, lai tos varētu izmantot tur.
5. attēls: pēdējie 2 maršruti kolbai. Tas apstrādā atteikšanās un tiešraides funkciju. Tas arī norāda portu, kurā vietne darbosies.
19. darbība: Telegram.py
Šajā sadaļā ir iekļauts Seroma telegrammas robota kods. Tā izmanto telepota bibliotēku, lai pieskartos Telegram Bot API. Tas darbojas, pieņemot saņemtos vaicājumus un parādot lietotājam attiecīgo informāciju. Lai iegūtu pilnu komandu sarakstu, lietotājs var ierakstīt “help”.
1., 2. attēls: Lai iestatītu telegrammu robotu, jums jāizmanto BotFather. Vienkārši izpildiet norādījumus, lai iegūtu HTTP API, kas mums nepieciešama mūsu kodā.
4. attēls: Funkcijas piemērs, kas ņem no datu bāzes noteiktu skaitu datu rindu, pamatojoties uz lietotāja pieprasījumu
5. attēls: kā mēs ņemam vērā lietotāja ieguldījumu un attiecīgi izlemjam, ko darbināt.
20. darbība: tiešraide (camera_pi.py)
Mēs esam ieviesuši jaunu mūsu serveru telpas uzraudzības sistēmas funkciju - tiešraidi par serveru telpā notiekošo, kurai var piekļūt jebkurā laikā un vietā. Kā darbojas šī tiešraides straume: tā ir funkcija, kas tiek veikta kolbā kopā ar Pi kameru. Video kadri tiek lejupielādēti, kā tas notiek reālajā dzīvē, tāpēc jūs faktiski varat redzēt, ka ir neliela kavēšanās (1-2 sekundes), kad video kadri tiek lejupielādēti un salikti kopā. To nevarēja izdarīt bez pavedieniem, jo fona pavediens nolasa kadrus no kameras un saglabā pašreizējo kadru. Saliekot visus šos kadrus kopā, tiktu izvadīta tiešraide.
2. attēls: Šis ir atsevišķs fails, kurā tiek glabāti visi video kadri, un, kā redzat, mēs izmantojam picamera moduli, lai piekļūtu mūsu aveņu pi kamerai, jo tas mums ir vispazīstamākais. Mums ir klases kamera, lai mēs varētu importēt funkciju tā, it kā tā būtu tiešraide, nevis vairāki attēli, kas tiek salikti kopā, tāpēc galvenajā lietojumprogrammas failā tas tiktu uztverts kā tiešraide, neuztraucoties par to, kas notiek aiz ainas.
3. attēls: Šī ir daļa no mūsu servera.py faila, kurā ir kodēta tiešraides daļa. Galvenā klase, ko mēs šim nolūkam importējām, ir kamera no faila camera_pi.py, kas atrodas mūsu servera.py faila augšdaļā. Mēs definējām funkciju savā saknes direktorijā, gen, taču tā tiek izmantota tikai tad, kad mēs pārietam uz /video_feed, kur atrodas mūsu tiešraides straume, kur tā pārvietosies pa šo funkciju un atgriezīs tiešraides straumi tīmekļa vietnē.
Ieteicams:
Iebūvētais logu pārvaldnieks: 10 soļi
Iebūvētais logu pārvaldnieks: Šis projekts parāda, kā iebūvētajā mikrokontrollerī ar LCD paneli un skārienekrānu ieviest logu pārvaldnieku ar pārvietojamiem logiem, kas pārklājas. Lai to izdarītu, ir pieejamas komerciāli pieejamas programmatūras paketes, taču tās maksā naudu un ir tuvu
Servera telpas monitors: 4 soļi
Servera telpas monitors: Viena no serveru telpas problēmām ir temperatūra. Izmantojot dažādas iekārtas, kas ražo siltumu, tas strauji palielinās. Un, ja gaisa kondicionieris neizdodas, tas ātri pārtrauc visu. Lai prognozētu šīs situācijas, mēs varam iegūt vienu no vairākām vidēm
Kabeļu pārvaldnieks: 6 soļi
Kabeļu menedžeris: Kā IT students, visi nāk, lūdzot man kabeli savam telefonam, internetam, … Tāpēc es gribēju, lai viņi bez manas palīdzības varētu viegli atrast vajadzīgo kabeli. Tāpēc es izveidoju kabeļu pārvaldnieku. Šī koncepcija tiek izstrādāta kā pēdējais
Lai failu pārvaldnieks darbotos Webmin: 5 soļi
Failu pārvaldnieka darbība Webmin: Webmin failu pārvaldnieks ir ļoti noderīgs rīks. Oracle (ziepju kastes) dēļ ir kļuvis ļoti grūti izmantot Java lietotnes pārlūkprogrammā. Diemžēl failu pārvaldnieks ir Java lietotne. Tas ir ļoti spēcīgs, un ir vērts pielikt pūles, lai tas darbotos
Uzdevumu pārvaldnieks - mājsaimniecības darbu vadības sistēma: 5 soļi (ar attēliem)
Uzdevumu pārvaldnieks - mājsaimniecības darbu pārvaldības sistēma: Es gribēju mēģināt risināt reālu problēmu, ar kuru saskaramies mūsu (un, manuprāt, daudzu citu lasītāju) mājsaimniecībā, proti, kā sadalīt, motivēt un apbalvot savus bērnus par palīdzību ar mājsaimniecības darbiem. Līdz šim mēs esam saglabājuši laminētu loksni