Mục lục:

Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon: 6 bước
Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon: 6 bước

Video: Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon: 6 bước

Video: Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon: 6 bước
Video: Hệ thống báo trộm bằng cảm biến siêu âm và mạch thu phát âm thanh ISD1820| DIY burglar alarm system 2024, Tháng mười một
Anonim
Image
Image
Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon
Cách tạo hệ thống báo động phát hiện lũ lụt thông minh bằng Raspberry Pi và Particle Argon

Có cảm biến lũ tiêu chuẩn là cách tuyệt vời để ngăn ngừa thiệt hại lớn cho nhà hoặc nơi làm việc của bạn.

Nhưng thật khó nếu bạn không ở nhà để xem báo thức.

Tất nhiên bạn có thể mua những

Hệ thống báo động lũ lụt này phát hiện bất kỳ chất lỏng nào và kích hoạt cảnh báo và cập nhật trang web về lũ lụt có thể được truy cập ở bất kỳ đâu trên thế giới, cho dù bạn đang đi nghỉ thư giãn hay chỉ đang ở cơ quan và bạn muốn biết về tình trạng ngôi nhà của mình.

Quân nhu

Raspberry pi (tôi đang sử dụng kiểu 3 B +) chạy raspbian

Hạt Argon

Cảm biến nước Grove

Máy ảnh Raspi

Buzzer

Dây nhảy

Bước 1: Kết nối cảm biến nước với hạt

Kết nối cảm biến nước với hạt
Kết nối cảm biến nước với hạt
Kết nối cảm biến nước với hạt
Kết nối cảm biến nước với hạt

Cảm biến nước có 4 chân, đó là GND, VCC, NC và SIG và chúng tôi sẽ chỉ sử dụng ba chân trong số đó

Tôi đang kết nối chân SIG với D2 trên Argon.

Bây giờ, bạn có thể khởi chạy Particle Web IDE để viết mã và flash tới Argon

Vì vậy, chúng tôi đã đăng ký chất lỏng hàm Particle và xác định một biến isFloodPresent, có thể được gọi từ Bảng điều khiển hạt và lấy giá trị boolean của isFloodPresent và cũng gọi hàm lỏng để kiểm tra giả lấy giá trị 1 làm đầu vào có nghĩa là đúng với lũ (nước) hiện tại.

đảm bảo rằng bạn có thể thấy chức năng và biến đó từ Bảng điều khiển hạt của Thiết bị hạt của bạn.

Bước 2: Kết nối Nguồn báo động với Raspberry

Kết nối Nguồn báo động với Raspberry
Kết nối Nguồn báo động với Raspberry

Trên breadboard, bạn có thể kết nối Buzzer với chân GPIO của Raspberry

Tôi đã kết nối đầu nhỏ hơn của buzzer với GND (PIN 6) và đầu dài hơn với chân 7 trên mâm xôi.

Bây giờ hãy chạy mã để xem. Chúng tôi sẽ cần tệp python này luôn chạy để nó có thể nhận các trình kích hoạt từ máy chủ web và phản hồi tương ứng.

Ngoài ra, bạn có thể chạy tệp này khi khởi động trên mâm xôi mà bạn có thể thực hiện bằng cách chỉnh sửa / etc / systemd

và tệp này sẽ được đặt trong thư mục cgi của máy chủ apache của bạn, Tôi đã tạo thư mục mới flood-cgi bên trong / var / www / html / và đặt tệp.py này sẽ giao tiếp với tập lệnh cgi của tôi

Bước 3: Định cấu hình máy chủ Apache

Định cấu hình máy chủ Apache
Định cấu hình máy chủ Apache

bạn có thể cài đặt máy chủ apache bằng cách gõ sudo apt-get install apache2

khi nó được cài đặt, bạn có thể xác minh bằng cách nhập tên máy chủ-I

và bạn sẽ nhận được địa chỉ IP cục bộ của mình và bạn có thể truy cập trình duyệt của mình và sẽ thấy máy chủ đang chạy

Bước 4: Bật CGI trên Apache

Bật CGI trên Apache
Bật CGI trên Apache

bạn có thể bật cgi bằng cách gõ sudo a2enmod cgi

Theo Mặc định cgi_bin của apache nằm trong / usr / lib / cgi-bin

đây là nơi bạn có thể đặt các tập lệnh cgi của mình sau khi bật cgi

để có hiệu lực, bạn cần khởi động lại máy chủ apache

Tôi muốn thư mục tùy chỉnh cho các tập lệnh cgi của mình nên tôi đã tạo thư mục trong / var / www / html / được gọi là lũ-cgi

để kích hoạt thư mục này, tôi phải tạo tệp conf bằng cách gõ

sudo nano /etc/apache2/conf-available/flood-cgi.conf

và thêm các lệnh như được hiển thị trong ảnh chụp màn hình

sau đó kích hoạt thư mục này bằng cách gõ

var / www / html $ sudo a2enconf lũ-cgi

bây giờ bạn có thể khởi động lại máy chủ apache của mình một lần nữa và tất cả cgi từ thư mục này sẽ được apache đọc được sau khi cho phép.

Bước 5: Thiết lập trang web

Thiết lập trang web
Thiết lập trang web

Đối với dịch vụ web đơn giản này, tôi đang sử dụng HTML, Javascript, CSS, jquery và ajax.

Tôi có năm nhãn điều khiển có thể nhấp được, Trong trường hợp nhấp vào chụp ảnh từ trang web, nó sẽ kích hoạt chức năng nhấp vào nút ảnh và chức năng này trông như thế này

$ ("# photobutton"). click (function () {var floodDate = new Date ();

var FloodImageName = "Flood_IMG_" + lụtDate.toLocaleTimeString ();

$.ajax ({

url: 'lụt-cgi / lụt_cgi.py', method: 'post', dữ liệu: {name_for_image: lụtImageName}, thành công: hàm (dữ liệu) {

cảnh báo (dữ liệu, trạng thái)

$ ("# nearpic"). attr ("src", "lụt-cgi /" + lụtImageName + ".jpg");

}

})

});

điều này sẽ gọi tập lệnh flood_cgi.py để chụp ảnh và lưu hình ảnh với tên tùy chỉnh được tạo theo ngày và giờ hiện tại và ajax tải lên đến trang.

trong trường hợp Báo thức, chúng tôi có thể sử dụng chức năng này

function callAlarm (alertType) {

$.ajax ({

url: 'lụt-cgi / alert.cgi', method: 'post', dữ liệu: {alert_type: alertType}, thành công: function (dữ liệu) {alert (dữ liệu)

}, error: function (XMLHttpRequest, textStatus, throwError) {alert (throwError)}});

}

hàm callAlarm sẽ được gọi khi nhấp vào nhãn buzzer, $ ("# buzzer"). click (function () {callAlarm ("test");

})

mã dưới đây là khi bạn muốn nhấp vào lũ giả, tức là gọi API hạt và gọi hàm và thay đổi giá trị lỏng 1 và kiểm tra hệ thống xem toàn bộ có hoạt động như mong đợi hay không bằng cách tiến hành một sự kiện lũ giả

$ ("# mockFlood"). click (function () {console.log ("mock lũ đã yêu cầu");

var lụtVal = 1;

$ ("# signal2"). css ("font-size", "small");

var varName = "isFloodPresent";

var deviceID = "ID THIẾT BỊ CỦA BẠN";

var accessToken = "TOKEN TRUY CẬP CỦA BẠN";

nếu (lũ lụt) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/ liquid? access_token =" + accessToken, {lỏng: lụtVal}, hàm (dữ liệu, trạng thái) {

if (trạng thái == "thành công") {

alert ("Mock Flood đã tiến hành !!!");

} khác {

alert ("Xin lỗi, đã xảy ra sự cố");

}

});

}

});

Đây là những chức năng chính bạn cần để tạo kết nối với Hạt Api và quả mâm xôi của bạn để pi mâm xôi và thiết bị hạt Argon của bạn có thể giao tiếp.

lưu ý: Tôi muốn tải lên tất cả mã, nhưng nó không cho phép tôi tải lên tệp.html

Bước 6: Tạo tập lệnh cho Raspi Camera

chúng tôi đang tạo.py đơn giản để chụp ảnh và sẽ có chú thích về ngày và giờ hiện tại trên đó.

sau đó chúng ta sẽ tạo tập lệnh cgi flood_cgi.py để nó sẽ được gọi từ web và điều này sẽ ra lệnh cho tệp.py để chụp ảnh.

đảm bảo bắt đầu tập lệnh cgi bằng #! / usr / bin / env python

và cũng cấp quyền cho apache để chạy các tệp này.

máy chủ apache chạy trên dữ liệu www của người dùng nên khi chúng tôi tạo tệp.py hoặc.cgi, apache cần phải là chủ sở hữu của tệp

sudo chown pi: www-data lụt-cgi.py

và cho phép thực hiện

sudo chmod a + x lũ-cgi.py

bạn sẽ phải làm điều này cho tất cả các tệp cần chạy từ máy chủ apache.

LƯU Ý: việc để mâm xôi của bạn tiếp xúc với internet và cấp tất cả các quyền này khiến mâm xôi của bạn rất dễ bị tấn công vì lý do bảo mật, vì vậy người dùng và các quyền nghiêm ngặt nên được tuân theo và cài đặt tường lửa như tường lửa không phức tạp (ufw)

Đề xuất: