Mục lục:

Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình: 6 bước
Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình: 6 bước

Video: Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình: 6 bước

Video: Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình: 6 bước
Video: Triển khai hệ thống nhận diện khuôn mặt và đo thân nhiệt trên Raspberry Pi4 - Mì AI 2024, Tháng mười một
Anonim
Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình
Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình

Trong hướng dẫn này, tôi sẽ hướng dẫn các bước cho Dự án Raspberry Pi IoT của mình - Sử dụng Cảm biến chuyển động PIR, mô-đun Máy ảnh Raspberry để xây dựng một thiết bị IoT bảo mật đơn giản và truy cập nhật ký phát hiện bằng Flask.

Bước 1: Cảm biến chuyển động PIR

Cảm biến chuyển động PIR
Cảm biến chuyển động PIR

PIR là viết tắt của "Passive Infrared" và cảm biến chuyển động này nhận chuyển động bằng cách xem chế độ xem hồng ngoại và nhận các thay đổi của tia hồng ngoại. Do đó, với một chiếc lá và một con người đi qua cảm biến, nó chỉ phát hiện ra con người vì chúng ta là con người tạo ra nhiệt và do đó phát ra tia hồng ngoại. Do đó, cảm biến chuyển động là một lựa chọn tốt để phát hiện chuyển động của con người.

Bước 2: Thiết lập cảm biến chuyển động PIR

Thiết lập cảm biến chuyển động PIR
Thiết lập cảm biến chuyển động PIR

Có ba chân cho cảm biến chuyển động PIR, Nguồn, Đầu ra và Nối đất. Dưới chân cắm, bạn có thể thấy các nhãn, VCC cho nguồn, Out cho đầu ra và GND cho nối đất. Khi cảm biến phát hiện chuyển động, chân Đầu ra sẽ xuất tín hiệu CAO đến chân Raspberry Pi mà bạn kết nối với cảm biến. Đối với chân Nguồn, bạn cần đảm bảo rằng nó kết nối với chân 5V trên Raspberry Pi để cấp nguồn. Đối với dự án của tôi, tôi chọn kết nối chân Đầu ra với Pin11 trên Pi.

Sau khi kết nối mọi thứ, bạn có thể nhắn tin cho cảm biến của mình bằng cách chạy các tập lệnh như bên dưới:

nhập RPi. GPIO dưới dạng GPIO Thời gian nhập GPIO.cleanup () GPIO.setwarnings (Sai) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) # Đọc đầu ra từ cảm biến chuyển động PIR trên Pin 11 trong khi Đúng: i = GPIO.input (11) if i == 0: #Khi đầu ra từ cảm biến chuyển động là THẤP in "Không phát hiện", i time.sleep (0,1) elif i == 1: # Khi đầu ra từ cảm biến chuyển động là in CAO " Đã phát hiện chuyển động ", i time.sleep (0,1)

Chạy tập lệnh trên Pi của bạn và đặt tay của bạn hoặc bạn bè của bạn trước cảm biến để kiểm tra xem cảm biến có nhận chuyển động hay không.

Bước 3: Thiết lập và mô-đun máy ảnh Raspberry Pi

Thiết lập và mô-đun máy ảnh Raspberry Pi
Thiết lập và mô-đun máy ảnh Raspberry Pi

Con người phát ra tia hồng ngoại do nhiệt, và các vật có nhiệt độ cũng vậy. Do đó, động vật hoặc vật nóng cũng có thể kích hoạt cảm biến chuyển động. Chúng tôi cần một cách để kiểm tra xem việc phát hiện có hợp lệ hay không. Có nhiều cách để thực hiện, nhưng trong dự án của mình, tôi chọn sử dụng mô-đun máy ảnh Raspberry Pi để chụp ảnh khi cảm biến chuyển động nhận chuyển động.

Để sử dụng mô-đun máy ảnh, trước tiên bạn phải đảm bảo các chân cắm được cắm vào khe máy ảnh trên Pi. Kiểu

sudo raspi-config

trên Pi của bạn để mở giao diện cấu hình và bật máy ảnh trong 'tùy chọn giao diện'. Sau khi khởi động lại, bạn có thể kiểm tra xem Pi có thực sự được kết nối với máy ảnh hay không bằng cách gõ

vcgencmd get_camera

và nó sẽ hiển thị cho bạn trạng thái. Bước cuối cùng là cài đặt mô-đun picamera bằng cách gõ

pip cài đặt picamera

Sau tất cả các thiết lập, bạn có thể kiểm tra máy ảnh của mình bằng cách chạy các tập lệnh như bên dưới:

từ picamera nhập PiCamera

from time import sleep camera = PiCamera () camera.start_preview () sleep (2) camera.capture ('image.jpg') camera.stop_preview ()

Hình ảnh sẽ được lưu trữ dưới dạng 'image.jpg' tại thư mục giống như thư mục trong tập lệnh camera của bạn. Lưu ý, bạn muốn đảm bảo 'chế độ ngủ (2)' ở đó và con số lớn hơn 2 để máy ảnh có đủ thời gian để điều chỉnh điều kiện ánh sáng.

Bước 4: Kết hợp Cảm biến chuyển động PIR và Mô-đun máy ảnh

Ý tưởng về dự án của tôi là cảm biến chuyển động và máy ảnh sẽ hướng về cùng một hướng. Bất cứ khi nào cảm biến chuyển động nhận được chuyển động, máy ảnh sẽ chụp ảnh để chúng tôi có thể kiểm tra nguyên nhân gây ra chuyển động sau đó.

Kịch bản:

nhập RPi. GPIO dưới dạng GPIO từ ngày giờ nhập ngày giờ nhập thời gian nhập từ picamera nhập PiCamera

GPIO.cleanup ()

GPIO.setwarnings (Sai) GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. IN) # Đọc đầu ra từ thông báo cảm biến chuyển động PIR = 'start' counter = 0 log_f = open ('static / log.txt', 'w') log_f.close ()

máy ảnh = PiCamera ()

pic_name = 0

camera.start_preview ()

time.sleep (2)

trong khi Đúng:

i = GPIO.input (11) if i == 0: #Khi đầu ra từ cảm biến chuyển động là LOW nếu bộ đếm> 0: end = str (datetime.now ()) log_f = open ('static / log.txt', ' a ') message = message +'; 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 (cuối cùng) counter = 0 print "Không có kẻ xâm nhập", i time.sleep (0.1) elif i == 1: #Khi đầu ra từ cảm biến chuyển động là CAO nếu bộ đếm == 0: current = str (datetime.now ()) message = 'Đã phát hiện con người:' + 'bắt đầu tại' + bộ đếm hiện tại = bộ đếm + 1 bản in "Đã phát hiện kẻ xâm nhập", i time.sleep (0,1) camera.stop_preview ()

Các thư mục cho 'log.txt' và hình ảnh là 'tĩnh', điều này cần thiết để Flask hoạt động.

Bước 5: Thiết lập cho Flask

Thiết lập cho Flask
Thiết lập cho Flask

Flask là một khuôn khổ web vi mô được viết bằng Python và dựa trên bộ công cụ Werkzeug và công cụ mẫu Jinja2. Nó rất dễ thực hiện và duy trì. Để có hướng dẫn tốt hơn cho Flask, tôi giới thiệu liên kết này: Hướng dẫn về Flask Mega

Tập lệnh chính, 'route.py', trong dự án của tôi:

from appfolder import appFlaskfrom flask import render_template, redirect import os

APP_ROOT = os.path.dirname (os.path.abspath (_ file_)) # đề cập đến application_top

APP_STATIC = os.path.join (APP_ROOT, 'tĩnh')

@ appFlask.route ('/', method = ['GET', 'POST'])

def view (): log_f = open (os.path.join (APP_STATIC, 'log.txt'), 'r') logs = log_f.readlines () final_logs = cho nhật ký đăng nhập: final_logs.append (log. dải ()) name = str (len (final_logs) -1) + '. jpg' return render_template ('view.html', logs = final_logs, filename = name)

Tệp HTML 'view.html' ở trên cùng (vì khi tôi sao chép các mã HTML ở đây, nó thực sự chuyển thành HTML ĐỊNH DẠNG…)

Và cấu trúc của dự án sẽ giống như bên dưới (nhưng tất nhiên có nhiều tệp hơn những thứ này):

iotproject / appfolder / route.py template / view.html static / log.txt 0-j.webp

Bước 6: Kết quả

Kết quả
Kết quả

Đối với việc triển khai này, sau khi mọi thứ thiết lập chính xác, bạn sẽ có thể truy cập Raspberry Pi của mình bằng cách nhập địa chỉ IP của nó trên trình duyệt và kết quả sẽ giống như hình ở thanh trên cùng ở bước này.

Đề xuất: