Mündəricat:

Seroma: Server Otaq Meneceri: 20 addım
Seroma: Server Otaq Meneceri: 20 addım

Video: Seroma: Server Otaq Meneceri: 20 addım

Video: Seroma: Server Otaq Meneceri: 20 addım
Video: ESP32 OTA via HTTPS 2024, Noyabr
Anonim
Seroma: Server Otaq Müdiri
Seroma: Server Otaq Müdiri

Seroma, istifadəçilərə serverlərin vəziyyətini (temperatur və rütubət), server otağının giriş qeydlərini yoxlamağa, habelə hər hansı bir təhlükəsizlik pozuntusuna görə server otağının özünü izləməyə imkan verən hamısı bir arada server otağı meneceridir.

Addım 1: AWS Hesabınıza daxil olun

AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
AWS Hesabınıza daxil olun
  1. Bizim üçün AWS təhsil tələbə ağ geçidi vasitəsi ilə daxil olduq, çünki tələbə aws hesabı var.
  2. Sağ üstdəki naviqasiya menyusundakı "AWS Hesabı" sekmesine keçin.
  3. "AWS Educate Starter Hesabınıza gedin" düyməsini basın.
  4. AWS İdarəetmə Konsolunuza daxil olmaq üçün Konsolu açın.

Addım 2: AWS IOT "şeyləri" işə başlayın

AWS IOT ilə işə başlayın
AWS IOT ilə işə başlayın
AWS IOT ilə işə başlayın
AWS IOT ilə işə başlayın
  1. AWS xidmətləri axtarış çubuğunda "AWS IoT" axtarın.
  2. AWS hesabınızda qeydiyyatdan keçmiş bütün IoT cihazlarına baxa biləcəyiniz AWS IoT Console tablosuna keçmək üçün "Başla" düyməsini basın.

Addım 3: AWS IOT "şey" in qeydiyyatı

AWS IOT -nun qeydiyyatı
AWS IOT -nun qeydiyyatı
AWS IOT -nun qeydiyyatı
AWS IOT -nun qeydiyyatı
AWS IOT -un qeydiyyatı
AWS IOT -un qeydiyyatı
  1. Naviqasiya çubuğunda, IoT "Şeyi" idarə etmək üçün gedin.
  2. Hələ bir şeyiniz yoxdursa "Bir şeyi qeyd et" düyməsini basın. (Əgər bir şeyiniz varsa, axtarış nişanının yanındakı ekranın sağ üst hissəsindəki "Yarat" düyməsini basın.)
  3. "Tək bir şey yaradın" adlı ilk düyməni basın.
  4. Əşyanın adı olaraq "RaspberryPi" yazın. Bu addım üçün "Ad" dan başqa heç bir giriş tələb olunmur. Bunu etdikdən sonra növbəti düyməni basın.

Addım 4: Sertifikatın aktivləşdirilməsi

Sertifikatın aktivləşdirilməsi
Sertifikatın aktivləşdirilməsi
Sertifikatın aktivləşdirilməsi
Sertifikatın aktivləşdirilməsi
  1. Növbəti addımda "sertifikat yaratmaq" düyməsini basın.
  2. Növbəti səhifədəki 4 yükləmə bağlantısını yükləyin və işləyən bir qovluğa və ya qovluğa saxlayın. Kök CA faylını saxlamaq üçün sağ klikləyin və kimi qeyd edin.
  3. "Aktivləşdir" düyməsini basın və uğur mesajı görünməlidir.
  4. Hər bir fayl adının qarşısındakı rəqəmləri silməklə və kök CA faylını "rootca.pem" adlandıraraq fayllar üçün dostluq adlarından istifadə edin.
  5. Davam etmək üçün "Siyasət əlavə et" düyməsini basın.

Addım 5: Sertifikatınıza Siyasət əlavə edin

Sertifikatınıza Siyasət əlavə edin
Sertifikatınıza Siyasət əlavə edin
Sertifikatınıza Siyasət Əlavə Etmək
Sertifikatınıza Siyasət Əlavə Etmək
Sertifikatınıza Siyasət Əlavə Etmək
Sertifikatınıza Siyasət Əlavə Etmək
  1. Növbəti səhifədə heç bir siyasətiniz yoxdursa, "Siyasət Yarat" düyməsini basaraq sizə bunu etməyi təklif edəcəklər.
  2. Mövcud bir siyasətiniz varsa, aşağıdakı "Yeni siyasət yarat" düyməsini basın.
  3. Siyasət yaratmaq formasına aşağıdakı məlumatları daxil edin.

    Adı: RaspberryPiSecurityPolicy

    Fəaliyyət: iot:*

    Mənbə ARN: *

    Təsiri: icazə verin

  4. Siyasətiniz "Təhlükəsizlik" altındakı "Siyasət" sekmesinde görünməlidir.
  5. Sonra, "Təhlükəsizlik" altındakı "Sertifikatlar" sekmesine gedin və siyasətinizi əvvəllər yaratdığınız sertifikata əlavə edin.
  6. Növbəti səhifədə siyasətinizi və sonra "Əlavə et" düyməsini basın.
  7. Yaratdığınız şeyin Təfərrüatlar səhifəsində, "Qarşılıqlı əlaqə" sekmesinin altında, kopyalanmalı və saxlanmalı olan bir REST API son nöqtəsi var.
  8. AWS -in indi siyasətə əlavə edilmiş və sertifikatı olan bir şeyi olmalıdır.

Addım 6: AWS SNS mövzusu üçün ilkin qurulma

AWS SNS Mövzu üçün İlkin Quraşdırma
AWS SNS Mövzu üçün İlkin Quraşdırma
AWS SNS Mövzu üçün İlkin Quraşdırma
AWS SNS Mövzu üçün İlkin Quraşdırma

SSH -ni Raspberry Pi -yə daxil edin və aşağıdakı pip əmrini istifadə edərək AWS CLI qurun:

sudo pip install awscli

AWS CLI əmr tamamlama xüsusiyyətini ehtiva edir, lakin standart olaraq quraşdırılmır. Raspberry Pi -nin CLI interfeysində əmr tamamlama xüsusiyyətini qurmaq üçün aşağıdakı əmrdən istifadə edin:

tamamlayın -C aws_completer aws

Aşağıdakı əmri istifadə edərək AWS CLI -ni Giriş Açar Kimliyi, Gizli Giriş Açarı, AWS Bölgə Adı və Komanda Çıxış formatı ilə konfiqurasiya edin:

aws konfiqurasiya edin

Sonra konsol aşağıdakı məlumatları doldurmağınızı istəyəcək:

pi@raspberrypi: ~ $ aws konfiqurasiya edin

AWS Giriş Açar Kimliyi [None]: "İstifadəçinizin Giriş Açar Kimliyini bura qoyun" AWS Gizli Giriş Açarı [Heç biri]: "İstifadəçinizin Gizli Giriş Açarını bura qoyun" Varsayılan bölgə adı [Yoxdur]: eu-mərkəzi-1 Varsayılan çıxış formatı [Heç biri]: json pi@raspberrypi: ~ $

Addım 7: Iot-role.trust.json Faylının Yaradılması

Iot-role.trust.json Faylının Yaradılması
Iot-role.trust.json Faylının Yaradılması
Iot-role.trust.json Faylının Yaradılması
Iot-role.trust.json Faylının Yaradılması
  1. İot-role.trust.json fayl adı ilə yuxarıdakı IAM siyasəti ilə bir JSON faylı yaradın.
  2. Aşağıdakı əmri istifadə edərək AWS CLI istifadə edərək rol yaradın

aws iam yaratmaq rolu-rol-ad mənim-iot-rolum-rol-siyasət-sənəd sənəd sənədi: //iot-role-trust.json

Addım 8: Iot-policy.json Faylının Yaradılması

Iot-policy.json Faylının Yaradılması
Iot-policy.json Faylının Yaradılması
Iot-policy.json Faylının Yaradılması
Iot-policy.json Faylının Yaradılması
  1. İot-policy.json fayl adı ilə yuxarıdakı siyasətlə bir JSON faylı yaradın.
  2. Aşağıdakı əmri istifadə edərək AWS CLI istifadə edərək rol siyasətini yaradın:

aws iam put-role-policy-rol adı IoTRole --policy-name iot-policy --policy-document file: //iot-policy.json

Addım 9: AWS SNS Mövzusu yaradın (1 -ci hissə)

AWS SNS Mövzusu yaradın (1 -ci hissə)
AWS SNS Mövzusu yaradın (1 -ci hissə)
AWS SNS Mövzusu yaradın (1 -ci hissə)
AWS SNS Mövzusu yaradın (1 -ci hissə)
AWS SNS Mövzusu yaradın (1 -ci hissə)
AWS SNS Mövzusu yaradın (1 -ci hissə)
  1. AWS xidmətləri axtarış çubuğunda "SNS" xidmətini axtarın və ya https://us-west-2.console.aws.amazon.com/sns/home… ünvanına gedin.
  2. Mövzu olmadığından mövzu yaratmaq üçün "Yeni mövzu yarad" düyməsini basın.
  3. Mövzu adınızı və görünən adınızı yazın və "Mövzu yarat" düyməsini basın və bütün addımlar uğurlu olduqda yeni bir mövzu görünəcək.
  4. "Hərəkətlər" açılan düyməsini və "Mövzu siyasətini redaktə et" düyməsini basın.

Addım 10: AWS SNS Mövzusu yaradın (2 -ci hissə)

AWS SNS Mövzusu yaradın (2 -ci hissə)
AWS SNS Mövzusu yaradın (2 -ci hissə)
AWS SNS Mövzusu yaradın (2 -ci hissə)
AWS SNS Mövzusu yaradın (2 -ci hissə)
AWS SNS Mövzusu yaradın (2 -ci hissə)
AWS SNS Mövzusu yaradın (2 -ci hissə)
  1. Hər kəsin nəşr etməsinə və abunə olmasına icazə vermək üçün siyasət qurun, çünki bu AWSEducate hesabının məhdudiyyətləridir.
  2. Bu mövzuda yayımlanan yenilikləri almaq üçün bu mövzuya abunə olun.
  3. Protokolu "E -poçt" olaraq dəyişdirin və son nöqtədə e -poçtunuzu daxil edin.

  4. Son nöqtənizi yazdığınız e -poçtunuza gedin, mövzuya abunə olmaq üçün e -poçt abunəliyinizi təsdiqləmək üçün təsdiq linkinə vurun.
  5. "AWS IoT" xidmətlərinə gedin, soldakı naviqasiya menyusunda "Akt" düyməsini basın. Bu səhifə, qaydalarınızın göstərildiyi yerdir və baxmaq və redaktə etmək üçün əlçatandır. Hal -hazırda IoT şeyiniz üçün heç bir qayda yoxdur, "Qayda yaradın" düyməsini basın.

Addım 11: AWS SNS Mövzusu yaradın (3 -cü hissə)

AWS SNS Mövzusu yaradın (3 -cü hissə)
AWS SNS Mövzusu yaradın (3 -cü hissə)
AWS SNS Mövzusu yaradın (3 -cü hissə)
AWS SNS Mövzusu yaradın (3 -cü hissə)
AWS SNS Mövzusu yaradın (3 -cü hissə)
AWS SNS Mövzusu yaradın (3 -cü hissə)
  1. Qaydanız üçün Ad sahəsinə bir ad yazın. Təsvir sahəsində, qaydanız üçün bir şərh yazın. Mesaj mənbəyi bölməsinə davam edərək, "SQL versiyasından istifadə" bölməsində ən yenilənmiş SQL versiyasını seçərdik. MQTT mesajının hamısını mövzudan seçmək üçün atributa * yazın, vəziyyətimizdə mövzumuz “TempHumid” dir.
  2. Sonra qaydanız üçün "SNS" bildiriş hərəkəti əlavə edin. Sonra, "Fəaliyyəti Konfiqurasiya et" düyməsini basın.
  3. "Fəaliyyəti konfiqurasiya et" səhifəsində yeni yaratdığınız SNS mövzusunu və mesaj formatını RAW olaraq seçin. Bundan sonra, AWS CLI istifadə edərək yeni yaratdığınız rolu seçin və "Fəaliyyət əlavə et" düyməsini basın.
  4. Hərəkətiniz konfiqurasiya ediləcək və "Qayda yaradın" a qayıdacaq.
  5. Qaydanı redaktə etmək istəyirsinizsə, redaktə edin.

Addım 12: Amazon S3 -də bir kova yaradın

Amazon S3 -də bir kova yaradın
Amazon S3 -də bir kova yaradın
Amazon S3 -də bir kova yaradın
Amazon S3 -də bir kova yaradın
Amazon S3 -də bir kova yaradın
Amazon S3 -də bir kova yaradın
  1. AWS axtarış çubuğunda S3 axtarın.
  2. Başlamaq üçün Amazon S3 səhifəsində "Kova Yarat" düyməsini basın.
  3. Aşağıdakı məlumatlarla görünən açılan formu doldurun:

    • Kova Adı: seroma-bucket (bu, bütün mövcud Amazon S3 kovalarında unikal olmalıdır)
    • Bölgə: ABŞ Qərbi (Oregon)
    • Ayarları Kopyala: (Yoxla)
  4. 2-3 -cü addımlar üçün "İrəli" düyməsinə basaraq onu atlayın, çünki dəyişdiriləcək heç nə yoxdur. 4 -cü addımda "Kova yaradın" düyməsini basın.
  5. Yaradıldıqdan sonra çömçənizi ana səhifədə görməlisiniz.

Addım 13: AWS Siyasəti yaradın (1 -ci hissə)

AWS Siyasəti yaradın (1 -ci hissə)
AWS Siyasəti yaradın (1 -ci hissə)
AWS Siyasəti yaradın (1 -ci hissə)
AWS Siyasəti yaradın (1 -ci hissə)
AWS Siyasəti yaradın (1 -ci hissə)
AWS Siyasəti yaradın (1 -ci hissə)
  1. Yuxarıdakı səhifəyə daxil olmaq üçün yaratdığınız kovanı vurun, sonra "İcazələr" sekmesinde "Kova Siyasəti" nə keçin.
  2. Sonra AWS siyasətinizi yaratmaq üçün səhifənin altındakı "Siyasət Yaradan" bağlantısını vurun.
  3. Formada aşağıdakı dəyərləri daxil edin:

    • Siyasət növü: S3 Kova Siyasəti
    • Təsiri: icazə verin
    • Müdir: *
    • AWS Xidməti: Amazon S3
    • Hərəkətlər: GetObject
    • Amazon Resurs Adı (ARN): arn: aws: s3::: seroma-bucket
  4. Məlumatı doldurduqdan sonra Bəyanat əlavə et düyməsini basın.
  5. "Siyasət Yarat" düyməsini basın.

Addım 14: AWS Siyasəti yaradın (2 -ci hissə)

AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
AWS Siyasəti yaradın (2 -ci hissə)
  1. Yaradılmış kodları kopyalayın və bağlayın.
  2. Amazon S3 Bucket Policy redaktorunuza qayıdın və əvvəllər kopyalanan kodları yapışdırın.
  3. Resurs kodlarının arxasındakı kodlara yuxarıdakı şəkildəki kimi "/*" əlavə edin və sonra saxla düyməsini basın.
  4. Bunu etdikdən sonra kovanız uğurla qurulacaq və istifadəyə hazır olacaq.

Addım 15: DynamoDB üçün Masalar Yaratmaq

DynamoDB üçün masalar yaratmaq
DynamoDB üçün masalar yaratmaq
DynamoDB üçün masalar yaratmaq
DynamoDB üçün masalar yaratmaq
  1. AWS Services axtarış çubuğunda DynamoDB axtarın
  2. "Cədvəl yaradın" düyməsini basın və aşağıdakı məlumatlarla 3 cədvəl yaradın: (Yalnız "masa adı" və "əsas açar" dəyişdirilir)

    • accesslog, pk datetimevalue
    • otaq vəziyyəti, pk datetimevalue
    • personal məlumatları, pk istifadəçi adı

Addım 16: Roomstatus.py

Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py
Roomstatus.py

Bu bölmədə hər dəqiqə server otağının özü ilə bağlı bütün məlumatları yazan roomstatus.py kodu var. Bura temperatur, rütubət, hərəkət (doğru olarsa şəkillər və videolar) və giriş qeydləri daxildir. Ayrıca məlumatları Google elektron cədvəlinə, məlumatları DynamoDB -yə, şəkilləri və videoları (əgər varsa) S3 -ə yazır, məlumatları LCD ekranda göstərir, pozuntudan şübhələndikdə və ya temperatur və ya rütubət nizamsız olduqda SMS və e -poçt göndərir..

Python fayllarını işə salmaq üçün qovluğu faylın yerləşdiyi yerə dəyişdirin və konsola yazın: "sudo python"

Şəkil 2: SMS və E -poçt xəbərdarlıqlarına icazə vermək və S3 -ə yükləmək üçün elan edilmiş funksiyalar

Şəkil 3: Funksiyalar və RPi -nin işləməsi üçün elan edilən dəyişənlər

Şəkil 4: RPi -dən temperatur və rütubət dəyərlərini alan döngənin başlanğıcı. Ayrıca məlumatları Google elektron cədvəlinə yazır

Şəkil 5: Döngünün təhlükəsizlik hissəsi. Yalnız 7 -dən 7 -yə (aktiv olmayan saatlarda) aktiv olacaq. Bir dəqiqə ərzində hərəkəti yoxlayacaq. Hərəkət aşkar edilərsə, bir şəkil və video çəkəcək, S3 -ə yükləyəcək, eyni zamanda daha sonra istinad üçün DynamoDB -ə məlumat yazacaq. Bundan sonra, bir şey qaydasız olarsa, SMS və E -poçt göndərəcək.

Şəkil 6: Döngənin sonu. DynamoDB -yə məlumat yazır və buna uyğun olaraq xəbərdarlıq göndərir. Döngünün son sətri, skriptin növbəti dəqiqəyə çatana qədər yuxuya getməsini təmin edəcək.

Addım 17: Rfid.py

Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py
Rfid.py

Bu bölmədə, heyət üzvünün server otağına daxil olmasını izləmək funksiyasını əlavə edən rfid.py kodu var. Məlumat pozuntusunun qarşısını almaq üçün bir işçinin iş saatından sonra server otağına daxil olmasına icazə verilmədiyi Seroma -nın təhlükəsizlik aspektinin bir hissəsidir. Bir pozuntudan şübhələnildikdə bütün işçilərə bir e -poçt və SMS göndərir.

Şəkil 2: RFID oxucu məntiqinin başlanğıcı. Bir kart oxuyana qarşı tarandıqda, kartın unikal identifikatoru (uid) alınır. Daha sonra, kartın hər hansı bir işçiyə aid olub olmadığını öyrənmək üçün kadr məlumatları cədvəlində tapmağa çalışırıq. qeyri-iş saatları. Əgər belədirsə, qalan işçiləri SMS və abunə edilmiş e -poçt ünvanlarına göndərəcək. Hələ də iş saatlarında olarsa, verilənlər bazasındakı accesslog cədvəlinə müvafiq məlumatların olduğu bir sətir yazacaq. Həmçinin LCD displeydə qarşılama mesajı göstərəcək.

Addım 18: Server.py

Server.py
Server.py
Server.py
Server.py
Server.py
Server.py

Bu server.py faylıdır. Veb portal üçün Flask çərçivəsindən istifadə edəcəyik. /Şablonların yerləşdiriləcəyi HTML faylları da əlavə olunur.

Şəkil 1: Şüşə üçün ilk marşrut müəyyən edilmişdir. Daxil olmadıqda istifadəçini giriş səhifəsinə, daxil olduqda isə tablosuna səhifəsinə yönləndirəcək. Canlı yayım xüsusiyyətində istifadə ediləcək bir funksiyanı da təyin edir

Şəkil 2, 3, 4: Şüşə üçün marşrutlar. DynamoDB cədvəlindən məlumat alır və sonra HTML fayllarına qaytarır ki, orada istifadə olunsun.

Şəkil 5: Şüşə üçün son 2 marşrut. Çıxış funksiyasını və canlı yayım funksiyasını idarə edir. Veb saytın işləyəcəyi limanı da göstərir.

Addım 19: Telegram.py

Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py
Telegram.py

Bu hissədə Seroma'nın teleqram botunun kodu var. Telegramın Bot API -sinə toxunmaq üçün telepot kitabxanasından istifadə edir. Aldığı sorğuları qəbul edərək və istifadəçiyə müvafiq məlumatları göstərərək işləyir. İstifadəçi əmrlərin tam siyahısı üçün 'yardım' yaza bilər.

Şəkil 1, 2: Bir teleqram botu qurmaq üçün BotFather istifadə etməlisiniz. Kodumuzda ehtiyac duyduğumuz HTTP API -ni əldə etmək üçün təlimatları keçin.

Şəkil 4: İstifadəçinin tələbi əsasında verilənlər bazasından müəyyən sayda məlumat satırını götürən bir funksiya nümunəsi

Şəkil 5: İstifadəçinin girişini necə qəbul edirik və buna uyğun olaraq nəyin işləyəcəyinə qərar veririk.

Addım 20: Canlı yayım (camera_pi.py)

Canlı yayım (camera_pi.py)
Canlı yayım (camera_pi.py)
Canlı yayım (camera_pi.py)
Canlı yayım (camera_pi.py)
Canlı yayım (camera_pi.py)
Canlı yayım (camera_pi.py)

Server otağında izləmə sistemimiz üçün yeni bir xüsusiyyət tətbiq etdik, Server Otağında baş verənlərin canlı axını, buna istənilən vaxt, hər yerdə daxil olmaq mümkündür. Bu canlı axın necə işləyir: Flaskda, Pi Kamera ilə birlikdə edilən bir xüsusiyyətdir. Video çərçivələr real həyatda olduğu kimi endirilir, buna görə də video çərçivələri yükləndikdə və birlikdə tikildikdə bir az gecikmənin (1-2 saniyə) olduğunu görə bilərsiniz. Bu iş parçacığı olmadan edilə bilməz, çünki arxa plan ipi kameradan çərçivələri oxuyur və cari çərçivəni saxlayır. Bütün bu çərçivələri bir araya gətirmək daha sonra canlı bir axın çıxaracaq.

Şəkil 2: Bu, bütün video çərçivələrin saxlandığı ayrı bir sənəddir və gördüyünüz kimi moruq pi kameramıza daxil olmaq üçün picamera modulundan istifadə edirik. Bir sinif Kameramız var ki, funksiyanı canlı yayım kimi idxal edə bilək və birdən çox şəkil birləşdirilməsin, buna görə də əsas tətbiq sənədində pərdə arxasında baş verənlərdən narahatlıq keçirmədən canlı yayım olaraq qəbul ediləcək.

Şəkil 3: Bu, canlı yayım hissəsinin kodlandığı server.py faylımızın bir hissəsidir. Bunun üçün idxal etdiyimiz əsas sinif, server.py faylımızın üstündəki camera_pi.py faylımızdakı Kamera. Gen, kök qovluğumuzda bir funksiya təyin etdik, ancaq bu, yalnız canlı yayımımızın olduğu /video_feed -ə keçdiyimizdə, bu funksiyanı keçərək veb səhifədəki canlı axını geri qaytardığı zaman istifadəyə verilir.

Tövsiyə: