İçindekiler:
- Adım 1: PIR Hareket Sensörü
- Adım 2: PIR Hareket Sensörü Kurulumu
- Adım 3: Raspberry Pi Kamera Modülü ve Kurulumu
- Adım 4: PIR Hareket Sensörü ve Kamera Modülünü Birleştirin
- Adım 5: Flask Kurulumu
- 6. Adım: Sonuç
Video: Raspberry Pi İnsan Dedektörü + Kamera + Şişe: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu eğitimde, Raspberry Pi IoT Projem - PIR Hareket Sensörü, Raspberry Camera modülünü basit bir güvenlik IoT cihazı oluşturmak için kullanma ve Flask ile algılama günlüğüne erişme adımlarını inceleyeceğim.
Adım 1: PIR Hareket Sensörü
PIR, "Pasif Kızılötesi" anlamına gelir ve bu hareket sensörü, kızılötesi görünümü izleyerek ve kızılötesi değişiklikleri alarak hareketleri alır. Bu nedenle, bir yaprak ve sensörden geçen bir insan ile, biz insanlar ısı ürettiğimiz ve dolayısıyla kızılötesi ışın yaydığımız için sadece insanı algılar. Bu nedenle, hareket sensörü insan hareketlerini algılamak için iyi bir seçimdir.
Adım 2: PIR Hareket Sensörü Kurulumu
PIR hareket sensörü, Güç, Çıkış ve Toprak için üç pin vardır. Pinlerin altında Güç için VCC, Çıkış için Çıkış ve toprak için GND etiketlerini görebilirsiniz. Sensör hareketleri algıladığında Çıkış pini, sensörü bağladığınız Raspberry Pi pinine HIGH sinyali verir. Power pin için, güç için Raspberry Pi üzerindeki 5V pinine bağlandığından emin olmak istersiniz. Projem için Çıkış pinini Pi üzerinde Pin11 ile bağlamayı seçiyorum.
Her şeyi bağladıktan sonra, aşağıdaki gibi komut dosyalarını çalıştırarak sensörünüze mesaj gönderebilirsiniz:
RPi. GPIO'yu GPIOimport zamanı olarak içe aktar GPIO.cleanup() GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #Pin 11'deki PIR hareket sensöründen çıktıyı oku True iken: i =GPIO.input(11) ise i==0: #Hareket sensöründen çıkış DÜŞÜK olduğunda yazdır "Algılama yok", i time.sleep(0.1) elif i==1: #Hareket sensöründen çıkış YÜKSEK olduğunda yazdır " Hareket algılandı", i time.sleep(0.1)
Komut dosyasını Pi'nizde çalıştırın ve sensörün hareketi alıp almadığını kontrol etmek için ellerinizi veya arkadaşınızı sensörün önüne koyun.
Adım 3: Raspberry Pi Kamera Modülü ve Kurulumu
İnsan, ısı nedeniyle kızılötesi ışın yayar ve sıcaklığa sahip nesneler de öyle. Bu nedenle hayvanlar veya sıcak nesneler de hareket sensörünü tetikleyebilir. Algılamanın geçerli olup olmadığını kontrol etmenin bir yoluna ihtiyacımız var. Uygulamanın birçok yolu var, ancak projemde hareket sensörü hareketleri aldığında fotoğraf çekmek için Raspberry Pi kamera modülünü kullanmayı seçiyorum.
Kamera modülünü kullanmak için öncelikle pimlerin Pi üzerindeki kamera yuvasına takılı olduğundan emin olmak istersiniz. Tip
sudo raspi yapılandırması
Yapılandırma arayüzünü açmak için Pi'nizde ve 'arayüz seçeneklerinde' kamerayı etkinleştirin. Yeniden başlattıktan sonra, yazarak Pi'nin kameraya gerçekten bağlı olup olmadığını test edebilirsiniz.
vcgencmd get_camera
ve size durumu gösterecektir. Son adım ise picamera modülünü yazarak yüklemektir.
pip kurulum picamera
Tüm kurulumlardan sonra aşağıdaki gibi komut dosyaları çalıştırarak kameranızı test edebilirsiniz:
picamera'dan içe aktarma PiCamera
uyku kamerasını içe aktar = PiCamera() camera.start_preview() sleep(2) camera.capture('image.jpg') camera.stop_preview()
Resim, kamera komut dosyanızdakiyle aynı dizinde 'image.jpg' olarak saklanacaktır. Dikkat edin, 'uyku(2)'nun orada olduğundan ve sayının 2'den büyük olduğundan emin olmak istersiniz, böylece kameranın ışık durumunu ayarlamak için yeterli zamanı olur.
Adım 4: PIR Hareket Sensörü ve Kamera Modülünü Birleştirin
Projemin fikri, hareket sensörü ve kameranın aynı yöne bakmasıdır. Hareket sensörü hareketleri algıladığında, kamera bir resim çeker, böylece daha sonra hareketlere neyin sebep olduğunu kontrol edebiliriz.
Senaryo:
RPi. GPIO'yu GPIO olarak içe aktar tarihsaat tarihinden itibaren tarihsaati içe aktar picamera'dan saati içe aktar PiCamera'yı içe aktar
GPIO.cleanup()
GPIO.setwarnings(False) GPIO.setmode(GPIO. BOARD) GPIO.setup(11, GPIO. IN) #PIR hareket sensörü mesajından okuma çıktısı = 'start' counter = 0 log_f = open('static/log.txt', 'w') log_f.close()
kamera = PiCamera()
resim_adı = 0
camera.start_preview()
zaman.uyku(2)
Doğru iken:
i=GPIO.input(11) ise i==0: #Hareket sensöründen gelen çıkış DÜŞÜK ise sayaç > 0 ise: end = str(datetime.now()) log_f = open('static/log.txt', ' a') mesaj = mesaj + '; end at ' + end + '\n' print(message) log_f.write(message) log_f.close() final = 'static/' + str(pic_name) + ".jpg" pic_name = pic_name + 1 camera.capture(final) counter = 0 print "Hiçbir davetsiz misafir", i time.sleep(0.1) elif i==1: #Hareket sensöründen çıkış YÜKSEK ise eğer sayaç == 0: akım = str(datetime.now()) mesajı = 'İnsan algılandı:' + 'başlangıç' + geçerli sayaç = sayaç + 1 yazdır "Hırsız giriş algılandı", i time.sleep(0.1) camera.stop_preview()
'log.txt' ve görüntüler için dizinler, Flask'ın çalışması için gerekli olan 'statik'tir.
Adım 5: Flask Kurulumu
Flask, Python'da yazılmış ve Werkzeug araç takımı ve Jinja2 şablon motorunu temel alan bir mikro web çerçevesidir. Uygulaması ve bakımı kolaydır. Flask için daha iyi bir eğitim için şu bağlantıyı öneriyorum: Flask Mega Tutorial
Projemin ana betiği 'routes.py':
appfolder'dan appFlask'ı şişeden içe aktarma render_template'den içe aktarma, içe aktarma işletim sistemini yeniden yönlendirme
APP_ROOT = os.path.dirname(os.path.abspath(_file_)) # application_top'u ifade eder
APP_STATIC = os.path.join(APP_ROOT, 'statik')
@appFlask.route('/', yöntemler=['GET', 'POST'])
def view(): log_f = open(os.path.join(APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines() final_logs = oturum açma günlükleri için: final_logs.append(log. strip()) name = str(len(final_logs)-1)+'.jpg' return render_template('view.html', logs=final_logs, filename=name)
HTML dosyası 'view.html' en üstteki çubukta (çünkü HTML kodlarını buraya kopyaladığımda aslında HTML FORMAT'a dönüyor…)
Ve projenin yapısı aşağıdaki gibi görünmelidir (ancak elbette bunlardan daha fazla dosya var):
iotproject\ appfolder\ route.py şablonları\ view.html statik\ log.txt 0-j.webp
6. Adım: Sonuç
Bu uygulama için her şey doğru bir şekilde ayarlandıktan sonra, Raspberry Pi'nize tarayıcınıza IP adresini yazarak erişebilmeli ve bu adımda sonuç üst çubukta resim gibi görünmelidir.
Önerilen:
Şişe Mantarıyla Kendi Kamera Monopodunuzu Yapın: 3 Adım
Şişe Mantarıyla Kendi Kamera Monopodunuzu Yapın: Bu eğitimin yapılması çok kolay ve aynı zamanda çok ucuz. Başarılı olmak için ihtiyacınız olan tek şey 6 mm uzunluğunda bir tripod vidası (1/4") ve bir şişe mantarıdır. ÖNEMLİ. Bunun için vidanın üzerinde tam dişe sahip olmanız gerekir yoksa kameranızın dişini bozarsınız.