Mundarija:
- 1 -qadam: AWS hisobingizga kiring
- 2 -qadam: AWS IOT "narsalar" ni ishga tushirish
- 3 -qadam: AWS IOT "narsa" ni ro'yxatdan o'tkazish
- 4 -qadam: Sertifikatni faollashtirish
- 5 -qadam: sertifikatingizga siyosat qo'shish
- 6-qadam: AWS SNS mavzusini dastlabki sozlash
- 7-qadam: Iot-role.trust.json faylini yaratish
- 8-qadam: Iot-policy.json faylini yaratish
- 9 -qadam: AWS SNS mavzusini yarating (1 -qism)
- 10 -qadam: AWS SNS mavzusini yarating (2 -qism)
- 11 -qadam: AWS SNS mavzusini yarating (3 -qism)
- 12 -qadam: Amazon S3 da chelak yarating
- 13 -qadam: AWS siyosatini ishlab chiqish (1 -qism)
- 14 -qadam: AWS siyosatini ishlab chiqish (2 -qism)
- 15 -qadam: DynamoDB uchun jadvallar yaratish
- 16 -qadam: Roomstatus.py
- 17 -qadam: Rfid.py
- 18 -qadam: Server.py
- 19 -qadam: Telegram.py
- 20 -qadam: Livestream (camera_pi.py)
Video: Seroma: Server xonasi menejeri: 20 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Seroma-bu serverlarning holati (harorati va namligi), server xonasining kirish jurnallarini tekshirish, shuningdek, server xonasining o'zini xavfsizlik buzilishlarini kuzatib borish imkonini beruvchi, birma-bir server xonasi menejeri.
1 -qadam: AWS hisobingizga kiring
- Biz uchun biz AWS ta'limi shogirdlari shkafi orqali kirdik, chunki bizda talabalar uchun aws hisobi bor.
- Navigatsiya menyusining yuqori o'ng burchagidagi "AWS hisob qaydnomasi" yorlig'iga o'ting.
- "AWS Educate boshlang'ich hisobingizga o'ting" tugmasini bosing.
- AWS boshqaruv konsoliga kirish uchun Console -ni oching.
2 -qadam: AWS IOT "narsalar" ni ishga tushirish
- AWS xizmatlarini qidirish satrida "AWS IoT" ni qidiring.
- AWS IoT Console boshqaruv paneliga o'tish uchun "Ishga tushirish" tugmasini bosing, u erda siz AWS hisob qaydnomasida ro'yxatdan o'tgan barcha IoT qurilmalarini ko'rishingiz mumkin.
3 -qadam: AWS IOT "narsa" ni ro'yxatdan o'tkazish
- Navigatsiya panelida IoT "narsalar" ni boshqarish uchun harakatlaning.
- Agar sizda hali biror narsa bo'lmasa, "Ro'yxatdan o'tish" ni bosing. (Agar sizda biror narsa bo'lsa, qidiruv oynasi yonidagi ekranning yuqori o'ng burchagidagi "Yaratish" tugmasini bosing.)
- "Bitta narsani yaratish" deb nomlangan birinchi tugmani bosing.
- Narsaning nomi sifatida "RaspberryPi" ni kiriting. Bu qadam uchun "Ism" dan boshqa hech qanday kiritish talab qilinmaydi. Buni qilgandan so'ng, keyingisini bosing.
4 -qadam: Sertifikatni faollashtirish
- Keyingi bosqichda "sertifikat yaratish" tugmasini bosing.
- Yuklab oling va keyingi sahifadagi 4 ta yuklab olish havolasini ishchi katalog yoki papkaga saqlang. CA faylini saqlash uchun sichqonchaning o'ng tugmachasini bosing va saqlang.
- "Faollashtirish" ni bosing va muvaffaqiyatli xabar paydo bo'ladi.
- Har bir fayl nomining oldidagi raqamlarni olib tashlash va ildiz CA faylini "rootca.pem" deb qayta nomlash orqali fayllar uchun qulay nomlardan foydalaning.
- Davom etish uchun "Siyosat qo'shish" ni bosing.
5 -qadam: sertifikatingizga siyosat qo'shish
- Keyingi sahifada, agar sizda siyosat bo'lmasa, ular sizni "Siyosat yaratish" tugmachasini bosishni taklif qiladi.
- Agar sizda mavjud siyosat bo'lsa, pastdagi "Yangi siyosat yaratish" tugmasini bosing.
-
Siyosatni yaratish shakliga quyidagi ma'lumotlarni kiriting.
Ism: RaspberryPiSecurityPolicy
Harakat: iot:*
ARN manbai: *
Ta'siri: ruxsat bering
- Sizning siyosatingiz "Xavfsizlik" ostidagi "Siyosat" ko'rinishida paydo bo'lishi kerak.
- Keyin, "Xavfsizlik" ostidagi "Sertifikatlar" yorlig'iga o'ting va o'z siyosatingizni ilgari yaratgan sertifikatga biriktiring.
- Keyingi sahifada siyosatingizni bosing va "Qo'shish" ni bosing.
- Siz yaratgan narsaning tafsilotlari sahifasida "O'zaro muloqot" yorlig'i ostida REST API -ning so'nggi nuqtasi bor, uni nusxalash va saqlash kerak.
- AWS endi siyosatga biriktirilgan va sertifikatga ega bo'lgan narsaga ega bo'lishi kerak.
6-qadam: AWS SNS mavzusini dastlabki sozlash
SSH -ni Raspberry Pi -ga joylashtiring va AWS CLI -ni quyidagi pip buyrug'i yordamida o'rnating:
sudo pip install awscli
AWS CLI buyruqni bajarish xususiyatini o'z ichiga oladi, lekin u sukut bo'yicha o'rnatilmagan. Raspberry Pi CLI interfeysiga buyruqni bajarish xususiyatini o'rnatish uchun quyidagi buyruqdan foydalaning:
to'liq -C aws_completer aws
Quyidagi buyruq yordamida AWS CLI -ni kirish kaliti identifikatori, maxfiy kirish kaliti, AWS mintaqaviy nomi va buyruq chiqish formati bilan sozlang:
aws konfiguratsiyasi
Keyin konsol quyidagi ma'lumotlarni to'ldirishingizni so'raydi:
pi@raspberrypi: ~ $ aws konfiguratsiyasi
AWS kirish kalitining identifikatori [Yo'q]: "Foydalanuvchining kirish kalitining identifikatorini bu erga qo'ying" AWS maxfiy kirish kaliti [Yo'q]: "Foydalanuvchining maxfiy kirish kalitini bu erga qo'ying" Standart viloyat nomi [Yo'q]: eu-markaziy-1 Standart chiqish formati [Hech kim]: json pi@raspberrypi: ~ $
7-qadam: Iot-role.trust.json faylini yaratish
- Iot-role.trust.json nomi bilan yuqoridagi IAM siyosatiga ega JSON faylini yarating.
- Quyidagi buyruq yordamida AWS CLI yordamida rol yarating
aws iam create-role-role-name my-iot-role --assume-role-policy-document-document file: //iot-role-trust.json
8-qadam: Iot-policy.json faylini yaratish
- Iot-policy.json fayl nomi bilan yuqoridagi siyosat bilan JSON faylini yarating.
- Quyidagi buyruq yordamida AWS CLI yordamida rol siyosatini yarating:
aws iam put-role-policy --role-name IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json
9 -qadam: AWS SNS mavzusini yarating (1 -qism)
- AWS xizmatlarini qidirish satrida "SNS" xizmatini qidiring yoki https://us-west-2.console.aws.amazon.com/sns/home… sahifasiga o'ting.
- Sizda mavzular yo'qligi uchun mavzu yaratish uchun "Yangi mavzu yaratish" tugmasini bosing.
- Mavzuning nomini va ko'rsatiladigan nomini kiriting va "Mavzu yaratish" tugmasini bosing va barcha bosqichlar muvaffaqiyatli o'tgandan so'ng yangi mavzu paydo bo'ladi.
- "Amallar" ochiladigan tugmachasini va "Mavzu siyosatini tahrirlash" ni bosing.
10 -qadam: AWS SNS mavzusini yarating (2 -qism)
- Hammaga nashr qilish va obuna bo'lishga ruxsat berish siyosatini belgilang, chunki bu AWSEducate hisobining cheklovlari.
- Ushbu mavzu bo'yicha yangilanishlarni olish uchun ushbu mavzuga obuna bo'ling.
-
Protokolni "Elektron pochta" ga o'zgartiring va elektron pochtangizni oxirgi nuqtaga kiriting.
- E -pochtangizga kiring, siz oxirgi nuqtani kiritdingiz, mavzuga obuna bo'lish uchun elektron pochta obunasini tasdiqlash uchun tasdiqlash havolasini bosing.
- "AWS IoT" xizmatlariga o'ting, chapdagi navigatsiya menyusida "Harakat" ni bosing. Bu sahifada sizning qoidalaringiz ko'rsatiladi va siz ko'rishingiz va tahrir qilishingiz mumkin. Hozirgi vaqtda IoT uchun hech qanday qoidalar yo'q, "Qoidalar yaratish" ni bosing.
11 -qadam: AWS SNS mavzusini yarating (3 -qism)
- Qoidangiz uchun Ism maydoniga ism kiriting. Ta'rif maydoniga qoidangiz uchun tavsifni kiriting. Xabar manbasi bo'limiga o'tishda biz "SQL versiyasidan foydalanish" bo'limida eng yangilangan SQL versiyasini tanlaymiz. Mavzudan butun MQTT xabarini tanlash uchun atributga * kiriting, bizning holda bizning mavzu "TempHumid".
- Keyin qoidangiz uchun "SNS" bildirishnomasini qo'shing. Keyin "Amalni sozlash" ni bosing.
- "Amalni sozlash" sahifasida siz yaratgan SNS mavzusini va RAW formatidagi xabar formatini tanlang. Shundan so'ng, AWS CLI yordamida yaratilgan rolni tanlang va "Amal qo'shish" tugmasini bosing.
- Sizning harakatlaringiz konfiguratsiya qilinadi va "Qoidalar yaratish" ga qaytadi.
- Agar qoidani o'zgartirishni xohlasangiz, tahrirlashni bosing.
12 -qadam: Amazon S3 da chelak yarating
- AWS qidirish satrida S3 ni qidiring.
- Ishni boshlash uchun Amazon S3 sahifasida "Chelak yaratish" tugmasini bosing.
-
Ko'rsatilgan ochiladigan shaklni quyidagi ma'lumotlar bilan to'ldiring:
- Paqir nomi: seroma-chelak (bu Amazon S3-ning mavjud chelaklarida yagona bo'lishi kerak)
- Hudud: AQSh G'arbiy (Oregon)
- Nusxa ko'chirish sozlamalari: (e'tiborga olinmaydi)
- 2-3 bosqichlar uchun "Keyingi" tugmasini bosish orqali o'tkazib yuboring, chunki hech narsa o'zgartirilmaydi. 4 -qadamda "Chelak yaratish" ni bosing.
- Yaratgandan so'ng, siz chelakni bosh sahifada ko'rishingiz kerak.
13 -qadam: AWS siyosatini ishlab chiqish (1 -qism)
- Yuqoridagi sahifaga kirish uchun siz yaratgan chelakni bosing, so'ng "Ruxsatnomalar" yorlig'i ostidagi "Paqir siyosati" ga o'ting.
- Keyin, AWS siyosatini yaratish uchun sahifaning pastki qismidagi "Siyosat ishlab chiqaruvchisi" havolasini bosing.
-
Formada quyidagi qiymatlarni kiriting:
- Siyosat turi: S3 chelak siyosati
- Ta'siri: ruxsat bering
- Bosh direktor: *
- AWS xizmati: Amazon S3
- Amallar: GetObject
- Amazon manba nomi (ARN): arn: aws: s3::: seroma-chelak
- Ma'lumotni to'ldirgandan so'ng, "Hisobot qo'shish" ni bosing.
- "Siyosat yaratish" tugmasini bosing.
14 -qadam: AWS siyosatini ishlab chiqish (2 -qism)
- Yaratilgan kodlardan nusxa oling va "Yopish" tugmasini bosing.
- Amazon S3 Bucket Policy tahrirlovchisiga qayting va avval ko'chirilgan kodlarni joylashtiring.
- Resurs kodlari ortidagi kodlarga "/*" belgisini qo'shing, yuqoridagi rasmda bo'lgani kabi, keyin saqlashni bosing.
- Shundan so'ng, sizning chelak muvaffaqiyatli o'rnatiladi va foydalanishga tayyor bo'ladi.
15 -qadam: DynamoDB uchun jadvallar yaratish
- AWS Services qidirish satrida DynamoDB -ni qidiring
-
"Jadval yaratish" tugmasini bosing va quyidagi ma'lumotlar bilan 3 ta jadval yarating: (Faqat "jadval nomi" va "asosiy kalit" o'zgartiriladi)
- Accesslog, pk datetimevalue
- xona holati, pk datetimevalue
- staffdata, pk foydalanuvchi nomi
16 -qadam: Roomstatus.py
Bu bo'limda roomstatus.py kodi mavjud bo'lib, u har daqiqada server xonasining o'zi haqidagi barcha ma'lumotlarni yozadi. Bunga harorat, namlik, harakat (rasmlar va videolar to'g'ri bo'lsa) va kirish jurnallari kiradi. Shuningdek, u ma'lumotni Google elektron jadvaliga, DynamoDB -ga ma'lumotlarni, tasvirlar va videolarni (agar mavjud bo'lsa) S3 -ga yozadi, ma'lumotlarni LCD displeyda aks ettiradi, buzilish gumon qilinganida yoki harorat yoki namlik tartibsiz bo'lganda SMS va elektron pochta xabarlarini yuboradi..
Python fayllarini ishga tushirish uchun katalogni fayl joylashgan joyga o'zgartiring va konsolga yozing: "sudo python"
2 -rasm: SMS va elektron pochta orqali ogohlantirish va S3 -ga yuklash funksiyalari e'lon qilingan
3 -rasm: Funktsiyalar va RPi ishlashi uchun e'lon qilingan o'zgaruvchilar
4 -rasm: RPi dan harorat va namlik qiymatlarini oladigan tsiklning boshlanishi. Shuningdek, u ma'lumotlarni Google elektron jadvaliga yozadi
5 -rasm: Loopning xavfsizlik qismi. U faqat 19:00 dan 7:00 gacha (ishlamaydigan) faollashadi. U bir daqiqada harakatni tekshiradi. Agar harakat aniqlansa, u tasvir va videoni oladi, uni S3 -ga yuklaydi, keyinchalik ma'lumot uchun DynamoDB -ga ma'lumot yozadi. Keyin, agar biror narsa noto'g'ri bo'lsa, u SMS va elektron pochta xabarini yuboradi.
6 -rasm: tsiklning oxiri. Shuningdek, u DynamoDB -ga ma'lumotlarni yozadi va shunga mos ravishda ogohlantirishlar yuboradi. Loopning oxirgi satri skriptni keyingi daqiqaga yetguncha uxlab qoladi.
17 -qadam: Rfid.py
Bu bo'limda rfid.py kodi mavjud bo'lib, u xodimlar a'zosi server xonasiga kirganda kuzatiladigan funktsiyalarni qo'shadi. Ma'lumotlar buzilishining oldini olish uchun u Seroma -ning xavfsizlik jihatlarining bir qismidir, bunda xodimlar ish vaqtidan keyin server xonasiga kira olmaydi. Shuningdek, u buzilganlikda gumon qilinsa, barcha xodimlarga elektron pochta va SMS yuboradi.
2 -rasm: RFID o'quvchi mantig'ining boshlanishi. Har safar o'quvchi kartani skanerdan o'tkazsa, kartaning yagona identifikatori olinadi. Shundan so'ng, biz xodimlar ma'lumotlari jadvalidagi kartaning uid qiymatini topishga harakat qilamiz, agar karta xodimlarga tegishli bo'lsa, 3 -rasm: Agar kartaning ma`lumotlar bazasida mavjud bo'lsa, u ish paytida ekanligini tekshiradi. ishdan tashqari. Agar shunday bo'lsa, u qolgan xodimlarni SMS va elektron pochta orqali yozilgan elektron pochta manzillarini ogohlantiradi. Agar u hali ham ish vaqtida bo'lsa, u ma'lumotlar bazasidagi accesslog jadvaliga tegishli ma'lumotlarni o'z ichiga olgan qatorni yozadi. Shuningdek, u LCD displeyda xush kelibsiz xabarni ko'rsatadi.
18 -qadam: Server.py
Bu server.py fayli. Biz veb -portal uchun Flask ramkasidan foydalanamiz. HTML -fayllar /andozalarga qo'shiladi.
1 -rasm: Shisha uchun birinchi marshrut aniqlandi. Agar u tizimga kirmagan bo'lsa, foydalanuvchi kirish sahifasiga, agar ular kirgan bo'lsa, boshqaruv paneliga yo'naltiriladi. Bundan tashqari, jonli efirda ishlatilishi kerak bo'lgan funktsiyani belgilaydi
2 -rasm, 3, 4 -chi: Shisha uchun yo'llar. U DynamoDB jadvalidan ma'lumotlarni oladi va keyin ularni HTML fayllariga qaytaradi, shunda u erda foydalanish mumkin bo'ladi.
5 -rasm: Shisha uchun oxirgi 2 marshrut. U tizimdan chiqish va jonli oqim funksiyasini boshqaradi. Shuningdek, u veb -sayt ishlaydigan portni ham ko'rsatadi.
19 -qadam: Telegram.py
Bu bo'lim Seroma telegram botining kodini o'z ichiga oladi. Telegramning Bot API -ni bosish uchun u telepot kutubxonasidan foydalanadi. U olgan so'rovlarni qabul qilish va foydalanuvchiga tegishli ma'lumotlarni ko'rsatish orqali ishlaydi. Foydalanuvchi buyruqlarning to'liq ro'yxati uchun "yordam" ni yozishi mumkin.
1 -rasm, 2: Telegram botini o'rnatish uchun BotFather -dan foydalanish kerak. Bizning kodimizga kerak bo'lgan HTTP API -ni olish uchun ko'rsatmalarni bajaring.
4 -rasm: Foydalanuvchining talabiga binoan ma'lumotlar bazasidan ma'lum miqdordagi ma'lumotlar qatorini oladigan funktsiyaga misol.
5 -rasm: Qanday qilib biz foydalanuvchining ma'lumotlarini qabul qilamiz va shunga muvofiq nima ishlashini hal qilamiz.
20 -qadam: Livestream (camera_pi.py)
Biz server xonamizni kuzatish tizimi uchun yangi funktsiyani - Server xonasida bo'layotgan voqealarning jonli oqimini joriy qildik, unga istalgan vaqtda, istalgan joyda kirish mumkin. Bu jonli translyatsiya qanday ishlaydi: bu Flaskda, Pi Camera bilan birgalikda bajariladigan xususiyat. Videokameralar real hayotda bo'lgani kabi yuklab olinadi, shuning uchun video ramkalar yuklangan va bir-biriga bog'langani uchun biroz kechikish (1-2 soniya) borligini ko'rishingiz mumkin. Buni tiqilmasdan bajarish mumkin emas edi, chunki orqa fon kameradan kadrlarni o'qiydi va joriy ramkani saqlaydi. Bu freymlarning barchasini bir -biriga ulash, keyin jonli oqimni chiqaradi.
2 -rasm: Bu alohida fayl bo'lib, unda barcha video ramkalar saqlanadi va siz ko'rib turganingizdek, biz malina pi kameramizga kirish uchun pikamera modulidan foydalanmoqdamiz. Bizda kamera bor, shuning uchun biz bir nechta tasvirlarni bir -biriga bog'lab qo'ymaymiz, xuddi jonli efirdagidek funktsiyani import qila olamiz, shuning uchun dasturning asosiy fayli uni sahna ortida nima bo'layotganidan xavotirlanmasdan jonli oqim sifatida qabul qiladi.
3 -rasm: Bu server.py faylimizning bir qismi, bu erda jonli oqim qismi kodlangan. Biz import qilgan asosiy sinf bu server.py faylining yuqori qismidagi camera_pi.py faylidagi kamera. Biz o'z gen katalogimizdagi funktsiyani aniqladik, lekin u faqat biz jonli translyatsiya joylashgan /video_feed -ga o'tsak, u shu funktsiyani aylanib o'tadigan va veb -sahifadagi jonli translyatsiyani qaytarganida ishlatiladi.
Tavsiya:
O'rnatilgan oyna menejeri: 10 qadam
O'rnatilgan oyna menejeri: Ushbu loyihada LCD displeyli va sensorli ekranli o'rnatilgan mikrokontrolda harakatlanuvchi bir-biriga o'ralgan derazalari bo'lgan oyna menejeri qanday qo'llanilishi ko'rsatilgan. Buni amalga oshirish uchun sotuvda mavjud bo'lgan dasturiy paketlar mavjud, lekin ular qimmatga tushadi va yaqin
Server xonasi monitor: 4 qadam
Server xonasi monitori: Server xonasining muammolaridan biri haroratdir. Issiqlik ishlab chiqaradigan turli xil uskunalar bilan bu tez ko'tariladi. Va agar konditsioner ishlamay qolsa, u tezda hamma narsani to'xtatadi. Bunday vaziyatlarni oldindan bilish uchun biz bir nechta muhitlardan birini olishimiz mumkin
Kabel menejeri: 6 qadam
Kabel menejeri: IT talabasi bo'lganim uchun hamma keladi, mendan o'z telefoni, internet uchun kabelni so'raydi … Shunday qilib, men yordamisiz ularga kerakli kabelni topishning oson yo'lini xohlardim. Shuning uchun men kabel menejerini yaratdim, bu kontseptsiya yakuniy sifatida ishlab chiqilmoqda
Vazifa menejeri - uy ishlarini boshqarish tizimi: 5 qadam (rasmlar bilan)
Vazifa menejeri - uy ishlarini boshqarish tizimi: Men o'z uyimdagi haqiqiy muammolarni hal qilishga harakat qilmoqchi edim (va menimcha, boshqa o'quvchilarning muammolari), bu mening bolalarimni yordam berish uchun qanday taqsimlash, rag'batlantirish va mukofotlash. uy ishlari bilan. Hozirgacha biz laminatlangan varaqni saqlaganmiz
VEX turniri menejeri Raspberry Pi 3B+ 5GHz WiFi sozlamalari: 4 qadam
VEX Tournament menejeri Raspberry Pi 3B+ 5GHz WiFi sozlamalari: Wi-Fi qo'llab-quvvatlashi yarim rasman qo'shildi! Quyidagi havolaga qarang: https: //www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Umumiy ko'rish: Raspberry Pi bitta taxtali kompyuterdan (SBC) foydalanishning VEX ko'magi VEX turnirini o'rnatishni osonlashtirdi