5. Đối tượng và phạm vi nghiên cứu
2.2.1 Sơ đồ khối hệ thống và chức năng từng khố
Hình 2.1: Sơ đồ khối hệ thống
Chức năng từng khối:
Khối hiển thị: kết nối nhận dữ liệu từ khối xử lý trung tâm để hiển thị cho người dùng.
Khối nhập dữ liệu đóng/mở cửa: kết nối khối xử lý trung tâm để truyền nhận dữ liệu.
Khối đóng/mở cửa: thực hiện chức năng đóng mở cửa.
Khối cảm biến: thu thập các thông tin dữ liệu cảm biển và truyền về khối xử lý trung tâm.
Khối thực hiện sms/gọi: thực hiện chức năng gửi sms hoặc gọi đến người dùng. Khối báo động: thực hiện chức năng phát ra âm thanh cảnh báo khi cần.
Khối xử lý trung tâm: là nơi xử lý chính của hệ thống và được kết nối tới tất cả các khối khác để truyền nhận dữ liệu, xử lý điều khiển toàn bộ hệ thống hoạt động.
Khối nguồn: cung cấp nguồn điện cho toàn bộ các khối còn lại của hệ thống hoạt động và duy trì nguồn điện liên tục cho hệ thống.
2.2.2 Mô tả hệ thống
Khối nhập dữ liệu để kiểm tra đóng/mở cửa sẽ tiến hành lấy thông tin và đưa về khối xử lý trung tâm để kiểm tra điều kiện để đóng/mở cửa nếu đúng thẻ đã đăng ký hay nhập đúng mã số thì cho khối đóng/mở cửa thực hiện.
Giao diện nhập mật khẩu sẽ hiển thị qua LCD của khối hiển thị.
Nếu chủ nhà bật chế độ cảnh báo đột nhập thì khối cảm biến cho phép cảm biến chuyển động phát hiện người lạ hoặc cảm biến cháy nổ phát hiện lửa thì khối báo động sẽ tiến hành bật loa và khối thực hiện sms/gọi sẽ nhắn tin, gọi điện để cảnh báo cho chủ nhà.
Hệ thống sử dụng mạng internet để cập nhật trạng thái các thiết bị và cập nhật lại danh sách thẻ RFID qua firebase.
Chủ nhà có thể bật chế độ cảnh báo đột nhập, tắt mở loa báo động, thay đổi mật khẩu thông qua trang web.
Nếu trong trường hợp mất internet hệ thống vẫn có thể hoạt động báo động bình thường qua loa và nhắn tin, gọi điện, mở cửa bằng các thẻ RFID được cập nhật ở lần gần nhất hoặc bằng mật khẩu mặc định.
Bình thường sẽ dùng nguồn điện lấy từ nguồn điện trong nhà, khi cúp điện thì sẽ chuyển sang sử dụng nguồn dự phòng.
2.3 Thiết kế chi tiết từng khối 2.3.1 Khối hiển thị
Sử dụng màn hình LCD 20x4 hiển thị thông tin mật khẩu khi nhập bằng keypad 4x4 để mở cửa nhà, trong trường hợp không sử dụng thẻ từ RFID.
Để dễ dàng giao tiếp với khối xử lý trung tâm, nhóm thực hiện giao tiếp LCD thông qua module I2C LCD. Kết nối 16 chân LCD với 16 chân của module I2C LCD theo đúng các thứ tự từ VSS đến LED-.
Module I2C LCD giao tiếp theo chuẩn I2C sẽ được kết nối các chân VCC, GND, SDA, SCL đến khối xử lý trung tâm.
2.3.2 Khối nhập dữ liệu đóng/mở cửa
Mở cửa bằng keypad 4x4: Bàn phím ma trận 4x4 được sử dụng để nhập mật khẩu mở cửa nhà trong trường hợp không sử dụng thẻ RFID.
Ở đề tài để giảm thiểu số lượng chân kết nối vào khối xử lý trung tâm nhóm đã dùng ADC để đọc giá trị phím nhấn. Kết nối keypad 4x4 với các điện trở theo hình dưới để đọc được giá trị điện trở cho từng nút nhấn.
Hình 2.2: Sơ đồ kết nối keypad 4x4 để đọc giá trị ADC
Bảng 2.1: Giá trị điện trở các nút nhấn (đơn vị Ω) Ký tự 0 1 2 3 4 5 6 7 8 9 A B C D * #
Mở cửa bằng RFID: Gồm module RFID RC522 được lắp đặt ngay cửa nhà có nhiệm vụ nhận dạng mã thẻ đúng, gửi về khối xử lý trung tâm. Nếu mã thẻ được đọc đúng sẽ mở cửa nhà.
Module RFID RC522 giao tiếp theo chuẩn SPI sẽ được kết nối các chân VCC, GND, SDA, SCK, MISO, MOSI đến khối xử lý trung tâm.
2.3.3 Khối đóng/mở cửa
Để mô phỏng hoạt động mở cửa cho mô hình trong đề tài này nhóm sử dụng động cơ RC servo 9G để xoay một góc để mở cửa. Servo sẽ gồm có ba chân kết nối VCC, GND, và chân PWM đến khối xử lý trung tâm.
2.3.4 Khối cảm biến
Gồm hai cảm biến được đặt vị trí trên trần cao để phát hiện chuyển động, phát hiện lửa gây cháy.
Cảm biến chuyển động PIR được kích hoạt hoạt động khi không có người ở nhà, khi cảm biến phát hiện có sự đột nhập sẽ báo động đến chủ nhà.
Nhóm sử dụng cảm biến chuyển động PIR HC-SR501 gồm ba chân VCC, GND, và Signal để đọc tín hiệu mức logic kết nối đến khối xử lý trung tâm.
Cảm biến lửa sẽ báo động khi phát hiện có lửa xảy ra. Module cảm biến này gồm có bốn chân kết nối VCC, GND, D0, A0.
D0 và A0 đều là hai chân đọc tín hiệu D0 là tín hiệu digital còn A0 là tín hiệu analog, nhóm chỉ sử dụng đọc tín hiệu chân D0 trong đề tài này. Vậy sẽ có ba chân kết nối đến khối xử lý trung tâm.
2.3.5 Khối thực hiện sms/gọi
Gồm module sim 800L thực hiện chức năng gọi hoặc nhắn tin tới số điện thoại người dùng khi xảy ra các trường hợp khẩn cấp. Để module Sim800L hoạt động được ổn định, cần điều chỉnh đúng mức điện áp mà nhà sản xuất đã yêu cầu cho module.
Module sim 800L giao tiếp theo chuẩn UART bao gồm bốn chân VCC, GND và RX, TX để truyền nhận dữ liệu theo chuẩn giao tiếp. Chú ý VCC cho module cần đúng điện áp theo hướng dẫn nhà sản xuất cho module.
2.3.6 Khối báo động
Nhóm sử dụng một còi buzzer 5V trong để tài như một loa báo động khi phát hiện cháy hoặc có người lạ đột nhập vào nhà.
Buzzer gồm hai chân VCC và GND kết nối đến khối xử lý trung tâm.
2.3.7 Khối xử lý trung tâm
Sau khi lựa chọn các linh kiện của các khối trên, tính toán số chân kết nối của tất cả các linh kiện và các chuẩn giao tiếp sử dụng cho nó, nhóm thực hiện đề tài đề xuất sử dụng kit phát triển ESP8266 NodeMCU 1.0 để thực hiện đề tài với các lí do: module được tích hợp sẵn chip ESP8266, xuất sẵn các chân giúp dễ dàng lập trình, dễ dàng kết nối wifi, các module khác nhau và giao tiếp với server mà không cần module rời, có đầy đủ các chuẩn giao tiếp mà đề tài cần sử dụng.
Khối xử lý trung tâm được cấp nguồn 5V để điều khiển các module rời thực hiện các chức năng của hệ thống. Khối này thực hiện việc giao tiếp với module đọc thẻ từ RFID hoặc bàn phím keypad, điều khiển động cơ servo đóng mở cửa, đồng thời thu thập
dữ liệu từ các cảm biến chuyển động, cảm biến cháy, thực hiện việc báo động bằng còi buzzer, thực hiện gửi tin nhắn hoặc cuộc gọi khẩn cấp đến người dùng. Các chân của ESP8266 được kết nối giao tiếp với các khối ngoại vi như sau: Bảng 2.2: Sơ đồ kết nối chân ESP8266 với các linh kiện ngoại vi
GND
GND
GND TX RX SD2 GND 2.3.8 Khối nguồn
Để hệ thống hoạt động ổn định liên tục nhóm sử dụng module chuyển nguồn M350 được kích hoạt bởi nguồn 12VDC.
Khối sẽ sử dụng hai nguồn vào đều là 12VDC:
Nguồn 1: điện áp xoay chiều 220V qua Adapter xuống 12VDC 2A nối vào ngõ vào in 1 module chuyển nguồn M350.
Nguồn 2: pin dự phòng 12VDC 2A nối vào ngõ vào in 2 module chuyển nguồn M350.
Vì các linh kiện sử dụng cao nhât mức điện áp là 5VDC nên nguồn ngõ ra của module chuyển nguồn cần gắn vào module hạ áp. Trong để tài cần sử dụng đến hai module hạ áp:
Module hạ áp 1: hạ áp xuống 5V cấp trực tiếp cho ESP8266.
Module hạ áp 2: hạ áp xuống 4.2V cấp trực tiếp cho module Sim800L.
Bảng 2.3: Sơ đồ chân kết nối nguồn Nguồn ra từ module hạ áp 1 Vout+ Vout- Nguồn ra từ module hạ áp 2 Vout+ Vout- 41
2.3.9 Sơ đồ mạch nguyên lý
2.4 Thiết kế phần mềm
2.4.1 Giải thuật phần mềm cho phần cứng
Khối xử lý trung tâm là nơi xử lý chính của toàn bộ hệ thống, nhóm đã chọn sử dụng module ESP8266 để dễ dàng lập trình và tối ưu nhất có thể. Hình dưới đây là giải thuật cho phần lập trình hệ thống hoạt động đúng yêu cầu đặt ra:
Hình 2.5: Lưu đồ giải thuật phần mềm (2/2) 2.4.2 Giao diện website và firebase
Sử dụng Realtime Database của Google Firebase để lưu trữ được danh sách thẻ RFID trong trường hợp cần phải thêm, bớt thẻ, lưu trữ các trạng thái cảm biến, buzzer, hoạt động của hệ thống theo thời gian thực để có thể hiển thị lên website và cho phép người dùng giao tiếp với hệ thống.
Hình 2.6: Realtime Database của hệ thống trên Google Firebase
Trang web được viết đơn giản theo các ngôn ngữ thuần HTML, CSS, Javascript, có thể kết nối đến google firebase để lấy dữ liệu của hệ thống, qua đó hiển thị những thông tin cần thiết đến người dùng và cho phép người dùng điều khiển được chức năng của hệ thống.
CHƯƠNG 3: KẾT QUẢ NGHIÊN CỨU VÀ ĐÁNH GIÁ 3.1 Kết quả thực hiện
Sau quá trình nghiên cứu và thực hiện mô hình, nhóm thực hiện đã đưa ra mô hình hệ thống hoàn chỉnh cùng kết quả phần cứng và phần mềm thực hiện được trong đề tài này.
3.1.1 Phần cứng
Hình 3.1: Mô hình bên ngoài hệ thống
Hình 3.2: Mô hình bên trong hệ thống
3.1.2 Phần mềm
Hình 3.3: Hệ thống thực hiện cuộc gọi khi khẩn cấp
Hình 3.4: Hệ thống thực hiện gửi sms khi khẩn cấp
Người dùng sẽ nhận được các thông báo từ hệ thống qua điện thoại khi có trường hợp khẩn cấp xảy ra.
Hình 3.5: Trang web của hệ thống
Tương tự như điện thoại hệ thống cũng đồng thời thông báo qua trang web, trang web giúp hỗ trợ người dùng điều khiển được loa báo động, tắt mở chế độ báo trộm và có thể thay đổi mật khẩu cửa nhà.
3.2 Đánh giá hệ thống 3.2.1 Nhận xét
Đánh giá
Hệ thống cơ bản đạt được các chức năng, đặc tính đã đề ra.
Đã tiến hành thử nghiệm hệ thống khi hoạt động liên tục trong khoảng 6 giờ và hệ thống vẫn có thể hoạt động bình thường.
Đã tiến hành thử nghiệm ngắt nguồn điện chính, hệ thống vẫn có thể hoạt động với nguồn dự phòng.
Các cảm biến chuyển động, cảm biến lửa thu thập được dữ liệu và trả về giá trị chính xác.
Việc đóng/mở cửa khá an toàn nhờ hệ thống bảo mật bằng mật khẩu và thẻ từ RFID.
Firebase lưu trữ được trạng thái hoạt động của các thiết bị và được cập nhật thường xuyên.
Website điều khiển được hệ thống, hiển thị thông tin nhanh, rõ ràng. Ưu điểm
Hệ thống dễ dàng sử dụng, thao tác và sữa chữa. Giá thành rẻ.
Có thể dễ dàng cải tiến thêm chức năng trong tương lai. Hệ thống có thể hoạt động khi bị mất nguồn điện chính.
Cơ chế cấp báo khi có trường hợp cháy nổ, đột nhập trái phép tương đối tốt. Module sim có thể xảy ra tình trạng mất sóng nếu đặt hệ thống ở những nơi khuất, kín.
Hệ thống vẫn cần sự can thiệp của con người để bật tắt chế độ báo chống trộm mà chưa thể tự động bật chế độ này lên sau một khoảng thời gian không phát hiện người.
Cơ chế servo để đóng mở cửa chỉ phù hợp với mô hình demo.
3.2.2 Hướng phát triển
Để hệ thống được hoàn thiện tốt hơn, nhóm đưa ra những dự định có thể phát triển thêm trong tương lai:
Phát triển hệ thống để có thể hoạt động tự động với ít sự can thiệp của con người nhất.
Thiết kế lại khối module sim để có thể hoạt động ở những vùng khuất sóng. Thực hiện một cơ chế đóng mở cửa khác không dùng servo thực tế hơn.
PHẦN KẾT LUẬN
1. Kết luận
Nhận thấy một vấn nạn về an ninh nhà ở hiện nay đang ngày càng rơi vào tình trạng đáng báo động, nhóm đã chọn đề tài "Thiết kế hệ thống an ninh nhà ở" thực hiện nghiên cứu khoa học lần này để đưa ra hướng giải quyết các vấn đề đó. Thông qua khảo sát các đề tài nghiên cứu có liên quan trước đây và tình hình thực tế, nhóm đưa ra được các vấn đề có thể xảy ra trong ngôi nhà đối với người chủ, từ đó chuyển các vấn đề đó thành những yêu cầu kỹ thuật cho hệ thống. Qua đó nhóm thực hiện đưa ra thiết kế đầy đủ các chức năng hệ thống cho những yêu cầu đó và lựa chọn các thiết bị phù hợp nhất cho hệ thống mang lại hiệu suất cao ổn định, tối ưu và chi phí thấp nhất. Nhóm đã thực hiện mô hình cho thấy hệ thống hoạt động được các mục tiêu đề tài đặt ra. Vì nhận định khảo sát ban đầu còn hạn chế và việc thử nghiệm mô hình hệ thống nên không tránh khỏi những thiếu sót trong đề tài, nhóm đã đưa ra các hướng phát triển và có thể thực hiện trong tương lai giúp hệ thống ngày càng hoàn thiện hơn.
2. Kiến nghị
Với các lý do và mục tiêu của đề tài đã đặt ra, hệ thống mà nhóm thực hiện đưa ra trong nghiên cứu có thể sử dụng trong một số nơi phù hợp với hộ gia đình như nhà ở, các khu phòng trọ hoặc có thể lớn hơn trong một số văn phòng, nhà kho trong công ty.
TÀI LIỆU THAM KHẢO
[1] "Internet of things là gì," [Online]. Available: https://iot.dtt.vn/InternetofThings.html.
[2] Hải Đăng PPK, "Aruino và giao tiếp SPI," 1 8 2016. [Online]. Available: http://arduino.vn/bai-viet/1081-arduino-va-giao-tiep-spi.
[3] Hàn Mạc Tử, "Kiến thức cơ bản về giao tiếp UART trong Arduino," 14 5 2020. [Online]. Available: https://espace.edu.vn/tu-hoc-arduino/kien-thuc- co-ban-ve-giao-tiep-uart-serial-trong-arduino/.
[4] Hải Đăng PPK, "Giao tiếp I2C với nhiều module," 27 7 2016. [Online]. Available: http://arduino.vn/bai-viet/1053-giao-tiep-i2c-voi-nhieu-module.
[5] "Tìm hiểu thông số kĩ thuật của LCD," 11 1 2018. [Online]. Available: https://suachualaptop24h.com/linh-kien-laptop/tim-hieu-thong-so-ki- thuat-cua-lcd-1602-n5212.html.
[6] 11 7 2018. [Online]. Available: https://laptrinhdieukhien.com/ta%CC%A3p- le%CC%A3nh-at-danh-cho-module-sim-900a-800a-800l-va-cac-module- sim-khac/.
[7] Bá Điền, "Tổng hợp các lệnh Arduino IDE," 15 7 2019. [Online]. Available: https://quantrimang.com/tong-hop-cac-lenh-arduino-ide-165078.
[8] N.X.P, "Giới thiệu Firebase," 30 6 2017. [Online]. Available:
PHỤ LỤC Chương trình lập trình hệ thống trên esp8266.
#include <Arduino.h> #include <SPI.h> #include <MFRC522.h> #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <FirebaseArduino.h> #include <Servo.h> #include <pins_arduino.h> #include <LiquidCrystal_I2C.h> #include <ESP8266WiFiMulti.h> #define SS_PIN D3 #define RST_PIN 10
#define FIREBASE_HOST "testmyled-aa8f7.firebaseio.com"
#define FIREBASE_AUTH "gn0qcrclXBS7gVjNSNpOaULUn17H4cssN2kRxhie" #define buzzer 9
#define PIR D0 #define FIRE D4 String pass = "1401";
const String ID_default = "4b91a90d"; LiquidCrystal_I2C lcd(0x27, 20, 4);
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. Servo sg90;
int statuss = 0; int out = 0;
bool the = false, chuyenDong = false, coChay = false; int modeBaoTrom = 1;
String CardIDs[10]; char *inpt_pass; char *inpt_display;
unsigned int soLuongThe; int8_t j = 0;
char key[]={'1','2','3','A','4','5','6','B','7','8','9','C','*','0','#','D'};
int adc_value = 0, i=0, threshold = 3, outputValue = 0; // value read from the pot int val_key_adc[] = {990, 900, 830, 773, 935, 860, 799, 749, 910, 840, 783, 730, 875, 812, 762, 713 };
char k ='n'; int baoChay; int baoTrom;
// ngat phat hien chay
ICACHE_RAM_ATTR void ngatBaoChay() { coChay = true;
/ kiem tra the vua quet co trong danh sach id hay ko bool soSanhThe(String id, String* ArrayID);
/ kiem tra danh sach id va cap nhat void capNhatThe();
void call();
void send_sms(char *text); void capNhatPass();
void setup() {
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
/ cau hinh chan ngat phat hien chay pinMode(FIRE, INPUT);
attachInterrupt(digitalPinToInterrupt(FIRE), ngatBaoChay, FALLING);
/ cau hinh chan ngat phat hien chuyen dong pinMode(PIR, INPUT); sg90.attach(D8); sg90.write(0); SPI.begin(); mfrc522.PCD_Init(); inpt_pass = (char*)malloc(5); inpt_pass = "____"; inpt_display = (char*)malloc(5); inpt_display = "____";
/ dat bien thoi gian de ngung cho ket noi wifi khi qua lau unsigned long past = millis();
/ ket noi voi mang wifi thu 2
if (WiFi.status() != WL_CONNECTED) { past = millis();
WiFi.begin("Ngoc Giang", "14091998"); while (WiFi.status() != WL_CONNECTED) {
/ cho 30s de ket noi neu khong thi bo qua if (millis() - past > 30000)
break; delay(500); } } Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); delay(300);
/ kiem tra va lay toan bo id tren firebase vao the soLuongThe =
Firebase.getString("tkHTN/soLuong").toInt(); delay(100);