Tạo báo động đột nhập bằng Raspberry Pi

Tạo báo động đột nhập bằng Raspberry Pi

Học cách chế tạo hệ thống báo động đột nhập bằng Raspberry Pi, biến chiếc máy tính nhỏ bé này thành hệ thống an ninh thông minh.

Vật liệu cần thiết:

  • Cảm biến laser
  • Cảm biến âm thanh
  • chỉ huy
  • Còi báo áp điện hoạt động
  • Cáp nối

Kết nối cảm biến laser

Hãy nghĩ về nó như một bộ phim mà một điệp viên hoặc tên trộm phải đi qua một chùm tia laser đang bảo vệ các vật thể. Nếu chùm tia bị phá hủy, báo động sẽ kêu. Đó là những gì chúng ta sẽ làm ở đây.

Trong hướng dẫn này, chúng tôi sử dụng cảm biến laser từ (Gói cảm biến Waveshare), nhưng các cảm biến tương tự cũng có thể hoạt động tương tự.

Tia laser phát ra một chùm ánh sáng liên tục và bộ thu chỉ phát hiện ánh sáng phản xạ có cùng bước sóng (650 nm), do đó nó không bị kích thích bởi ánh sáng khả kiến ​​khác. Khi phát hiện ra một chùm tia, chân kỹ thuật số sẽ xuất ra 1, khi chùm tia bị ngắt, nó sẽ xuất ra 0.

Khi tắt nguồn, hãy kết nối cảm biến laser với Raspberry Pi như minh họa trong Hình 1. Chúng ta sẽ cấp nguồn cho cảm biến từ chân 3V3 của Raspberry Pi, kết nối nó với cực nối đất bằng chân GND (thông qua thanh ray bên của bảng mạch cắm) và đầu ra kỹ thuật số (được đánh dấu DOUT trên cảm biến) sẽ được gửi đến GPIO 21.

Cảnh báo!

Cảm biến laser được sử dụng ở đây phát ra chùm tia laser liên tục. Hãy cẩn thận không hướng chùm tia laser vào đầu người khác vì điều này có thể làm hỏng thị lực của họ. Thông tin thêm về an toàn laser.

Định vị bằng laser

Sau khi cảm biến laser được kết nối, hãy bật Raspberry Pi. Bạn sẽ thấy đèn LED nguồn màu đỏ của cảm biến (bên phải) sáng lên nếu được kết nối đúng cách. Cảm biến cũng sẽ phát ra tia laser từ một ống kim loại, vì vậy hãy cẩn thận không nhìn trực tiếp vào ống.

Hướng chùm tia vào một bức tường gần đó (cách xa tới 1,5 mét) và kiểm tra xem đèn LED bên trái (được đánh dấu DAT) có sáng không để xác nhận rằng chùm tia laser đã được phát hiện. Bạn có thể cần phải điều chỉnh độ nghiêng theo chiều dọc và chiều ngang của cảm biến hoặc di chuyển cảm biến gần tường hơn. Để có cảnh báo hoàn chỉnh, chúng tôi khuyên bạn nên đặt cảm biến laser khá gần sàn nhà để người qua đường có thể cắt chùm tia và nó không chiếu gần mắt họ.

Kiểm tra bằng laser

Để bắt đầu, chúng ta sẽ tạo một chương trình Python đơn giản dựa trên các mục trong tệp laser_test.py để đọc đầu ra kỹ thuật số của cảm biến và in ra thông báo để chỉ ra thời điểm chùm tia bị phá vỡ. Từ menu trên màn hình, hãy vào Lập trình và mở Thonny IDE để bắt đầu viết mã.

from gpiozero import Button

laser = Button(21)
msg = ""

while True:
    if laser.value == 0:
        msg = "Intruder!"
    else:
        msg = "All clear"
    print(msg, end = "\r")

Như thường lệ, chúng ta sử dụng thư viện GPIO Zero ở đầu mã. Chúng ta sẽ nhập phương thức Button từ thư viện này. Chúng ta sẽ sử dụng thư viện này để phát hiện khi đầu ra kỹ thuật số từ cảm biến tăng cao, tương đương với việc nhấn nút. Vì thư viện này được kết nối với GPIO 21, chúng ta sẽ gán một đối tượng laser cho thư viện này với laser = Button(21) .

Trong vòng lặp while True: vô hạn, chúng ta kiểm tra xem chân có thấp không (nếu giá trị laser == 0), nghĩa là chùm tia bị cắt, và thiết lập một thông báo (biến msg1) mà chúng ta sẽ in ra vùng Shell tương ứng. Trong câu lệnh in của chúng ta, chúng ta thêm tham số end = "\r" để thông báo luôn được in trên cùng một dòng.

Chạy mã laser_test.py, sau đó thử phá vỡ chùm tia bằng tay của bạn và xem thông báo có đổi thành 'Kẻ xâm nhập!' không. Bạn có thể thấy rằng điều này hoạt động tốt hơn nếu bạn đặt tay xa cảm biến hơn. Mặc dù đèn LED DAT sẽ chỉ tắt trong giây lát, nhưng nó sẽ đủ để gửi báo động sau đó.

Thêm cảm biến âm thanh

Bây giờ chúng ta đã có cảm biến laser hoạt động, hãy thêm cảm biến âm thanh để thiết lập của chúng ta an toàn hơn trước sự xâm nhập. Chúng tôi đang sử dụng cảm biến âm thanh Waveshare cho việc này, có trong Gói cảm biến, nhưng các cảm biến tương tự khác cũng có sẵn với micrô USB.

Cảm biến của chúng tôi có các chân cho đầu ra analog và kỹ thuật số, nhưng chúng tôi chỉ cần đầu ra kỹ thuật số cho báo động. Khi tắt nguồn, chúng tôi sẽ kết nối chân đó (DOUT) với GPIO 14 và các chân VCC và GNC với 3V3 và GND (chia sẻ với cảm biến laser thông qua thanh ray bên của bảng mạch), như thể hiện trong Hình 1.

Khi bạn bật lại Raspberry Pi, bạn sẽ thấy đèn LED trạng thái ở bên trái của cảm biến âm thanh sáng lên. Phát ra âm thanh và bạn sẽ thấy đèn LED bên phải sáng lên để báo hiệu rằng nó đã được phát hiện.

Kiểm tra âm thanh

Hãy tạo một chương trình tương tự để kiểm tra cảm biến. Trong đoạn mã sound_test.py, chúng ta gán một đối tượng âm thanh cho GPIO14 với sound = Button(14). Một lần nữa, chúng ta sử dụng phương thức Button để phát hiện thời điểm pin được kích hoạt.

from gpiozero import Button

sound = Button(14)
msg = ""

while True:
    if sound.value == 1:
        msg = "Intruder!"
    else:
        msg = "All clear"
    print(msg, end = "\r")

Lần này, trong vòng lặp while True:, chúng ta kiểm tra xem chân có cao không (độ nhiễu đủ để kích hoạt cảm biến âm thanh). Như trước, điều này sẽ xác định thông báo nào (trong biến msg1) sẽ được in ra vùng Shell.

Tạo ra tiếng động lớn

Bây giờ là lúc kiểm tra cảm biến âm thanh của chúng ta để đảm bảo nó được kết nối và hoạt động bình thường. Chạy mã Python sound_test.py rồi tạo ra tiếng động lớn để bật đèn LED DAT ở bên phải cảm biến. Bạn có thể thấy rằng bạn phải tạo ra tiếng động lớn trong khoảng một giây và có một chút chậm trễ trước khi thông báo chuyển từ "An toàn" sang "Kẻ xâm nhập!"

Nếu bạn gặp sự cố khi kích hoạt, hãy thử thay đổi độ nhạy của cảm biến âm thanh bằng cách điều chỉnh vít chiết áp dưới (được đánh dấu D cho kỹ thuật số) trên cảm biến. Xoay ngược chiều kim đồng hồ sẽ làm tăng độ nhạy, nhưng không quá nhiều, nếu không đèn LED DAT sẽ luôn sáng.

Thêm thông báo trực quan

Nếu cảm biến và mã của bạn hoạt động bình thường, đã đến lúc chuyển sang phần tiếp theo. Tin nhắn in sẽ hoạt động, nhưng để có thông báo phù hợp, bạn sẽ cần cảnh báo bằng hình ảnh và/hoặc âm thanh.

Tiếp theo hướng dẫn của tháng trước, chúng tôi sẽ thêm một đèn LED đỏ tiêu chuẩn để thông báo trực quan. Đèn LED của chúng tôi là 5mm, nhưng bạn có thể sử dụng bất kỳ kích thước nào khác. Như thường lệ, cần có một điện trở để giới hạn dòng điện đến đèn LED để đảm bảo đèn không tiêu thụ quá nhiều dòng điện và có khả năng làm cháy đèn. Với các đèn LED được đặt trên bảng mạch cắm thử với nhiều hàng chân không được kết nối, chúng tôi sẽ kết nối một điện trở 330Ω giữa chân âm (ngắn hơn) và thanh nối đất của bảng mạch cắm thử. Chân dương (cong, dài hơn) kết nối với GPIO 16 trên Raspberry Pi, theo sơ đồ đấu dây trong Hình 1.

Báo động

Đối với cảnh báo bằng âm thanh, chúng ta sẽ sử dụng một còi nhỏ hoạt động bằng áp điện để tạo ra tiếng bíp. Bạn có thể sử dụng bất kỳ thứ gì khác để tạo ra cảnh báo bằng âm thanh. Còi có chân dương dài hơn và chân âm ngắn hơn. Vị trí của hai chân có thể được đánh dấu ở trên. Kết nối chân âm với thanh nối đất của bảng mạch và chân dương với GPIO 25 (như minh họa trong Hình 1).

Mã thông báo

Sau khi mọi thứ được kết nối như trong Hình 1, giờ bạn đã sẵn sàng lập trình báo thức. Trong mã cuối cùng, invader_alarm.py, chúng ta thêm LED và Buzzer vào tệp nhập gpiozero ở trên. Chúng ta cũng nhập sleep từ thư viện thời gian để sử dụng làm độ trễ.

from gpiozero import Button, LED, Buzzer
from time import sleep

laser = Button(21)
sound = Button(14)
led = LED(16)
buzzer = Buzzer(25)

def alarm():
    print("Intruder alert!", end = "\r")
    for i in range(10):
        led.toggle()
        buzzer.toggle()
        sleep(0.5)
        
while True:
    if laser.value == 0 or 
sound.value == 1:
        alarm()
    else:
        print("All clear      ",
 end = "\r")
        led.off()
        buzzer.off()

Nếu muốn, bạn có thể tạo các chức năng riêng biệt với các thông báo khác nhau cho mỗi báo động (như báo cháy và báo khí gas trong số trước), nhưng lần này chúng tôi giữ nguyên đơn giản với một chức năng báo động duy nhất, vì chúng tôi không phải lo lắng về cách phát hiện kẻ đột nhập. Khi được kích hoạt, chức năng này thực hiện một vòng lặp for, bật và tắt đèn LED và còi báo động một số lần nhất định, với độ trễ ngủ là 0,5 giây mỗi lần.

Trong vòng lặp True: đó, chúng tôi kiểm tra các giá trị chân từ cả hai cảm biến và kích hoạt báo động khi chùm tia laser không có (laser.value == 0) hoặc vượt quá ngưỡng âm thanh (sound.value == 1). Nếu không có cái nào được kích hoạt, chúng tôi sẽ hiển thị thông báo mặc định và đảm bảo đèn LED và còi báo đã tắt.

Kiểm tra hệ thống báo động

Bây giờ hãy kiểm tra hệ thống báo động. Như trước, hãy thử cắt chùm tia laser: đèn LED sau đó sẽ nhấp nháy và báo động sẽ kêu. Làm tương tự với cảm biến âm thanh, tạo ra âm thanh dài. Báo động sẽ hoạt động trở lại, mỗi lần một thông báo "Kẻ xâm nhập!" sẽ xuất hiện trong khu vực Shell.

Đưa nó đi xa hơn

Bây giờ chúng ta có một hệ thống báo động xâm nhập đơn giản. Nếu bạn muốn cải thiện, bạn có thể thêm các cảm biến bổ sung như PIR hoặc thậm chí là camera để phát hiện chuyển động. Bạn có thể bật đèn lớn và/hoặc phát âm thanh báo động hoặc tin nhắn thoại trên loa được kết nối. Bạn cũng có thể gửi email hoặc thông báo đẩy đến điện thoại của mình bất cứ khi nào hệ thống báo động được kích hoạt.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Win a Raspberry Pi!

Answer 5 questions for your chance to win!
Question 1

What color is the sky?

Tìm kiếm bằng danh mục

Chọn danh mục