định và phân bổ̉ bộ nhớ động Đã làm cho ngôn ngữ C trở̉ thành lựa chọn tối ưu cho các ứng dụ ̣ng và trình điều khiển của các hệ thống nhúng.Ngôn ngữ lập trì̀nh C++ là gì̀?. Lập trìn
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
Giảng viên hướng dẫn: PGS.TS.
NGUYÊN THANH BINH
Đà Nẵng, tháng 05 năm 2021
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
Trang 2TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
LỜI CẢM ƠN
Nhóm em xin chân thành cảm ơn TRƯỜNG ĐẠI HỌC CÔNG NGHỆTHÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN đã tạo điều kiện cho nhóm emthực hiện đề tài này
Nhóm em xin gửi lời cảm ơn chân thành đến tất cả các thầy cô đã giảng dạy chúng em trong suốt thời gian qua Cảm ơn đến thầy (cô) PGS.TS.NGUYỄN
THANH BÌNH đã hướng dẫn nhóm em thực hiện đề tài này
Bên cạnh đó, để hoàn thành khóa học này, nhóm em cũng đã nhận được rấtnhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, các anh chịthân hữu, nhóm em xin hết lòng cảm ơn
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắcrằng đề tài này khó tránh khỏi những thiếu sót Nhóm em rất mong nhận được
sự thông cảm, chỉ bảo tận tình của thầy cô và các bạn
Sinh viên,
LƯƠNG VIẾT NHẬT, NGUYỄN ĐỨC NGỌC KỲ
Trang 6MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN III LỜI CẢM ƠN IV MỤC LỤC V DANH MỤC CÁC TỪ VIẾT TẮT VII DANH MỤC HÌNH VẼ VIII
NO TABLE OF FIGURES ENTRIES FOUND VIII
MỞ ĐẦU 1
1 Giới thiệu 1
2 Mục tiêu của đề tài 2
3 Nội dung và kế hoạch thực hiện 2
4 Bố cục báo cáo 2
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 4
1.1 Tổng quan ngôn ngữ , phần mềm liên quan 4
1.1.1 Ngôn ngữ thực hiện: C, C++ 4
1.1.2 Phần mềm Proteus 6
1.2 Tổng quan thuật toán áp dụng vào đề tài 14
1.2.1 Công nghê sinh trăc va nhân dang băng khuôn măt 14
a) Công nghê sinh trăc va bao mât 14
b) Công nghê nhân dang khuôn măt 15
c) Phân tích kêt câu da 16
1.2.2 Xư lí anh đâu vao 16
a) Xư lí video đâu vao 17
b) Nhân dang khuôn măt 17
1.3 Kết chương 1 18
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 19
Thiết kế chi tiết 19
2.1 Tông quan hoat đông 20
2.2 Tông quan vê chức năng 22
Trang 72.2.1 Chưc năng 22
2.2.2) Phân tích sư kiên 22
a Đăng kí khuôn măt 22
b Xoa ngươi dung trong dư liêu 23
2.2.3 Chưc năng đong/mở ổ khoa 23
2.3 Kết chương 2 23
CHƯƠNG 3: TRIỂN KHAI XÂY DỰNG 24
3.1 Các thiết bị phần cứ́ng 24
3.1.1 Module ESP32 CAM 24
a Giơi thiêu ESP32 – CAM va cac thông sô kĩ thuât 24
b Ứng dụng thưc tê trong thưc tê 26
3.1.2 Module Relay 26
3.1.3 Ổ khoa điên từ LY-01 27
3.1.4 Thiết kế mô hình phần cứng 28
3.2 Cach kêt nôi giưa bô khóa tơi trình duyêt 30
3.2.1 WebSockets 30
3.2.2 Kêt nôi băng WebSockets 31
3.2.3 Mô hình phần mềm: 32
KẾT LUẬN 32
1.Kết quả đạt được 32
2.Hạn chế: 32
3 Hướng phát triển 32
TÀI LIỆU THAM KHẢO I PHỤ LỤC I
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
AI Artificial Intelligence, trí́ tuệ nhân tạo
Trang 9DANH MỤC HÌNH VẼ
H ÌNH : 1.1 C ÁCH GỠ BỎ P ROTEUS 15
H ÌNH :1.2 G Ỡ BỎ TOÀN BỘ P ROTEUS 16
H ÌNH : 1.3 C ÀI ĐẶT P ROTEUS 17
H ÌNH : 1.4 C ÁCH CÀI P ROTEUS 17
H ÌNH : 1.5 Q UÁ TRÌNH CÀI P ROTEUS 18
H ÌNH : 1.6 H OÀN THÀNH CÀI ĐẶT P ROTEUS 18
H ÌNH : 1.7 T HIẾT LẬP P ROTEUS 19
H ÌNH : 1.8 T HIẾT LẬP P ROTEUS 2 20
H ÌNH : 1.9 T HIẾT LẬP P ROTEUS 3 21
H ÌNH : 1.10 T HIẾT LẬP P ROTEUS 4 22
H ÌNH : 1.11 S Ơ ĐÔ ̀ KHÔ ́ ILOGIC CHI ́ NH CU ̉ A HÊ ̣ THÔ ́ NG SINH TRĂ ́ C HO ̣ C 23
H ÌNH : 2.1 S Ơ ĐỒ THỰC HIỆN 27
H ÌNH : 2.2 S Ơ ĐỒ LÀM VIỆC 28
H ÌNH : 2.3 M Ô TA ̉ HOA ̣ TĐÔ ̣ NG CU ̉ A BÔ ̣ KHO ́ A 28
H ÌNH : 2.4 C A ́ C CHƯ ́ C NĂNG CU ̉ A BÔ ̣ KHO ́ A 30
H ÌNH : 3.1 M ODULE ESP32- CAM 32
H ÌNH : 3.2 H I ̀ NH A ̉ NH CA ́ C CHÂN ESP32 C AM 34
H ÌNH : 3.3 M ODULE RELAY SRD-05VDG-SL-C 35
H ÌNH : 3.4 Ổ KHO ́ A ĐIÊ ̣ N TƯ LY-01 ̀ 36
H ÌNH 3.5 SƠ ĐỒ LẮP ĐẶT CÁC THIẾT BỊ 36
H ÌNH 3.6: H ÌNH ẢNH THỰC TẾ KHI LẮP ĐẶT 37
H ÌNH : 3 5 M Ô HÌNH HOÀN THIỆN 38
H ÌNH :3.6 M Ô HÌNH HOÀN THIỆN 2 39
H ÌNH 3.7: M Ô HÌNH PHẦN MỀM TRÊN TRÌNH DUYỆT 42
Trang 10MỞ ĐẦU
1 Giới thiệu
Khoa hoc công nghê ngay cang đat đươc nhưng thanh tưu to lơn, kéo theo đo la
sư phat triên vươt bâc trong cac nganh nghê co ưng dụng khoa hoc kỹ thuât Nhưngnăm gân đây, khai niêm vê Internet of thing (IoT) không con xa la trong cuôc sông cuachung ta nưa Nhât la khi hiên nay, cac thiêt bi IoT đa đươc sư dụng tran ngâp, rông raikhăp thê giơi Điêu đo cho ta thây đươc lơi ích cua cac thiêt bi nay như thê nao trongcuôc sông con ngươi
Bên canh sư phat triên cua IoT, trí tuê nhân tao cung phat triên vươt bâc trongthơi gian vừa qua Băng chưng la khăp cac nganh nghê đêu đang co nhưng ưng dụng
sư dụng trí tuê nhân tao đê nhăm tao năng suât lao đông tôt hơn, đô chính xac may caohơn Cac san phẩm trí tuê nhân tao co tính đôt pha, điêu ma nhưng năm vê trươc conngươi chi co thê xem la viễn tưởng
Viêc kêt hơp môt san phẩm IoT co ưng dụng cua trí tuê nhân tao la tât yêu cung
la xu hương hiên nay Vơi đê tai “Bộ khóa cửa nhận diện bằng khuôn mặt” cua
nhom chung em đang thưc hiên, chính la sư kêt hơp đo vơi mong muôn tim hiêu vaphat triên môt san phẩm công nghê theo xu hương nhưng ưng dụng hiêu qua trongcuôc sông
Trong thơi đai phat triên hiên nay, vân đê bao mât va an ninh la môt vân đê cưc ki quan trong va cân thiêt trong cuôc sông, ta co thê thây đươc hang loat cac công nghê
co liên quna va anh hưởng đên vân đê nay đang thuc đẩy đơi song phat triên manh mẽ.Từ vân đê an ninh cua cac cơ quan, trụ sở cho tơi viêc đam bao an toan cac thiêt bi , nha cưa, công trinh,…Điên hinh như môt thiêt lâp môt hê thông bao vê nha cưa tranh
sư xâm nhâp cua ngươi la cung như vân đê trôm cươp Hê thông đo co thê la môt ổ khoa thông minh đươc ngươi dung cai đăt mât khẩu la nhưng con sô, kí tư, hay băng vân tay, giong noi, khuôn măt,…
Như đa nêu ở trên, nhưng đia điêm đo đêu cân co sư bao mât đươc đăt lên hang đâu thi môt chiêc khoa cưa bao vê lôi ra vao đê phat hiên, ngăn chăn xâm nhâp cua ngươi la la vô cung cân thiêt Trong đê tai nay, chung ta sẽ noi vê môt hê thông bao
vê đong mở cưa băng phương phap nhân diên dưa trên công nghê sinh trăc, cụ thê đo
la hê thông mở cưa băng nhân diên khuôn măt
2 Mục tiêu của đề tài
Trang 11Vơi đê tai nay chung ta xac đinh mục tiêu la vân đê bao mât cho lôi ra vao cuamôt đia điêm Cụ thê la bô khoa cưa cho môt căn hô Yêu câu đăt ra cho bô khoa naygồm cac tiêu chí:
- Nhân diên co đô chính xac cao
- Cho phép ngươi sư dụng lưu khuôn măt vao dư liêu vao hê thông
- Tôc đô mở khoa nhanh, khi co ngươi dung muôn mở cưa (khoa điên sẽ thưc hiênđong mở ổ khoa) thi camera tiên hanh nhân diên khuôn măt
- San phẩm co tính thẩm mỹ
3 Nội dung và kế hoạch thực hiện
Nội dung thực hiện đề tài:
Sư dụng cac kiên thưc đa hoc trong 2 hoc phân môn vi điêu khiên va trí tuê nhântao đê tim hiêu, xây dưng câu truc hoat đông phân cưng cua ổ khoa, kha năng nhândiên khuôn măt cua ổ khoa
- Tiên hanh thiêt lâp sơ đồ khôi hê thông
- Xư lí cac qua trinh nhân diên, cho phép đong mở cưa Thưc hiên lăp đăt phân cưng va viêt nap code theo yêu câu chưc năng
Kế hoạch thực hiện đề tài:
- Tìm kiếm công cụ ̣, tài liệu học
- Phân tí́ch, thiết kế
Chương 2 Phân tích thiết kế hệ thống Nội dung chương bao gồ̀m: phân tí́ch
các chức năng của mô hình, thiết kế hệ thống cho mô hình
Trang 12Chương 3 Triển khai xây dựng Chương đi sâu vào nghiên cứu các công nghệ,
các thiết bị áp dụ ̣ng vào mô hình
Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài.
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1.1 Tổng quan ngôn ngữ , phần mềm liên quan.
1.1.1 Ngôn ngữ thực hiện: C, C++
Ngôn ngữ lập trì̀nh C là gì̀ ?
Ngôn ngữ C là một ngôn ngữ đã có mặt từ̀ rất lâu Và nó có thể là ngôn ngữ già
nhất trong các dòng ngôn ngữ thông dụ ̣ng nhất hiện nay Lập trì̀nh C được coi là cơ
sở̉ cho các ngôn ngữ lập trình khác Đó là lý do tại sao nó được biết đến như là ngônngữ mẹ C là ngôn ngữ mệnh lệnh được ra đời từ̀ đầu thập niên 70 Ngôn ngữ C là mộtngôn ngữ cấu trúc và xếp vào loại ngôn ngữ bậc 3 (loại ngôn ngữ cao cấp hơn ngônngữ mã máy và thấp hơn ngôn ngữ hướng đối tượng – bậc 4) Cha đẻ của ngôn ngữ C
là Dennis Ritchie_một nhà khoa học máy tí́nh người Mỹ̃ nổ̉i tiếng Ban đầu ngôn ngữnày chỉ được dùng trong hệ điều hành UNIX Nhưng với những ứng dụ ̣ng mà nó manglại, đến nay ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác Và trở̉ thành mộtnhững ngôn ngữ phổ̉ dụ ̣ng nhất
Ngôn ngữ C không chỉ được ưa chuộng trong việc viết các ứng dụ ̣ng Mà còn là ngônngữ rất hiệu quả trong việc viết các phần mềm hệ thống Ngoài ra, C cũng thườngđược dùng làm phương tiện giảng dạy trong khoa học máy tí́nh
Hệ thống nhúng
Các tí́nh năng của C bao như là truy cập trực tiếp vào API phần cứng của máy,
sự hiện diện của trình biên dịch C Ngoài ra lập trì̀nh C còn sử dụ ̣ng tài nguyên xác
Trang 14định và phân bổ̉ bộ nhớ động Đã làm cho ngôn ngữ C trở̉ thành lựa chọn tối ưu cho các ứng dụ ̣ng và trình điều khiển của các hệ thống nhúng.
Ngôn ngữ lập trì̀nh C++ là gì̀?
Ngôn ngữ lập trình C++ là một ngôn ngữ lập trình hướng đối tượng (OOP– Object-oriented programming) được phát triển bở̉i Bjarne Stroustrup C++ là ngônngữ lập trình được phát triển trên nên tảng của ngôn ngữ lập trình C Do đó, C++ cósong song cả 2 phong cách (style) lập trình hướng cấu trúc giống C và có thêm phongcách hướng đối tượng Trong nhiều trường hợp, C++ sử dụ ̣ng kết hợp cả 2 style trên
Do đó, nó được xem là một ngôn ngữ “lai tạo”.
Ngôn ngữ lập trình C++ (C plus plus) có đuôi mở̉ rộng là cpp.
Định nghĩa lập trì̀nh nhúng là gì̀?
Lập trình nhúng là một thuật ngữ lập trình dùng để chỉ đến một hệ thống có khảnăng tự trị và nó thường được nhúng vào trong một môi trường hoặc một hệ thống mẹbất kỳ nào đó.Đây là các hệ thống tí́ch hợp cả một phần mềm và phần cứng
Mụ ̣c đí́ch chủ yếu lập trình nhúng chí́nh là phụ ̣c vụ ̣ các bài toán chuyên dụ ̣ngtrong các lĩ̃nh vực công nghiệp, tự động hóa điều khiển và truyền tin Thôngthường, hệ thống nhúng sẽ̃ được thiết kế để thực hiện các chức năng chuyên tráchhoặc riêng biệt nào đó
Trang 161.1.2 Phần mềm Proteus
Proteus là phần mềm dùng để vẽ̃ sơ đồ̀ nguyên lý, thiết kế mạch in (PCB) và
mô phỏng các mạch điện tử Phần mềm Proteus 8.9 được phát triển bở̉i Labcenter Electronics Hiện nay, phần mềm này được sử dụ ̣ng rộng rãi trong việc mô phỏng mạch tại các công ty hay hoạt động giảng dạy tại trường cao đẳng và đại học
Proteus cho phé́p vẽ̃ và mô phỏng hoạt động của các mạch điện tử, phần mềm
có khả năng mô phỏng:
Hầu các mạch điện tử từ̀ đơn giản đến phức tạp có sử dụ ̣ng các linh kiện điện
tử thông dụ ̣ng như: điện trở̉, tụ ̣ điện, cuộn dây, diode, transistor, relay, op-amp…Các mạch tương tự (Analog) và mạch số (Digital)
Đặc biệt rất mạch cho việc mô phỏng các họ vi điều khiển chẳng hạn như 8051, Arduino, PIC, AVR, ARM… cũng như các giao tiếp I2C, SPI, CAN, USB, Ethernet
Proteus bao gồ̀m 2 chương trình: ISIS cho phé́p mô phỏng mạch điện tử và ARES dùng để thiết kế mạch in PCB
Những tính năng mới nổi bật có́ trong Proteus Professional 8.9
Trang 17 Library Web Search:
Đây là chức năng rất hay mà nhà sản xuất mới tí́ch hợp trên 8.9 Cho phé́p người tìm kiếm thư viện mở̉ của 1 linh kiện trên mạng nữa chứ không chỉ thư viện trênmáy Để sử dụ ̣ng được tí́nh năng này, bạn cần lập một tài khoản thì mới import linh kiện về máy của mình nhé́
Ở tí́nh năng này cho phé́p người dùng đi dây tự động khi thiết kế mạch in rất nhanh Chúng ta chỉ cần định hướng đi của dây, chương trình sẽ̃ tự động bắt dây
Hướng dẫn cài đặt Proteus Professional 8.9
Bước 1: Gỡ bỏ chương trình Proteus đã cài đặt (nếu có)
Hình: 1.1 Cách gỡ bỏ Proteus
Bước 2: Gỡ bỏ toàn bộ chương trình Proteus đã cài đặt (nếu có).
Đầu tiên bạn nhập Regedit vào khung Search trên Start Menu để mở̉ trình Registry.Trên cửa sổ̉ trình Registry Editor bạn điều hướng theo đường dẫn dưới đây:
Computer\HKEY_CURRENT_USER\SOFTWARE\Labcenter Electronics
Sau đó bạn kí́ch chuột phải vào dòng chữ Labcenter Electronics rồ̀i chọn Delete.
Trang 18Hình:1.2 Gỡ bỏ toàn bộ+ Proteus
Bước 3: Download file cài đặt
Các bạn download các file cài đặt phần mềm tại đây:
Protues Professional 8.9 full
Bước 4: Tiến hành cài đặt phần mềm Proteus 8.9
Sau khi download các file cài đặt về máy tí́nh của mình, các bạn giải né́n các file này vào một thư mụ ̣c như hình bên dưới, sau đó các bạn chạy file Proteus 8.9 SP2Pro.exe để tiến hành cài đặt
Hình: 1.3 Cài đặ+t Proteus
Trang 19Một của sổ̉ xuất hiện như hình bên dưới, bạn chọn thư mụ ̣c mặc định đểphần mềm được cài đặt vào máy hoặc thay đổ̉i sang thư mụ ̣c khác nếu muốn, sau đó
nhấp chọn Next.
Hình: 1.4 Cách cài Proteus
Các bạn ngồ̀i chờ một lát để phần mềm Proteus được cài đặt vào máy
Trang 20Hình: 1.5 Quá trình cài Proteus
Sau khi quá trình cài đặt hoàn tất, một cửa sổ̉ xuất hiện Bạn nhấp chọn Finish.
Hình: 1.6 Hoàn thành cài đặ+t Proteus
Trang 21Bước 5: Thiết lập cho chương trình chạy với quyền admin.
Bạn đặt con trở̉ trên biểu tượng của phần mềm Proteus ở̉ màn hình desktop sau
đó click phải chuột, rồ̀i chọn Properties.
Hình: 1.7 Thiết lậ+p Proteus
Bạn chọn thẻ Shortcut, rồ̀i chọn Advanced.
Trang 22Hình: 1.8 Thiết lậ+p Proteus 2
Bạn chọn Run as administrator
Trang 23Hình: 1.9 Thiết lậ+p Proteus 3
Cuối cùng, nhấp chọn OK
Trang 24Hình: 1.10 Thiết lậ+p Proteus 4
Lưu ý: Phần mềm Proteus 8.9 SP2 này đã được crack rồ̀i nên các bạn chỉ cần làm đúng theo các bước hướng dẫn ở̉ trên thì có thể sử dụ ̣ng được phần mềm này và không
bị lỗi tự động tắt trong quá trình sử dụ ̣ng
1.2 Tổng quan thuật toán áp dụng vào đề tài.
1.2.1 Công nghê sinh trắc va nhân dang bằng khuôn măt.
a) Công nghê sinh trắc va bao mât
Đươc biêt đên như môt công nghê ap dụng cac đăc tính sinh hoc, vât lí hay cac cac đăc điêm đăc trưng , riêng biêt cua cac ca thê, ca nhân như dang đi, giong noi, vân
Trang 25tay, khuôn măt,… đê nhân biêt, nhân dang Trong tiêng anh Biometric co nghĩa la sinhtrăc hoc Công nghê sinh trăc đươc đung trong viêc xac nhân thông tin vê môt ca nhânhay than nhân môt cach hiêu qua va chính xac.
Hình: 1.11 Sơ đồ khối logic chính của hệ thống sinh trắc học
b) Công nghê nhân dang khuôn măt
Nhân dang khuôn măt là một ứng dụ ̣ng máy tí́nhtự động xác định hoặc nhận dạngmột người nào đó từ̀ một bức hình ảnh kỹ̃ thuật sốhoặc một khung hình video từ̀ mộtnguồ̀n video Một trong những cách để thực hiện điều này là so sánh các đặc điểm
khuôn mặt chọn trước từ̀ hình ảnh và một cơ sở̉ dữ liệu về khuôn mặt
Hệ thống này thường được sử dụ ̣ng trong các hệ thống an ninhvà có thể được so sánh với các dạng sinh trắc họckhác như các hệ thống nhận dạng vân tayhay tròng mắt
Nhân dang truyên thông
Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt bằng cách trí́ch xuất các ranh giới, hoặc đặc điểm, từ̀ một hình ảnh khuôn mặt của đối tượng Ví́ dụ ̣, một thuật toán có thể phân tí́ch các vị trí́ tương đối, kí́ch thước, và/hoặc hình dạng của mắt, mũi, gò má, và cằm Những tí́nh năng này sau đó được sử dụ ̣ng để tìm kiếm các hình ảnh khác với các tí́nh năng phù hợp Các thuật toán bình thường hóa một bộ sưu tập các hình ảnh khuôn mặt và sau đó né́n dữ liệu khuôn mặt, chỉ lưu
dữ liệu hình ảnh nào là hữu í́ch cho việc nhận dạng khuôn mặt Một hình ảnh mẫu sau
đó được so sánh với các dữ liệu khuôn mặt Một trong những hệ thống thành công sớm nhất dựa trên các kỹ̃ thuật phù hợp với mẫu áp dụ ̣ng cho một tập hợp các đặc điểm khuôn mặt nổ̉i bật, cung cấp một dạng đại diện của khuôn mặt được né́n
Các thuật toán nhận dạng có thể được chia thành hai hướng chí́nh, là hình học, đó là nhìn vào tí́nh năng phân biệt, hoặc trắc quang(đo sáng), là sử dụ ̣ng phương pháp