Mục lục:

Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp: 6 bước
Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp: 6 bước

Video: Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp: 6 bước

Video: Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp: 6 bước
Video: 5 Dự Án Nổi Bật với Raspberry Pi trong năm 2022 2024, Tháng mười hai
Anonim
Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp
Máy ảnh phát hiện chuyển động Raspberry Pi 3 với nguồn cấp dữ liệu trực tiếp

Giới thiệu

Trong dự án này, bạn sẽ học cách xây dựng một camera phát hiện chuyển động mà bạn sẽ có thể sử dụng làm bẫy ảnh, theo dõi vật nuôi / em bé, camera an ninh, v.v.

Dự án này được tổ chức thành một số bước:

  • Giới thiệu
  • Thiết lập số Pi của bạn
  • SSHing vào số Pi của bạn
  • Gửi email địa chỉ IP của bạn khi khởi động
  • Cài đặt và thiết lập Motion
  • Gửi video từ Chuyển động khi phát hiện qua email
  • Khắc phục sự cố và Nguồn

Những gì bạn cần:

  • Một mô hình Raspberry Pi 3 b ~~ $ 35
  • Thẻ Micro SD 8gb ~~ $ 10
  • USB Webcam ~~ $ 20 (dự án này sử dụng Webcam HD của Logitech c270)
  • cáp micro usb ~~ $ 5
  • một trong hai:
  • gói pin 5 volt có thể sạc lại (pin dự phòng cho điện thoại), điều này làm cho dự án của bạn không dây ~~ $ 20
  • hoặc
  • bộ chuyển đổi gắn tường usb ~~ $ 5
  • Kết nối WiFi

Những gì bạn cần truy cập để thiết lập:

  • Một màn hình
  • Một con chuột và bàn phím
  • Máy tính có khe cắm thẻ SD
  • Bộ chuyển đổi thẻ Micro SD sang SD (nên đi kèm với thẻ micro SD của bạn)

Bước 1: Thiết lập số Pi của bạn

Thiết lập số Pi của bạn
Thiết lập số Pi của bạn

Bây giờ hãy thiết lập Pi của bạn

Để bắt đầu, hãy đảm bảo rằng bạn có tất cả các mục cần thiết từ bước cuối cùng. Sau đó, hãy làm theo các bước trên trang web Raspberry Pi về cách cài đặt Raspbian Jessie trên thẻ Microsd của bạn, được tìm thấy tại đây.

Khi bạn đã cài đặt Raspbian trên Pi của mình, đã đến lúc thiết lập một số tính năng cơ bản.

Wifi

Bước đầu tiên để tận dụng tối đa Pi của bạn là kết nối nó với internet. Bạn có thể đã hoàn thành bước này bằng cách tìm biểu tượng WiFi ở góc trên bên phải của màn hình chính của Pi và đăng nhập vào đó hoặc thực hiện điều tương tự trước khi cài đặt Raspbian ở bước cuối cùng. Nếu bạn không thể đăng nhập vào mạng WiFi của mình từ giao diện máy tính để bàn của Pi, bạn có thể làm theo hướng dẫn tại đây để thiết lập WiFi thông qua dòng lệnh.

SSH

Một công cụ rất tiện dụng có sẵn cho bạn khi sử dụng Pi là tùy chọn ra lệnh cho Pi của bạn trong cái được gọi là thiết lập không đầu. Bằng cách sử dụng Secure SHell hoặc SSH, bạn có thể điều khiển Pi của mình từ xa từ máy tính. Với phương pháp này, tất cả những gì bạn cần để chỉnh sửa Pi của mình là nguồn điện để giữ cho nó hoạt động, không cần thêm màn hình và bàn phím!

Bước 2: SSHing vào PI của bạn

SSHing vào PI của bạn
SSHing vào PI của bạn
SSHing vào PI của bạn
SSHing vào PI của bạn

SSHing vào Raspberry Pi của bạn rất dễ dàng và rất hữu ích, vì quá trình này cho phép bạn ra lệnh cho Pi của mình từ bất kỳ máy tính nào mà không cần kết nối WiFi.

Để SSH vào số Pi của bạn, bạn cần làm theo 3 bước đơn giản sau.

Trước tiên, bạn cần bật SSH trên Pi của mình. Để thực hiện việc này, hãy mở cửa sổ lệnh trong Pi của bạn và nhập:

sudo raspi-config

Lệnh này cho phép bạn nhập menu cấu hình. từ đó, bạn sẽ muốn sử dụng các phím mũi tên, tab và phím enter để đi đến các tùy chọn giao diện trước, sau đó để bật SSH, cũng như camera, sau đó thoát và khởi động lại pi.

Tiếp theo, bạn sẽ cần tìm địa chỉ IP của Pi của mình. Trong một đầu cuối lệnh, hãy nhập:

sudo ifconfig

Và địa chỉ IP của bạn phải nằm trong phần wlan0 bật lên, ngay bên dưới Link encap: ethernet. Trong hình minh họa ở trên, Địa chỉ IP là 192.168.1.10.

Cuối cùng, bạn sẽ cần mở ứng dụng terminal tích hợp sẵn trên máy mac hoặc tìm và làm theo hướng dẫn cho ứng dụng ssh của bên thứ 3 dành cho windows. Trong ứng dụng Terminal, nhập:

ssh pi @ ĐỊA CHỈ IP CỦA BẠN

Nếu bạn chưa thay đổi mật khẩu khi ở trong Raspi-config, thì mật khẩu của bạn để nhập khi được nhắc sẽ là mật khẩu mặc định: raspberry.

Từ đó, bạn nên đi tốt!

Bước 3: Gửi email Địa chỉ IP của bạn khi khởi động

Gửi email Địa chỉ IP của bạn khi khởi động
Gửi email Địa chỉ IP của bạn khi khởi động

Trong bước này, chúng tôi sẽ tập trung vào cách truy cập Raspberry Pi của bạn, bất kể bạn đang sử dụng mạng nào. Tùy thuộc vào mạng, địa chỉ IP của Pi thay đổi. Và nếu bạn không có thiết lập màn hình, bạn sẽ cần chuyển sang Pi để kích hoạt giao thức phát hiện chuyển động, thay đổi tùy chọn chuyển động hoặc truy cập bất kỳ thứ gì khác trên thiết bị. Để giải quyết vấn đề này, chúng tôi sẽ viết một đoạn script python gửi email cho chúng tôi địa chỉ IP hiện tại của Pi khi khởi động. Tập lệnh python như sau và được lưu trữ trong một thư mục được đánh dấu là "nền".

#start trong thư mục chính

cd ~

#create thư mục nền

mkdir nền

#create script python

sudo nano emailip.py

#write trong emailip.py

ổ cắm nhập khẩu

s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM)

s.connect (("8.8.8.8", 80))

print (s.getsockname () [0]) x = s.getsockname () [0] s.close ()

nhập smtplib

từ email. MIMEMultipart nhập MIMEMultipart

từ email. MIMEText nhập MIMEText

fromaddr = "ĐỊA CHỈ CỦA BẠN"

cócdr = "ĐỊA CHỈ NHẬN"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] =adsdr

msg ['Subject'] = "Địa chỉ IP"

body = xmsg.attach (MIMEText (body, 'trơn'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "MẬT KHẨU CỦA BẠN")

text = msg.as_string ()

server.sendmail (fromaddr,adsdr, text)

server.quit ()

# sau đó điều này thực hiện được khi khởi động lại

sudo nano /etc/rc.local

#enter trong /etc/rc.local

trong khi ! / sbin / ifconfig wlan0 | grep -q 'inet addr: [0-9]';

ngủ đi 3

xong

_IP = $ (tên máy chủ-I) || thật

if ["$ _IP"]; sau đó

printf "Địa chỉ IP của tôi là% s / n" "$ _IP"

python /home/pi/Background/emailip.py &

fi

thoát 0

# và bạn đã hoàn thành

Bước 4: Cài đặt và thiết lập chuyển động

Cài đặt và thiết lập chuyển động
Cài đặt và thiết lập chuyển động

# cập nhật số pi

sudo apt-get cập nhật

sudo apt-get nâng cấp

#Tải xuống

sudo apt-get install chuyển động

#now chỉnh sửa tệp này với các thay đổi sau

sudo nano /etc/motion/motion.conf

# để đặt tiêu chuẩn cho hướng dẫn này, hãy thay đổi

#################

daemon trên

stream_localhost tắt

tắt webcontrol_localhost

ffmpeg_output_movies trên

target_dir / var / lib / motion

##################

#local tùy chọn phát trực tuyến của trình duyệt web

##################

stream_maxrate 100 # Điều này sẽ cho phép phát trực tuyến theo thời gian thực nhưng yêu cầu nhiều băng thông và tài nguyên hơn

tốc độ khung hình 60 # Điều này sẽ cho phép chụp 60 khung hình mỗi giây # tốc độ này càng cao thì video xử lý càng chậm

width 640 # Điều này thay đổi chiều rộng của hình ảnh được hiển thị

height 480 #Điều này thay đổi chiều cao của hình ảnh được hiển thị

##################

#emailing cài đặt video trong… / motion.conf

##################

#delete dấu ";" ở phía trước dòng, dấu chấm phẩy nhận xét dòng bên ngoài

on_event_start python /home/pi/background/motionalert.py% f

on_movie_end python /home/pi/background/motionvid.py% f

##################

#astectics

##################

#choices được mô tả trong tệp

output_pictures location_motion_style

##################

# sau đó thay đổi

sudo nano / etc / default / motion

#để nói

start_motion_daemon = vâng

# cuối cùng, bắt đầu B **** lên

bắt đầu chuyển động dịch vụ sudo

# bạn có thể thay đổi lệnh thành "dừng" hoặc "khởi động lại"

Bước 5: Gửi video từ chuyển động khi phát hiện qua email

Gửi video từ chuyển động khi phát hiện qua email
Gửi video từ chuyển động khi phát hiện qua email

Gửi email khi phát hiện chuyển động:

# bắt đầu tại nhà

dircd ~

#create tập lệnh python cảnh báo chuyển động

sudo nano /home/pi/background/motionalert.py

#viết

nhập smtplib

từ datetime nhập datetime

từ email. MIMEMultipart nhập MIMEMultipart

từ email. MIMEText nhập MIMEText

fromaddr = "YOURADDRESS"

cócdr = "RECIEVINGADDRESS"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] =adsdr

msg ['Subject'] = "Đã phát hiện chuyển động"

body = 'Một chuyển động đã được phát hiện. / n Thời gian:% s'% str (datetime.now ())

msg.attach (MIMEText (body, 'pure'))

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "MẬT KHẨU CỦA BẠN")

text = msg.as_string ()

server.sendmail (fromaddr,adsdr, text)

server.quit ()

Email Video chuyển động khi video được lưu:

#start at homedircd ~

#create video chuyển động python scriptsudo nano /home/pi/background/motionvid.py

nhập smtplib

từ email. MIMEMultipart nhập MIMEMultipart

từ email. MIMEText nhập MIMEText

từ email. MIMEBase nhập MIMEBase

từ bộ mã hóa nhập email

fromaddr = "EMAIL CỦA BẠN"

cócdr = "ĐỊA CHỈ EMAIL BẠN GỬI ĐẾN"

msg = MIMEMultipart ()

msg ['From'] = fromaddr

msg ['To'] =adsdr

msg ['Subject'] = "Đã kích hoạt Motion Cam"

body = "Video phát hiện chuyển động"

msg.attach (MIMEText (body, 'trơn'))

nhập hệ điều hành

rootpath = '/ var / lib / motion'

filelist = [os.path.join (rootpath, f) cho f trong os.listdir (rootpath)]

filelist = [f for f in filelist if os.path.isfile (f)]

newest = max (filelist, key = lambda x: os.stat (x).st_mtime)

filename = newest

nhập hệ điều hành

rootpath = '/ var / lib / motion'

filelist = [os.path.join (rootpath, f) cho f trong os.listdir (rootpath)]

filelist = [f for f in filelist if os.path.isfile (f)]

newest = max (filelist, key = lambda x: os.stat (x).st_mtime)

đính kèm = mở (mới nhất, "rb")

part = MIMEBase ('application', 'octet-stream')

part.set_payload ((tệp đính kèm).read ())

encoders.encode_base64 (part)

part.add_header ('Nội dung-Bố trí', "tệp đính kèm; tên tệp =% s"% tên tệp)

msg.attach (part)

server = smtplib. SMTP ('smtp.gmail.com', 587)

server.starttls ()

server.login (fromaddr, "MẬT KHẨU CỦA BẠN")

text = msg.as_string ()

server.sendmail (fromaddr,adsdr, text)

server.quit ()

Bước 6: Khắc phục sự cố và nguồn

Khắc phục sự cố và Nguồn
Khắc phục sự cố và Nguồn

Xử lý sự cố:

Bởi vì dự án này có nhiều giai đoạn, có một số điểm có thể xảy ra sai sót. Dưới đây là một số lỗi có thể xảy ra và cách khắc phục chúng.

  • Khi thiết lập pi của bạn để gửi email cho bạn địa chỉ IP hiện tại của nó, điều quan trọng là phải chỉnh sửa tệp rc.local như được hiển thị trước đó vì điều này cho phép có một chút chậm trễ trước khi chương trình kích hoạt sau khi khởi động lại. Nếu không, pi sẽ chưa được kết nối với wifi và email sẽ không được gửi.
  • Khi chỉnh sửa tệp motion.conf, hãy đảm bảo xóa các dấu chấm phẩy trước các tham số nhất định. Dấu chấm phẩy ngăn chặn một hành động nhất định, vì vậy nếu không, thay đổi sẽ không có hiệu lực.
  • Tệp motion.conf được tổ chức rất tốt và chi tiết. Hãy thoải mái thay đổi cài đặt theo ý thích của bạn, nhưng hãy hiểu rằng chúng có thể ảnh hưởng đến sự thành công của hệ thống chụp chuyển động.
  • Sau khi thiết lập các tùy chọn email cảnh báo và video video, điều quan trọng cần lưu ý là email của video phát hiện chuyển động sẽ mất nhiều thời gian hơn để gửi so với email cảnh báo ban đầu. Điều này là do video kết thúc một vài giây sau khi chuyển động không còn được phát hiện và vì tệp đính kèm email có thể đủ lớn để yêu cầu một vài phút để nhận. Trong một số trường hợp, nếu chuyển động được duy trì trong một khoảng thời gian rất dài, nó có thể quá lớn để gửi đi. Do đó, bạn nên kiểm tra buổi phát trực tiếp sau khi nhận được email cảnh báo ban đầu.

Tại sao lại chuyển động ?:

Khi lần đầu tiên bắt tay vào dự án này, chúng tôi đã xem xét một số nguồn lực khác nhau. Đầu tiên, chúng tôi xem xét việc sử dụng PiCam, một đơn vị máy ảnh được xây dựng đặc biệt cho pi raspberry. PiCam chắc chắn là một thiết bị có khả năng và có nhiều ứng dụng, nhưng nó bị hạn chế ở việc sử dụng các chương trình được thiết kế riêng cho nó và tương đối đắt so với các webcam đa năng rẻ tiền. Vì vậy, để làm cho dự án này có thể tiếp cận được với nhiều đối tượng hơn, chúng tôi đã quyết định sử dụng một webcam USB thông thường. Vấn đề tiếp theo là nên kết hợp phần mềm nào. Ban đầu chúng tôi coi OpenCV là phần mềm miễn phí cho phép thực hiện nhiều loại hình ảnh và thị giác máy tính khác nhau. Về các vấn đề ở đây là OpenCV là một tệp lớn, chiếm nhiều bộ nhớ và thời gian thiết lập lâu. Việc thiết lập cũng có nhiều giai đoạn, thậm chí còn nhiều chỗ cho sai sót. Chúng tôi nhận thấy rằng đối với dự án cụ thể của mình, Motion đơn giản hơn để thiết lập và bắt đầu hoạt động, nhưng mạnh mẽ hơn nhiều trong quá trình thực thi.

Nguồn

Nguồn mã:

www.techradar.com/how-to/computing/how-to-b…

pimylifeup.com/raspberry-pi-webcam-server/

www.pyimagesearch.com/2015/06/01/home-surve…

naelshiab.com/tutorial-send-email-python/

www.raspberrypi.org/documentation/linux/us…

learn.adafruit.com/adafruits-raspberry-pi-…

learn.adafruit.com/adafruits-raspberry-pi-…

pinout.xyz/pinout/i2c

Tín ảnh:

SSH Snail:

Biểu trưng thư:

Webcam của Logitech:

Cửa sổ SSH:

Đề xuất: