3.2.2. Khối xử lý trung tâm
Hình 3.3. Khối xử lý trung tâm
Mạch sử dụng Arduino UNO R3 làm khối xử lý trung tâm. Arduino UNO R3 nhận và xử lý tín hiệu từ cảm biến vật cản hồng ngoại E18-D80NK, xuất hiển thị ra LCD16X2 và cảnh báo theo chƣơng trình đã đƣợc cài đặt sẵn đến các module relay, buzzer và module SIM800L, và nhận tín hiệu truyền đến từ điện thoại thông qua module SIM để tắt thiết bị cảnh báo.
3.2.3. Khối cảm biến
Hình 3.4. Khối cảm biến
Sử dụng cảm biến vật cản hồng ngoại E18-D80NK, khi phát hiện có đột nhập cảm biến sẽ phát tín hiệu cảnh báo về khối xử lý trung tâm để phát ra tín hiệu báo động.
3.2.4. Khối báo động từ xa
Hình 3.5. Khối báo động từ xa
Sử dụng module SIM800L nhận tín hiệu cảnh báo từ khối xử lý trung tâm, quay số gọi điện và nhắn tin đến số thuê bao đã đƣợc cài đặt sẵn để cảnh báo, và nhận tín hiệu điều khiển từ số điện thoại chủ thuê bao và truyền tín hiệu lại khối xử lý trung tâm để tắt thiết bị cảnh báo.
3.2.5. Khối báo động tại chỗ
Hình 3.6. Khối báo động tại chỗ
Sử dụng module relay 5VDC, buzzer, bóng đèn led buld và nguồn xoay chiều 220V cấp cho bóng đèn và nối với relay. khi có tín hiệu cảnh báo từ khối xử lý trung tâm, module relay đƣợc kích bật đèn và đồng thời buzzer phát ra âm thanh để báo động.
3.2.6. Khối hiển thị
Sử dụng màn hình LCD 16x2 kết nối với khối xử lý trung tâm thông qua chuẩn giao tiếp I2C để hiển thị trạng thái hoạt động của toàn hệ thống.
3.2.7. Sơ đồ ngun lý tồn mạch
Hình 3.8. Sơ đồ ngun lý tồn hệ thống
Nguyên lý hoạt động của mạch.
Ta cấp một nguồn 5VDC thông qua Arduino để cấp cho toàn mạch hoạt động. Sau khi đƣợc cấp nguồn cảm biến vật cản hồng ngoại E18-D80NK tạo ra một vùng bảo vệ để phát hiện đột nhập. Màn hình LCD 16X2 hiển thị trạng thái hoạt động của mạch. Module SIM800L, module relay và cịi buzzer ln trong trạng thái chờ.
Khi có đột nhập, cảm biến vật cản hồng ngoại sẽ phát tín hiệu cảnh báo về khối xử lý trung tâm. Arduino sẽ phát tín hiệu cảnh báo đến buzzer để phát ra âm thanh lớn báo động, đồng thời module relay kích bật đèn sáng để chủ nhà dễ dàng xác định vị trí ngƣời đột nhập, đồng thời tín hiệu đƣợc đƣa đến module SIM800L để quay số gọi điện và nhắn tin đến số thuê bao đƣợc cài đặt để báo động ở xa. Màn hình LCD xuất trạng thái cảnh báo.
Sau khi giải quyết đƣợc vấn đề đột nhập, do đang là trạng thái báo động nên cịi báo động sẽ rất ồn, vì thế chủ thuê bao có thể nhắn tin “OFF” đến số điện thoại đƣợc
lắp trong module SIM800L để tắt buzzer và đèn. Màn hình LCD 16X2 xuất trạng thái “turn of buzzer” sau đó trở lại trạng thái ban đầu.
CHƢƠNG IV: THI CÔNG HỆ THỐNG
4.1. THI CÔNG BOARD MẠCH
Hình 4.1. Mạch in của hệ thống.
Hình 4.2. Mạch PCB 3D lớp dưới.
Sau khi in ra board đồng, cần kiểm tra các đƣờng giây có bị hở hay không? Khi khoan lỗ để hàn chân linh kiện cũng phải dùng mũi khoan sao cho hợp lý với chân linh kiện, điều này giúp linh kiện khi lắp vào mạch đƣợc chắc chắn, việc hàn linh kiện cũng dễ dàng hơn.
4.2. DANH SÁCH LINH KIỆN ĐƢỢC SỬ DỤNG TRONG MẠCH
Bảng 4.1. Danh sách linh kiện được sử dụng trong mạch.
STT Tên linh kiện Số lƣợng
1 Nguồn adapter 5VDC 1
2 Board Arduino UNO R3 1
3 Module SIM800L 1
4 Cảm biến vật cản hồng ngoại E18-D80NK 1
5 Module relay 1 kênh 5V 1
6 Bóng đèn led buld 1
7 Màn hình LCD 16x2 1
8 Chuẩn giao tiếp I2C 1
9 Còi báo buzzer 1
4.3. LẮP RÁP VÀ KIỂM TRA Quy trình lắp ráp và kiểm tra mạch: Quy trình lắp ráp và kiểm tra mạch:
- Bƣớc 1: Rửa board đồng sạch sẽ bằng nƣớc rửa mạch sau khi ủi mạch, phủ nhựa thơng để tránh oxy hóa và tiến hành khoan lỗ.
- Bƣớc 2: Dùng đồng hồ chỉnh thang đo điện trở x1 để kiểm tra ngắn mạch xem ngõ vào 5V thông với các cảm biến và module hay chƣa và GND có nối nhau chƣa.
- Bƣớc 3: Hàn các chân linh kiện và các hàng rào vào board mạch, tiến hành đo đạt kiểm tra kết nối.
Hình 4.4. Board mạch lớp dưới.
4.4. THI CƠNG MƠ HÌNH
Sau khi kiểm tra mạch hoạt động tốt ta tiên hành lắp ráp mơ hình cho hệ thống.
Hình 4.6. Mơ hình hệ thống khi chưa hoạt động.
CHƢƠNG V: KẾT QUẢ ĐẠT ĐƢỢC, NHẬN XÉT VÀ ĐÁNH GIÁ
5.1. KẾT QUẢ ĐẠT ĐƢỢC
Sau khi hoàn thành đồ án này, em đã nghiên cứu và tích lũy thêm nhiều hiểu biết, kiến thức mới, tăng khả năng vận dụng lý thuyết vào thực tế, hiểu biết hơn về hệ thống chống trộm, các tính năng của Arduino UNO R3, module SIM800L, cảm biến vật cản hồng ngoại E18-D80NK, ….
5.2. NHẬN XÉT VÀ ĐÁNH GIÁ
Sau thời gian tìm hiểu, thiết kế và thi công đồ án với đề tài “Thiết kế và thi công
hệ thống chống trộm qua điện thoại” đã hồn thiện.
Nhìn chung, mơ hình hệ thống hoạt động tƣơng đối ổn định, có thể làm việc liên tục, đạt đƣợc yêu cầu ban đầu đề ra.
Sản phẩm hoạt động phụ thuộc một phần vào mạng điện thoại. vùng phủ sóng càng mạnh thì thiết bị hoạt động càng tốt.
Tuy nhiên, do hạn chế về kiến thức cũng nhƣ thời gian, nguồn tham khảo chủ yếu là thơng qua mạng internet nên đề tài cịn có hạn chế:
- Hoạt động chƣa tốt ở vùng có sóng điện thoại yếu. - Tính thẩm mỹ và độ chính xác chƣa cao.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Kết luận
Sau thời gian cố gắng và nổ lực tìm kiếm tài liệu cùng với sự tận tình hƣớng dẫn của thầy TS. Nguyễn Vũ Anh Quang, đồ án đã hoàn thành đúng thời gian quy định và theo yêu cầu đặt ra là cảnh báo khi có đột nhập.
Sau thời gian thực hiện đồ án em đã biết cách sử dụng, điều chỉnh các cảm biến, module, Arduino.
Mơ hình phần cứng đƣợc bố trí phù hợp, dễ dàng quan sát. Vì mơ hình nhỏ nên độ chính xác chƣa đƣợc cao.
Hƣớng phát triển
Do đề tài mới chỉ dừng lại ở việc thiết kế mơ hình hệ thống nhỏ nên chƣa phản ánh đƣợc hết những trƣờng hợp ngoài thực tế dễ xảy ra báo động giả. vì vậy để hệ thống có thể phát triển hơn trong đời sống, em xin đề xuất một vài phƣơng án để cải thiện đề tài:
- Sử dụng những cảm biến chun dụng có độ chính xác cao.
- Có thể dùng thêm camera vào hệ thống để chụp hình lại hiện trƣờng khi có đột nhập, tránh trƣờng hợp báo động giả.
TÀI LIỆU THAM KHẢO
[1]. Bkaii.com.vn “hệ thống thơng tin di động tồn cầu mạng di động GSM”. [2]. Esmarthome.net “TÀI LIỆU ĐÀO TẠO HỆ THỐNG BÁO ĐỘNG”.
[3]. HUỲNH MINH PHÚ (2015) “TỰ HỌC NHANH ARDUINO CHO NGƢỜI MỚI BẮT ĐẦU”.
[4]. HUỲNH MINH PHÚ (2017) “Hƣớng dẫn sử dụng module sim800L” Lập trình vi điều khiển, (221).
[5]. Tìm hiểu module sim800l (https://espace.edu.vn/module-arduino-va-thu- vien/sim800l-module-gsm-nhan-tin-va-goi-dien-gia-re/ ).
PHỤ LỤC
Lƣu đồ thuật toán của hệ thống.
Code chƣơng trình hệ thống. #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #include <Sim800l.h> #include <SoftwareSerial.h> SoftwareSerial sim(10, 11); int _timeout; String _buffer; #define relay 7 #define buzzer 8 #define ir 9
Sim800l Sim800l; String textSms; String number = "+84337572996"; uint8_t index1; int demSms = 0; //........................................................... void setup() { Serial.begin(9600); _buffer.reserve(50); sim.begin(9600); Sim800l.begin(); lcd.init(); lcd.backlight(); pinMode(relay, OUTPUT); digitalWrite(relay, LOW); pinMode(buzzer, OUTPUT); pinMode(ir, INPUT); lcd.setCursor(5, 0); lcd.print("WELCOME"); chaychu(); delay(1000); lcd.clear(); lcd.setCursor(0, 0);
lcd.print(" ANTI THEFT "); lcd.setCursor(0, 1); lcd.print("Status:"); Sim800l.delAllSms(); Serial.println("<<Connected>>"); } //........................................................... void loop() {
if (digitalRead(ir) == 1) { lcd.setCursor(0, 1); lcd.print("Status: "); lcd.setCursor(8, 1); lcd.print("NORMAL "); Serial.println("normal"); } if (digitalRead(ir) == 0) { lcd.setCursor(8, 1); lcd.print("WARNING "); digitalWrite(relay, LOW); delay(3000); digitalWrite(relay, HIGH); delay(3000); digitalWrite(buzzer, HIGH); Serial.println("WARNING"); Serial.println(number); Serial.println("send meggase"); lcd.setCursor(0, 1); Serial.println("Calling to phone"); lcd.print("Calling to phone"); callNumberr(); lcd.setCursor(0, 1); lcd.print("Sending message "); SendMessage(); lcd.setCursor(0, 1); lcd.print("Send message "); while (1) { textSms = Sim800l.readSms(1);
Serial.println("Ready");
if (textSms.indexOf("OFF") != -1) {
lcd.setCursor(0, 1);
lcd.print("Turn OFF BUZZER "); digitalWrite(buzzer, LOW); digitalWrite(relay, LOW); Serial.println("off"); Sim800l.delAllSms(); Serial.println("delete"); goto endd; } } } endd:; } //........................................................... void SendMessage() {
Serial.println ("Sending Message");
sim.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode delay(1000);
sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone number to send message
delay(1000);
String SMS = "WARNING"; sim.println(SMS);
delay(100);
sim.println((char)26);// ASCII code of CTRL+Z delay(5000);
//...................................................... void callNumberr() { sim.println("AT"); updateSerial(); sim.println("ATD+ " + number + ';'); updateSerial(); Serial.println("calling");
delay(20000); // wait for 20 seconds... sim.println("ATH"); updateSerial(); } void updateSerial() { delay(500); while (Serial.available()) { sim.write(Serial.read()); } while (sim.available()) { Serial.write(sim.read()); } } //........................................................... void chaychu() {
for (int positionCounter = 0; positionCounter < 13; positionCounter++) { lcd.scrollDisplayLeft();
delay(150); }
lcd.scrollDisplayRight(); delay(150);
}
for (int positionCounter = 0; positionCounter < 16; positionCounter++) { lcd.scrollDisplayLeft();
delay(150); }