Mục lục:

Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có: 9 bước (có hình ảnh)
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có: 9 bước (có hình ảnh)

Video: Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có: 9 bước (có hình ảnh)

Video: Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có: 9 bước (có hình ảnh)
Video: [Arduino Basic #24] Cảm biến báo cháy 2024, Tháng bảy
Anonim
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có
Hệ thống báo động không dây Arduino sử dụng các cảm biến hiện có

Dự án này có thể được xây dựng trong khoảng nửa giờ với chi phí khoảng $ 20,00 nếu bạn có sẵn các cảm biến báo động không dây 433Mhz hoặc 315Mhz.

Nó cũng có thể là một dự án hoàn toàn mới với các cảm biến cảnh báo không dây, chẳng hạn như máy dò chuyển động hồng ngoại và công tắc sậy, có sẵn trực tuyến dễ dàng và rẻ. Chỉ cần tìm kiếm các cảm biến 433Mhz hoặc 315Mhz sử dụng mã hóa PT2262 hoặc EV1527.

Tôi chắc rằng có nhiều người giống như tôi đã mua hệ thống báo động GSM / 2G với cảm biến không dây và hài lòng với nó, tuy nhiên khi mạng 2G / GSM nơi tôi sống bị tắt, tôi chỉ còn lại một hệ thống báo động mà tôi có thể. không còn chương trình hoặc thậm chí đặt thời gian trên đó. Một ngày nọ, trong khi tự hỏi tôi có thể làm gì để báo thức hoạt động trở lại, tôi chợt kiểm tra xem Arduino có thể nhận tín hiệu từ các cảm biến hay không. Tôi tình cờ tìm thấy https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ không thể cài đặt và sau một số thử nghiệm, tôi xác định rằng tôi có thể nhận tín hiệu từ các cảm biến hiện có của mình. Tôi đã bắt đầu quá trình xây dựng một hệ thống báo động có thể thay thế hệ thống báo động hiện có của tôi và cũng sẽ cung cấp thêm chức năng. Một trong những vấn đề với cảnh báo cũ là không bao giờ thực sự biết chính xác cảm biến nào trong số 25 cảm biến đã hoạt động, bằng cách thêm màn hình LCD vào hệ thống báo động mới của tôi, giờ đây tôi nhận được văn bản trên màn hình LCD cho biết chính xác cảm biến nào đã được kích hoạt. Báo thức mới vẫn có thể được trang bị thủ công bằng bàn phím không dây hiện có của tôi và có đồng hồ thời gian thực để cho phép nó tự động báo động và vô hiệu hóa vào những thời điểm có thể đặt trước trong ngày.

Quân nhu

Xem ghi chú bổ sung ở cuối để đảm bảo bạn sử dụng đúng phiên bản của các phần này.

Arduino Uno hoặc tương tự

Mô-đun thu 433 hoặc 315 MHz cho Arduino

Mô-đun Đồng hồ thời gian thực DS3231 cho Arduino

Mô-đun I2C 16x2 LDC cho Arduino

Công tắc sậy báo động không dây, cảm biến chuyển động và bàn phím điều khiển từ xa như mong muốn

Piezo buzzer

LED & điện trở 220 ohm

Breadboard (tùy chọn nhưng được khuyến nghị)

Nguồn cung cấp phù hợp cho Arduino

Dây nhảy vv

PC đã cài đặt Arduino IDE

Kiến thức cơ bản về Arduino

Bước 1: Nguồn cung cấp

Quân nhu
Quân nhu
Quân nhu
Quân nhu
Quân nhu
Quân nhu

Một số hình ảnh bên trên của các nguồn cung cấp bạn sẽ cần cho dự án này

Bước 2: Lên dây Ardunio và các mô-đun như được hiển thị trong hình ảnh

Lên dây Ardunio và các mô-đun như được hiển thị trong hình ảnh
Lên dây Ardunio và các mô-đun như được hiển thị trong hình ảnh

Piezo giữa chân 5 của Arduino và trái đất

Đèn LED giữa chân 8 của Arduino và đến điện trở 220ohm sau đó nối đất

Bộ thu 433 hoặc 315 Mhz, VCC đến 5V, GND nối đất và một trong 2 chân dữ liệu tới chân2 của Arduino

Mô-đun LCD I2C 16X2 VCC đến 5V, GND nối đất, chân SCL SDA đến SCL SDA của Arduino (chân A5 là SCL, chân A4 là SDA)

DS3231 Mô-đun RTC VCC đến 5V, GND nối đất, chân SCL SDA đến SCL SDA của Arduino (có bộ thứ 2 nằm trên chân GND và AREF của hầu hết các chân Arduino)

Tôi biết một số bạn sẽ không cần thêm thông tin này nữa và bản phác thảo đính kèm bên dưới nhưng tôi sẽ đi vào một số chi tiết hơn cho những ai muốn được hỗ trợ thêm một chút.

Bước 3: Thêm các thư viện cần thiết vào Arduino IDE

Thêm các thư viện cần thiết vào Arduino IDE
Thêm các thư viện cần thiết vào Arduino IDE
Thêm các thư viện cần thiết vào Arduino IDE
Thêm các thư viện cần thiết vào Arduino IDE
Thêm các thư viện cần thiết vào Arduino IDE
Thêm các thư viện cần thiết vào Arduino IDE

Arduino Sketch để chạy cảnh báo sử dụng một số thư viện chưa được cài đặt trên Arduino IDE theo mặc định.

Để thêm thư viện RCSwitch vào Arduino IDE. Mở Arduino IDE trong menu trên cùng, chọn "Phác thảo", sau đó từ menu thả xuống chọn "Bao gồm thư viện" và từ menu thả xuống tiếp theo, chọn "Quản lý thư viện". Sau đó, trong hộp "Lọc tìm kiếm của bạn", nhập "RCSW", tiếp theo nhấp vào cài đặt cho "rc-switch by sui77"

Hướng dẫn chi tiết về cách thêm thư viện tại

Trong khi chúng ta đang ở đó, chúng ta cũng cần thêm các thư viện có tên là Time, TimeAlarms, DS1307RTC và LiquidCrystal_I2C, quy trình tương tự như trên nhưng tìm kiếm tên của từng thư viện mới và cài đặt. Xem ảnh chụp màn hình ở trên nếu không chắc chắn nên sử dụng thư viện nào.

Đồng hồ thời gian thực DS3231 tương thích và sử dụng thư viện DS1307RTC.

Bước 4: Tiếp theo, chúng ta cần lấy mã cho cảm biến của bạn

Tiếp theo, chúng tôi cần lấy mã cho cảm biến của bạn
Tiếp theo, chúng tôi cần lấy mã cho cảm biến của bạn
Tiếp theo, chúng tôi cần lấy mã cho cảm biến của bạn
Tiếp theo, chúng tôi cần lấy mã cho cảm biến của bạn

Tôi đã cung cấp mẫu mã Arduino bên dưới nhưng bạn sẽ cần tìm các giá trị cho từng cảm biến của mình và dán chúng vào mã.

Có nhiều thông tin về cách lấy các mã này tại cả hai trang web này;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Tuy nhiên đây là phiên bản viết tắt của tôi;

Để lấy mã mà cảm biến và fobs khóa từ xa của bạn đang gửi, hãy gắn Arduino như đã lắp ráp ở bước 1 vào PC qua cáp USB và mở Arduino IDE. Sau đó, trong Arduino IDE, chuyển đến menu thả xuống "Tệp", sau đó đi đến "Ví dụ" cuộn xuống danh sách các bản phác thảo ví dụ cho đến khi bạn tìm thấy "RCSWITCH", sau đó chọn bản phác thảo "NhậnDemo_Advanced" và tải nó lên Arduino. Khi bản phác thảo được tải lên thành công, hãy mở màn hình nối tiếp của Arduino IDE với nó vẫn được gắn vào PC của bạn qua USB. Bây giờ hãy kích hoạt cảm biến đầu tiên mà bạn muốn lấy mã, đầu ra từ RCSwitch sẽ xuất hiện trong cửa sổ giám sát nối tiếp. Đối với dự án này, chúng tôi đang tìm kiếm các mã thập phân như được đánh dấu trong ảnh chụp màn hình 2. Bạn sẽ cần phải kích hoạt cảm biến nhiều lần để tìm kiếm giá trị thập phân xuất hiện thường xuyên nhất, đôi khi sẽ có các giá trị khác nhau xen lẫn với giá trị thực, điều này là do do nhiễu sóng vô tuyến ngẫu nhiên hoặc các thiết bị khác hoạt động trên cùng tần số.

Lưu ý mã thập phân của cảm biến để sử dụng trong bước tiếp theo. Lặp lại cho tất cả các cảm biến và bàn phím từ xa mà bạn muốn sử dụng trong dự án, theo dõi mã nào đi với cảm biến nào. Nếu sử dụng bàn phím bàn phím để mở tay và vô hiệu báo động, bạn sẽ cần lưu ý các mã khác nhau cho nút cánh tay và nút vô hiệu hóa của mỗi điều khiển từ xa.

Bước 5: Mẫu mã Arduino

Dưới đây là bản sao mã Arduino của tôi dưới dạng tệp.ino có tên Wireless_Alarm. Bạn có thể nhấp vào nó và nó sẽ mở trong Arduino IDE. Tôi không phải là lập trình viên, mã của tôi được tập hợp một phần từ các ví dụ được tìm thấy trong Arduino IDE, nó có thể không đặc biệt thanh lịch nhưng nó hoạt động và đáng tin cậy trong một thời gian dài.

Hãy nhớ lưu lại bản phác thảo sau khi bạn thực hiện các thay đổi để bao gồm các mã từ cảm biến của riêng bạn.

Bước 6: Dán các mã bạn lấy được ở bước 5 vào bản phác thảo Arduino mẫu

Bây giờ là các bước tùy chỉnh mã cho các cảm biến và bàn phím từ xa mà bạn đang sử dụng.

Nếu bạn mở bản phác thảo Wireless_Alarm trong IDE của mình, bạn sẽ thấy ở dòng 111.

if (mySwitch.getReceiveValue () == 115166236) // Mã nút cánh tay Fob

Khi mã hiện có ghi 115166236, bạn cần thay thế số đó bằng mã thập phân cho nút cánh tay của keyfob từ xa mà bạn đã ghi ở Bước 5.

Ví dụ: nếu ở bước 5 bạn nhận được số thập phân 1154321, bạn sẽ sửa đổi dòng 111 để bây giờ đọc;

if (mySwitch.getReceiveValue () == 1154321) // Mã nút cánh tay Fob

Làm theo quy trình tương tự cho dòng 125.

if (mySwitch.getReceiveValue () == 115166234) // Mã nút vô hiệu hóa Fob

Thay thế 115166234 cho mã của nút mở khóa keyfob từ xa mà bạn đã ghi ở Bước 5.

Nếu bạn muốn sử dụng nhiều bàn phím từ xa để điều khiển và giải trừ vũ khí, hãy sao chép và dán các dòng từ 111 đến 136 nhiều lần theo yêu cầu, sau đó thay đổi các giá trị cho phù hợp với bàn phím từ xa khác của bạn, nhưng tốt nhất chỉ nên bắt đầu với một điều khiển từ xa cho đến khi bạn chắc chắn rằng mình đã sửa đổi phác thảo đang hoạt động.

Bây giờ để mã hóa các cảm biến báo động trong bản phác thảo ở dòng 140

if (ledState == HIGH && mySwitch.getReceiveValue () == 1151640) // Hành động cho tủ văn phòng người gửi tín hiệu

Lấy ra 1151640 và chèn giá trị thập phân của một trong các cảm biến báo động của bạn.

Sau đó ở dòng 158.

lcd.print (F ("Tủ văn phòng")); // in thông báo ra màn hình LCD để biết cảm biến nào đã được kích hoạt (và đi tìm tên trộm:)

Thay đổi tủ văn phòng thành những gì bạn muốn được hiển thị trên màn hình LCD cho cảm biến đó. Ví dụ, nếu bạn muốn nó đọc trong nhà bếp, hãy làm cho dòng giống như thế này;

lcd.print (F ("Kitchendoor")); // in thông báo ra LCD để biết cảm biến nào đã được kích hoạt (và đi tìm tên trộm:)

Tên không được vượt quá 16 ký tự.

Giữa dòng 165 và 187 là một mẫu để sao chép và dán nhiều lần theo yêu cầu vào các dòng ngay bên dưới 187. Thay thế số sau mySwitch.getReceiveValue () == bằng số thập phân của một trong các cảm biến khác mà bạn đã ghi lại ở bước 5 và thay đổi tên trong "" trong lcd.print (F ("sensornamehere")); vào tên bạn muốn đặt cho cảm biến của mình.

Nếu bạn không sử dụng bàn phím từ xa để điều khiển và tắt báo thức, bạn có thể bỏ qua các dòng 111-136 hoặc đặt // ở đầu mỗi dòng không mong muốn và Arduino sẽ không đọc chúng.

Hãy nhớ lưu tệp sau khi bạn đã thực hiện các thay đổi của mình.

Bước 7: Tải.ino đã sửa đổi lên Arduino của bạn và kiểm tra

Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm
Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm
Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm
Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm
Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm
Tải.ino đã sửa đổi lên Arduino của bạn và thử nghiệm

Với Arduino vẫn được kết nối với PC của bạn bằng USB, hãy tải bản phác thảo lên Bảng Arduino. Khi quá trình tải lên hoàn tất thành công, màn hình LCD sẽ hiển thị "Alarm On Disarmed". Nhấn nút cánh tay trên điều khiển từ xa của bạn và màn hình LCD sẽ đọc "Alarm On Armed" và đèn LED sẽ sáng để cho bạn biết nó được trang bị vũ khí, bây giờ kích hoạt một cảm biến khi nó được trang bị, màn hình LCD sẽ đọc Báo thức theo sau dấu thời gian và vị trí của cảm biến, tiếng bíp sẽ phát ra trong 2 phút trừ khi bạn nhấn nút tắt báo động. Nếu bạn không nhận được kết quả này, hãy kiểm tra lại các mã bạn nhận được ở Bước 5 và những thay đổi bạn đã thực hiện đối với mã ở bước trước, cũng hãy kiểm tra lại hệ thống dây của tất cả các thành phần. Nếu màn hình LCD hoàn toàn không đọc, có một điều chỉnh độ tương phản ở mặt sau của mô-đun LCD. Sau khi độ tương phản được đặt chính xác nếu màn hình LCD vẫn không đọc, hãy thử thay đổi Địa chỉ của màn hình LCD từ 0x3f thành 0x27 tại dòng 12 trong bản phác thảo. Khắc phục sự cố LCD tại đây Hướng dẫn sử dụng I2C LCD

Bước 8: Đặt thời gian trên mô-đun RTC và thay đổi thời gian mở vũ khí và cánh tay

Hy vọng rằng RTC của bạn đã được đặt với thời gian chính xác nhưng nếu không mở IDE, hãy chọn 'Tệp "và từ menu thả xuống, nhấp vào" Ví dụ ", cuộn xuống" DS1307RTC "và chọn phác thảo" SetTime ", tải xuống bản phác thảo của bạn Arduino và nó sẽ đặt đồng hồ thời gian thực với thời gian từ PC của bạn. Sau đó, bạn sẽ cần tải lại bản phác thảo Wireless_Alarm vào Arduino của mình.

Wireless_Alarm.ino mà tôi đã cung cấp theo mặc định sẽ đặt báo thức tự động hoạt động vào lúc 10 giờ 15 phút mỗi đêm và tắt báo động lúc 6 giờ sáng mỗi sáng. Để thay đổi những thời gian này, hãy sửa đổi Sketch tại dòng 71 và 72. Thời gian nằm trong ngoặc sau Alarm.alarmRepeat ở định dạng HH, MM, SS. thay đổi điều này thành bất cứ lúc nào phù hợp với bạn.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // DISARM thời gian

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // giờ ARM

Vì vậy, để thay đổi thời gian giải giáp thành 9h15 sáng và thời gian cánh tay thành 5h30 chiều, mã sẽ như thế này

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // DISARM thời gian

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // giờ ARM

Nếu bạn không muốn báo thức hoạt động và vô hiệu hóa tự động đặt // ở phía trước của 2 dòng và chúng sẽ không được sử dụng.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DISARM thời gian

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Thời gian cánh tay

Có thể thay đổi thời gian tiếng bíp báo thức bằng cách sửa đổi dòng 22

khoảng dài const = 120000; // cho độ trễ mili đối với thời lượng âm thanh báo động

Khoảng thời gian tính bằng mili giây nên 120000 = 120 giây, thay đổi 120000 thành 30000 sẽ khiến báo thức kêu trong 30 giây.

Một bộ điện từ để chạy còi báo động, đèn nhấp nháy, tiếng bíp âm lượng lớn, v.v. cũng có thể được nối dây vào chân 7 hoặc chân 9 và sẽ chạy trong "khoảng thời gian" như đã thiết lập ở trên. Hãy nhớ rằng tải tối đa cho một chân Arduino không được vượt quá 40mA.

Bước 9: Ghi chú bổ sung

Khi chọn mô-đun thu 433 hoặc 315 MHz cho Arduino, bạn nên chọn tần số để phù hợp với cảm biến cảnh báo bạn định sử dụng. Tôi khuyên bạn nên mua một mô-đun đi kèm với một ăng-ten xoắn ốc nhỏ để có hiệu suất tốt nhất, ngoài ra một ăng-ten dây thẳng dài 17,3mm cũng giúp tăng hiệu suất.

Với mô-đun LCD 16x2, bạn phải sử dụng LCD I2C 4 chân để sử dụng các hướng dẫn và mã mà tôi cung cấp ở đây, nó có thể được làm bằng LCD tiêu chuẩn 16 chân nhưng nó sẽ không hoạt động với hệ thống dây điện hoặc mã ở đây.

Công tắc sậy báo động không dây, cảm biến chuyển động và bàn phím điều khiển từ xa phải là 433Mhz hoặc 315Mhz để khớp với bộ thu bạn định sử dụng và nên sử dụng mã hóa PT2262 hoặc EV1527.

Báo thức có thể mở rộng và có thể điều chỉnh, tôi đã thêm thẻ SD để ghi lại khi cảm biến được kích hoạt, đã sửa đổi màn hình LCD để chỉ sáng khi giữ một nút và thêm còi báo động 100dB, nhưng tôi đã không bao gồm chi tiết ở đây để giữ cho bài viết như ngắn gọn và đơn giản nhất có thể. Tôi hy vọng việc chia sẻ công việc tôi đã thực hiện trên báo thức này có ích cho những người khác.

rất vui để trả lời bất kì câu hỏi nào.

Cảm ơn.

Đề xuất: