Talaan ng mga Nilalaman:
- Hakbang 1: Mag-login sa Iyong AWS Account
- Hakbang 2: Pagsisimula Sa AWS IOT "mga bagay"
- Hakbang 3: Pagrehistro ng isang "bagay" ng AWS IOT
- Hakbang 4: Paganahin ang isang Sertipiko
- Hakbang 5: Pagdaragdag ng isang Patakaran sa Iyong Sertipiko
- Hakbang 6: Paunang Pag-set-up para sa Paksa ng AWS SNS
- Hakbang 7: Lumilikha ng Iot-role.trust.json File
- Hakbang 8: Lumilikha ng Iot-policy.json File
- Hakbang 9: Lumikha ng isang Paksa sa AWS SNS (Bahagi 1)
- Hakbang 10: Lumikha ng isang Paksa sa AWS SNS (Bahagi 2)
- Hakbang 11: Lumikha ng isang Paksa sa AWS SNS (Bahagi 3)
- Hakbang 12: Lumikha ng isang Bucket sa Amazon S3
- Hakbang 13: Bumuo ng isang Patakaran sa AWS (Bahagi 1)
- Hakbang 14: Bumuo ng isang Patakaran sa AWS (Bahagi 2)
- Hakbang 15: Lumilikha ng mga Talahanayan para sa DynamoDB
- Hakbang 16: Roomstatus.py
- Hakbang 17: Rfid.py
- Hakbang 18: Server.py
- Hakbang 19: Telegram.py
- Hakbang 20: Livestream (camera_pi.py)
Video: Seroma: Server Room Manager: 20 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Ang Seroma ay isang all-in-one server room manager na nagbibigay-daan sa mga gumagamit na suriin ang katayuan ng mga server (temperatura at halumigmig), mga log ng pag-access ng silid ng server, pati na rin subaybayan ang mismong silid ng server para sa anumang mga paglabag sa seguridad.
Hakbang 1: Mag-login sa Iyong AWS Account
- Para sa amin, nag-log in kami sa pamamagitan ng AWS turuan ang gateway ng mag-aaral dahil mayroon kaming account ng mag-aaral na aws.
- Tumungo sa tab na "AWS Account" sa menu ng nabigasyon sa kanang itaas.
- Mag-click sa "Pumunta sa iyong AWS Educate Starter Account"
- Buksan ang Console upang ma-access ang iyong AWS Management Console.
Hakbang 2: Pagsisimula Sa AWS IOT "mga bagay"
- Maghanap para sa "AWS IoT" sa search bar ng mga serbisyo ng AWS.
- Mag-click sa "Magsimula" upang magpatuloy sa AWS IoT Console dashboard kung saan maaari mong tingnan ang lahat ng mga aparatong IoT na nakarehistro sa iyong AWS account.
Hakbang 3: Pagrehistro ng isang "bagay" ng AWS IOT
- Sa navigation bar, mag-navigate upang pamahalaan ang iyong IoT "Mga Bagay".
- Mag-click sa "Magrehistro ng isang bagay" kung wala ka pang isang bagay. (Kung mayroon ka nang isang bagay pagkatapos mag-click sa pindutang "Lumikha" sa kanang tuktok ng screen sa tabi ng tab na paghahanap.)
- Mag-click sa unang pindutan na tinatawag na "Lumikha ng isang solong bagay".
- I-type ang "RaspberryPi" bilang pangalan ng bagay. Para sa hakbang na ito, walang kinakailangang input bukod sa "Pangalan" ang kinakailangan. Pagkatapos gawin ito, mag-click sa susunod.
Hakbang 4: Paganahin ang isang Sertipiko
- Sa susunod na hakbang, mag-click sa pindutang "lumikha ng sertipiko".
- I-download at iimbak ang 4 na mga link sa pag-download sa susunod na pahina sa isang gumaganang direktoryo o folder. Upang mai-save ang root CA file, mag-right click at save-as.
- Mag-click sa "Isaaktibo" at dapat lumitaw ang isang mensahe ng tagumpay.
- Gumamit ng mga pangalan ng palakaibigan para sa mga file sa pamamagitan ng pag-alis ng mga numero sa harap ng bawat pangalan ng file, at pagpapalit ng pangalan ng root CA file sa "rootca.pem".
- Mag-click sa "Maglakip ng isang patakaran" upang magpatuloy.
Hakbang 5: Pagdaragdag ng isang Patakaran sa Iyong Sertipiko
- Sa susunod na pahina, kung wala kang isang patakaran, hihilingin ka nila na gumawa ng isa sa pindutang "Lumikha ng Patakaran".
- Kung mayroon ka nang mayroon nang patakaran, mag-click sa pindutang "Lumikha ng bagong patakaran" sa ibaba.
-
Ipasok ang sumusunod na impormasyon sa form ng paglikha ng patakaran.
Pangalan: RaspberryPiSecurityPolicy
Aksyon: iot: *
Resource ARN: *
Epekto: Payagan
- Ang iyong patakaran ay dapat na lumitaw sa tab na "Patakaran" sa ilalim ng "Seguridad".
- Susunod, pumunta sa tab na "Mga Sertipiko" na nasa ilalim din ng "Seguridad", at ilakip ang iyong patakaran sa sertipiko na nilikha mo dati.
- Sa susunod na pahina, mag-click sa iyong patakaran at pagkatapos ay i-click ang "Mag-attach".
- Sa pahina ng Mga Detalye ng bagay na iyong nilikha, sa ilalim ng tab na "Makipag-ugnay", mayroong isang endpoint ng REST API na dapat makopya at mai-save.
- Ang AWS ay dapat na magkaroon ng isang Bagay na nakakabit sa isang patakaran at mayroong isang sertipiko.
Hakbang 6: Paunang Pag-set-up para sa Paksa ng AWS SNS
SSH sa Raspberry Pi at i-install ang AWS CLI gamit ang sumusunod na pip command:
sudo pip install awscli
Kasama sa AWS CLI ang tampok sa pagkumpleto ng utos ngunit hindi ito naka-install bilang default. Gumamit ng sumusunod na utos upang mai-install ang tampok na pagkumpleto ng utos sa interface ng CLI ng Raspberry Pi:
kumpletong -C aws_completer aws
I-configure ang AWS CLI gamit ang Access Key ID, Secret Access Key, Pangalan ng Rehiyon ng AWS at format ng Output ng Command gamit ang sumusunod na utos:
aws i-configure
Pagkatapos ay hihimokin ka ng console na punan ang sumusunod na impormasyon:
pi @ raspberrypi: ~ $ aws configure
AWS Access Key ID [Wala]: "Ilagay ang Access Key ID ng iyong User dito" AWS Secret Access Key [Wala]: "Ilagay dito ang Lihim na Access Key ng iyong User" Default na pangalan ng rehiyon [Wala]: eu-central-1 Default na format ng output [Wala]: json pi @ raspberrypi: ~ $
Hakbang 7: Lumilikha ng Iot-role.trust.json File
- Lumikha ng isang JSON file na may patakaran sa IAM sa itaas na may pangalan ng file na iot-role.trust.json.
- Lumikha ng tungkulin gamit ang AWS CLI gamit ang sumusunod na utos
aws iam create-role --role-name my-iot-role --assume-role-policy-document file: //iot-role-trust.json
Hakbang 8: Lumilikha ng Iot-policy.json File
- Lumikha ng isang JSON file na may patakaran sa itaas gamit ang filename iot-policy.json.
- Lumikha ng patakaran sa papel gamit ang AWS CLI gamit ang sumusunod na utos:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
Hakbang 9: Lumikha ng isang Paksa sa AWS SNS (Bahagi 1)
- Sa search bar ng mga serbisyo ng AWS, Paghahanap para sa serbisyo na "SNS" o magtungo sa
- Dahil wala kang mga paksa ngayon, i-click ang "Lumikha ng bagong paksa" upang lumikha ng isang paksa.
- I-type ang iyong pangalan ng paksa at ipakita ang pangalan at i-click ang "Lumikha ng paksa" at lilitaw ang isang bagong paksa kapag matagumpay ang lahat ng mga hakbang.
- Mag-click sa drop down na button na "Mga Pagkilos" at "Patakaran sa pag-edit ng paksa".
Hakbang 10: Lumikha ng isang Paksa sa AWS SNS (Bahagi 2)
- Itakda ang patakaran upang payagan ang lahat na mag-publish at mag-subscribe, dahil ito ay mga limitasyon ng isang AWSEducate account.
- Mag-subscribe sa paksang ito upang makatanggap ng mga update na na-publish sa paksang ito.
-
Baguhin ang protocol sa "Email" at ipasok ang iyong email sa end point.
- Tumungo sa iyong email kung saan mo nai-type ang iyong endpoint, mag-click sa link ng kumpirmasyon upang kumpirmahin ang iyong subscription sa email upang mag-subscribe sa paksa.
- Mag-navigate sa mga serbisyo na "AWS IoT", sa menu ng nabigasyon sa kaliwa, mag-click sa "Kumilos". Ang pahinang ito ay kung saan ipinakita ang iyong mga panuntunan at magagamit para sa iyo upang matingnan at mai-edit. Sa kasalukuyan, walang mga panuntunan para sa iyong IoT bagay, mag-click sa "Lumikha ng isang panuntunan".
Hakbang 11: Lumikha ng isang Paksa sa AWS SNS (Bahagi 3)
- Mag-type ng isang pangalan sa patlang ng Pangalan para sa iyong panuntunan. Sa patlang ng Paglalarawan, mag-type ng isang paglalarawan para sa iyong panuntunan. Pagpapatuloy sa seksyong mapagkukunan ng Mensahe, pipiliin namin ang pinaka-update na bersyon ng SQL sa seksyong "Paggamit ng SQL bersyon". I-type ang * sa katangian upang mapili ang buong mensahe ng MQTT mula sa paksa, sa aming kaso ang aming paksa ay "TempHumid".
- Pagkatapos ay magdagdag ng isang aksyon ng notification na "SNS" para sa iyong panuntunan. Pagkatapos, i-click ang "I-configure ang pagkilos".
- Sa pahina ng "I-configure ang pagkilos," piliin ang paksa ng SNS na ngayon mo lang nilikha at ang format ng mensahe bilang RAW. Pagkatapos nito, piliin ang ginampanan mong tungkulin gamit ang AWS CLI at i-click ang "Magdagdag ng aksyon".
- Ang iyong pagkilos ay mai-configure at babalik sa "Lumikha ng isang panuntunan".
- I-click ang i-edit kung nais mong i-edit ang panuntunan.
Hakbang 12: Lumikha ng isang Bucket sa Amazon S3
- Maghanap para sa S3 sa AWS search bar.
- Sa pahina ng Amazon S3, mag-click sa pindutang "Lumikha ng Bucket" upang makapagsimula.
-
Punan ang pop-up form na lilitaw sa sumusunod na impormasyon:
- Pangalan ng Bucket: seroma-bucket (dapat itong maging natatangi sa lahat ng mayroon nang mga bucket ng Amazon S3)
- Rehiyon: US West (Oregon)
- Kopyahin ang Mga Setting: (Huwag pansinin)
- Para sa mga hakbang 2 hanggang 3, laktawan lamang ito sa pamamagitan ng pag-click sa "Susunod" dahil walang mababago. Sa hakbang 4, i-click ang "Lumikha ng bucket".
- Pagkatapos ng paglikha, dapat mong makita ang iyong timba sa home page.
Hakbang 13: Bumuo ng isang Patakaran sa AWS (Bahagi 1)
- Mag-click sa bucket na iyong nilikha upang ipasok ang pahina sa itaas, pagkatapos ay magpatuloy sa "Patakaran sa Bucket" sa ilalim ng tab na "Mga Pahintulot".
- Susunod, mag-click sa link na "Generator ng Patakaran" sa ilalim ng pahina upang mabuo ang iyong patakaran sa AWS.
-
Sa form, i-input ang mga sumusunod na halaga:
- Uri ng Patakaran: Patakaran sa S3 Bucket
- Epekto: Payagan
- Punong-guro: *
- Serbisyo ng AWS: Amazon S3
- Mga Pagkilos: GetObject
- Pangalan ng Mapagkukunan ng Amazon (ARN): arn: aws: s3::: seroma-bucket
- Matapos punan ang impormasyon, mag-click sa Magdagdag ng Pahayag.
- Mag-click sa pindutang "Bumuo ng Patakaran".
Hakbang 14: Bumuo ng isang Patakaran sa AWS (Bahagi 2)
- Kopyahin ang mga nabuong code at i-click ang malapit.
- Bumalik sa iyong editor ng Patakaran sa bucket ng Amazon S3 at i-paste ang dating nakopya na mga code.
- Magdagdag ng isang "/ *" sa mga code sa likod mismo ng Mga code ng mapagkukunan, tulad ng larawan sa itaas, pagkatapos ay i-click ang i-save.
- Pagkatapos gawin ito, ang iyong timba ay matagumpay na na-set up at handa nang gamitin.
Hakbang 15: Lumilikha ng mga Talahanayan para sa DynamoDB
- Maghanap para sa DynamoDB sa search bar ng AWS Services
-
Mag-click sa "Lumikha ng talahanayan" at lumikha ng 3 mga talahanayan na may impormasyon sa ibaba: (Ang "pangalan ng talahanayan" at "pangunahing key" lamang ang nabago)
- accesslog, pk datetimevalue
- roomstatus, pk datetimevalue
- staffdata, pk username
Hakbang 16: Roomstatus.py
Naglalaman ang seksyong ito ng code para sa roomstatus.py, na nagsusulat ng lahat ng data tungkol sa silid ng server mismo bawat minuto. Kasama rito ang temperatura, kahalumigmigan, paggalaw (mga imahe at video kung totoo), at mga pag-access ng mga tala. Nagsusulat din ito ng data sa isang Google Spreadsheet, data sa DynamoDB, mga imahe at video (kung mayroon man) sa S3, nagpapakita ng impormasyon sa LCD screen, nagpapadala ng isang SMS at Email kapag may hinihinalang paglabag, o kung ang temperatura o halumigmig ay hindi regular..
Upang magpatakbo ng mga file ng python, baguhin ang direktoryo kung saan matatagpuan ang file at i-type sa console: "sudo python"
Pic 2: Ang mga pagpapaandar ay idineklara upang payagan ang mga alerto sa SMS at Email, at pag-upload sa S3
Pic 3: Mga variable na idineklara para gumana ang mga pagpapaandar at RPi
Pic 4: Simula ng loop na nakakakuha ng mga halagang temperatura at halumigmig mula sa RPi. Nagsusulat din ito ng data sa isang Google spreadsheet
Pic 5: Bahagi ng seguridad ng loop. Mag-e-aktibo lamang ito mula 7 ng gabi hanggang 7 ng umaga (off oras). Susuriin nito ang paggalaw sa isang isang minutong span. Kung ang paggalaw ay napansin, kukuha ng isang imahe at video, i-upload ito sa S3, habang nagsusulat din ng impormasyon sa DynamoDB para sa sanggunian sa paglaon. Pagkatapos, magpapadala ito ng isang SMS at Email kung may iregular.
Pic 6: Ang pagtatapos ng loop. Nagsusulat din ito ng data sa DynamoDB at nagpapadala ng mga alerto nang naaayon. Ang huling linya ng loop ay papatulugin ang script hanggang sa maabot ang susunod na minuto.
Hakbang 17: Rfid.py
Naglalaman ang seksyong ito ng code para sa rfid.py, na nagdaragdag ng functionaity upang subaybayan kapag na-access ng isang miyembro ng staff ang silid ng server. Bahagi din ito ng aspeto ng seguridad ng Seroma, kung saan hindi pinapayagan ang isang miyembro ng kawani na mag-access sa server room pagkatapos ng oras ng opisina, upang maiwasan ang isang paglabag sa data. Nagpapadala din ito ng isang Email at SMS ng lahat ng mga tauhan kung pinaghihinalaan ang isang paglabag.
Pic 2: Simula ng lohika ng mambabasa ng RFID. Kailan man ang isang card ay nai-scan laban sa mambabasa, ang natatanging id (uid) ng card ay kinukuha. Pagkatapos, susubukan naming hanapin ang halaga ng uid ng kard sa talahanayan ng staffdata upang makita kung ang kard ay kabilang sa alinman sa mga kawani. Larawan 3: Kung ang uid ng kard ay umiiral sa database, susuriin nito kung nasa opisina off-oras. Kung ito ay, aalerto nito ang natitirang mga empleyado sa pamamagitan ng SMS at Email ang mga naka-subscribe na mga email address. Kung ito ay nasa oras pa rin ng opisina, magsusulat ito ng isang hilera sa talahanayan ng accesslog sa database na may kaugnay na data. Ipapakita rin nito ang isang maligayang mensahe sa LCD display.
Hakbang 18: Server.py
Ito ang server.py file. Gagamitin namin ang balangkas ng Flask para sa web portal. Ang mga HTML file na ilalagay / naka-attach din ang mga template.
Pic 1: Tinukoy ang unang ruta para sa Flask. Ire-redirect nito ang gumagamit sa pahina ng pag-login kung hindi sila naka-log in, at ang pahina ng dashboard kung sila ay. Tinutukoy din ang isang pagpapaandar na gagamitin sa tampok na livestream
Pic 2, 3, 4: Mga ruta para sa Flask. Nakakakuha ng data mula sa talahanayan ng DynamoDB at pagkatapos ay ibinalik ang mga ito sa mga HTML file upang magamit sila roon.
Pic 5: Huling 2 mga ruta para sa Flask. Humahawak ito ng pag-andar sa pag-logout at ang pag-andar ng livestream. Tinutukoy din nito ang port na tatakbo ang website.
Hakbang 19: Telegram.py
Kasama sa seksyong ito ang code para sa telegram bot ng Seroma. Gumagamit ito ng telepot library upang mag-tap sa Telegram's Bot API. Gumagana ito sa pamamagitan ng pagtanggap ng mga query na nakukuha nito at pagpapakita ng kani-kanilang impormasyon sa gumagamit. Maaaring mag-type ang gumagamit ng 'tulong' para sa isang buong listahan ng mga utos.
Pic 1, 2: Upang mag-set up ng isang telegram bot, kailangan mong gumamit ng BotFather. Patakbuhin lamang ang mga tagubilin upang makuha ang HTTP API na kailangan namin sa aming code.
Pic 4: Halimbawa ng isang pagpapaandar na tumatagal ng isang tiyak na bilang ng mga hilera ng data mula sa database batay sa kahilingan ng gumagamit
Pic 5: Paano namin kukuha ang input ng gumagamit at magpasya kung ano ang tatakbo nang naaayon.
Hakbang 20: Livestream (camera_pi.py)
Nagpatupad kami ng isang bagong tampok para sa aming system ng pagsubaybay sa silid ng server, isang live na stream ng kung ano ang nangyayari sa Server Room, maaari itong ma-access sa anumang punto ng oras, kahit saan. Paano gumagana ang live stream na ito: Ito ay isang tampok na ginagawa sa Flask, kasama ang Pi Camera. Nai-download ang mga frame ng video dahil nangyayari ito sa totoong buhay, kaya maaari mo talagang makita na mayroong isang kaunting pagkaantala (1-2 segundo) habang ang mga video frame ay nai-download at magkasama. Hindi ito magagawa nang walang pag-thread, habang binabasa ng background thread ang mga frame mula sa camera at pag-iimbak ng kasalukuyang frame. Ang pagsasama-sama sa lahat ng mga frame na ito ay pagkatapos ay maglalabas ng isang live stream.
Pic 2: Ito ay isang hiwalay na file kung saan nakaimbak ang lahat ng mga frame ng video at tulad ng nakikita mo, gumagamit kami ng module ng picamera upang ma-access ang aming raspberry pi camera dahil iyon ang pinaka pamilyar sa amin. Mayroon kaming isang klase na Camera upang makapag-import kami ng pag-andar na para bang ito ay isang livestream at hindi maraming mga imahe na magkakasama, samakatuwid sa pangunahing file ng aplikasyon ay kukuha ito bilang isang live stream nang hindi nag-aalala tungkol sa kung ano ang nangyayari sa likod ng mga eksena.
Pic 3: Ito ay bahagi ng aming server.py file kung saan naka-code ang bahagi ng live stream. Ang pangunahing klase na na-import namin para dito ay ang Camera mula sa aming camera_pi.py file sa tuktok ng aming server.py file. Tinukoy namin ang isang pag-andar sa aming direktoryo ng ugat, gen, subalit magagamit lamang ito kapag nagtungo kami sa / video_feed kung saan naroon ang aming live stream, kung saan lilibot ito sa pagpapaandar na ito at ibabalik ang live stream sa webpage.
Inirerekumendang:
Naka-embed na Window Manager: 10 Hakbang
Naka-embed na Window Manager: Ipinapakita ng proyektong ito kung paano ipatupad ang isang window manager na may palipat-lipat na magkakapatong na mga bintana sa isang naka-embed na micro-controller na may isang LCD panel at isang touch screen. May mga magagamit na komersyal na mga pakete ng software upang magawa ito ngunit nagkakahalaga sila ng pera at malapit
Monitor ng Room Room: 4 Mga Hakbang
Server Room Monitor: Ang isa sa mga problema ng isang silid ng server ay ang temperatura. Sa iba't ibang kagamitan na gumagawa ng init, mabilis itong tumataas. At kung nabigo ang aircon, mabilis nitong ititigil ang lahat. Upang mahulaan ang mga sitwasyong ito maaari kaming makakuha ng isa sa maraming mga kapaligiran
Cable Manager: 6 na Hakbang
Cable Manager: Bilang isang mag-aaral sa IT, lahat ay humihiling sa akin ng isang kable para sa kanilang telepono, para sa internet, … Kaya't ginusto ko ang isang madaling paraan para makita nila ang cable na kailangan nila nang wala ang aking tulong. Iyon ang dahilan kung bakit nilikha ko ang cable manager. Ang konseptong ito ay binuo bilang isang pangwakas
Ginagawang Gumagana ang File Manager sa Webmin: 5 Hakbang
Ginagawang Gumagana ang File Manager sa Webmin: Ang Webmin File Manager ay isang kapaki-pakinabang na tool. Dahil sa Oracle (kahon ng sabon) napakahirap gamitin ang Java Apps sa browser. Sa kasamaang palad, ang File Manager ay isang Java App. Napakalakas nito at sulit ang pagsisikap na gawin itong wor
Task Manager - isang Sistema ng Pamamahala ng Pangangalaga sa Bahay: 5 Hakbang (na may Mga Larawan)
Task Manager - isang Sistema ng Pamamahala ng Bahay na Pang-sambahayan: Nais kong subukan na tugunan ang isang tunay na problema na kinakaharap sa aming sambahayan (at, sa palagay ko, ng marami pang ibang mga mambabasa), na kung paano ilalaan, uudyok, at gantimpalaan ang aking mga anak sa pagtulong may gawaing bahay. Hanggang ngayon, napanatili namin ang isang nakalamina na sheet