İçindekiler:
- Adım 1: AWS Hesabınıza Giriş Yapın
- 2. Adım: AWS IOT "nesneleri"ne Başlarken
- 3. Adım: Bir AWS IOT "şeyini" kaydetme
- 4. Adım: Bir Sertifikayı Etkinleştirme
- Adım 5: Sertifikanıza İlke Ekleme
- 6. Adım: AWS SNS Konusu için İlk Kurulum
- 7. Adım: Iot-role.trust.json Dosyası Oluşturma
- Adım 8: Iot-policy.json Dosyası Oluşturma
- 9. Adım: Bir AWS SNS Konusu Oluşturun (Bölüm 1)
- Adım 10: Bir AWS SNS Konusu Oluşturun (Bölüm 2)
- 11. Adım: Bir AWS SNS Konusu Oluşturun (Bölüm 3)
- Adım 12: Amazon S3'te Bir Paket Oluşturun
- Adım 13: Bir AWS Politikası Oluşturun (Bölüm 1)
- Adım 14: Bir AWS Politikası Oluşturun (Bölüm 2)
- Adım 15: DynamoDB için Tablolar Oluşturma
- Adım 16: Roomstatus.py
- Adım 17: RFID.py
- Adım 18: Server.py
- Adım 19: Telegram.py
- 20. Adım: Canlı yayın (camera_pi.py)
Video: Seroma: Sunucu Odası Yöneticisi: 20 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Seroma, kullanıcıların sunucuların durumunu (sıcaklık ve nem), sunucu odasının erişim günlüklerini kontrol etmesine ve ayrıca herhangi bir güvenlik ihlali için sunucu odasının kendisini izlemesine olanak tanıyan hepsi bir arada bir sunucu odası yöneticisidir.
Adım 1: AWS Hesabınıza Giriş Yapın
- Bizimki için, bir öğrenci aws hesabımız olduğu için AWS eğitmen öğrenci ağ geçidi üzerinden giriş yaptık.
- Sağ üstteki gezinme menüsündeki “AWS Hesabı” sekmesine gidin.
- “AWS Educate Başlangıç Hesabınıza gidin” seçeneğine tıklayın
- AWS Yönetim Konsolunuza erişmek için Konsolu açın.
2. Adım: AWS IOT "nesneleri"ne Başlarken
- AWS hizmetleri arama çubuğunda “AWS IoT” ifadesini arayın.
- AWS hesabınızda kayıtlı tüm IoT cihazlarını görüntüleyebileceğiniz AWS IoT Konsolu panosuna geçmek için "Başlayın"a tıklayın.
3. Adım: Bir AWS IOT "şeyini" kaydetme
- Gezinme çubuğunda, IoT “Things”inizi yönetmek için gezinin.
- Henüz bir şeyiniz yoksa “Bir şey kaydet”e tıklayın. (Zaten bir şeyiniz varsa, ekranın sağ üst köşesindeki arama sekmesinin yanındaki "Oluştur" düğmesine tıklayın.)
- “Tek bir şey oluştur” adlı ilk düğmeye tıklayın.
- Nesnenin adı olarak “RaspberryPi” yazın. Bu adım için “Ad” dışında bir giriş gerekli değildir. Bunu yaptıktan sonra ileri'ye tıklayın.
4. Adım: Bir Sertifikayı Etkinleştirme
- Bir sonraki adımda, “sertifika oluştur” düğmesine tıklayın.
- Bir sonraki sayfada bulunan 4 indirme bağlantısını indirin ve bir çalışma dizini veya klasörüne kaydedin. Kök CA dosyasını kaydetmek için sağ tıklayın ve farklı kaydet.
- “Etkinleştir”e tıklayın ve bir başarı mesajı görünmelidir.
- Her dosya adının önündeki sayıları kaldırarak ve kök CA dosyasını "rootca.pem" olarak yeniden adlandırarak dosyalar için kolay adlar kullanın.
- Devam etmek için "Bir ilke ekle"yi tıklayın.
Adım 5: Sertifikanıza İlke Ekleme
- Bir sonraki sayfada poliçeniz yoksa “Politika Oluştur” butonundan poliçe yapmanızı isteyeceklerdir.
- Halihazırda mevcut bir poliçeniz varsa, aşağıdaki "Yeni poliçe oluştur" butonuna tıklayın.
-
Aşağıdaki bilgileri politika oluşturma formuna ekleyin.
İsim: RaspberryPiSecurityPolicy
Eylem: iot:*
Kaynak ARN: *
Etkisi: İzin ver
- Politikanız daha sonra “Güvenlik” altındaki “Politika” sekmesinde görünmelidir.
- Ardından, yine “Güvenlik” altında bulunan “Sertifikalar” sekmesine gidin ve politikanızı daha önce oluşturduğunuz sertifikaya ekleyin.
- Bir sonraki sayfada, politikanıza tıklayın ve ardından “Ekle”ye tıklayın.
- Oluşturduğunuz şeyin Ayrıntılar sayfasında, “Etkileşim” sekmesi altında, kopyalanması ve kaydedilmesi gereken bir REST API bitiş noktası vardır.
- AWS'nin artık bir ilkeye eklenmiş ve sertifikası olan bir Şey'i olmalıdır.
6. Adım: AWS SNS Konusu için İlk Kurulum
Raspberry Pi'ye SSH ve aşağıdaki pip komutunu kullanarak AWS CLI'yi kurun:
sudo pip kurulum awscli
AWS CLI, komut tamamlama özelliği içerir ancak varsayılan olarak yüklenmez. Raspberry Pi'nin CLI arayüzüne komut tamamlama özelliğini kurmak için aşağıdaki komutu kullanın:
tam -C aws_completer aws
Aşağıdaki komutu kullanarak AWS CLI'yi Erişim Anahtarı Kimliği, Gizli Erişim Anahtarı, AWS Bölge Adı ve Komut Çıkışı biçimiyle yapılandırın:
aws yapılandırmak
Ardından konsol sizden aşağıdaki bilgileri doldurmanızı isteyecektir:
pi@raspberrypi:~ $ aws yapılandır
AWS Erişim Anahtarı Kimliği [Yok]: "Kullanıcınızın Erişim Anahtarı Kimliğini buraya yazın" AWS Gizli Erişim Anahtarı [Yok]: "Kullanıcınızın Gizli Erişim Anahtarını buraya koyun" Varsayılan bölge adı [Yok]: eu-central-1 Varsayılan çıktı biçimi [Yok]: json pi@raspberrypi:~ $
7. Adım: Iot-role.trust.json Dosyası Oluşturma
- iot-role.trust.json dosya adıyla yukarıdaki IAM politikasına sahip bir JSON dosyası oluşturun.
- Aşağıdaki komutu kullanarak AWS CLI'yi kullanarak rolü oluşturun
aws iam create-role --role-name my-iot-role --assume-role-policy-document file://iot-role-trust.json
Adım 8: Iot-policy.json Dosyası Oluşturma
- iot-policy.json dosya adına sahip yukarıdaki politikaya sahip bir JSON dosyası oluşturun.
- Aşağıdaki komutu kullanarak AWS CLI'yi kullanarak rol ilkesini oluşturun:
aws iam put-role-policy --role-name IoTROle --policy-name iot-policy --policy-document file://iot-policy.json
9. Adım: Bir AWS SNS Konusu Oluşturun (Bölüm 1)
- AWS hizmetleri arama çubuğunda “SNS” hizmetini arayın veya https://us-west-2.console.aws.amazon.com/sns/home… adresine gidin.
- Şu anda konunuz olmadığı için konu oluşturmak için “Yeni konu oluştur”a tıklayın.
- Konu adınızı ve görünen adınızı yazın ve “Konu oluştur”a tıklayın, tüm adımlar başarılı olduğunda yeni bir konu görünecektir.
- "İşlemler" açılır düğmesine ve "Konu politikasını düzenle"ye tıklayın.
Adım 10: Bir AWS SNS Konusu Oluşturun (Bölüm 2)
- Bu, bir AWSEducate hesabının sınırlamaları olduğundan, herkesin yayınlamasına ve abone olmasına izin verecek şekilde politikayı ayarlayın.
- Bu konuyla ilgili yayınlanan güncellemeleri almak için bu konuya abone olun.
-
Protokolü “E-posta” olarak değiştirin ve son noktada e-postanızı girin.
- Uç noktanızı yazdığınız e-postanıza gidin, konuya abone olmak için e-posta aboneliğinizi onaylamak için onay bağlantısını tıklayın.
- “AWS IoT” hizmetlerine gidin, soldaki gezinme menüsünde “Hareket Et”e tıklayın. Bu sayfa, kurallarınızın görüntülendiği ve görüntüleyebileceğiniz ve düzenleyebileceğiniz yerdir. Şu anda IoT şeyiniz için herhangi bir kural yok, “Kural oluştur”a tıklayın.
11. Adım: Bir AWS SNS Konusu Oluşturun (Bölüm 3)
- Kuralınız için Ad alanına bir ad yazın. Açıklama alanına kuralınız için bir açıklama yazın. İleti kaynağı bölümünden devam ederken, “SQL sürümünü kullanma” bölümünde en güncel SQL sürümünü seçerdik. Konudan MQTT mesajının tamamını seçmek için özniteliğe * yazın, bizim durumumuzda konumuz “TempNem”.
- Ardından, kuralınız için bir "SNS" bildirim eylemi ekleyin. Ardından, "Eylemi yapılandır" ı tıklayın.
- “Yapılandır eylemi” sayfasında, az önce oluşturduğunuz SNS konusunu ve mesaj formatını RAW olarak seçin. Bundan sonra, AWS CLI kullanarak az önce oluşturduğunuz rolü seçin ve “Eylem ekle”ye tıklayın.
- İşleminiz yapılandırılacak ve "Kural oluştur" a geri dönecektir.
- Kuralı düzenlemek istiyorsanız düzenle'yi tıklayın.
Adım 12: Amazon S3'te Bir Paket Oluşturun
- AWS arama çubuğunda S3'ü arayın.
- Başlamak için Amazon S3 sayfasında "Kova Oluştur" düğmesini tıklayın.
-
Aşağıdaki bilgilerle görüntülenen açılır formu doldurun:
- Paket Adı: seroma-bucket (bu, mevcut tüm Amazon S3 klasörlerinde benzersiz olmalıdır)
- Bölge: ABD Batı (Oregon)
- Ayarları Kopyala: (Yoksay)
- 2'den 3'e kadar olan adımlar için, değiştirilecek bir şey olmadığından "İleri"ye tıklayarak atlayın. 4. adımda, "Kepçe oluştur"u tıklayın.
- Oluşturduktan sonra kovanızı ana sayfada görmelisiniz.
Adım 13: Bir AWS Politikası Oluşturun (Bölüm 1)
- Yukarıdaki sayfaya girmek için oluşturduğunuz kovaya tıklayın, ardından “İzinler” sekmesi altındaki “Kepçe Politikası”na ilerleyin.
- Ardından, AWS politikanızı oluşturmak için sayfanın altındaki “Politika Oluşturucu” bağlantısını tıklayın.
-
Formda aşağıdaki değerleri girin:
- Politika Türü: S3 Bucket Politikası
- Etkisi: İzin Ver
- Müdür: *
- AWS Hizmeti: Amazon S3
- Eylemler: GetObject
- Amazon Kaynak Adı (ARN): arn:aws:s3:::seroma-bucket
- Bilgileri doldurduktan sonra İfade Ekle'ye tıklayın.
- “Politika Oluştur” düğmesine tıklayın.
Adım 14: Bir AWS Politikası Oluşturun (Bölüm 2)
- Oluşturulan kodları kopyalayın ve kapat'a tıklayın.
- Amazon S3 Bucket Policy düzenleyicinize dönün ve önceden kopyalanan kodları yapıştırın.
- Kaynak kodlarının hemen arkasındaki kodlara yukarıdaki resimde olduğu gibi “/*” ekleyin ve ardından kaydet'e tıklayın.
- Bunu yaptıktan sonra kepçeniz başarıyla kurulacak ve kullanıma hazır olacaktır.
Adım 15: DynamoDB için Tablolar Oluşturma
- AWS Hizmetleri arama çubuğunda DynamoDB'yi arayın
-
"Tablo oluştur"a tıklayın ve aşağıdaki bilgilerle 3 tablo oluşturun: (Yalnızca "tablo adı" ve "birincil anahtar" değiştirilir)
- erişim günlüğü, pk tarihsaat değeri
- oda durumu, pk tarihzaman değeri
- personel verileri, pk kullanıcı adı
Adım 16: Roomstatus.py
Bu bölüm, her dakika sunucu odasının kendisiyle ilgili tüm verileri yazan roomstatus.py kodunu içerir. Buna sıcaklık, nem, hareket (doğruysa görüntüler ve videolar) ve erişim günlükleri dahildir. Ayrıca verileri bir Google E-Tablosuna, verileri DynamoDB'ye, görüntüleri ve videoları (varsa) S3'e yazar, bilgileri LCD ekranda görüntüler, şüpheli bir ihlal olduğunda veya sıcaklık veya nem düzensiz olduğunda SMS ve E-posta gönderir.
Python dosyalarını çalıştırmak için, dosyanın bulunduğu dizini değiştirin ve konsola şunu yazın: "sudo python"
Resim 2: SMS ve E-posta uyarılarına izin vermek ve S3'e yüklemek için açıklanan işlevler
Resim 3: İşlevler ve RPi'nin çalışması için bildirilen değişkenler
Resim 4: RPi'den sıcaklık ve nem değerlerini alan döngünün başlangıcı. Ayrıca verileri bir Google elektronik tablosuna yazar
Resim 5: Döngünün güvenlik kısmı. Yalnızca akşam 7'den sabah 7'ye (kapalı saatlerde) etkinleştirilecektir. Bir dakikalık bir sürede hareketi kontrol edecektir. Hareket algılanırsa, bir resim ve video çeker, S3'e yükler ve daha sonra başvurmak üzere DynamoDB'ye bilgi yazar. Daha sonra, herhangi bir düzensizlik varsa bir SMS ve E-posta gönderecektir.
Resim 6: Döngünün sonu. Ayrıca DynamoDB'ye veri yazar ve buna göre uyarılar gönderir. Döngünün son satırı, bir sonraki dakikaya ulaşılana kadar komut dosyasını uyku durumuna getirecektir.
Adım 17: RFID.py
Bu bölüm, bir personel üyesi sunucu odasına eriştiğinde izleme işlevini ekleyen rfid.py kodunu içerir. Ayrıca, bir veri ihlalini önlemek için bir personelin mesai saatlerinden sonra sunucu odasına erişmesine izin verilmeyen Seroma'nın güvenlik yönünün bir parçasıdır. Ayrıca, bir ihlalden şüpheleniliyorsa tüm personele bir E-posta ve SMS gönderir.
Resim 2: RFID okuyucu mantığının başlangıcı. Bir kart okuyucuya karşı tarandığında, kartın benzersiz kimliği (uid) alınır. Daha sonra personel verileri tablosundan kartın herhangi bir personele ait olup olmadığını bulmaya çalışırız. mesai dışı. Varsa, kalan çalışanları SMS ile uyaracak ve abone olunan e-posta adreslerini E-posta ile gönderecektir. Hala mesai saatleri içinde ise veritabanındaki accesslog tablosuna ilgili verilerle bir satır yazacaktır. Ayrıca LCD ekranda bir karşılama mesajı görüntüleyecektir.
Adım 18: Server.py
Bu server.py dosyasıdır. Web portalı için Flask çerçevesini kullanacağız. /templates içine yerleştirilecek HTML dosyaları da ektedir.
Resim 1: Flask için ilk rota tanımlandı. Kullanıcıyı, oturum açmamışlarsa oturum açma sayfasına ve oturum açmışlarsa gösterge tablosu sayfasına yönlendirecektir. Ayrıca canlı akış özelliğinde kullanılacak bir işlevi tanımlar
Resim 2, 3, 4: Flask için Rotalar. DynamoDB tablosundan veri alır ve sonra onları orada kullanılabilecekleri şekilde HTML dosyalarına döndürür.
Resim 5: Flask için son 2 rota. Oturum kapatma işlevini ve canlı akış işlevini yönetir. Ayrıca web sitesinin çalışacağı bağlantı noktasını da belirtir.
Adım 19: Telegram.py
Bu bölüm, Seroma'nın telgraf botunun kodunu içerir. Telegram'ın Bot API'sine dokunmak için telepot kitaplığını kullanır. Aldığı sorguları kabul ederek ve ilgili bilgileri kullanıcıya göstererek çalışır. Kullanıcı, komutların tam listesi için 'yardım' yazabilir.
Resim 1, 2: Telegram botu kurmak için BotFather kullanmanız gerekir. Kodumuzda ihtiyaç duyduğumuz HTTP API'sini almak için talimatları gözden geçirmeniz yeterlidir.
Resim 4: Kullanıcının isteğine göre veritabanından belirli sayıda veri satırı alan bir fonksiyon örneği
Resim 5: Kullanıcının girdisini nasıl alıyoruz ve buna göre neyin çalıştırılacağına karar veriyoruz.
20. Adım: Canlı yayın (camera_pi.py)
Sunucu odası izleme sistemimiz için yeni bir özellik uyguladık, Sunucu Odasında neler olup bittiğinin canlı akışı, buna her an, her yerden erişilebilir. Bu canlı yayın nasıl çalışır: Pi Kamera ile birlikte Flask'ta yapılan bir özelliktir. Video kareleri gerçek hayatta olduğu gibi indirilir, böylece video kareleri indirilip bir araya getirilirken hafif bir gecikme (1-2 saniye) olduğunu görebilirsiniz. Arka plan iş parçacığı kameradan kareleri okuduğu ve mevcut kareyi depoladığı için, bu iş parçacığı oluşturmadan yapılamaz. Tüm bu kareleri bir araya getirmek, daha sonra canlı bir akış verir.
Resim 2: Bu, tüm video karelerinin saklandığı ayrı bir dosya ve gördüğünüz gibi, ahududu pi kameramıza erişmek için picamera modülünü kullanıyoruz, çünkü en aşina olduğumuz şey bu. Bir kamera sınıfına sahibiz, böylece bir canlı yayın gibi ve birden fazla görüntüyü bir araya getirmemiş gibi içe aktarabiliriz, bu nedenle ana uygulama dosyasında, sahne arkasında neler olduğu konusunda endişelenmenize gerek kalmadan canlı bir akış olarak alacaktı.
Resim 3: Bu, canlı akış bölümünün kodlandığı server.py dosyamızın bir parçasıdır. Bunun için içe aktardığımız ana sınıf, server.py dosyamızın en üstündeki camera_pi.py dosyamızdan Camera'dır. Kök dizinimizde bir işlev tanımladık, gen, ancak bu yalnızca canlı akışımızın bulunduğu /video_feed'e gittiğimizde, bu işlevde dolaşıp web sayfasındaki canlı akışı döndüreceği yerde kullanıma giriyor.
Önerilen:
Gömülü Pencere Yöneticisi: 10 Adım
Gömülü Pencere Yöneticisi: Bu proje, LCD panelli ve dokunmatik ekranlı yerleşik bir mikro denetleyicide hareketli örtüşen pencerelere sahip bir pencere yöneticisinin nasıl uygulanacağını gösterir. Bunu yapmak için ticari olarak temin edilebilen yazılım paketleri var ama bunlar paraya mal oluyor ve yakın
Sunucu Odası Monitörü: 4 Adım
Sunucu Odası Monitörü: Bir sunucu odasının sorunlarından biri sıcaklıktır. Isı üreten farklı ekipmanlarla bu hızla yükselir. Ve klima arızalanırsa, her şeyi çabucak durdurur. Bu durumları tahmin etmek için birkaç ortamdan birini edinebiliriz
Kablo Yöneticisi: 6 Adım
Kablo Yöneticisi: Bir BT öğrencisi olarak herkes benden telefonu için, internet için bir kablo istemeye geliyor… Bu yüzden ihtiyaçları olan kabloyu benim yardımım olmadan bulmaları için kolay bir yol istedim. Bu yüzden kablo yöneticisini yarattım. Bu konsept, son olarak geliştiriliyor
Görev Yöneticisi - Ev İşleri Yönetim Sistemi: 5 Adım (Resimlerle)
Görev Yöneticisi - Bir Ev İşleri Yönetim Sistemi: Evimizde (ve sanırım diğer birçok okuyucuda) karşılaşılan gerçek bir sorunu ele almaya çalışmak istedim; bu, yardım ettikleri için çocuklarımı nasıl tahsis edeceğim, motive edeceğim ve ödüllendireceğim. ev işleri ile. Şimdiye kadar lamine bir levha tuttuk
VEX Turnuva Yöneticisi Raspberry Pi 3B+ 5GHz WiFi Kurulumu: 4 Adım
VEX Turnuva Yöneticisi Raspberry Pi 3B+ 5GHz WiFi Kurulumu: Wifi desteği yarı resmi olarak eklendi! Aşağıdaki bağlantıya bakın:https://www.roboticseducation.org/event-partner-training-topics-raspberry-pi/Overview: Raspberry Pi tek kartlı bilgisayar (SBC) kullanımının VEX desteği, VEX turnuva kurulumunu mu