Mục lục:
- Bước 1: Cảm biến chuyển động PIR
- Bước 2: Thiết lập cảm biến chuyển động PIR
- Bước 3: Thiết lập và mô-đun máy ảnh Raspberry Pi
- Bước 4: Kết hợp Cảm biến chuyển động PIR và Mô-đun máy ảnh
- Bước 5: Thiết lập cho Flask
- Bước 6: Kết quả
Video: Máy dò tìm con người Raspberry Pi + Máy ảnh + Bình: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
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
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
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
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
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ả
Đố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:
Máy bơm làm mát bằng nước-bình chứa-tản nhiệt (rasperry Pie 2-B): 3 bước (có hình ảnh)
Máy bơm-bể chứa-tản nhiệt làm mát bằng nước (rasperry Pie 2-B): Xin chào. Trước hết, không có keo nóng, không in 3D, không cắt laser, cnc, các công cụ đắt tiền & chất liệu. Một máy khoan-bấm với một vài tipps để khắc, chà nhám và khoan lỗ, một cái gì đó, thích hợp cho nhôm và acrylic với một cái gì đó để
Kết nối Ipod hoặc máy nghe nhạc Mp3 khác với loa gia đình bình thường mà không cần bộ khuếch đại đắt tiền và cồng kềnh !: 4 bước
Kết nối Ipod hoặc Máy nghe nhạc Mp3 khác với Loa gia đình bình thường mà không cần bộ khuếch đại đắt tiền và cồng kềnh !: Bạn có vô số loa âm thanh nổi bổ sung, đi kèm với dàn âm thanh tiếng kêu bị hỏng hoặc bạn chỉ có chúng mà không có lý do rõ ràng? Trong phần Có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách bạn có thể kết nối chúng với bất kỳ máy nghe nhạc Mp3 hoặc bất kỳ thiết bị nào có cổng âm thanh
Làm thế nào để chạy một Distro Linux trên một máy tính từ một Ipod Bình luận Plz Người đầu tiên đã đăng: 5 bước
Cách chạy một Distro Linux trên máy tính Từ Ipod Bình luận Plz Người đầu tiên đã đăng: Tôi đặt một bản phân phối phổ biến. của Linux trên ipod cũ của tôi và chạy nó trên máy tính của tôi khá tuyệt lấy tất cả các bức tranh