Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://vietbaitotnghiep.com/dich-vu-viet-thue-luan-van
Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Thiết kế và thi công mô hình khóa điện tử có giám sát từ xa sử dụng GSM và RFID, cho các bạn làm luận văn tham khảo
Đề tài: Khóa điện tử có giám sát từ xa sử dụng GSM và RFID
1. i
TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÚC
----o0o----
Tp. HCM, ngày 05 tháng 07 năm 2019
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Nguyễn Thành Dương MSSV: 14141051
Trần Vỉnh Sơn MSSV: 14141266
Chuyên ngành: Điện tử công nghiệp Mã ngành: 141
Hệ đào tạo: Đại học chính quy Mã hệ: 1
Khóa: 2014 Lớp: 14141DT3
I. TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH KHÓA ĐIỆN TỬ CÓ
GIÁM SÁT TỪ XA SỬ DỤNG GSM VÀ RFID
II. NHIỆM VỤ
1. Các số liệu ban đầu:
- Pham Minh Tuan, ebook :Internet Of Things(IoT): cho người mới bắt đầu,
2017 (https://iotmakervn.github.io/iot-starter-book/).
- Nguyễn Ngọc Lực, “Thiết kế , thi công mô hình hệ thông điều khiển điện và
giám sát nhà” , đồ án tốt nghiệp , trường ĐHSPKT Tp HCM, 2018.
- Phạm Hưng Thịnh, “Thiết kế, thi công hệ thống điều khiển và giám sát thiết bị
nhà có hỗ trờ Google Assistant”, đồ án tốt nghiệp, trường ĐHSPKT TpHCM, 2018.
- Hướng dẫn sử dụng Module sim900-MLAB (http://mlab.vn/huong-dan-su-
dung-module-sim900.html).
- Nguyen Dinh Phu, Truong Ngoc Anh, giáo trình vi xử lý , Xuất bản ĐH Quốc
Gia, Tp.HCM, 2013.
- Hướng dẫn sử dụng Module cảm biến chuyển động HC - SR501-MLAB
(http://mlab.vn/18496-huong-dan-su-dung-module-cam-bien-chuyen-dong-hc-
sr501.html).
2. ii
- Lập trình và sử dụng module đọc thẻ RFID-RC522 – Arduino.vn
(http://arduino.vn/bai-viet/833-lap-trinh-va-su-dung-modul-doc-rfid-rc522)
2. Nội dung thực hiện:
- Tìm hiểu Arduino, module sim900, module RFID, cảm biến chuyển động,
phím ma trận 4x4.
- Thiết kế, tính toán, thi công mạch giao tiếp module sim với Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp cảm biến chuyển động với
Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp cảm biến chuyển động với
Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp module RFID với Arduino.
- Viết chương trình điều khiển mô hình.
- Thiết kế nguồn cung cấp cho mô hình.
- Chạy thử nghiệm mô hình.
- Viết báo cáo.
- Báo cáo cáo đề tài tốt nghiệp.
III. NGÀY GIAO NHIỆM VỤ: 19/02/2019
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 05/07/2019
V. HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: PGS.TS Nguyễn Thanh Hải
CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP – YSINH
3. iii
TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA
ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÖC
----o0o----
Tp. HCM, ngày 4 tháng 1 năm 2019
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Trần Vỉnh Sơn
Lớp: 14141DT3B MSSV: 14141266
Họ tên sinh viên: Nguyễn Thành Dƣơng
Lớp: 14141DT3A MSSV: 14141051
Tên đề tài: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH KHÓA ĐIỆN TỬ CÓ GIÁM
SÁT TỪ XA SỬ DỤNG GSM VÀ RFID
Tuần/ngày Nội dung
Xác nhận
GVHD
Tuần 1 (18/02 - 24/02) Gặp gỡ GVHD và trao đổi về đề tài tốt nghiệp.
Tuần 2 (25/02 - 03/03) Tìm hiểu các đề tài nghiên cứu có liên quan.
Tuần 3 (04/03 - 10/03)
Gặp và báo cáo với GVHD về đề tài sẽ thực hiện.
Tìm hiểu về các linh kiện sẽ sử dụng
Tuần 4 (11/03 - 17/03)
Tìm hiểu về giao tiếp giữa module Sim với Arduino.
Vẽ sơ đồ khối và nội dung từng khối.
Tuần 5 (18/03 - 24/03)
Thiết kế và lập trình cho Arduino và module Sim
Báo cáo tiến độ với GVHD.
Tuần 6 (25/03 - 31/03)
Hoàn thành cơ sở lý thuyết, thiết kế nguyên lý từng
khối.
Hoàn thành giao tiếp (gửi sms) giữa module Sim và
Arrduino.
Tuần 7 (01/04 - 07/04)
Tìm hiểu giao tiếp Arduino và phím ma trận.
Viết code cho phím ma trận và Arduino.
4. iv
Tuần 8 (08/04 - 14/04)
Báo cáo tiến độ cho GVHD.
Viết báo cáo thiết kế khối mở khóa dùng phím ma
trận.
Tuần 9 (15/04 - 21/04)
Tìm hiểu và giao tiếp giữa RFID và Arduino
Hoàn thành giao tiếp phím ma trận và viết code
RFID.
Viết báo cáo.
Tuần 10 (22/04 -
28/04)
Báo cáo tiến độ cho GVHD.
Gửi tài liệu, hình ảnh, báo cáo tiến độ 50%
Viết code cho RFID , ma trận phím và Arduino.
Tuần 11 (29/04 -
05/05)
Tìm hiểu giao tiếp cảm biến chuyển động PIR, nút
nhấn đơn với Arduino
Viết code cho PIR, nút nhấn với Arduino.
Tuần 12 (06/05 -
12/05)
Tổng hợp code toàn mạch.
Viết báo cáo.
Tuần 13(13/05 -
19/05)
Báo cáo tiến độ với GVHD.
Chỉnh sửa báo cáo.
Tuần 14,15,16 (20/05
– 09/06)
Kiểm tra và chỉnh sửa toàn mạch
Đi dây, hoàn thành mô hình.
Viết nhận xét đánh giá
Hoàn thành báo cáo
GV HƢỚNG DẪN
(Ký và ghi rõ họ và tên)
5. v
LỜI CAM ĐOAN
Chúng em xin cam đoan đề tài này do chúng em thực hiện dựa trên tài liệu
trước đó và không sao chép tài liệu hay công trình trước đó.
Tp. HCM, ngày 05 tháng 07 năm 2019
Người thực hiện đề tài
Trần Vỉnh Sơn
Nguyễn Thành Dƣơng
6. vi
LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp, chúng em đã nhận được nhiều sự
giúp đỡ từ Thầy/Cô người thân và bạn bè. Đặc biệt, chúng em xin gửi lời cảm ơn
chân thành, sâu sắc tới Thầy PGS.TS Nguyễn Thanh Hải đã hướng dẫn và góp ý tận
tình, cũng như chia sẻ nhiều kinh nghiệm quý báu, tạo điều kiện tốt nhất để chúng
em hoàn thành tốt đề tài.
Chúng em cũng xin cảm ơn các Thầy, Cô khoa Điện Điện tử đã tạo điều kiện
tốt nhất để chúng em hoàn thành tốt đề tài. Và xin cảm ơn tất cả bạn bè, người thân
đã ủng hộ và giúp đỡ nhiệt tình cho chúng em.
Sau cùng, dù có nhiều cố gắng và sự giúp đỡ của mọi người nhưng do thời
gian thực hiện chỉ 15 tuần, kinh nghiệm còn hạn chế nên chúng em không tránh
được những thiếu sót. Chúng em mong quý Thầy /Cô, người thân, bạn bè cảm thông
và chân thành góp ý để chúng em hoàn thiện tốt đề tài hơn.
Chúng em xin chân thành cảm ơn!
Tp. HCM, ngày 05 tháng 07 năm 2019
Người thực hiện đề tài
Trần Vỉnh Sơn
Nguyễn Thành Dƣơng
7. vii
MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP................................................................................. i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ...................................................iii
LỜI CAM ĐOAN .............................................................................................................. v
LỜI CẢM ƠN................................................................................................................... vi
MỤC LỤC........................................................................................................................ vii
LIỆT KÊ HÌNH ẢNH...................................................................................................... ix
LIỆT KÊ BẢNG................................................................................................................ x
TÓM TẮT......................................................................................................................... xi
Chƣơng 1. TỔNG QUAN ................................................................................................. 1
1.1 ĐẶT VẤN ĐỀ................................................................................................... 1
1.2 MỤC TIÊU ....................................................................................................... 2
1.3 NỘI DUNG NGHIÊN CỨU............................................................................ 2
1.4 GIỚI HẠN ........................................................................................................ 2
1.5 BỐ CỤC............................................................................................................ 3
Chƣơng 2. CƠ SỞ LÝ THUYẾT..................................................................................... 4
2.1 GIỚI THIỆU VỀ IOTS (INTERNET OF THINGS) ................................... 4
2.2 GIỚI THIỆU PHẦN CỨNG........................................................................... 4
2.2.1 Module cảm biến chuyển động PIR HC – SR501....................................... 4
2.2.2 Phím ma trận 4x4 ........................................................................................ 6
2.2.3 Module Sim900a ......................................................................................... 7
2.2.4 Vi điều khiển ............................................................................................... 8
2.2.5 Công nghệ RFID ......................................................................................... 9
2.3 GIAO TIẾP I2C........................................................................................... 13
2.4 CHUẨN TRUYỀN THÔNG UART ............................................................ 13
2.5 GIAO TIẾP SPI ............................................................................................. 14
2.6 PHẦN MỀM ARDUINO IDE....................................................................... 15
Chƣơng 3. TÍNH TOÁN VÀ THIẾT KẾ...................................................................... 16
3.1 GIỚI THIỆU .................................................................................................. 16
8. viii
3.2.2 Thiết kế chi tiết.......................................................................................... 18
3.2.3 Sơ đồ nguyên lý toàn mạch ....................................................................... 28
Chƣơng 4. THI CÔNG MÔ HÌNH................................................................................ 30
4.1 GIỚI THIỆU .................................................................................................. 30
4.2 THI CÔNG MÔ HÌNH ................................................................................. 30
4.2.1 Danh sách linh kiện................................................................................... 30
4.2.2 Lắp ráp mô hình ........................................................................................ 31
4.3 LẬP TRÌNH CHO MÔ HÌNH...................................................................... 34
4.3.1 Lưu đồ chương trình.................................................................................. 34
Chƣơng 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ........................................................ 40
5.1 GIỚI THIỆU .................................................................................................. 40
5.2 KẾT QUẢ....................................................................................................... 40
5.1.1 Kết quả đạt được ....................................................................................... 40
5.1.2 Kết quả thực nghiệm ................................................................................. 40
5.3 NHẬN XÉT .................................................................................................... 45
5.3.1 Ưu điểm..................................................................................................... 45
5.3.2 Hạn chế...................................................................................................... 46
5.4 ĐÁNH GIÁ ..................................................................................................... 46
Chƣơng 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN.................................................. 47
6.1 KẾT LUẬN..................................................................................................... 47
6.2 HƢỚNG PHÁT TRIỂN ................................................................................ 47
TÀI LIỆU THAM KHẢO .............................................................................................. 48
PHỤ LỤC......................................................................................................................... 49
9. ix
LIỆT KÊ HÌNH ẢNH
Hình 2.1 Hình dạng của cảm biến PIR HC-SR501.................................................... 5
Hình 2.2 Hình ảnh nguyên lý hoạt động của cảm biến PIR........................................ 5
Hình 2.3 Hình ảnh sơ đồ chân của cảm biến PIR. ...................................................... 6
Hình 2.4 Hình ảnh sơ đồ kết nối của phím ma trận 4x4. ............................................ 7
Hình 2.5 Hình ảnh phim ma trận 4x4.......................................................................... 7
Hình 2.6 Hình ảnh Module SIM900A ........................................................................ 7
Hình 2.7 Hình ảnh Arduino Mega............................................................................... 9
Hình 2.8 Hình ảnh Module RFID RC522................................................................. 10
Hình 2.9 Hình ảnh LCD 16x2................................................................................... 11
Hình 2.10 Mạch chuyển giao tiếp LCD 16x2. .......................................................... 13
Hình 2.11 Hình ảnh kết nối giữa Master và Slave.................................................... 15
Hình 2.12 Logo phần mềm IDE................................................................................ 15
Hình 2.13 Hình ảnh giao diện phần mềm IDE.......................................................... 16
Hình 3.1 Sơ đồ khối của mô hình.............................................................................. 17
Hình 3.2 Sơ đồ nguyên lý của khối điều khiển arduino............................................ 19
Hình 3.3 Sơ đồ nguyên lý của khối giám sát. ........................................................... 20
Hình 3.4 Sơ đồ nguyên lý khối cảm biến.................................................................. 20
Hình 3.5 Sơ đồ nguyên lý khối báo động.................................................................. 21
Hình 3.6 Sơ đồ nguyên lý khối động cơ và nút nhấn................................................ 22
Hình 3.7 Sơ đồ nguyên lý khối mở khóa. ................................................................. 23
Hình 3.8 Sơ đồ nguyên lý mạch mở khóa dùng RFID.............................................. 24
Hình 3.9 Sơ đồ nguyên lý mạch mở khóa dùng ma trận phím. ................................ 25
Hình 3.10 Sơ đồ nối dây ma trận phím 4x4. ............................................................. 25
Hình 3.11 Sơ đồ nguyên lý khối hiển thị. ................................................................. 26
Hình 3.12 Hình ảnh module hạ áp LM2596. ............................................................ 27
Hình 3.13 Sơ đồ nguyên lý mô hình khóa thông minh. ............................................ 28
Hình 4.1 Hình ảnh mạch xử lý trung tâm.................................................................. 31
Hình 4.2 Hình ảnh mạch giám sát module sim......................................................... 31
Hình 4.4 Hình ảnh mạch báo động. .......................................................................... 32
Hình 4.5 Hình ảnh mô hình hoàn thiện..................................................................... 33
Hình 4.6 Lưu đồ chương trình tổng quát toàn bộ hoạt động..................................... 34
Hình 4.7 Lưu đồ chương trình chính......................................................................... 35
Hình 4.8 Lưu đồ chương trình con thêm thẻ, xóa thẻ và đổi pass. ........................... 36
Hình 4.9 Lưu đồ chương trình kiểm tra ngắt của nút nhấn và cánh báo PIR ........... 37
Hình 5.1 Hình ảnh màn hình LCD trạng thái chờ quẹt thẻ....................................... 41
Hình 5.2 Hình ảnh LCD khi quẹt thẻ sai................................................................... 41
10. x
Hình 5.3 Hình ảnh mạch báo động hoạt động........................................................... 42
Hình 5.4 Hình ảnh module Sim gửi tin nhắn cảnh báo quẹt thẻ sai. ........................ 42
Hình 5.5 Hình ảnh màn hình LCD ở trạng thái quản lý............................................ 43
Hình 5.6 Hình ảnh LCD khi ở chế độ thêm thẻ ........................................................ 43
Hình 5.7 Hình ảnh LCD khi chọn chế độ xóa thẻ..................................................... 44
Hình 5.8 Hình ảnh LCD yêu cầu nhập mật khẩu cũ khi chọn chế độ đổi mật khẩu. 44
Hình 5.9 Hình ảnh tin nhắn cảnh báo khi PIR phát hiện có người lạ xâm nhập....... 45
LIỆT KÊ BẢNG
Bảng 4.1 Danh sách linh kiện sử dụng……………………………………………..30
11. xi
TÓM TẮT
Ngày nay trước sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là
thành công của cuộc cách mạng kỹ thuật 4.0 làm cho thế giới của chúng ta ngày
càng thay đổi, cuộc sống trở nên văn minh và hiện đại hơn.
Cùng với sự phát triển đó thì các tệ nạn xảy ra ngày càng tinh vi và khó diều
tra được. Trong đó, tệ nạn trộm cấp cũng là vấn đề đáng lo ngại. vì thế,” Thiết kế và
thi công mô hình khóa điện tử có giám sát từ xa sử dụng GSM và RFID” đã đưa
ra một giải pháp thay thế những hệ thống bảo mật truyền thống.
Mô hình sử dụng board Arduino Mega 2560 để làm khối điều khiển trung tâm.
Sử dụng công nghệ thẻ từ RFID để mở lớp đầu tiên kết hợp phím ma trận 4x4 để mở
khóa. Giám sát ngôi nhà qua GSM để gửi tin nhắn cảnh báo cho người dùng. Mô
hình phát hiện chuyển động bằng việc sử dụng cảm biến chuyển động PIR.
12. CHƢƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1
Chƣơng 1. TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay với sự phát triển không ngừng của khoa học và công nghệ đã làm
cho cuộc sống của con người được tốt hơn và hoàn thiện hơn. Các thiết bị điều khiển
thông minh và tự động cũng được phát triển. Trong đó có nhà thông mình với các
thiết bị trong nhà hoạt động một cách tự động hoặc bán tự động và việc giám sát
điều khiển trở nên thuận lợi, an toàn và an ninh hơn nhờ được điều khiển từ xa.Với
sự xuất hiện và phát triển mạnh mẽ của công nghệ IoT [1], việc quản lý căn nhà
càng được cải thiện hơn, các thiết bị được kết nối với nhau thông qua wifi,
bluetooth, mạng viễn thông và được điều khiển bởi người dùng trên các thiết bị như
smart phone, máy tính bảng ở bất kỳ đâu.
Hiện nay có rất nhiều đề tài nghiên cứu về nhà thông minh như đồ án tốt
nghiệp của Nguyễn Ngọc Lực về đề tài “Thiết kế, thi công mô hình hệ thông điều
khiển điện và giám sát nhà” dùng board Arduino Mega 2560 làm bộ điều khiển
trung tâm kết hợp module ESP8266 Node MCU và module sim900A thông qua App
Android và Web server để điều khiển và giám sát các thiết bị trong nhà như đo nhiệt
độ, độ ẩm, báo động rò rỉ khí ga, khi có người đột nhập thì báo động và gửi tin nhắn
đến người sử dụng, hệ thống còn nhận biết khi mất điện thì tự động chuyển sang
nguồn dự phòng (acquy) và gửi tin nhắn cho người sử dụng [2]. Tác giả Phạm Hưng
Thịnh với đề tài “ Thiết kế, thi công hệ thống điều khiển và giám sát thiết bị nhà có
hỗ trờ Google Assistant”. Hệ thống này sử dụng board Arduino, module wifi
ESP8266 Node MCU, cảm biến nhiệt độ, khí gas, chuyển động. Người dùng có thể
giám sát bằng smartphone hệ đều hành android truy cập Web bất kỳ nơi nào có wifi
hoặc internet. Có thể giám sát hệ thống từ xa, hiển thị nhiệt độ, báo động khi rò rỉ
khí gas hoặc có trộm đột nhập [3].
Bên cạnh sự phát triển của đời sống con người thì các tệ nạn xã hội xảy ra ngày
càng nhiều với hình thức ngày càng tinh vi hơn, trong đó có nạn trộm cắp tài sản.
Các biện pháp bảo bệ truyền thống không thể đáp ứng yêu cầu bảo vệ an toàn cho tài
13. CHƢƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2
sản. Vì thế, yêu cầu có một thiết bị thông minh hơn giúp bảo vệ tài sản được an toàn
hơn.
Từ các thực tiễn trên, nhóm em quyết định lựa chọn đề tài “Thiết kế và thi
công mô hình khóa điện tử có giám sát từ xa sử dụng GSM và RFID” để góp
phần hạn chế tối đa mất mát tài sản. Hệ thống sử dụng bộ điều khiển trung tâm là
board Arduino giao tiếp với module sim900A [4], phím ma trận 4x4 [5], cảm biến
chuyển động HC-SR501 [6], module RFID RC522 [7].
1.2 MỤC TIÊU
Thiết kế và thi công mô hình điều khiển và giám sát khóa chống trộm thông
minh. Có thể giám sát từ xa qua mạng viễn thông (tin nhắn) và điều khiển trực tiếp
từ ma trận phím 4x4, thẻ RFID.
1.3 NỘI DUNG NGHIÊN CỨU
- Tìm hiểu Arduino, module sim900, module RFID, cảm biến chuyển động,
phím ma trận 4x4.
- Thiết kế, tính toán, thi công mạch giao tiếp module sim với Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp cảm biến chuyển động với
Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp cảm biến chuyển động với
Arduino.
- Thiết kế, tính toán, thi công mạch giao tiếp module RFID với Arduino.
- Viết chương trình điều khiển mô hình.
- Thiết kế nguồn cung cấp cho mô hình.
- Chạy thử nghiệm mô hình.
- Viết báo cáo.
- Báo cáo cáo đề tài tốt nghiệp.
1.4 GIỚI HẠN
- Mô hình không áp dụng cho nhà ở thực tế.
14. CHƢƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3
- Mô hình sử dụng mạng viễn thông (SMS) để giám sát. Trên thực tế thì có thể
sử dụng nhiều loại sóng để giám sát như: bluetooth, wifi.
- Mô hình dùng cảm biến chuyển động HC-SR501, khoảng cách phát hiện tối đa
5m.
- Dùng chuông buzzer cảnh báo khi có người đột nhập.
1.5 BỐ CỤC
Chƣơng 1: Tổng quan.
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi
dung nghiên cứu, các giới hạn thông số và bố cục đồ án.
Chƣơng 2: Cơ sở lý thuyết.
Chương này trình bày khái quát về công nghệ IOT, giới thiệu các module, linh
kiện sử dụng cho thiết kế mô hình (Arduino, module RFID, module Sim900, cảm
biến chuyển động PIR, ma trận phím), kiến thức cơ bản và các phần mềm liên quan
để hỗ trợ cho lập trình điều khiển mô hình.
Chƣơng 3: Tính toán và thiết kế.
Đưa ra sơ đồ khối, tính toán và thiết kế khối nguồn, khối điều khiển trung tâm,
khối cảm biến, khối báo động, khối động cơ và nút nhấn, khối mở khóa, khối giám
sát, khối hiển thị.
Chƣơng 4: Thi công hệ thống
Thiết kế lưu đồ giải thuật, viết chương trình, thi công mô hình.
Chƣơng 5: Kết quả, nhận xét và đánh giá
Đưa ra kết quả, hình ảnh mô hình, nhận xét ưu - nhược điểm và đánh giá về
mô hình.
Chƣơng 6: Kết luận và hƣớng phát triển
Đưa ra Kết luận đề tài sau thời gian thực hiện, và hướng phát triển của mô
hình.
15. CHƢƠNG 1. TỔNG QUAN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4
Chƣơng 2. CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ IOTS (INTERNET OF THINGS)
Internet of Things (IoTs) là mạng lưới mọi thứ đều được kết nối với Internet
hay là các thiết bị kết nối với nhau trong một mạng Internet duy nhất. Trong đó, các
thiết bị, đồ vật có khả năng kết nối, thu thập, trao đổi thông tin, dữ liệu với nhau qua
mạng bằng smartphone, máy tính bảng, máy tính nhờ được nhúng với các vi mạch
điện tử, cảm biến, phần mềm. Ứng dụng của IoTs rất đa dạng, trong nhiều lĩnh vực
khác nhau:
- Trong đời sống: Giám sát thông minh, nhà thông minh, vận chuyển tự động,
quản lý điện năng, cung cấp nước, bảo vệ thông minh, quản lý môi trường.
- Trong y tế: Theo dõi sức khỏe như nhịp tim, huyết áp, phát hiện các tế bào ung
thư, chế tạo các bộ phận nhân tạo trong cơ thể.
- Trong công nghiệp: Giám sát sản xuất bằng các cảm biến và dây chuyền tự
động, thu thập dự liệu của máy móc quản lý, điều khiển qua web hay ứng dụng điện
thoại.
2.2 GIỚI THIỆU PHẦN CỨNG
2.2.1 Module cảm biến chuyển động PIR HC – SR501
Cảm biến chuyển động HC-SR501 là cảm biến có khả năng nhận biết được
một vật di chuyển thông qua các tia hồng ngoại phát ra từ vật thể trong vùng mà cảm
biến hoạt động. Module cảm biến có thể điều chỉnh được độ nhạy nhờ 2 biến trở là
Sx biến trở điều chỉnh độ nhạy của cảm biến, Tx biến trở điều chỉnh thời gian đóng
của cảm biến, giúp cho cảm biến hoạt động phù hợp với những yêu cầu của người
dùng.
16. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5
Hình 2.1 Hình dạng của cảm biến PIR HC-SR501.
Hình 2.2 Hình ảnh nguyên lý hoạt động của cảm biến PIR.
Các cảm biến PIR luôn có 2 sensor như hình 2.2. Chắn trước mắt sensor là
một lăng kính (thường làm bằng plastic), chế tạo theo kiểu lăng kính fresnel. Lăng
kính fresnel này có tác dụng chặn lại và phân thành nhiều vùng (zone) cho phép tia
hồng ngoại đi vào mắt sensor. 2 đơn vị của mắt sensor có tác dụng phân thành 2
điện cực. Một cái là điện cực dương (+) và cái kia là âm (-). Khi 2 đơn vị này được
tuần tự kích hoạt (cái này xong rồi mới đến cái kia) thì sẽ sinh ra một xung điện,
xung điện này kích hoạt sensor.
17. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6
Hình 2.3 Hình ảnh sơ đồ chân của cảm biến PIR.
Thông số kỹ thuật:
- Sử dụng điện áp: 4.5V - 20V DC
- Điện áp đầu ra: 0V - 3.3V DC
- Có 2 chế độ hoạt động:
(L) không lặp lại kích hoạt
(H) lặp lại kích hoạt
- Thời gian trễ: điều chỉnh trong khoảng 0.5-200S
- Góc quét <100 độ
- Sử dụng cảm biến: 500BP
- Khoảng các phát hiện: 2m -4.5m
- Kích thước PCB:32mm x 24mm
2.2.2 Phím ma trận 4x4
Ma trận phím 4x4 gồm có 16 nút bấm được sắp xếp theo ma trận 4 hàng, 4 cột.
có đến 16 nút nhấn, nghĩa là nếu làm một cách thông thường (dùng chân digital) thì
chúng ta phải cần đến 16 chân. Nhưng do các nút bấm trong cùng một hàng và một
cột được nối với nhau, vì vậy ma trận phím 4x4 sẽ có tổng cộng 8 ngõ ra.
18. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7
Hình 2.4 Hình ảnh sơ đồ kết nối của phím ma trận 4x4.
Hình 2.5 Hình ảnh phim ma trận 4x4.
2.2.3 Module Sim900a
SIM900A là module được thiết kế dưới dạng module chipset, nhỏ gọn, giá
thành thấp, hoạt động ổn định. Module SIM900A có các tính năng cơ bản của chiếc
điện thoại như gọi, nhắn tin, truy cập GPRS.
Hình 2.6 Hình ảnh Module SIM900A
Điện áp hoạt động 4.5 – 5V , dòng kích tối thiểu 1A
Giao diện: TTL
19. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8
Chức năng các chân:
- VCC: Chân cấp nguồn (3-5VDC).
- DTR: Chân đầu cuối dữ liệu.
- TX: Chân truyền dữ liệu trong điều khiển UART.
- RX: Chân nhận dữ liệu trong điều khiển UART.
- Speaker: Chân xuất dữ liệu âm thanh.
- Microphone: Chân kết nối với mic.
- Chân Reset: Reset module sim.
- Chân GND: Chân nối mass.
2.2.4 Vi điều khiển
2.2.4.1 Giới thiệu về Arduino
Arduino là một board mạch vi xử lý dùng để lập trình xây dựng các ứng dụng
tương tác với nhau hoặc với môi trường được thuận lợi hơn. Ưu điểm của Arduino
là ngôn ngữ cực kì dễ học (giống C/C++), các ngoại vi trên bo mạch đều đã được
chuẩn hóa, nên không cần biết nhiều về điện tử chúng ta cũng có thể lập trình được.
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý
AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Những Model hiện tại được trang bị gồm
1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích
với nhiều board mở rộng khác nhau.
2.2.4.2 Arduino Mega
20. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9
Hình 2.7 Hình ảnh Arduino Mega.
Thông số kỹ thuật:
- Chip xử lý: ATmega2560.
- Điện áp hoạt động: 5V.
- Điện áp đầu vào (giới hạn): 6-20V.
- Điện áp đầu vào (khuyến khích): 7-12V.
- Số chân Digital I/O: 54(với 15 chân PWM).
- Số chân Analog (input) : 16.
- Dòng sử dụng I/O Pin : 20mA..
- Dòng sử dụng 3.3V Pin: 50mA
- Bộ nhớ Flash: 256KB, 8KB sử dụng cho Bootloader.
- SRAM: 2KB: 8KB..
- EEPROM: 4KB.
- Xung nhịp: 16 MHz.
Nguồn sử dụng: Arduino có thể được cấp nguồn thông qua cổng USB hoặc cấp
nguồn ngoài thông qua jack cắm 2.1mm, cũng có thể sử dụng 2 chân Vin và GND
để cấp nguồn cho Arduino.
Chức năng các chân:
- Chân 5V và chân 3.3V: các chân này dùng để lấy nguồn ra tương ứng 5V và
3.3V.
- Vin: Cấp nguồn cho Arduino
- GND: chân mass
- Reset: chân reset
2.2.5 Công nghệ RFID
2.2.5.1 Giới thiệu về RFID
Công nghệ RFID (Radio Frequency Identification) là công nghệ nhận dạng đối
tượng bằng sóng vô tuyến. Công nghệ này cho phép nhận biết các đối tượng thông
qua hệ thống thu phát sóng radio, từ đó có thể giám sát, quản lý từng đối tượng.
21. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10
Một thiết bị hay một hệ thống RFID được cấu tạo bởi hai thành phần chính là
thiết bị đọc (reader) và thiết bị phát mã RFID có gắn chip. Thiết bị đọc được gắn
anten để thu- phát sóng điện từ, thiết bị phát mã RFID được gắn với vật cần nhận
dạng, mỗi thiết bị RFID chứa một mã số nhất định và không trùng lặp nhau.
2.2.5.2 Module RFID RC522
Hình 2.8 Hình ảnh Module RFID RC522.
Thông số kỹ thuật
- Điện áp hoạt động: 3.3V
- Dòng điện: 13-26mA
- Tần số hoạt động: 13.56MHz
- Khoảng cách hoạt động: 0-60mm
- Cổng giao tiếp: SPI, tốc độ tối đa 10Mbps
Chức năng các chân:
- SDA: Kết nối với chân SPI_NSS của vi điều khiển để lựa chọn chip khi giao
tiếp SPI (Kích hoạt ở mức thấp).
- SCK: Kết nối với chân SPI_NSS của vi điều khiển để tạo xung trong chế độ
SPII.
- MISO: Kết nối với chân SPI_MISO của vi điều khiển có chức năng Master
Data Out- Slave In trong chế độ giao tiếp SPI.
- MOSI: Kết nối với chân SPI_MOSI của vi điều khiển có chức năng Master
Data In- Slave Out trong chế độ giao tiếp SPI.
22. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11
- IRQ: Chân ngắt.
- GND: Chân nối mass.
- RST: Chân Reset.
- VCC: Chân cấp nguồn.
2.2.6 Giới thiệu LCD 16x2
LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng
dụng của Vi Điều Khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị
khác. Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ
họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác
nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ.
Hình 2.9 Hình ảnh LCD 16x2.
Thông số kỹ thuật:
- Điện áp hoạt động: 5V.
- Hiển thị tối đa 16 ký tự trên 2 dòng.
Chức năng các chân:
- Chân 1: (Vss) Chân nối đất cho LCD.
- Chân 2: VDD Là chân cấp nguồn cho LCD.
- Chân 3: VEE là chân điều chỉnh độ tương phản của LCD.
- Chân 4: RS Là chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
23. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
ghi) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ đọc).
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
- Chân 5: R/W là chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD
ở chế độ đọc.
- Chân 6: E Là chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân
E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh
ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu
chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện
cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi
nào chân E xuống mức thấp.
- Chân 7 - 14: DB0 - DB7 - Tám đường của bus dữ liệu dùng để trao đổi
thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này:
+ Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là
DB7.
- Chân 15: Nguồn dương cho đèn nền.
- Chân 16: GND cho đèn nền.
24. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13
2.3 GIAO TIẾP I2C
Hình 2.10 Mạch chuyển giao tiếp LCD 16x2.
Bằng việc sử dụng giao tiếp I2C, việc điều khiển trực tiếp màn hình
được chuyển sang cho IC xử lý nằm trên mạch. Chỉ cần việc gửi mã lệnh cùng
nội dung hiển thị, do vậy giúp vi điều khiển có nhiều thời gian xử lý các tiến
trình phức tạp khác.
Ưu điểm của việc sử dụng giao tiếp I2C
- Giao tiếp I2C chỉ sử dụng duy nhất 2 dây tín hiệu: SDA và SCL giúp tiết
kiệm chân trên vi điều khiển.
- Tốc độ truyền dữ liệu lên đến 400Kbps
- Dữ liệu truyền nhận đảm bảo tính toàn vẹn vì sử dụng cơ chế phản hồi
(ACK) trên mỗi byte dữ liệu.
- Có khả năng kết nối nhiều thiết bị với nhau: trên mạch có sẵn các mối
hàn
A0, A1, A2 để thay đổi địa chỉ của module.
- Địa chỉ mặc định: 0x27, có thể mắc vào I2C bus tối đa 8 module
2.4 CHUẨN TRUYỀN THÔNG UART
UART (Universal Asynchronous Receiver/Transmitter) là kiểu truyền nhận nối
tiếp không đồng bộ. UART không hẵn là một chuẩn truyền nhận, nó chỉ được coi
như là một phần cứng. Để tạo thành một chuẩn giao tiếp cần sử dụng với bộ chuyển
đổi mức điện áp để tạo thành một chuẩn giao tiếp, UART thường dùng mức logic
25. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14
5V – 0V. UART được dùng trong máy tính công nghiệp, truyền thông, vi điều
khiển, hay một số các thiết bị truyền tin khác.
Một số thông số:
- Baud rate (tốc độ Baud): Khi truyền nhận không đồng bộ để hai module hiểu
được nhau thì cần quy định một khoảng thời gian cho 1 bit truyền nhận, nghĩa là
trước khi truyền thì tốc độ phải được cài đặt đầu tiên. Theo định nghĩa thì tốc độ
baud là số bit truyền trong một giây.
- Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu
nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để tránh bớt sự mất mát
dữ liệu này. Khung truyền quy định số bit trong mỗi lần truyền, các bit báo như
Start, Stop, các bit kiểm tra như parity và số bit trong một data.
- Bit Start : Là bit bắt đầu trong khung truyền bit này nhằm mục đích báo cho
thiết bị nhận biết quá trình truyền bắt đầu. Trên AVR bit Start có trọng thái là 0 .
- Data: Dữ liệu cần truyền Data không nhất thiết phải 8 bit. Có thể là 5, 6, 7, 8,
9. Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau. Parity
bit: Là bit kiểm tra dữ liệu đúng không. Có 2 loại parity: chẵn (even parity), lẻ (old
parity). Parity chẵn là bit parity thêm vào để số 1 trong data + parity = chẵn. Parity
lẻ là bit parity thêm vào để số số 1 trong data + parity = lẻ. Bit Parity là không bắt
buộc nên có thể dùng hoặc không.
- Stop: Là bit báo cáo kết thúc khung truyền, thường là mức 5V và có thể có 1
hoặc 2 Stop.
2.5 GIAO TIẾP SPI
Giao tiếp ngoại vi nối tiếp hoặc SPI (Serial Peripheral Interface) là chuẩn đồng
bộ truyền nối tiếp song công (Full-duplex) cung cấp một giao diện đơn giản với chi
phí thấp giữa vi điều kiển và các ngoại vi. Giao tiếp SPI thường sử dụng giao tiếp
EEPROM, RTC, ADC, DAC, LCD, RFID, các cảm biến như nhiệt độ áp suất.
Bus của SPI gồm 4 tín hiệu hoặc chân:
26. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15
- Master – out/Slave- in(MOSI): Truyền dữ liệu từ thiết bị Chủ (Master) đến
thiết bị Tớ (Slave)
- Master – in/Slave – out (MISO): Truyền dữ liệu từ thiết bị Tớ (Slave) sang
thiết bị chủ(Master).
- Serial Clock (SCK): Xung giữ nhịp giao tiếp SPI.
- Chip Select (CS) hay Slave Select(SS): Chọn Chip.
Một Master có thể kết nối với nhiều Slave nhưng tại một thời điểm chỉ có duy
nhất một Slave hoạt động (truyền nhận dữ liệu).
Hình 2.11 Hình ảnh kết nối giữa Master và Slave.
Ứng dụng của SPI: Giao thức SPI thường được tích hợp trong một số thiết bị
như :
-Bộ chuyển ADC, DAC.
-Các bộ nhớ EEPROM, SD card, Flash.
-Các loại cảm biến như nhiệt độ, áp suất.
2.6 PHẦN MỀM ARDUINO IDE
Để lập trình được cho các board Arduino, cần phải có một công cụ gọi là
Intergrated Development Environment (IDE).
Hình 2.12 Logo phần mềm IDE
27. CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16
Hình 2.13 Hình ảnh giao diện phần mềm IDE
Chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với
một thư viện phần mềm được gọi là "Wiring". Người sử dụng chỉ cần định nghĩa hai
hàm để thực hiện một chương trình:
- Setup() : hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình
dùng để khởi tạo các thiết lập.
- Loop() : hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi.
Arduino IDE được phát triển và có thể chạy trên Windows, MAC OS X và Linux.
Nhóm chúng em chọn phần mềm trên Windows.
Chƣơng 3. TÍNH TOÁN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Trong đề tài này nhóm chúng em đã thiết kế một mô hình khóa chống trộm
thông minh mở khóa 2 lớp và giám sát bằng module Sim900, báo động bằng chuông
và đèn khi có kẻ đột nhập. Mô hình gồm: khối nguồn, khối điều khiển trung tâm,
khối cảm biến, khối báo động, khối động cơ và nút nhấn, khối mở khóa, khối giám
sát, khối hiển thị.
3.2 TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH
28. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17
3.2.1 Thiết kế sơ đồ khối mô hình
Khối nguồn
Khối điều khiển
trung tâm
Khối động cơ
Khối cảm biến
Khối mở khóa
Khối giám sát
Khối báo động
Khối hiển thị
Khối nút nhấn
Hình 3.1 Sơ đồ khối của mô hình.
Chức năng từng khối:
Khối điều khiển trung tâm( Arduino)
- Đọc và xử lý tín hiệu từ cảm biến chuyển động.
- Giao tiếp với module Sim900 để giám sát, việc đóng mở khóa.
- Giao tiếp LCD để hiển thị thông tin.
- Nhận tín hiệu từ phím ma trận để mở khóa.
- Kích hoạt buzzer báo động.
Khối giám sát (GSM – Global System for Mobile communications)
Module Sim900 có chức năng gửi tin nhắn đến số được cài đặt để cập nhật
trạng thái hiện tại của khóa.
Khối cảm biến
29. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18
Sử dụng cảm biến chuyển động PIR HC-SR501. Arduino nhận tín hiệu từ cảm
biến và tiến hành xử lý.
Khối báo động
Sử dụng còi báo động và đèn tín hiệu. Khi có tín hiệu từ cảm biến arduino kích
hoạt còi và đèn để báo động.
Khối động cơ và nút nhấn
Sử dụng động cơ servo để khóa và mở khóa. Arduino trực tiếp điều khiển động
cơ khi có tín hiệu từ phím ma trận và module sim. Có 1 nút nhấn khóa và mở cửa
bên trong.
Khối mở khóa
Khối dùng Module RFID để mở lớp khóa thứ nhất và phím ma trận 4x4 để
nhập mật khẩu thông qua Arduino đóng mở khóa cửa.
Khối hiển thị
Hiển thị các trạng thái của mô hình trên LCD giao tiếp I2c.
Khối nguồn
Cấp nguồn cho mạch chính, module, cảm biến và motor. Mạch dùng nguồn
chính là adapter 9V/2A, module hạ áp LM2596.
3.2.2 Thiết kế chi tiết
3.2.2.1Khối điều khiển trung tâm (Arduino)
Khối điều khiển trung tâm sử dụng board arduino mega 2560 để điều khiển,
board có 54 chân digital I/O, 16 chân Analog, 4 cặp UART (Rx,Tx), thạch anh dao
động 16Mhz, 1 nút Reset. Cấp nguồn 5VDC cho Arduino bằng Adapter vào Vin và
chân GND. Sơ đồ nguyên lý kết nối của khối điều khiển trung tâm như hình 3.2:
- Module sim900A: Tx và Rx của Module sim900A kết nối với chân 17 và 16
(UART 2 – RX, TX) của Arduino Mega 2560.
- Module cảm biến chuyển động PIR: chân OUT của cảm biến nối với chân 2
của Arduino.
- Nút nhấn khóa – mở cửa: nối với chân 18 của Arduino.
30. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19
- Chuông báo động Buzzer nối với chân A12 của arduino.
- Đèn led báo động nối với chân A13 của Arduino.
- Module hiển thị LCD I2C chân SCL, SDA nối với chân SCL, SDA của
Arduino.
- Động cơ Servo để khóa - mở cửa nối với chân 3 của Arduino.
- Module RFID : SDA, SCK, MOSI, MISO lần lượt nối với chân 53, 52, 51, 50
của Arduino.
Hình 3.2 Sơ đồ nguyên lý của khối điều khiển arduino.
3.2.2.2 Khối giám sát
Khối giám sát dùng module sim900A với mục đích là giám sát và cảnh báo
thông qua việc gửi tin nhắn và gọi điện. Chân cấp nguồn Vcc của Module được cấp
trực tiếp nguồn 5VDC từ khối nguồn. Chân Tx và Rx của Module lần lượt nối với
chân 17 và 16 của Arduino.
Sơ đồ nối dây của module sim900A với Arduino như hình 3.3 sau:
31. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
Hình 3.3 Sơ đồ nguyên lý của khối giám sát.
3.2.2.3 Khối cảm biến
Khối cảm biến dùng cảm biến chuyển động PIR (Passive infrared sensor) HC-
SR501 để phát hiện vật thể chuyển động phát ra bức xạ hồng ngoại (con người, động
vật, vật tỏa nhiệt), cảm biến điều chỉnh được độ nhạy cũng như khoảng cách phát
hiện vật. chân PIR của cảm biến kết nối với chân 2 của Arduino. Sơ đồ nguyên lý
của cảm biến PIR với Arduino như hình 3.4:
Hình 3.4 Sơ đồ nguyên lý khối cảm biến.
32. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21
3.2.2.4 Khối báo động
Khối báo động dùng chuông Buzzer và đèn led để báo hiệu khi có tín hiệu từ
cảm biến PIR. Chuông buzzer kết nối với chân A12 và đèn led kết nối với chân A13
của Arduino. Sơ đồ nguyên lý của khối báo động như hình 3.5:
Hình 3.5 Sơ đồ nguyên lý khối báo động.
Do các tín hiệu cảnh báo.
Nguồn ra từ chân Arduino: 5V.
Dòng ra định mức led đỏ: 10mA – 15mA.
R = = = 330Ω - 500Ω
Chọn trở hạn dòng cho led đỏ là 330Ω.
Dòng với trở 330Ω là
I = = 15mA
=> Led vẫn sáng bình thường.
3.2.2.5 Khối động cơ và nút nhấn
Khối động cơ và nút nhấn là khối dùng để khóa (chốt) cửa:
- Khối động cơ: sử dụng 1 động cơ servo SG90 để mô phỏng khóa (chốt) cửa tự
động khi có tín hiệu khóa từ khối điều khiển trung tâm Arduino Mega 2560. Động
33. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
cơ được kết nối với chân số 3 của Arduino làm chân điều khiển, nhận nguồn nuôi
5V từ ngoài.
- Khối nút nhấn: sử dụng 1 nút nhấn button đặt ở bên trong nhà để điều khiển
khóa/mở chốt cửa khi đang ở bên trong nhà. Nút nhấn có thêm 1 điện trở để chống
dội và được kết nối với chân 18 của Arduino. 1Sơ đồ nguyên lý khối động cơ và nút
nhấn như hình 3.6:
Hình 3.6 Sơ đồ nguyên lý khối động cơ và nút nhấn.
3.2.2.6 Khối mở khóa
Khối mở khóa gồm 2 phần thực hiện tuần tự với nhau: mở khóa bằng thẻ từ
RFID rồi mới mở bằng phím ma trận 4x4. Sơ đồ nguyên lý khối mở khóa như hình
3.7:
34. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23
Hình 3.7 Sơ đồ nguyên lý khối mở khóa.
- Mở khóa bằng thẻ từ RFID: sử dụng module RFID-RC522 để làm bộ phận mở
khóa đầu tiên. Các chân SDA, SCK, MOSI, MISO lần lượt kết nối với các chân 53,
52, 51, 50 của Arduino. Module nhận nguồn nuôi 3.3V từ nguồn 3.3V của
arduino.Sơ đồ nguyên lý mạch mở khóa dùng RFID như hình 3.8:
35. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24
Hình 3.8 Sơ đồ nguyên lý mạch mở khóa dùng RFID.
- Mở khóa dùng phím ma trận 4x4: Sử dụng phím ma trận gồm 16 nút nhấn, có
chức năng nhập mật khẩu để điều khiển mở khóa cửa sau khi mở lớp đầu tiên bằng
RFID. Ma trận phím có 8 chân (C1, C2, C3, C4, R1, R2, R3, R4) lần lượt kết nối với
chân 12 đến 5 của Arduino. Sơ đồ nguyên lý mạch mở khóa dùng ma trận phím 4x4
như hình 3.9 sau:
36. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
Hình 3.9 Sơ đồ nguyên lý mạch mở khóa dùng ma trận phím.
Hình 3.10 Sơ đồ nối dây ma trận phím 4x4.
3.2.2.7 Khối hiển thị
Khối sử dụng LCD để hiển thị các thông tin, thông báo, mật khẩu dưới dạng ẩn
(*). LCD kết hợp module I2C thông qua chuẩn giao tiếp I2C rút ngắn được số chân
còn 2 chân SDA, SCL. Hai chân SDA và SCL kết nối với chân SDA và SCL của
Arduino. Sơ đồ nguyên lý khối hiển thị như hình 3.11:
37. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
Hình 3.11 Sơ đồ nguyên lý khối hiển thị.
3.2.2.8 Khối nguồn
Khối nguồn sử dụng adapter cung cấp nguồn nuôi mạch hoạt động.
Tính toán dòng của mô hình:
- Dòng tiêu thụ của cảm biến chuyển động PIR ở 5V là : ≤ 50 uA.
- Dòng tiêu thụ của module Sim900A ở 5V là : 200mA, dòng kích tối thiểu 1A
- Dòng tiêu thụ của module RFID ở 3.3V là : 26mA.
- Dòng tiêu thụ của Arduino Mega 2560 ở 9V là: 300mA.
Board Arduino Mega2560 cấp dòng tổng tại chân 5V là 500mA, 3.3V xấp xỉ
50mA.
- Dòng tiêu thụ của chuông buzzer ở 5V là : <25mA.
- Dòng tiêu thụ của led đỏ báo động ở 5V là 15mA.
Buzzer và led kết nối trực tiếp với Arduino nên dòng tiêu thụ tính trên board:
= 25 + 15 = 40(mA)
38. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27
Chọn nguồn cung cấp từ Arduino.
- Dòng tiêu thụ của LCD I2c ở 5V là: <=1mA.
- Dòng tiêu thụ của động cơ servo SG90 hoạt động ở 5V là : 50mA.
Dòng tổng tối đa trong mô hình là : 760mA
Dòng kích tối thiểu 1A của Module Sim
Công suất tối đa toàn mạch: P = U x I = 5V x 760mA = 3.8 W
Chọn adapter 9V 2A (18W) cấp cho mô hình. Dùng 1 module hạ áp LM2596
hạ xuống ổn định 5V để cấp cho LCD I2C, cảm biến, module Sim.
Mạch hạ áp LM2596:
Mạch hạ áp LM2596 là module giảm áp điều chỉnh được áp ra trong mức điện
áp từ 30V xuống 1.5V với nguồn váo từ 3V đến 40V. Dòng ra của module lên đến
3A.
Hình 3.12 Hình ảnh module hạ áp LM2596.
Thông số kỹ thuật của module:
- Nguồn đầu vào từ 3V – 40V.
- Nguồn đầu ra từ 1.5V – 30V.
- Dòng ra tối đa 3A.
Cấp nguồn 9v từ adapter vào IN+ và IN- của module, rồi vặn biến trở tinh
chỉnh trên module đến điện áp cần lấy ra ở ngõ OUTPUT+ VÀ OUTPUT-.
39. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
3.2.3 Sơ đồ nguyên lý toàn mạch
Hình 3.13 Sơ đồ nguyên lý mô hình khóa thông minh.
40. CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
Nguyên lý hoạt động của mô hình:
Mô hình sử dụng thẻ RFID để mở lớp khóa đầu tiên, sau khi mô hình xác định
là thẻ hợp lệ thì tiến hành kích hoạt chế độ mở thẻ bằng mật khẩu thông qua phím
ma trận 4x4. Mật khẩu đúng thì người dùng được quyền quản lý khóa: đổi mật khẩu
thẻ, thêm thẻ mới, xóa thẻ, kích hoạt-tắt chế độ SmS.
Trong chế độ SmS, nếu thẻ sai liên tiếp 3 lần hoặc cảm biến PIR phát hiện vật
thể lạ khi cửa khóa thì mô hình kích hoạt báo động bằng chuông, đèn led, gửi tin
nhắn vào số điện thoại được cài đặt. Nếu tắt chế độ SmS thì chỉ báo động bằng
chuông và led.
Khi vào nhà thì có một nút nhấn điều khiển động cơ để khóa hay mở cửa khi
có người trong nhà.
41. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
Chƣơng 4. THI CÔNG MÔ HÌNH
4.1 GIỚI THIỆU
Trong chương này nhóm thực hiện lắp ráp phần cứng, thi công, vẽ lưu đồ và
lập trình cho mô hình.
4.2 THI CÔNG MÔ HÌNH
4.2.1 Danh sách linh kiện
Bảng 4.1 Danh sách linh kiện sử dụng.
STT Tên linh kiện Số lượng Ghi chú
1 Arduino Mega 2560 R3 1 Arduino
2 Module Sim 900A 1 Module Sim
3 PIR HC-SR501 1 Cảm biến chuyển động
4 Ma trận phím 4x4 1
5 Module RFID RC522 1
6 LCD 1 LCD 16x2
7 I2C 1 Mạch chuyển đổi
8 Servo SG90 1 Động cơ
9 Buzzer 1
10 Led đơn 1
11 Nút nhấn 1
12 Module LM2596 1 Mạch giảm áp
13 Adapter 1 Nguồn 5V, 2A
42. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
4.2.2 Lắp ráp mô hình
Mạch test board hàn chì của khối xử lý trung tâm, bao gồm các chân cắm
arduino (1), các jack cắm phím ma trận 4x4(10), RFID (4), PIR (6), nút nhấn (7),
LCD (9), động cơ servo (5), led và buzzer (3), domino cấp nguồn cho toàn mạch (2),
hình 4.1.
Hình 4.1 Hình ảnh mạch xử lý trung tâm.
Mạch test board hàn chì của module Sim, bao gồm jack cắm cho module sim
(1), domino cấp nguồn (3) và chân cắm tín hiệu (2), hình 4.2.
Hình 4.2 Hình ảnh mạch giám sát module sim.
Mạch test board hàn chì của mạch hạ áp, bao gồm chân cắm cho mạch hạ áp
(4), các domino cấp nguồn vào (1), lấy nguồn ra 5V (2) và GND (3), hình 4.3.
43. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
Hình 4.3 Hình ảnh mạch nguồn giảm áp.
Mạch test board hàn chì của mạch cảnh báo, bao gồm led đỏ và buzzer (2),
jack cắm cho chân tín hiệu và GND (1), hình 4.4.
Hình 4.4 Hình ảnh mạch báo động.
Mô hình hoàn thiện, bao gồm toàn mạch được gắn vào trong hộp đen màn
hình, phím ma trận được gắn nổi trên bề mặt, cùng thẻ RFID ẩn trong hộp, động cơ
servo gắn trên vách cạnh cửa mô phỏng chốt cửa, nút nhấn, module sim và mạch
cảnh báo được đặt rời bên trong nhà, hình 4.5.
44. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
Hình 4.5 Hình ảnh mô hình hoàn thiện.
Mô hình gồm các khối như hình 4.5:
- Khối 1: Hộp đen chứa board điều khiển trung tâm Arduino, module LCD I2C,
phím ma trận 4x4, module RFID.
- Khối 2: Mạch hạ áp LM2596 ra nguồn 5V/2A cấp cho mô hình.
- Khối 3: Giả lập khóa cửa bằng động cơ servo SG90 gắn trên cửa để khóa và
mở cửa.
- Khối 4: Mạch cảnh báo bằng buzzer và led, module Sim900a gắn trên tường để
báo động khi có người lạ xâm nhập hay quẹt thẻ sai 3 lần.
45. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
- Khối 5: Cảm biến chuyển động PIR treo trên tường để phát hiện vật thể chuyển
động.
- Khối 6: Nút nhấn đơn có tác dụng mở hoặc đóng cửa khi ở trong nhà, được
gắn bên trong ngôi nhà.
4.3 LẬP TRÌNH CHO MÔ HÌNH
4.3.1 Lƣu đồ chƣơng trình
4.3.1.1 Lƣu đồ chƣơng trình tổng quát
Bắt đầu
Khởi tạo LCD, RFID,
Servo, Led, Buzzer,
module sim, timer,
ngắt GPIO
Chương trình chính (kiểm
tra hoạt động RFID, ma trận
phím, cảnh báo thẻ sai)
Kiểm tra nút nhấn
(trạng thái cửa)
Cảnh báo PIR (phát hiện có
người đột nhập)
Kết thúc
Hình 4.6 Lưu đồ chương trình tổng quát toàn bộ hoạt động.
Sau khi kết thúc chu kỳ thì chu kỳ mới bắt đầu.
Giải thích: Khi mạch bắt đầu hoạt động
- Khởi tạo các module LCD, RFID, sedrvo, led, buzzer, Sim, timer, GPIO.
- Sau khi khởi tạo bắt đầu chạy chương trình chính.
- Kiểm tra chương trình nút nhấn đơn có nhấn hay không.
46. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
- Chương trình thông báo SMS khi quẹt thẻ sai hay PIR phát hiện có vật thể lạ.
4.3.1.2 Lƣu đồ chƣơng trình chính
Hình 4.7 Lưu đồ chương trình chính.
Giải thích: Khi hoạt động, mô hình ở trạng thái chờ quẹt thẻ. Khi quẹt thẻ:
- Nếu chương trình phát hiện thẻ sai đủ 3 lần sẽ gửi tin nhắn cảnh báo về số điện
thoại đã cài đặt trước đó, kích hoạt chuông và đèn báo động.
- Nếu thẻ đúng thì chương trình sẽ yêu cầu nhập mật khẩu, mật khẩu đúng thì
cửa sẽ mở. Lúc đó người dùng có quyền thêm thẻ (nhấn phím A), đổi mật khẩu
(nhấn phím C), xóa thẻ (nhấn phím B), bật chương trình báo động bằng tin nhắn
(nhấn phím #).
47. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
Lƣu đồ chƣơng trình thêm thẻ, xóa thẻ, đổi pass:
Bắt đầu
Quét RFID
(lấy mã RFID)
Thêm thẻ
Phát hiện thẻ
mới?
Nhập mật khẩu mới
Kết thúc
Xóa thẻ
Bắt đầu
Quét RFID
(lấy mã RFID)
Phát hiện thẻ
đã có
Xóa thẻ
Kết thúc
Đ
S S
Đ
Đổi pass
Bắt đầu
Nhập mật khẩu cũ
Kiểm tra mật
khẩu cũ
Nhập mật khẩu mới
S
Đ
Kết thúc
Hình 4.8 Lưu đồ chương trình con thêm thẻ, xóa thẻ và đổi pass.
Giải thích:
- Thêm thẻ: Ở chương trình này sẽ kiểm tra và nếu phát hiện thẻ mới thì sẽ yêu
cầu nhập mật khẩu để thêm vào thẻ đó.
- Xóa thẻ: Chương trình sẽ kiểm tra và nếu phát hiện đúng thẻ đã cài đặt thì
chương trình sẽ xóa thẻ.
- Đổi mật khẩu: Chương trình sẽ yêu cầu nhập lại mật khẩu cũ, nếu đúng thì cho
phép nhật khẩu mới.
4.3.1.3 Lƣu đồ chƣơng trình kiểm tra nút nhấn và cảnh báo PIR
48. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
1
Kiểm tra nút
nhấn?
Đảo trạng thái cửa
2
S
Đ
PIR phát hiện
chuyển động
SMS được bật
Gửi tin nhắn cảnh
báo
Đ
S
Đ
S
Cảnh báo buzzer, led
Bắt đầu
Kết thúc
Hình 4.9 Lưu đồ chương trình kiểm tra ngắt của nút nhấn và cánh báo PIR.
Giải thích:
- Chương trình kiểm tra nút nhấn: Kiểm tra có nhấn nút thì đảo trạng thái cửa.
- Chương trình cảnh báo PIR: Khi PIR phát hiện vật thể chuyển động và nếu chế
độ SMS được bật thì sẽ gửi tin nhắn cảnh báo đồng thời bật buzzer, led. Nếu SMS
không được bật thì chỉ cảnh báo buzzer, led.
4.4 TÀI LIỆU HƢỚNG DẪN
Nhằm mục đích để người sử dụng mô hình hiểu rõ và vận hành một cách tốt
nhất và hiệu quả nhất, sau đây chúng em xin trình bày các bước vận hành của mô
hình:
49. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
Bƣớc 1: Cấp nguồn cho mô hình, nguồn sử dụng là adapter 9V/2A. Sau khi
cấp nguồn mạch chính và module sim sẽ được khởi động trong vài giây và dạt trạng
thái ổn định.
Bƣớc 2: Mô hình yêu cầu quẹt thẻ, sau khi quẹt thẻ đúng thì sẽ yêu cầu nhập
mật khẩu, nhập xong nhấn D, để xóa ký tự đã nhập nhấn # nếu nhập mật khẩu đúng
thì sẽ vào trạng thái quản lý của mô hình. Nếu thẻ sai hệ thống sẽ cảnh báo và đếm
lên. Đủ 3 lần sẽ gửi tin nhắn đến số điện thoại người dùng.
Bƣớc 3: Đang trong trạng thái quản lý người dùng có quyền: xóa thẻ, bật/tắt
chế độ SMS, thêm thẻ và đổi mật khẩu. Cụ thể như sau:
- Thêm thẻ (nhấn A): Ở chế độ này, nếu thẻ quẹt vào là thẻ mới thì, mô hình sẽ
yêu cầu nhập mật khẩu cho thẻ mới, nhập mật khẩu nhấn D để xác nhận, sau đó
thoát ra khỏi trạng thái thếm thẻ và trạng thái quản lý. Nếu là thẻ đã có thì thoát khỏi
trạng thái thêm thẻ.
- Xóa thẻ (nhấn B): Ở chế độ này, mô hình yêu cầu quẹt thẻ xóa, nếu là thẻ mới
sẽ thoát khỏi trạng thái xóa thẻ. Nếu thẻ có trong bộ nhớ thì tiến hành xóa thẻ và
thoát ra khỏi trạng thái xóa thẻ, trở về trạng thái quản lý.
- Đổi mật khẩu (nhấn C): Ở chế độ này, mô hình yêu cầu nhập mật khẩu cũ của
thẻ, mật khẩu đúng thì sẽ yêu cầu nhập mật khẩu mới, sau khi nhập mật khẩu mới
nhấn D xác nhận và thoát khỏi trạng thái đổi mật khẩu và trạng thái quản lý.
- Bật/ tắt SMS (nhấn #): Bật chế độ SMS thì mô hình sẽ gửi tin nhắn đến số điện
thoại người dùng khi PIR phát hiện có người lạ.
Bƣớc 4: Khi vào nhà, có 1 nút nhân đơn dùng để khóa cửa từ bên trong, sau
khi nhấn nút thì mô hình sẽ thoát ra trang thái yêu cầu quẹt thẻ đồng thời đảo trạng
thái của servo (từ mở sang đóng và ngược lại).
50. CHƢƠNG 4. THI CÔNG MÔ HÌNH
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
Bƣớc 5: Khi ra khỏi nhà nhấn nút servo ở trạng thái mở, mở khóa bằng thẻ và
mật khẩu như bước 1, 2, 3. Nhấn mở chế độ SMS khi ra khỏi nhà (nếu cần). Khóa
cửa bằng phím (*).
51. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
Chƣơng 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 GIỚI THIỆU
Trong chương này, nhóm sẽ trình bày kết quả đã thực hiện được trong thời
gian qua, đồng thời đưa ra nhận xét và đánh giá mô hình.
5.2 KẾT QUẢ
5.1.1 Kết quả đạt đƣợc
Trong quá trình thực hiện đồ án tốt nghiệp, nhóm chúng em đã hoàn thành
được các mục tiêu nghiên cứu, cụ thể như sau:
- Nghiên cứu và hiểu được nguyên lý hoạt động của Arduino, module RFID,
cảm biến chuyển động, phím ma trận 4x4.
- Viết chương trình giao tiếp giữa module Sim với Arduino, cảm biến chuyển
động với Arduino, module RFID với Arduino.
- Củng cố kiến thức giao tiếp UART, I2C và tìm hiểu thêm chuẩn giao tiếp SPI
cho module RFID.
- Sử dụng các phần mềm như: Proteus, visio, IDE.
- Tính toán và chọn nguồn cung cấp cho hệ thống.
5.1.2 Kết quả thực nghiệm
a. Màn hình bắt đầu
Khi bắt đầu hoạt động, toàn mạch sẽ bắt đầu được thiết lập,mô hình ở trạng
thái chờ quẹt, màn hình LCD sau khi thiết lập xong sẽ hiện “KHOA CUA DIEN TU
MOI QUET THE”
52. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
Hình 5.1 Hình ảnh màn hình LCD trạng thái chờ quẹt thẻ.
b. Khi quẹt thẻ sai
Nếu quẹt thẻ sai màn hình LCD sẽ hiện “VUI LONG THU LAI” và số lần
quẹt sai sẽ tăng lên nếu tiếp tục sử dụng thẻ sai.
Hình 5.2 Hình ảnh LCD khi quẹt thẻ sai.
53. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
Khi quẹt thẻ sai 3 lần trạng thái cảnh báo sẽ được kích hoạt buzzer và led sẽ
chớp tắt liên tục như hình 5.3, module Sim sẽ gửi tin nhắn cảnh báo tới người dùng
như hình 5.4.
Hình 5.3 Hình ảnh mạch báo động hoạt động.
Hình 5.4 Hình ảnh module Sim gửi tin nhắn cảnh báo quẹt thẻ sai.
54. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
c. Màn hình quản lý
Sau khi quẹt thẻ thành công và nhập đúng mật khẩu sẽ vào trạng thái quản lý
và có quyền thao tác với khóa, màn hình LCD sẽ hiển thị như hình 5.5.
Hình 5.5 Hình ảnh màn hình LCD ở trạng thái quản lý
d. Thêm thẻ
Khi ở trong trạng thái quản lý, nhấn A sẽ chọn chế độ thêm thẻ, khi đó màn
hình LCD sẽ hiện “ MOI QUET THE MOI” để yêu cầu quẹt thẻ mới, nếu là thẻ mới
thì yêu cầu nhập mật khẩu thẻ và nhập xong sẽ thoát ra trạng thái chờ quẹt thẻ, nếu
là thẻ đã có sẽ thoát ra trạng thái quản lý.
Hình 5.6 Hình ảnh LCD khi ở chế độ thêm thẻ
55. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
e. Xóa thẻ
Khi ở trạng thái quản lý, nhấn B thì sẽ vào chế độ xóa thẻ, màn hình LCD sẽ
hiển thị “MOI QUET THE XOA”. Khi thẻ quẹt đã có vào thì xóa thẻ, thoát ra và ở
trạng thái quản lý.
Hình 5.7 Hình ảnh LCD khi chọn chế độ xóa thẻ.
f. Đổi mật khẩu
Ở trạng thái quản lý, khi nhấn C sẽ vào chế độ đổi mật khẩu, màn hình LCD sẽ
hiển thị “ NHAP M/KHAU CU” và yêu cầu nhập mật khẩu cũ của thẻ. Sau khi nhập
đúng mật khẩu sẽ yêu cầu nhập mật khẩu mới và xác nhận. Sau khi xác nhận sẽ
thoát ra và ở trạng thái chờ quẹt thẻ.
Hình 5.8 Hình ảnh LCD yêu cầu nhập mật khẩu cũ khi chọn chế độ đổi mật khẩu.
56. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
g. Cảnh báo PIR
Khi khóa cửa và ở chế độ SMS, PIR phát hiện có người lạ sẽ gửi tin nhắn cảnh
báo đến số điện thoại người dùng.
Hình 5.9 Hình ảnh tin nhắn cảnh báo khi PIR phát hiện có người lạ xâm nhập.
5.3 NHẬN XÉT
5.3.1 Ƣu điểm
Sau khi hoàn thành, thông qua quá trình thử nghiệm và chạy thử, mô hình đã
hoàn thành được những yêu cầu đã đề ra như mở khóa bằng RFID, phím ma trận,
gửi tin nhắn đến số điện thoại cài đặt, dùng cảm biến chuyển động phát hiện vật thể.
Đặc biệt có một số ưu điểm so với những đề tài liên quan trước đây như:
- Sử dụng mật khẩu riêng biệt cho từng thẻ RFID được lưu vào Eeprom, vì thế
mỗi người có thể có một mật khẩu riêng biệt.
57. CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
- Mở khóa thông qua 2 lớp bảo mật dùng thẻ RF sau đó dùng mật khẩu bằng
cách nhập từ phím ma trận.
- Giám sát được tình hình ngôi nhà (có người quẹt thẻ sai, có người xâm nhập
vào nhà) thông qua tin nhắn ở bất khì đâu.
- Nhỏ gọn, dễ lắp đặt và dễ dử dụng.
5.3.2 Hạn chế
Bên cạnh những điều đã làm được thì đề tài vẫn còn nhiều hạn chế chưa thể
làm được:
- Cảm biến chuyển động không xác định được người hay vật.
- Sử dụng nguồn trực tiếp nên khi điện ngắt mô hình không hoạt động, bị reset
khi có điện lại.
- Module sim không thể cảnh báo khi hết tiền.
5.4 ĐÁNH GIÁ
Dựa trên những thực nghiệm có thể đưa ra một số đánh giá như sau:
- Mô hình hoạt động ổn định, liên tục khi có nguồn điện duy trì. Mô hình dùng
nguồn dưới 9V nên an toàn cho người sử dụng. Thao tác đơn giản và dễ sử dụng.
- Module sim hoạt động ổn định kết nối ngay khi được khởi động. hoạt động
được ở tất cả môi trường có sóng điện thoại, thích hợp cho mọi loại điện thoại.
- Ở số trường hợp, do cảm biến chuyển động quá nhạy cho nên hoạt động liên
tục làm chậm một số chương trình nhưng không đáng kể.
58. CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
Chƣơng 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
6.1 KẾT LUẬN
Sau quá trình nghiên cứu, thiết kế và thi công thì mô hình đã đáp ứng được
một số yêu cầu đã đề xuất. Về phần cứng, các module được kết nối đúng với nguyên
lý đã đề xuất. Các ngoại vi giao tiếp với nhau với độ ổn định cao (RFID, bàn phím
ma trận, module Sim900, Arduino Mega). Ngoài ra về phần mềm, nhóm đã thực
hiện lập trình trên phần mềm Arduino với các chức năng đã đề xuất bao gồm nhận
diện thẻ, nhập mật khẩu để mở cửa, cảnh báo có người lạ đột nhập vào nhà. Bên
cạnh đó nhóm còn thêm một số chức năng giao tiếp với người dùng và lưu lại dữ
liệu vào trong EEPROM như thêm thẻ, xóa thẻ, đổi mật khẩu, cũng như chọn chế độ
cảnh báo thông qua SMS.
Với những yêu cầu đã đặt ra, nhóm đã thực hiện hoàn chỉnh và đạt được mục
tiêu. Mô hình hoạt động ổn định và có đầy đủ các chức năng đã đề ra. Cảm biến hoạt
động nhạy, người sử dụng tương đối dễ dàng.
Bên cạnh những phần đã làm được thì mô hình chỉ giới hạn ở mức giám sát
thông qua module sim gửi tin nhắn về điện thoại, sử dụng RFID, ma trận phím để
điều khiển chứ chưa ứng dụng sâu vào được công nghệ IoT. Ngoài ra, cảm biến
chuyển động khá nhạy nên khi phát hiện vật thể dẫn đến những cảnh báo không
chính xác. Mô hình chưa có nguồn dự phòng nên khi xảy ra sự cố mất điện thì mô
hình không thể hoạt động.
6.2 HƢỚNG PHÁT TRIỂN
Để mô hình được hoàn thiện và có thể ứng dụng vào thực tế, nhóm chúng em
có một số kiến nghị về hướng phát triển đề tài:
- Thay động cơ servo bằng chốt điện tử.
- Thế kế ứng dụng điện thoại, web server , giọng nói để giám sát điều khiển
trạng thái cửa.
- Thiết kế nguồn dự phòng, báo số dư tài khoản sim.
59. TÀI LIỆU THAM KHẢO
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
TÀI LIỆU THAM KHẢO
[1] Pham Minh Tuan, ebook :Internet Of Things(IoT): cho người mới bắt đầu, 2017
(https://iotmakervn.github.io/iot-starter-book/).
[2]Nguyễn Ngọc Lực, “Thiết kế , thi công mô hình hệ thông điều khiển điện và giám
sát nhà” , đồ án tốt nghiệp , trường ĐHSPKT Tp HCM, 2018.
[3] Phạm Hưng Thịnh, “Thiết kế, thi công hệ thống điều khiển và giám sát thiết bị
nhà có hỗ trờ Google Assistant”, đồ án tốt nghiệp, trường ĐHSPKT TpHCM, 2018.
[4]Hướng dẫn sử dụng Module sim900-MLAB (http://mlab.vn/huong-dan-su-dung-
module-sim900.html).
[5]Nguyen Dinh Phu, Truong Ngoc Anh, giáo trình vi xử lý , Xuất bản ĐH Quốc
Gia, Tp.HCM, 2013.
[6] Hướng dẫn sử dụng Module cảm biến chuyển động HC - SR501-MLAB
(http://mlab.vn/18496-huong-dan-su-dung-module-cam-bien-chuyen-dong-hc-
sr501.html).
[7] Lập trình và sử dụng module đọc thẻ RFID-RC522 – Arduino.vn
(http://arduino.vn/bai-viet/833-lap-trinh-va-su-dung-modul-doc-rfid-rc522).
62. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
state_button=true;
}
///////////////////////////PIR HANDLE/////////////////////////
#define PIR_PIN 2
bool PIR_REPORT_STATE = false;
void PIR_HANDLE_FUNCTION()
{
Serial.println("PIR PHAT HIEN");
PIR_REPORT_STATE = true;
}
///////////////////////////TIMER HANDLE//////////////////////////
#define Time_handle 50
uint32_t timer2_count = 0;
void Timer_handle_func() {
timer2_count++;
if (timer2_count % 10 == 0) //1 count =50ms => 500ms vo function nay 1
lan.
{
if ((REPORT_STATE == 1) && (REPORT_COUNT < REPORT_COUNT_NUM)) {
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
digitalWrite(BUZZER_PIN, !digitalRead(BUZZER_PIN));
REPORT_COUNT++;
Serial.println("CANH BAO SAI THE" + String(REPORT_COUNT));
}
if (REPORT_COUNT >= REPORT_COUNT_NUM) {
REPORT_COUNT = 0; REPORT_STATE = 0;
}
}
if (timer2_count % 4 == 0) //1 count =50ms => 200ms vo function nay 1
lan.
{
check_door();
if (PIR_REPORT_STATE == true) {
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
digitalWrite(BUZZER_PIN,!digitalRead(BUZZER_PIN));
Serial.println("CANH BAO CO NGUOI VAO");
if (!digitalRead(PIR_PIN))
{
PIR_REPORT_STATE = false;
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN,LOW);
Serial.println("PIR TAT");
}
}
}
if (REPORT_SMS_SENDED == true)
{
SMS_TIMEOUT++;
//sau 30s moi kiem tra lai fun 50ms vo 1 lan => 30000/50=600
if (SMS_TIMEOUT >= 600)
{
REPORT_SMS_SENDED = false;
SMS_TIMEOUT = 0;
Serial.println("HET TIMEOUT CHUAN BI CHO TIN NHAN KE TIEP");
}
}
63. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
}
void setup() {
Serial.begin(115200); //enable DEBUG
lcd.begin();
lcd_start_init();
//SIM_Enable();
Serial.println("Dang khoi tao chuong trinh..."); //let start program
SPI.begin();
mfrc522.PCD_Init();
myservo.attach(SERVO_PIN);
//myservo.write(Ser_off);
//get_phone_eep_rom();
num_user = EEPROM.read(addr_num_user);
Serial.println(" SO THE TRONG EEPROM: " + String(num_user)); //printf
numbers users in system
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
pinMode(PIR_PIN, INPUT);
attachInterrupt(digitalPinToInterrupt(PIR_PIN), PIR_HANDLE_FUNCTION,
RISING ); ọ m ê ụ ò ú
pinMode(BUTTON_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN),
BUTTON_HANDLE_FUNCTION, FALLING ); ọ m ê ụ ò
ú
delay(500);
state_button=false;
state_door=door_close;
MsTimer2::set(Time_handle, Timer_handle_func); // 50ms period
MsTimer2::start();
Serial.println("Start"); //let start program
//SIM_INIT();
//SIM_SEND_SMS(sodienthoai,"OKOKOK");
lcd_start();
}
void loop() {
machine_state_func();
check_button();
check_report_sms();
}
void machine_state_func()
{
switch (state_machine) {
case STATE_LOGIN:
LOGIN();
break;
case STATE_KEY_PASS:
KEYBOARD_PASS();
break;
case STATE_MAIN:
LOCK_MAIN();
break;
case STATE_SEND_REPORT:
REPORT_SOS_SIM_LED_BUZZER();
64. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53
break;
case STATE_CHANGE_PASSWORK:
CHANGE_PASS_FUN();
break;
case STATE_NEW_PASS:
CHANGE_NEW_PASS();
break;
case STATE_ADD_RFID:
READ_NEW_RFID();
break;
case STATE_ADD_PASS:
ADD_NEW_PASS_RFID();
break;
case STATE_REMOVE_RFID:
REMOVE_RFID_USER();
break;
default:
break;
}
}
void check_report_sms()
{
if(PIR_REPORT_STATE==true && REPORT_SMS_BUZZER_STATE == SMS_REPORT)
{
REPORT_PIR_SEND_SMS();
}
}
void check_button()
{
if(state_button==true)
{
state_door=!state_door;
delay(500);
if(state_machine==STATE_MAIN)
{
lcd.clear();
lcd_start();
count_report=0;
state_machine = STATE_LOGIN;
}
state_button=false;
Serial.println("DOI TRANG THAI CUA!!!!!!!!!!!");
}
}
void LOGIN() {
if (CHECK_RFID() == true) {
lcd.clear();
lcd.setCursor(0, 1); lcd.print("THE DUNG");
lcd.clear();
state_machine = STATE_KEY_PASS;
clear_pass_key();
}
else {
lcd.clear();
65. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
lcd.setCursor(0, 0); lcd.print("VUI LONG THU LAI");
count_report++; Serial.println(" Sai Lan:" + String(count_report));
lcd.setCursor(1, 1); lcd.print("SAI LAN:" + String(count_report));
if (count_report >= 3) state_machine = STATE_SEND_REPORT;
//clear_pass_key();
}
}
void KEYBOARD_PASS() {
lcd.setCursor(0, 0); lcd.print(" MAT KHAU THE");
lcd.setCursor(1, 1); lcd.print(" PASS:");
lcd.setCursor(7, 1);
for (uint8_t count2 = 0; count2 < 4;
count2++)lcd.print(pass_show[count2]);
if (check_pass_key() == true)
{ //mo servo va mo khoa
state_door=door_open;
state_machine = STATE_MAIN;
count_report=0;
lcd.clear();
}
}
void REPORT_SOS_SIM_LED_BUZZER() {
Serial.println("TRANG THAI CANH BAO");
REPORT_STATE = 1;
if (REPORT_SMS_SENDED == false)
{
REPORT_SEND_SMS();
REPORT_SMS_SENDED == true;
}
//thuc hien viec canh bao (SMS, LED, BUZZER,...)
//Sau do ve lai Login
lcd_start();
count_report = 0;
state_machine = STATE_LOGIN;
}
void LOCK_MAIN() {
check_door();
lcd.setCursor(5, 0); lcd.print("CUA MO ");
if (REPORT_SMS_BUZZER_STATE == SMS_REPORT) {
lcd.setCursor(15, 0);
lcd.print("*");
}
else {
lcd.setCursor(15, 0);
lcd.print(" ");
}
lcd.setCursor(2, 1); lcd.print("CO QUYEN Q/LY");
check_function_security();
}
void CHANGE_PASS_FUN() {
lcd.setCursor(0, 0); lcd.print("NHAP M/KHAU CU");
lcd.setCursor(0, 1); lcd.print("M/KHAU:");
for (uint8_t count2 = 0; count2 < 4;
count2++)lcd.print(pass_show[count2]);
if (check_pass_key() == true)
{ //mo servo va mo khoa
66. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55
lcd.clear();
clear_pass_key();
state_machine = STATE_NEW_PASS;
}
}
void CHANGE_NEW_PASS() {
lcd.setCursor(0, 0); lcd.print("NHAP M/KHAU MOI");
lcd.setCursor(0, 1); lcd.print("M/KHAU:");
for (uint8_t count2 = 0; count2 < 4;
count2++)lcd.print(pass_show[count2]);
change_pass();
}
void get_phone_eep_rom() {
Serial.println("SO DT KHOI TAO");
uint8_t count_phone;
for (count_phone = 0; count_phone < size_phone; count_phone++)
{
phone_report[count_phone] = EEPROM.read(addr_phone + count_phone);
Serial.print(phone_report[count_phone]);
}
Serial.println("");
}
uint8_t check_function_security() {
char temp_k = keypad.getKey();
switch (temp_k)
{
case 'A':
state_machine = STATE_ADD_RFID;
lcd.clear();
break;
case 'B':
state_machine = STATE_REMOVE_RFID;
break;
case 'C':
state_machine = STATE_CHANGE_PASSWORK;
clear_pass_key();
lcd.clear();
break;
case 'D':
break;
case '*':
state_door=door_close;
lcd.clear();
lcd_start();
count_report=0;
state_machine = STATE_LOGIN;
break;
case '#': //LUA CHON 2 CHE DO GUI SMS HOAC BAO BUZZER
if (REPORT_SMS_BUZZER_STATE == SMS_REPORT)
{
REPORT_SMS_BUZZER_STATE = BUZZER_REPORT;
lcd.setCursor(2, 0); lcd.print(" TAT SMS ");
delay(1000);
}
else
67. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56
{
REPORT_SMS_BUZZER_STATE = SMS_REPORT;
lcd.setCursor(2, 0); lcd.print(" BAT SMS ");
delay(1000);
}
break;
}
}
void change_pass() {
char temp = keypad.getKey();
if (temp) {
if ((count < 4) && (temp != '#')) // ****
{
pass_temp[count] = temp;
pass_show[count] = '*';
Serial.println(temp);
Serial.println(pass_temp[count]);
count++;
}
if (temp == 'D')
{
Serial.print("Set Pass Moi La: ");
for (uint8_t add_pass_count = 0; add_pass_count < 4;
add_pass_count++)
{
pass_keyboard[add_pass_count] = pass_temp[add_pass_count];
Serial.print((char)pass_keyboard[add_pass_count]);
//addr_current_user
EEPROM.write(addr_current_user + size_ID + add_pass_count,
pass_keyboard[add_pass_count]);
}
state_door=door_close;
lcd_start();
clear_pass_key();
state_machine = STATE_LOGIN;
}
if (temp == '#')
{
for (uint8_t u = 0; u < 4; u++)
{
pass_temp[u] = 0x00;
pass_show[u] = ' ';
}
count = 0;
}
}
}
bool check_pass_key() {
char temp = keypad.getKey();
if (temp) {
if (temp == '#')
{
for (uint8_t u = 0; u < 4; u++)
{
pass_temp[u] = 0x00;
pass_show[u] = ' ';
68. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57
}
count = 0;
}
if (temp == 'D')
{
uint8_t check_count = 0;
for ( check_count = 0; check_count < 4; check_count++)
{
if (pass_temp[check_count] != pass_keyboard[check_count])
break;
}
Serial.println("D");
if (check_count == 4)return 1;
else return 0;
}
if ((count < 4) && (temp != '#')) // ****
{
pass_temp[count] = temp;
pass_show[count] = '*';
Serial.print((char)temp);
//Serial.print(pass_temp[count]);
count++;
}
}
return 0;
}
void clear_pass_key() {
for (uint8_t u = 0; u < 4; u++)
{
pass_temp[u] = 0x00;
pass_show[u] = ' ';
}
count = 0;
}
bool CHECK_RFID() {
do {
successRead = getID(); // sets successRead to 1 when we get read
from reader otherwise 0
// When device is in use if wipe button pressed for 10 seconds
initialize Master Card wiping
check_button();
}
while (!successRead); //the program will not go further while you are
not getting a successful read
uint16_t i;
for (i = addr_fisr_ID; i < (EEPROM_MAX_ADDR - zise_user); i +=
zise_user) {
S ừ p ầ ử ủ mả _ mả m
if ((readCard[0] == EEPROM.read(i))) N ó p ầ ử b ỳ
ô p ù ợp... ỳ ò ặp ú y ậ đượ ị ủ
{
69. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58
break;
}
}
if ((readCard[0] == EEPROM.read(i)) && (readCard[1] == EEPROM.read(i +
1)) && (readCard[2] == EEPROM.read(i + 2)) && (readCard[3] ==
EEPROM.read(i + 3))) N ó p ầ ử b ỳ ô p ù ợp... ỳ
ò ặp ú y ậ đượ ị ủ
{
Serial.println("TIM THAY THE");
//Serial.print(i);
addr_current_user = i;
for (uint16_t eep_count = 0; eep_count < 4; eep_count++)
{
pass_keyboard[eep_count] = EEPROM.read(i + eep_count + 4);
}
return 1;
}
else return 0;
}
bool READ_NEW_RFID() {
Serial.println("THEM USER CHO THE RDIF MOI");
lcd.setCursor(0, 0);
lcd.print("MOI QUET THE MOI");
do {
successRead = getID(); // sets successRead to 1 when we get read
from reader otherwise 0
// When device is in use if wipe button pressed for 10 seconds
initialize Master Card wiping
check_button();
}
while (!successRead); //the program will not go further while you are
not getting a successful read
uint16_t i;
for (i = addr_fisr_ID; i < (EEPROM_MAX_ADDR - zise_user); i +=
zise_user) {
S ừ p ầ ử ủ mả _ mả m
if ((readCard[0] == EEPROM.read(i)) && (readCard[1] == EEPROM.read(i
+ 1)) && (readCard[2] == EEPROM.read(i + 2)) && (readCard[3] ==
EEPROM.read(i + 3))) N ó p ầ ử b ỳ ô p ù ợp... ỳ
thoát vòng ặp ú y ậ đượ ị ủ
{
break;
}
else if ((EEPROM.read(i) == 0xff) && (EEPROM.read(i + 1) == 0xff) &&
(EEPROM.read(i + 2) == 0xff) && (EEPROM.read(i + 3) == 0xff))
{
Serial.println("VI TRI LUU THE MOI LA" + String(i));
addr_save_new = i;
break;
}
}
if ((readCard[0] == EEPROM.read(i)) && (readCard[1] == EEPROM.read(i +
1)) && (readCard[2] == EEPROM.read(i + 2)) && (readCard[3] ==
EEPROM.read(i + 3))) N ó p ầ ử b ỳ ô p ù ợp... ỳ
70. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59
ò ặp ú y ậ đượ ị ủ
{
Serial.println("TIM THAY THE DA CO");
lcd.setCursor(0, 0);
lcd.print(" DA CO THE NAY ");
delay(1000);
}
else
{
if (successRead) state_machine = STATE_ADD_PASS;
clear_pass_key();
Serial.println("CHUYEN TOI TRANG THAI NHAP PASS MOI");
lcd.clear();
}
}
uint8_t getID() {
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return 0;
}
if ( ! mfrc522.PICC_ReadCardSerial()) {
return 0;
}
//Serial.println(F("Scanned PICC's UID:"));
for ( uint8_t i = 0; i < 4; i++) { //
readCard[i] = mfrc522.uid.uidByte[i];
Serial.print(readCard[i]); Serial.print('-');
}
Serial.println("");
mfrc522.PICC_HaltA(); // Stop reading
return 1;
}
void lcd_start() {
lcd.clear();
lcd.print("KHOA CUA DIEN TU");
lcd.setCursor(2, 1);
lcd.print("MOI QUET THE");
}
void lcd_start_init(){
lcd.clear();
lcd.print(" DANG KHOI DONG");
lcd.setCursor(2, 1);
lcd.print("VUI LONG CHO");
}
void ADD_NEW_PASS_RFID() {
lcd.setCursor(0, 0);
lcd.print("NHAP MKHAU MOI");
lcd.setCursor(0, 1);
lcd.print("MKHAU: ");
for (uint8_t count2 = 0; count2 < 4;
count2++)lcd.print(pass_show[count2]);
//while(1);
//Serial.println("THEM PASS CHO THE RDIF MOI");
ADD_PASS_KEYBOARD(addr_save_new);
}
void ADD_PASS_KEYBOARD(uint16_t addr_start_save) {
char temp = keypad.getKey();
71. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
if (temp) {
if ((count < 4) && (temp != '#')) // ****
{
pass_temp[count] = temp;
pass_show[count] = '*';
Serial.println(temp);
Serial.println(pass_temp[count]);
count++;
}
if (temp == 'D')
{
Serial.print("ID THE MOI: "); Serial.print(readCard[0]);
Serial.print(readCard[1]); Serial.print(readCard[2]);
Serial.print(readCard[3]); Serial.println("");
Serial.print("SET PASS THE MOI La: ");
for (uint8_t add_pass_count = 0; add_pass_count < 4;
add_pass_count++)
{
pass_keyboard[add_pass_count] = pass_temp[add_pass_count];
Serial.print((char)pass_keyboard[add_pass_count]);
//addr_current_user
EEPROM.write(addr_start_save + add_pass_count,
readCard[add_pass_count]);
EEPROM.write(addr_start_save + size_ID + add_pass_count,
pass_keyboard[add_pass_count]);
}
if (num_user > 0)num_user++; EEPROM.write(addr_num_user, num_user);
Serial.println("");
state_door=door_close;
lcd_start();
clear_pass_key();
state_machine = STATE_LOGIN;
}
if (temp == '#')
{
for (uint8_t u = 0; u < 4; u++)
{
pass_temp[u] = 0x00;
pass_show[u] = ' ';
}
count = 0;
}
}
}
void REMOVE_RFID_USER() {
Serial.println("XOA THE RFID");
//lcd_delete_RFID();
//lcd_start();
//state_machine=STATE_LOGIN;
READ_DELETE_RFID();
}
bool READ_DELETE_RFID() {
Serial.println("XOA THE RFID");
lcd.setCursor(0, 0);
lcd.print("MOI QUET THE XOA");
do {
72. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61
successRead = getID(); // sets successRead to 1 when we get read
from reader otherwise 0
check_button();
// When device is in use if wipe button pressed for 10 seconds
initialize Master Card wiping
}
while (!successRead); //the program will not go further while you are
not getting a successful read
uint16_t i;
for (i = addr_fisr_ID; i < (EEPROM_MAX_ADDR - zise_user); i +=
zise_user) {
S ừ p ầ ử ủ mả _ mả m
if ((readCard[0] == EEPROM.read(i)) && (readCard[1] == EEPROM.read(i
+ 1)) && (readCard[2] == EEPROM.read(i + 2)) && (readCard[3] ==
EEPROM.read(i + 3))) N ó p ầ ử b ỳ ô p ù ợp... ỳ
ò ặp ú y ậ đượ ị ủ
{
break;
}
}
if ((readCard[0] == EEPROM.read(i)) && (readCard[1] == EEPROM.read(i +
1)) && (readCard[2] == EEPROM.read(i + 2)) && (readCard[3] ==
EEPROM.read(i + 3))) N ó p ầ ử b ỳ ô p ù ợp... ỳ
ò ặp ú y ậ đượ ị ủ
{
if (successRead) state_machine = STATE_MAIN;
clear_pass_key();
Serial.println("TIM THAY DIA CHI XOA, XOA DATA THE");
lcd.setCursor(0, 0);
lcd.print(" XOA THANH CONG ");
for (uint16_t count_delete = i ; count_delete < (i + zise_user);
count_delete++)
{
EEPROM.write(count_delete, 0xff);
}
if (num_user > 0)num_user--; EEPROM.write(addr_num_user, num_user);
delay(1000);
lcd.clear();
}
else
{
lcd.setCursor(0, 0);
lcd.print(" KO CO THE NAY ");
delay(1000);
lcd.clear();
if (successRead) state_machine = STATE_MAIN;
}
}
void SIM_Enable() {
digitalWrite(SIM_ENA_PIN, HIGH); // Du chan PWR_KEY len
cao it nhat 1s
delay(1500); // o day ta de
1,5s
digitalWrite(SIM_ENA_PIN, LOW); // Du chan PWR_KEY
73. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
xuong thap
delay(100); // cac ban xem
trong Hardware designed sim900A de hieu ro hon
}
void SIM_INIT() {
long select_baundrate[8] = {1200, 2400, 4800, 9600, 19200, 38400,
57600, 115200};
int i = 1, dem = 0, tt = 0, init = 0;
char nah = Serial2.read();
int time_delay = 0;
Serial.println(" chon toc do baud");
while (init == 0) {
tt = 0;
Serial2.begin(select_baundrate[i]);
delay(10);
Serial2.print("ATZrn");
delay(10);
Serial2.print("ATE1rn");
delay(10);
Serial2.print("ATrn");
delay(10);
for (dem = 0; dem < 20000; dem++) {
char nah = Serial2.read();
if (nah > 0) {
if (nah == 'A') tt = 1;
if (nah == 'T' && tt == 1) tt = 2;
if (nah == 'O' && tt == 2) tt = 3;
if (nah == 'K' && tt == 3) tt = 4;
}
delayMicroseconds(100);
if (tt == 4) {
Serial.print("Toc do baud : ");
Serial.print(select_baundrate[i]);
Serial.println("");
init = 1;
break;
}
}
i++;
if (i > 7) i = 0;
}
delay(200);
Serial2.print("AT+IPR=9600rn");
delay(200);
Serial2.begin(9600);
delay(200);
Serial2.print("AT+CLIP=1rn");
delay(300);
Serial2.print("AT+CMGF=1rn");
delay(300);
Serial2.print("AT+CNMI=1,2,0,0,0rn");
delay(300);
Serial2.print("AT+CMGD=1rn");
delay(300);
Serial.print("Thiet lap xong.");
Serial2.print("AT+CMGDA=“DEL LL”rn");
74. PHỤ LỤC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63
delay(2000);
}
void SIM_CALL(String phone) {
Serial2.println("ATD" + phone + ";"); // Goi dien
delay(10000); // Sau 10s
Serial2.println("ATH"); // Ngat cuoc goi
delay(2000);
}
void SIM_SEND_SMS(String phone, String content) {
Serial2.print("AT+CSCS="GSM"rn");
delay(500);
Serial2.print("AT+CMGF=1rn");
delay(500);
Serial2.print("AT+CMGS="");
Serial2.print(phone);
Serial2.print(""r");
delay(500);
Serial2.print(content);
delay(500);
Serial2.print((char)26);
delay(1000);
Serial.println("da gui SMS");
}
void REPORT_SEND_SMS() {
Serial.println("GUI SMS CANH BAO CO NGUOI LA QUET THE");
SIM_SEND_SMS(sodienthoai,"PHAT HIEN CO NGUOI QUET THE");
REPORT_SMS_SENDED = true;
SMS_TIMEOUT = 0;
}
void REPORT_PIR_SEND_SMS() {
Serial.println("GUI SMS CANH BAO CO NGUOI LA TRONG NHA");
SIM_SEND_SMS(sodienthoai,"PHAT HIEN CO NGUOI TRONG NHA");
REPORT_SMS_SENDED = true;
SMS_TIMEOUT = 0;
}