Isi kandungan:

Seroma: Pengurus Bilik Pelayan: 20 Langkah
Seroma: Pengurus Bilik Pelayan: 20 Langkah

Video: Seroma: Pengurus Bilik Pelayan: 20 Langkah

Video: Seroma: Pengurus Bilik Pelayan: 20 Langkah
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Julai
Anonim
Seroma: Pengurus Bilik Pelayan
Seroma: Pengurus Bilik Pelayan

Seroma adalah pengurus bilik pelayan all-in-one yang membolehkan pengguna memeriksa status pelayan (suhu dan kelembapan), log akses bilik pelayan, dan juga memantau bilik pelayan itu sendiri untuk sebarang pelanggaran keselamatan.

Langkah 1: Log masuk ke Akaun AWS Anda

Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
Log masuk ke Akaun AWS Anda
  1. Bagi kami, kami log masuk melalui pintu masuk pelajar AWS mendidik kerana kami mempunyai akaun pelajar.
  2. Pergi ke tab "Akaun AWS" pada menu navigasi di kanan atas.
  3. Klik "Pergi ke Akaun Permulaan AWS Educate"
  4. Buka Konsol untuk mengakses Konsol Pengurusan AWS anda.

Langkah 2: Bermula dengan "perkara" AWS IOT

Bermula dengan AWS IOT
Bermula dengan AWS IOT
Bermula dengan AWS IOT
Bermula dengan AWS IOT
  1. Cari "AWS IoT" di bar carian perkhidmatan AWS.
  2. Klik "Bermula" untuk meneruskan ke papan pemuka AWS IoT Console di mana anda dapat melihat semua peranti IoT yang didaftarkan dalam akaun AWS anda.

Langkah 3: Mendaftarkan "perkara" AWS IOT

Mendaftar IOT AWS
Mendaftar IOT AWS
Mendaftar IOT AWS
Mendaftar IOT AWS
Mendaftar IOT AWS
Mendaftar IOT AWS
  1. Di bar navigasi, arahkan untuk menguruskan IoT "Perkara" anda.
  2. Klik pada "Daftarkan sesuatu" jika anda belum mempunyai sesuatu. (Jika anda sudah memiliki sesuatu, klik pada tombol "Buat" di kanan atas layar di sebelah tab carian.)
  3. Klik pada butang pertama yang disebut "Buat satu perkara".
  4. Ketik "RaspberryPi" sebagai nama perkara. Untuk langkah ini, tidak ada input selain "Nama" yang diperlukan. Selepas melakukannya, klik seterusnya.

Langkah 4: Mengaktifkan Sijil

Mengaktifkan Sijil
Mengaktifkan Sijil
Mengaktifkan Sijil
Mengaktifkan Sijil
  1. Pada langkah seterusnya, klik pada butang "buat sijil".
  2. Muat turun dan simpan 4 pautan muat turun di halaman seterusnya ke dalam direktori atau folder yang berfungsi. Untuk menyimpan fail CA root, klik kanan dan save-as.
  3. Klik "Aktifkan" dan mesej kejayaan akan muncul.
  4. Gunakan nama yang mesra untuk fail dengan membuang nombor di depan setiap nama fail, dan menamakan semula fail CA root menjadi "rootca.pem".
  5. Klik "Lampirkan polisi" untuk meneruskan.

Langkah 5: Menambah Polisi pada Sijil Anda

Menambah Polisi pada Sijil Anda
Menambah Polisi pada Sijil Anda
Menambah Polisi pada Sijil Anda
Menambah Polisi pada Sijil Anda
Menambah Polisi pada Sijil Anda
Menambah Polisi pada Sijil Anda
  1. Di halaman berikutnya, jika Anda tidak memiliki kebijakan, mereka akan meminta Anda untuk membuatnya di butang "Buat Dasar".
  2. Sekiranya anda sudah memiliki kebijakan yang ada, klik pada butang "Buat kebijakan baru" di bawah.
  3. Masukkan maklumat berikut ke dalam borang pembuatan polisi.

    Nama: RaspberryPiSecurityPolicy

    Tindakan: iot: *

    Sumber ARN: *

    Kesan: Benarkan

  4. Polisi anda kemudiannya akan muncul di tab "Dasar" di bawah "Keselamatan".
  5. Selanjutnya, pergi ke tab "Sijil" yang juga berada di bawah "Keamanan", dan lampirkan polisi anda ke sijil yang anda buat sebelumnya.
  6. Pada halaman seterusnya, klik pada polisi anda dan kemudian klik "Lampirkan".
  7. Di halaman Perincian perkara yang anda buat, di bawah tab "Berinteraksi", terdapat titik akhir REST API yang harus disalin dan disimpan.
  8. AWS kini harus mempunyai Perkara yang dilampirkan pada polisi dan mempunyai sijil.

Langkah 6: Persediaan Awal untuk Topik AWS SNS

Persediaan Awal untuk Topik AWS SNS
Persediaan Awal untuk Topik AWS SNS
Persediaan Awal untuk Topik AWS SNS
Persediaan Awal untuk Topik AWS SNS

SSH ke Raspberry Pi dan pasang AWS CLI menggunakan arahan pip berikut:

sudo pip pasang awscli

AWS CLI merangkumi ciri penyelesaian perintah tetapi tidak dipasang secara lalai. Gunakan arahan berikut untuk memasang ciri penyelesaian perintah pada antara muka CLI Raspberry Pi:

lengkap -C aws_completer aws

Konfigurasikan AWS CLI dengan Access Key ID, Secret Access Key, AWS Region Name dan Command Output format menggunakan arahan berikut:

aws konfigurasi

Konsol kemudian akan meminta anda untuk mengisi maklumat berikut:

pi @ raspberrypi: ~ $ aws konfigurasi

ID Kunci Akses AWS [Tiada]: "Masukkan ID Kunci Akses Pengguna anda di sini" Kunci Akses Rahsia AWS [Tiada]: "Masukkan Kunci Akses Rahsia Pengguna anda di sini" Nama wilayah lalai [Tiada]: eu-central-1 Format output lalai [Tiada]: json pi @ raspberrypi: ~ $

Langkah 7: Membuat Fail Iot-role.trust.json

Membuat Fail Iot-role.trust.json
Membuat Fail Iot-role.trust.json
Membuat Fail Iot-role.trust.json
Membuat Fail Iot-role.trust.json
  1. Buat fail JSON dengan dasar IAM di atas dengan nama fail iot-role.trust.json.
  2. Buat peranan menggunakan AWS CLI menggunakan arahan berikut

aws iam create-role --role-name my-iot-role - asume-role-policy-file file: //iot-role-trust.json

Langkah 8: Membuat Fail Iot-policy.json

Membuat Fail Iot-policy.json
Membuat Fail Iot-policy.json
Membuat Fail Iot-policy.json
Membuat Fail Iot-policy.json
  1. Buat fail JSON dengan dasar di atas dengan nama fail iot-policy.json.
  2. Buat dasar peranan menggunakan AWS CLI menggunakan arahan berikut:

aws iam put-role-policy --role-name IoTRole --policy-name iot-Policy - fail-dokumen dokumen: //iot-policy.json

Langkah 9: Buat Topik AWS SNS (Bahagian 1)

Buat Topik AWS SNS (Bahagian 1)
Buat Topik AWS SNS (Bahagian 1)
Buat Topik AWS SNS (Bahagian 1)
Buat Topik AWS SNS (Bahagian 1)
Buat Topik AWS SNS (Bahagian 1)
Buat Topik AWS SNS (Bahagian 1)
  1. Di bar carian perkhidmatan AWS, Cari perkhidmatan "SNS" atau pergi ke
  2. Oleh kerana anda tidak mempunyai topik sekarang, klik "Buat topik baru" untuk membuat topik.
  3. Ketik nama topik dan nama paparan anda dan klik "Buat topik" dan topik baru akan muncul ketika semua langkah berhasil.
  4. Klik pada butang tarik turun "Tindakan" dan "Edit dasar topik".

Langkah 10: Buat Topik AWS SNS (Bahagian 2)

Buat Topik AWS SNS (Bahagian 2)
Buat Topik AWS SNS (Bahagian 2)
Buat Topik AWS SNS (Bahagian 2)
Buat Topik AWS SNS (Bahagian 2)
Buat Topik AWS SNS (Bahagian 2)
Buat Topik AWS SNS (Bahagian 2)
  1. Tetapkan polisi untuk membolehkan semua orang menerbitkan dan melanggan, kerana ini adalah had akaun AWSEducate.
  2. Langgan topik ini untuk menerima kemas kini yang diterbitkan untuk topik ini.
  3. Tukar protokol ke "E-mel" dan masukkan e-mel anda di titik akhir.

  4. Pergi ke e-mel anda di mana anda mengetik titik akhir anda, klik pada pautan pengesahan untuk mengesahkan langganan e-mel anda untuk melanggan topik tersebut.
  5. Navigasi ke perkhidmatan "AWS IoT", pada menu navigasi di sebelah kiri, klik "Bertindak". Halaman ini adalah tempat peraturan anda ditampilkan dan tersedia untuk anda lihat dan edit. Saat ini, tidak ada peraturan untuk hal IoT Anda, klik "Buat aturan".

Langkah 11: Buat Topik AWS SNS (Bahagian 3)

Buat Topik AWS SNS (Bahagian 3)
Buat Topik AWS SNS (Bahagian 3)
Buat Topik AWS SNS (Bahagian 3)
Buat Topik AWS SNS (Bahagian 3)
Buat Topik AWS SNS (Bahagian 3)
Buat Topik AWS SNS (Bahagian 3)
  1. Taipkan nama di medan Nama untuk peraturan anda. Di medan Penerangan, ketikkan keterangan untuk peraturan anda. Melanjutkan ke bahagian Sumber mesej, kami akan memilih versi SQL yang paling baru di bahagian "Menggunakan versi SQL". Ketik * di atribut untuk memilih keseluruhan pesan MQTT dari topik, dalam hal ini topik kita adalah "TempHumid".
  2. Kemudian tambahkan tindakan pemberitahuan "SNS" untuk peraturan anda. Kemudian, klik "Konfigurasikan tindakan".
  3. Di halaman "Konfigurasi tindakan", pilih topik SNS yang baru saja Anda buat dan format pesan sebagai RAW. Selepas itu, pilih peranan yang baru anda buat menggunakan AWS CLI dan klik "Tambah tindakan".
  4. Tindakan anda akan dikonfigurasi dan kembali ke "Buat aturan".
  5. Klik edit jika anda ingin mengedit peraturan.

Langkah 12: Buat Baldi di Amazon S3

Buat Baldi di Amazon S3
Buat Baldi di Amazon S3
Buat Baldi di Amazon S3
Buat Baldi di Amazon S3
Buat Baldi di Amazon S3
Buat Baldi di Amazon S3
  1. Cari S3 di bar carian AWS.
  2. Di halaman Amazon S3, klik pada butang "Buat Bucket" untuk memulakan.
  3. Isi borang pop timbul yang muncul dengan maklumat berikut:

    • Nama Bucket: seroma-bucket (ini mesti unik di semua baldi Amazon S3 yang ada)
    • Wilayah: AS Barat (Oregon)
    • Tetapan Salin: (Abaikan)
  4. Untuk langkah 2 hingga 3, langkau dengan mengklik "Next" kerana tidak ada yang boleh diubah. Pada langkah 4, klik "Buat baldi".
  5. Setelah dibuat, anda akan melihat baldi anda di halaman utama.

Langkah 13: Buat Dasar AWS (Bahagian 1)

Hasilkan Dasar AWS (Bahagian 1)
Hasilkan Dasar AWS (Bahagian 1)
Hasilkan Dasar AWS (Bahagian 1)
Hasilkan Dasar AWS (Bahagian 1)
Hasilkan Dasar AWS (Bahagian 1)
Hasilkan Dasar AWS (Bahagian 1)
  1. Klik pada baldi yang anda buat untuk memasuki halaman di atas, kemudian teruskan ke "Dasar Bucket" di bawah tab "Kebenaran".
  2. Seterusnya, klik pada pautan "Penjana Polisi" di bahagian bawah halaman untuk menghasilkan dasar AWS anda.
  3. Dalam borang, masukkan nilai berikut:

    • Jenis Dasar: Dasar Baldi S3
    • Kesan: Benarkan
    • Pengetua: *
    • Perkhidmatan AWS: Amazon S3
    • Tindakan: GetObject
    • Nama Sumber Amazon (ARN): arn: aws: s3::: seroma-bucket
  4. Setelah mengisi maklumat, klik Tambah Penyataan.
  5. Klik pada butang "Jana Dasar".

Langkah 14: Buat Dasar AWS (Bahagian 2)

Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
Hasilkan Dasar AWS (Bahagian 2)
  1. Salin kod yang dihasilkan dan klik tutup.
  2. Kembali ke editor Dasar Bucket Amazon S3 anda dan tampal kod yang disalin sebelumnya.
  3. Tambahkan "/ *" ke dalam kod tepat di belakang kod Sumber, seperti pada gambar di atas, kemudian klik simpan.
  4. Setelah melakukannya, baldi anda akan berjaya disiapkan dan siap digunakan.

Langkah 15: Membuat Jadual untuk DynamoDB

Membuat Jadual untuk DynamoDB
Membuat Jadual untuk DynamoDB
Membuat Jadual untuk DynamoDB
Membuat Jadual untuk DynamoDB
  1. Cari DynamoDB di bar carian Perkhidmatan AWS
  2. Klik "Buat jadual" dan buat 3 jadual dengan maklumat di bawah: (Hanya "nama jadual" dan "kunci utama" yang diubah)

    • log masuk, pk datetimevalue
    • status bilik, nilai data pk
    • staffdata, pk nama pengguna

Langkah 16: Roomstatus.py

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

Bahagian ini mengandungi kod untuk roomstatus.py, yang menulis semua data mengenai ruang pelayan itu sendiri setiap minit. Ini termasuk suhu, kelembapan, gerakan (gambar dan video jika benar), dan log akses. Ia juga menulis data ke Google Spreadsheet, data ke DynamoDB, gambar dan video (jika ada) ke S3, memaparkan maklumat di layar LCD, mengirim SMS dan E-mel apabila terdapat dugaan pelanggaran, atau ketika suhu atau kelembapan tidak teratur.

Untuk menjalankan fail python, ubah direktori ke lokasi fail dan ketik konsol: "sudo python"

Pic 2: Fungsi dinyatakan untuk membenarkan amaran SMS dan E-mel, dan memuat naik ke S3

Pic 3: Pemboleh ubah dinyatakan untuk fungsi dan RPi berfungsi

Pic 4: Permulaan gelung yang mendapat nilai suhu dan kelembapan dari RPi. Ia juga menuliskan data ke hamparan Google

Pic 5: Bahagian keselamatan gelung. Ia hanya akan diaktifkan dari jam 7 malam hingga 7 pagi (waktu tutup). Ia akan memeriksa pergerakan dalam jangka masa satu minit. Sekiranya gerakan dikesan, ia akan mengambil gambar dan video, memuat naiknya ke S3, sementara juga menulis maklumat ke DynamoDB untuk rujukan kemudian. Selepas itu, ia akan menghantar SMS dan E-mel sekiranya ada perkara yang tidak teratur.

Pic 6: Hujung gelung. Ia juga menulis data ke DynamoDB dan menghantar makluman dengan sewajarnya. Garis terakhir gelung akan membuat skrip tidur hingga minit berikutnya tercapai.

Langkah 17: Rfid.py

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

Bahagian ini mengandungi kod untuk rfid.py, yang menambahkan fungsi untuk dijejaki ketika anggota kakitangan memasuki ruangan pelayan. Ia juga merupakan aspek keselamatan Seroma, di mana anggota kakitangan tidak dibenarkan memasuki bilik pelayan selepas waktu pejabat, untuk mengelakkan pelanggaran data. Ia juga akan menghantar e-mel dan SMS kepada semua kakitangan sekiranya terdapat dugaan pelanggaran.

Pic 2: Permulaan logik pembaca RFID. Setiap kali kad diimbas ke arah pembaca, kad unik (uid) kad akan diambil. Selepas itu, kami cuba mencari nilai uid kad di jadual data staff untuk melihat apakah kad itu milik salah seorang kakitangan. Gambar 3: Sekiranya uid kad ada di dalam pangkalan data, ia akan memeriksa sama ada kad itu semasa pejabat di luar waktu. Sekiranya ada, pihaknya akan memberitahu pegawai yang lain melalui SMS dan E-mel alamat e-mel yang dilanggan. Sekiranya masih pada waktu pejabat, ia akan menulis satu baris ke jadual akseslog dalam pangkalan data dengan data yang berkaitan. Ia juga akan memaparkan pesan selamat datang di paparan LCD.

Langkah 18: Server.py

Pelayan.py
Pelayan.py
Pelayan.py
Pelayan.py
Pelayan.py
Pelayan.py

Ini adalah fail server.py. Kami akan menggunakan kerangka Flask untuk portal web. Fail HTML yang akan dimasukkan / templat dilampirkan juga.

Pic 1: Laluan pertama untuk Flask ditentukan. Ini akan mengalihkan pengguna ke halaman log masuk jika mereka tidak log masuk, dan halaman papan pemuka jika mereka berada. Juga mendefinisikan fungsi yang akan digunakan dalam ciri live streaming

Gambar 2, 3, 4: Laluan untuk Kelalang. Ia mendapat data dari jadual DynamoDB dan kemudian mengembalikannya ke fail HTML sehingga dapat digunakan di sana.

Gambar 5: 2 laluan terakhir untuk Flask. Ia menangani fungsi log keluar dan fungsi live streaming. Ia juga menentukan pelabuhan yang akan dilayari laman web.

Langkah 19: Telegram.py

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

Bahagian ini merangkumi kod untuk bot telegram Seroma. Ia menggunakan perpustakaan telepot untuk mengetuk Telegram's Bot API. Ia berfungsi dengan menerima pertanyaan yang diterima dan memaparkan maklumat masing-masing kepada pengguna. Pengguna boleh menaip 'help' untuk senarai penuh arahan.

Pic 1, 2: Untuk menyediakan bot telegram, anda perlu menggunakan BotFather. Cukup jalankan arahan untuk mendapatkan HTTP API yang kami perlukan dalam kod kami.

Pic 4: Contoh fungsi yang mengambil sejumlah baris data dari pangkalan data berdasarkan permintaan pengguna

Pic 5: Bagaimana kami mengambil input pengguna dan memutuskan apa yang harus dijalankan dengan sewajarnya.

Langkah 20: Strim Langsung (camera_pi.py)

Strim Langsung (camera_pi.py)
Strim Langsung (camera_pi.py)
Strim Langsung (camera_pi.py)
Strim Langsung (camera_pi.py)
Strim Langsung (camera_pi.py)
Strim Langsung (camera_pi.py)

Kami telah menerapkan ciri baru untuk sistem pemantauan ruang pelayan kami, aliran langsung dari apa yang sedang berlaku di Bilik Server, ini dapat diakses pada bila-bila masa, di mana sahaja. Cara aliran langsung ini berfungsi: Ini adalah ciri yang dilakukan di Flask, bersama dengan Kamera Pi. Bingkai video dimuat turun seperti yang berlaku dalam kehidupan nyata, jadi anda sebenarnya dapat melihat bahawa terdapat sedikit kelewatan (1-2 saat) kerana bingkai video dimuat dan disambungkan bersama. Ini tidak dapat dilakukan tanpa melakukan threading, kerana thread latar belakang membaca bingkai dari kamera dan menyimpan bingkai saat ini. Menyusun semua bingkai ini bersama-sama akan menghasilkan aliran langsung.

Pic 2: Ini adalah fail berasingan di mana semua bingkai video disimpan dan seperti yang anda lihat, kami menggunakan modul picamera untuk mengakses kamera raspberry pi kami kerana itulah yang paling kami kenal. Kami memiliki Kamera kelas sehingga kami dapat mengimport fungsi seolah-olah itu adalah streaming langsung dan tidak menyatukan banyak gambar, oleh itu dalam fail aplikasi utama akan menjadikannya sebagai aliran langsung tanpa perlu risau tentang apa yang berlaku di belakang tabir.

Gambar 3: Ini adalah sebahagian daripada fail server.py kami di mana bahagian aliran langsung dikodkan. Kelas utama yang kami impor untuk ini adalah Kamera dari fail camera_pi.py kami di bahagian atas fail server.py kami. Kami menentukan fungsi di direktori root kami, gen, namun hanya akan digunakan ketika kita menuju ke / video_feed di mana streaming langsung kita berada, di mana ia akan melalui fungsi ini dan mengembalikan aliran langsung di halaman web.

Disyorkan: