BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH KHÓA LUẬN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG ĐỀ TÀI THI.
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Trần Thế Vinh MSSV: 18161234
18161304
Tp Hồ Chí Minh – 08/2022
Trang 2Tp HCM, ngày 26 tháng 06 năm 2022
NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM
SÁT BÃI ĐỖ XE THÔNG MINH
II NHIỆM VỤ
1 Các số liệu ban đầu:
Giáo trình “Lập trình Android trong ứng dụng điều khiển – Nguyễn Văn
Hiệp” – Đại Học Sư Phạm Kỹ Thuật Tp.HCM Giáo trình “Xử lý ảnh – Nguyễn
Thanh Hải” – Đại Học Sư Phạm Kỹ Thuật Tp.HCM Giáo trình “Đo lường cảm
biến – Lê Chí Kiên” – Đại Học Sư Phạm Kỹ Thuật Tp.HCM.
2 Nội dung thực hiện:
Tìm hiểu cách lập trình cho ESP32/Arduino Uno R3, cách thiết kế phần mềm điều
khiển bằng C# trên Visual Studio và cách thiết kế mạch in trên EasyEDA
Thiết kế ứng dụng giám sát và điều khiển cho Android/Ios bằng phần mềm
Thunkable
Xây dựng mô hình hoàn chỉnh
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 26/06/2022
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: GV Hà A Thồi
Trang 3Tp HCM, ngày 26 tháng 06 năm 2022
LỊCH TRÌNH THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP
Họ tên sinh viên 1: Nguyễn Đình Khang
Lớp:……….18161DT3 MSSV:….18161234
Họ tên sinh viên 2: Trần Thế Vinh Lớp:……….18161DT2 MSSV:….18161304
Tên đề tài: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT
BÃI ĐỖ XE THÔNG MINH
Tuần/ngày Nội dung Xác nhận GVHD
Tuần 1
Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án.
Viết đề cương hướng dẫn
Tuần 2 Tìm hiểu ngôn ngữ lập trình C#
Tuần 3 Cài đặt trình lập trình Visual Studio
Thực hiện tìm hiểu chương trình hệ thống
Tuần 4 Tìm hiểu và kết nối đối với các thiết bị ngoại vi
Tuần 5 Tiếng hành lập trình nhận diện biển số
Tuần 6 Phân tích hình ảnh nhận diện biển số và tách lấy dữ liệu biển số từ hình ảnh
Tuần 7- 8 Tiến hành thiết kế thi công mạch in
Tuần 9
Viết chương trình cho Adruino và Esp32 Viết ứng dụng điện thoại điều khiển giám sát hệ thống
Tuần 10-11-12 Tiến hành thực hiện kiểm tra và chạy phần cứng của
hệ thống
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
Trang 4Chỉnh sửa ứng dụng điều khiển trên điện thoại cho hoàn thiện
Tuần 13 Thiết kế mô hình toàn bộ hệ thống
Tuần 14 Thực hiện lắp ráp mô hình
Tuần 15 Chỉnh sửa cho hệ thống hoạt động ổn định về phần cứng và phần mềm
Tuần 16 Viết báo cáo luận văn
GV HƯỚNG DẪN(Ký và ghi rõ họ và tên)
Trang 5LỜI CAM ĐOAN
Đề tài này là do chúng tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép
từ tài liệu hay công trình đã có trước đó
Nhóm thực hiện đề tài
Nguyễn Đình Khang
Trang 6LỜI CẢM ƠN
Để hoàn thành đề tài “Thiết kế và thi công hệ thống điều khiển và giám sát bãi đỗ xethông minh” em xin chân thành cảm ơn sự hướng dẫn tận tình của Thầy Hà A Thồi –Giảng viên khoa Điện – Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật TpHCM Cùng với
sự giúp đỡ tận tình của các thầy cô bộ môn và các bạn trong lớp đã giúp đỡ em hoànthành tốt khóa luận này
Trong quá trình tìm hiểu, nghiên cứu về đề tài và thi công mạch không tránh khỏinhững sai sót Chúng em mong thầy cô góp ý để đề tài này của chúng em được hoàn thiệnhơn và có thể ứng dụng được trong thực tế
Nhóm thực hiện đề tài
Nguyễn Đình Khang
Trang 7MỤC LỤC
Trang bìa i
Nhiệm vụ khóa luận ii
Lịch trình iii
Cam đoan v
Lời cảm ơn vi
Mục lục vii
Mục lục hình vẽ ix
Liệt kê bảng ….……… …xii
Danh sách viết tắt ……… ………xii
Tóm tắt ……… … … xiv
Chương 1 TỔNG QUAN 1
1.1 Đặt vấn đề: 1
1.2 Nghiên cứu tình hình trong nước và nước ngoài: 2
1.2.1 Tình hình trong nước: 2
1.2.2 Tình hình nước ngoài: 2
1.2.3 Tính cấp thiết của đề tài: 3
1.2.4 Mục đích của đề tài: 3
1.2.5 Phương hướng nghiên cứu thực hiện: 3
1.2.6 Đối tượng nghiên cứu: 4
1.2.7 Giới hạn đề tài: 4
1.2.8 Bố cục luận văn: 4
Chương 2 CƠ SỞ LÝ THUYẾT 5
2.1 Tổng quan về chuẩn truyền dữ liệu: 5
2.1.1 Tổng quan về UART: 5
2.1.1.1 Tổng quan về giao thức: 5
2.1.1.2 Cách thức truyền của giao tiếp UART: 6
2.1.1.3 Các bước truyền UART: 8
2.1.1.4 Ưu và nhược điểm của giao tiếp UART 10
Trang 82.1.1.5 Các ứng dụng của giao tiếp UART 10
2.1.2 Tổng quan về chuẩn giao tiếp SPI 10
2.1.2.1 Tổng quan về giao thức: 10
2.1.2.2 Cách thức truyền của giao tiếp SPI: 11
2.1.2.3 Các bước truyền dữ liệu SPI: 12
2.1.2.4 Ưu và nhược điểm của giao tiếp SPI 12
2.1.2.5 Các ứng dụng của giao tiếp SPI 13
2.1.3 Tổng quan về chuẩn giao tiếp I2C: 13
2.1.3.1 Tổng quan về giao thức: 13
2.1.3.2 Cách thức truyền của I2C: 14
2.1.3.3 Các bước truyền dữ liệu I2C: 15
2.1.3.4 Ưu và nhược điểm của giao tiếp I2C: 17
2.1.3.5 Các ứng dụng của giao tiếp I2C 17
2.2 Tổng quan về công nghệ RFID: 17
2.2.1 Nguyên lý hoạt động của công nghệ RFID: 18
2.2.2 Ứng dụng công nghệ RFID: 18
2.3 Tổng quan về thư viện xử lý hình ảnh: 18
2.3.1 Open CV: 18
2.3.2 EmguCV: 19
2.4 Tổng quan về cơ sở dữ liệu (Database): 19
2.4.1 SQL Server: 19
2.4.2 Firebase: 20
2.5 Tổng quan về thuật toán xử lý nhận diện ảnh 21
2.5.1 Thuật toán ORC: 21
2.5.2 Thuật toán Canny: 22
2.5.3 Quy trình xử lý nhận diện ảnh: 23
2.6 Tổng quan về ứng dụng lập trình: 26
2.6.1 Visual Studio 26
2.6.2 Arduino IDE 27
2.6.3 Thunkable 30
2.6.4 Kết nối Thunkable với Firebase 31
Chương 3 TÍNH TOÁN THIẾT KẾ 37
3.1 Yêu cầu và phương án thiết kế: 37
3.1.1 Yêu cầu của hệ thống: 37
3.1.2 Phương án thiết kế: 37
3.2 Sơ đồ khối: 38
Trang 93.3 Thiết kế phần cứng hệ thống: 39
3.3.1 Khối cảm biến tiệm cận: 39
3.3.2 Khối cảm biến nhiệt độ, cảm biến khói và cảm biến ánh sáng 41
3.3.3 Khối nút nhấn điều khiển: 43
3.3.4 Khối động cơ Servo: 44
3.3.5 Khối hiển thị LCD: 45
3.3.6 Khối RFID: 47
3.3.7 Khối xử lý trung tâm: 49
3.3.8 Khối nguồn: 49
3.3.9 Sơ đồ nguyên lý toàn mạch: 51
3.3.10 Giải thích sơ đồ nguyên lý toàn mạch: 52
Chương 4 THI CÔNG HỆ THỐNG 54
4.1 Phần cứng 54
4.1.1 Các công cụ sử dụng: 54
4.1.2 Mạch in đã thiết kế 54
4.1.3 Board mạch đã hoàn thiện 54
4.1.4 Thi công mô hình bãi giữ xe 57
4.2 Phần mềm 58
4.2.1 Phần mềm quản lý bãi giữ xe trên PC 58
4.2.2 App đặt chỗ: 61
Chương 5 KẾT QUẢ - NHẬN XÉT- ĐÁNH GIÁ 64
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
6.1 Kết luận: 72
6.2 Hướng phát triển: 72
6.3 Ứng dụng trong hiện thực tế: 73
TÀI LIỆU THAM KHẢO 74
PHỤ LỤC 75
MỤC LỤC HÌNH ẢNH Hình 1 Tổng quan hệ thống 1
Hình 2.1 Giao tiếp giữa 2 UART 5
Trang 10Hình 2.2 Cách thức truyền dữ liệu của giao tiếp UART 6
Hình 2.3 Gói dữ liệu 7
Hình 2.4 Bit bắt đầu 7
Hình 2.5 Khung dữ liệu 7
Hình 2.6 Bit chẵn lẻ 8
Hình 2.7 Truyền và nhận dữ liệu theo dạng song song từ bus 8
Hình 2.8 Truyền các bit vào khung dữ liệu 8
Hình 2.9 Gửi gói dữ liệu từ UART truyền đến UART nhận 9
Hình 2.10 Bỏ các bit khỏi khung dữ liệu 9
Hình 2.11 Chuyển dữ liệu đến bus dữ liệu ở đầu nhận 9
Hình 2.12 Tổng quan giao thức SPI 10
Hình 2.13 Trường hợp nhiều chấp hành và nhiều chân SS 11
Hình 2.14 Trường hợp nhiều chấp hành và 1 chân SS 12
Hình 2.15 Tổng quan về giao thức I2C 13
Hình 2.16 Cách thức truyền của I2C 14
Hình 2.17 Trường hợp một điều khiển và nhiều chấp hành 16
Hình 2.18 Trường hợp nhiều điều khiển và nhiều chấp hành 16
Hình 2.19 Tổng quan về công nghệ RFID 17
Hình 2.20 Nguyên lý hoạt của công nghệ RFID 18
Hình 2.21 Các thành phần của một SQL Server 19
Hình 2.22 Công nghệ OCR 21
Hình 2.23 Cách thức hoạt động của OCR 22
Hình 2.24 Ảnh chụp biển số xe sau khi trải qua quá trình tìm sườn và tạo biên 26
Hình 2.25 Mô hình dạng cây của đường biên 26
Hình 2.26 Ngôn ngữ C# 27
Hình 2.27 Phần mềm Arduino IDE 28
Hình 2.28 Bo mạch Arduino Uno R3 28
Hình 2.29 Thư viện của phần mềm Arduino IDE 29
Hình 2.30 Giao diện phần mềm Arduino IDE 29
Hình 2.31 Ứng dụng Thunkable 30
Hình 2.32 Đăng ký tài khoản Firebase 31
Hình 2.33 Chọn web app khi tạo project mới 32
Hình 2.34 API key của Firebase 32
Hình 2.35 Tạo database mới 33
Hình 2.36 Chế độ test 33
Hình 2.37 Database url của Firebase 34
Hình 2.38 Tạo project mới Thunkable 34
Hình 2.39 Enable đăng nhập bằng email ở Firebase 35
Hình 2.40 Module sign-in 35
Trang 11Hình 2.41 Khối Sign-up 35
Hình 2.42 Khối Sign-in 36
Hình 2.43 Khối Sign-out 36
Hình 2.44 Khối Reset-password 36
Hình 3.1 Sơ đồ khối 38
Hình 3.2 Sơ đồ cảm biến tiệm cận 40
Hình 3.3 Sơ đồ cảm biến ánh sáng 41
Hình 3.4 Sơ đồ cảm biến nhiệt độ và cảm biến khói 42
Hình 3.5 Sơ đồ kết nối nút nhấn 43
Hình 3.6 Sơ đồ kết nối servo với vi điều khiển 2 44
Hình 3.7 Sơ đồ kết nối I2C với LCD 46
Hình 3.8: Sơ đồ kết nối I2C với ESP_1 46
Hình 3.9 Sơ đồ kết nối I2C với ESP_2 47
Hình 3.10 Sơ đồ kết nối RFID với Arduino 48
Hình 3.11 Sơ đồ nguyên lý của mạch đọc thẻ RFID 51
Hình 3.12 Sơ đồ nguyên lý của ESP_1 52
Hình 3.13 Sơ đồ nguyên lý của ESP_2 52
Hình 4.1 Mạch in 1,2,3 theo thứ tự từ trái qua phải 54
Hình 4.2 Bo mạch hoàn thiện 1 54
Hình 4.3 Lưu đồ giải thuật quét thẻ RFID 55
Hình 4.4 Bo mạch hoàn thiện 2 55
Hình 4.5 Lưu đồ giải thuật của ESP_1 56
Hình 4.6 Bo mạch hoàn thiện 3 56
Hình 4.7 Lưu đồ giải thuật của ESP_2 57
Hình 4.8 Mô hình bãi giữ xe 58
Hình 4.9 Giao diện chính của phần mềm quản lý bãi giữ xe 59
Hình 4.10 Giao diện quản lý thẻ trong phần mềm 59
Hình 4.11 Giao diện của danh sách booking 60
Hình 4.12 Lưu đồ giải thuật của hệ thống 60
Hình 4.16 Trang chọn chỗ 61
Hình 4.17 Trang booking 61
Hình 4.18 Trang lưu dữ liệu 62
Hình 4.19 Trang đăng nhập 62
Hình 4.20 Trang đăng ký 63
Trang 12Hình 5.1 Trang chọn chỗ 64
Hình 5.2 Trang booking 65
Hình 5.3 Trang giao diện nhận biết người đặt chỗ đỗ ở PC 66
Hình 5.4 Giao diện cơ sở dữ liệu Firebase 67
Hình 5.5 Nhập mật khẩu admin 67
Hình 5.6 Trang điều khiển 68
Hình 5.7 Bật/tắt đèn ở bãi giữ xe 68
Hình 5.8 Giao diện Đăng nhập 69
Hình 5.9 Giao diện quản lý thẻ 69
Hình 5.10 Xử lý ảnh nhận diện biển số 70
MỤC LỤC BẢNG Bảng 2.1 Tổng quan về giao thức truyền dữ liệu UART 5
Bảng 2.2 Quy trình xử lý nhận diện hình ảnh 23
Bảng 2.3 Ưu và nhược điểm của Thunkable 31
Bảng 3.1 Sơ đồ kết nối I2C với ESP 46
Bảng 3.2 Sơ đồ kết nối RC522 với Arduino 47
Bảng 3.3 Dòng và áp quy định các thiết bị trong đồ án 49
DANH SÁCH VIẾT TẮT
có cấu trúc
Transmitter Bộ truyền nhận nốitiếp bất đồng bộ
Trang 13RFID Radio Frequecy Identification Nhận dạng qua tần số
vô tuyến
quang học
tính
Trang 14TÓM TẮT
Đồ án tốt nghiệp này trình bày một cách tiếp cận trong việc xây dựng hệ thống đỗ
xe tự động ứng dụng xác định và nhận dạng biển số với dữ liệu đầu vào là ảnh chụp từcamera Để giải quyết vấn đề này, nghiên cứu phải giải quyết những bài toán riêng rẽ là:xây dựng mô hình bãi đỗ xe tự động, công nghệ RFID, Arduino, thư viện xử lý ảnhEmguCV với việc xác định vị trí biển số xe, tách ký tự và nhận dạng các ký tự, tạo phầnmềm giao tiếp máy tính và điều khiển trong môi trường C# sử dụng phần mềm VisualStudio 2015 Qua quá trình làm đồ án, chúng em đã cải thiện và rèn luyện được rất nhiềukiến thức, kỹ năng về thiết kế mô hình, điện tử và lập trình
Trang 15Chương 1 TỔNG QUAN
1.1 Đặt vấn đề:
Nền công nghiệp 4.0 đang tác động rất mạnh mẽ đến đời sống của con người, cáccông nghiệp mới đang dần thay thế cho nền công nghệ cũ của thế giới như: AI, IoTs, trở thành chìa khóa quan trong mở ra cánh cửa phát triển mạnh mẽ, lớn mạnh của mọiquốc gia
Việt Nam là quốc gia đang phát triển với nền kinh tế thăng tiến nhanh, đời sống củamọi người được nâng cao, nhu cầu sử dụng phương tiện ngày càng nhiều, nên sản lượngsản xuất ô tô cung cấp cho thị trường được tăng cao đáp ứng cung cầu cho người tiêudùng.Cùng với sự phát triển ồ ạt của số lượng xe hàng năm thì bãi đỗ xe đang là vấn đềnan giải cần được giải quyết để đảm bảo sự thuận tiện cũng như chất lượng bãi đỗ
Hình 1 Tổng quan hệ thốngVấn đề đặt ra làm làm thế nào để ứng dụng tiến bộ khoa học kỹ thuật vào các bãigiữ xe cho tối ưu hiện đại và thông minh Các công nghệ mới liên tiếp ra đời như RFID,IoTs, các cơ sở dữ liệu như SQL server, Firebase,… đã và đang áp dụng vào các hệ thốnghiện đại và ứng dụng cho các bãi đỗ thông minh là một bước ngoặt thành công mới
Việc quản lý và giám sát theo cách thông thường làm một số bãi đỗ còn rộngnhưng không tận dụng triệt để mặt bằng Một số nơi có các bãi đỗ xe tư nhân với chi phíđắt đỏ khó có thể làm chỗ đỗ lâu dài với chi phí bỏ ra quá lớn nên tạo ra sự lấn chiếm lềđường không phép gây nên sự ách tắt giao thông và tăng nguy cơ xảy ra tai nạn
Trang 16Chúng ta có thể nhìn thấy nhiều vấn đề trong các bãi đỗ xe thông thường như végiấy sử dụng một lần, không tái chế, dễ bị hư hỏng khi bỏ trong túi quần, bị viết nhầmbiển số hay bị ướt làm nhòe hay rách ko nhận diện được chữ viết trên vé giấy.
Khó nhận biết được bãi đỗ còn chỗ để xe nữa hay không gây tốn thời gian và côngsức vào ra xe Ở hệ thống bãi giữ xe sử dụng công nghệ hiện đại ta giải quyết được cácvấn đề nêu trên một các triệt để, sử dụng thẻ từ chống thấm nước mưa, tiện lợi cho kháchhàng và tiếp kiệm cho chủ đầu tư khi có thể tái chế nhiều lần, ít hư hại an toàn và bảo mậtthông tin thẻ hạn chế các hành vi giả mạo để trục lợi cho bản thân Việc đi tìm bãi đỗ xengày càn cảm thấy khó khăn hơn. Nhiều phương tiện phải đi nhiều lần để tìm kiếm cácđiểm đỗ xe làm lãng phí nhiên liệu, ùn tắt giao thông và tác động tiêu cực đến môi trường
Bãi đỗ xe thông minh đem các công nghệ mới với sự điều khiển của con người,
đem lại sự hiệu quả cao nhưng ít tốn sức người Sử dụng công nghệ hiện đại hiện nay nhưcảm biến, camera để xác định vị trí trống trong bãi đỗ hiển thị lên màng hình để tiện việcxác định vị trí trong một bãi đỗ xe
1.2 Nghiên cứu tình hình trong nước và nước ngoài:
1.2.2 Tình hình nước ngoài:
Trên thế giới hiện nay nhiều thành phố lớn đang đối mặt với sự tắc nghẽn giao thông thời gian dài, ùn tắc giao thông do tìm kiếm bãi đỗ lên đến 30% Mức độ ô nhiễm không khí tăng, mất thời gian tìm kiếm đang đem lại sự phiền hà cho người dân tại các thành phố đó
Ở các nước phát triển các công nghệ mới như RFID và IoT đã và đang được ứngdụng rộng rãi trong hầu hết các lĩnh vực Việc ứng dụng các công nghệ mới đã góp phầnphát triển kinh tế và bảo vệ môi trường
Trang 17Nạn kẹt xe hay thiếu chỗ và vấn đề về bảo mật, an ninh, sự không hài lòng về chấtlượng quản lý ở các bãi giữ xe đã không còn nữa vì các bãi giữ xe truyền thống đã dầnbiến mất.
1.2.3.Tính cấp thiết của đề tài:
Như vấn đề đã được đặt ra thì nhu cầu sử dụng bãi đỗ xe thông minh tích hợp IoTs
ở Việt Nam ta ngày càng cần thiết, vì vậy nhiều nhà sản xuất thiết bị và các ứng dụng
về bãi đỗ thông minh đã được thực hiện và đưa vào sử dụng ngày càng nhiều và đạtđược hiệu quả nhất định
Bãi đỗ thông minh sẽ giúp hạn chế và khắc phục nhiều vấn đề mà ở bãi đỗ thôngthường mắc phải khắc phục các vấn đề phát sinh trong việc sử dụng nhanh chóng và
dễ dàng
So với các đề tài bãi giữ xe nhóm đã tham khảo thì đề tài nhóm đang nghiên cứuđược phát triển hơn bởi công nghệ nhận dạng biển số và thiết kế web đặt chỗ giúp chocông việc được thuận tiện và ngày càng đa dạng, tiết kiệm công sức và thời gian chocon người
1.2.4 Mục đích của đề tài:
Bãi đỗ xe thông minh là hệ thống dùng công nghệ mới giúp nhà đầu tư, doanhnghiệp hay các công ty có lượng nhân viên lớn tiết kiệm phần nào chi phí khi đầu tư Sửdụng quản lý đám mây để lưu trữ thông tin thuận tiện cho người sữ dụng và cả ngườiquản lý hệ thống
Thông qua đó nhóm muốn thực hiện thiết kế thi công bãi đỗ xe thông minh giảiquyết các vấn đề đã nêu và giám sát bằng phần mềm quản lý hệ thống trên PC và trên ứngdụng điện thoại kết hợp đặt chỗ cho một số xe cần thiết thông qua ứng dụng
1.2.5.Phương hướng nghiên cứu thực hiện:
- Ứng dụng xử lý ảnh để xác định và nhận diện biển số xe
- Hệ thống quẹt thẻ bằng thẻ RFID để lưu biển số và thời gian xe ra vào
- Hiển thị tình trạng bãi đỗ trên màng hình biết được tình trạng bãi giữ xe có cònsức chứa hay không
Trang 18- Quản lý và giám sát bằng ứng dụng trên PC và ứng dụng trên Smart phone, tíchhợp tính năng đặt chỗ trước trên ứng dụng điện thoại để tiện cho người sử dụng.
1.2.6 Đối tượng nghiên cứu:
- Thực hiện trên laptop với ứng dụng C# ứng dụng công nghệ xử lý ảnh vàRFID
- Sử dụng ngôn ngữ lập trình C/C#
- Dữ liệu được lưu và truy xuất trên 2 cơ sở dữ liệu là Firebase và SQL Server
- Lập trình ứng dụng trên điện thoại bằng Thunkable
1.2.7 Giới hạn đề tài:
- Ứng dụng điện thoại chạy trên hệ điều hành Android
- Sử dụng cơ sở dữ liệu SQL Sever và Firebase
- Nội dung hiển thị lên LCD bao gồm ký tự số và chữ không dấu các dữ liệu…
- Ứng dụng hệ thống chạy trên phần mềm Visual Studio 2015
- Hệ thống điều khiển sử dụng ESP32 và Arduino Uno R3
1.2.8 Bố cục luận văn:
Chương 1: TỔNG QUAN
Giới thiệu sơ lược về tình hình nghiên cứu hiện nay cũng như tính cấp thiết của
đề tài
Chương 2: CƠ SỞ LÝ THUYẾT
Nêu các lý thuyết cần thiết để sử dụng trong đề tài
Chương 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Trình bày sơ đồ hệ thống và giải thích hoạt động của hệ thống
Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp vớiyêu cầu của đề tài
Chương 4: KẾT QUẢ THI CÔNG MẠCH VÀ ỨNG DỤNG ĐẶT CHỖ
Tính toán đưa ra giải thuật, thuật toán phần mềm
Trình bày kết quả đã thực hiện về phần cứng và phần mềm
Chương 5: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG
Đưa ra các kết quả thực nghiệm và đánh giá, nhận xét hệ thống
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Nêu các ưu điểm và các điểm cần cải thiện của đề tài, hướng khắc phục vàhướng phát triển trong tương lai
Trang 19Chương 2 CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về chuẩn truyền dữ liệu:
2.1.1 Tổng quan về UART:
2.1.1.1 Tổng quan về giao thức:
Trong các hệ thống nhúng, vi điều khiển và máy tính ngày nay sử dụng UARTnhư một dạng giao thức để giao tiếp phần cứng giữa hai thiết bị Sự khác biệt giữagiao thức UART và các giao thức khác là nó chỉ sử dụng hai đường truyền cho bêntruyền và bên nhận
Hình 2.1 Giao tiếp giữa 2 UARTHai đường dây mà thiết bị UART sử dụng để gửi dữ liệu là Tx và Rx
Vì UART gửi dữ liệu không đồng bộ, không có tín hiệu đồng hồ để đồng bộ hóađầu ra bit từ UART truyền với việc lấy mẫu bit bởi UART nhận Và thay vì tínhiệu đồng hồ, UART thêm một bit bắt đầu và một bit kết thúc vào gói dữ liệu Sau
đó, các bit này xác định điểm bắt đầu và điểm dừng của gói dữ liệu, cho phépUART biết khi nào bắt đầu đọc các bit
Khi UART nhận phát hiện bit bắt đầu, nó sẽ đọc bit ở một tần số cụ thể (tốc độtruyền) Đây là thước đo tốc độ dữ liệu và được hiểu là số bit được truyền trongmột giây Cả hai UART phải hoạt động ở cùng tốc độ truyền và được cấu hình đểgửi và nhận các gói dữ liệu giống nhau
Bảng 2.1 Tổng quan về giao thức truyền dữ liệu UART
Trang 20Tổng đường dây 2
Tốc độ truyền
9600, 19200, 38400, 57600, 115200…
2.1.1.2 Cách thức truyền của giao tiếp UART:
UART gửi dữ liệu nhận được từ bus dữ liệu, bus dữ liệu này sẽ gửi dữ liệuđến UART bởi một thiết bị khác như vi điều khiển hoặc bộ nhớ Dữ liệu đượctruyền song song từ bus dữ liệu đến UART UART gửi và nhận dữ liệu songsong với bus, sau đó thêm bit bắt đầu, bit dừng và bit chẵn lẻ để tạo gói dữ liệu.Các gói dữ liệu được gửi nối tiếp từng bit trên chân Tx Sau đó UART nhận sẽđọc gói dữ liệu từng bit trên chân Rx và UART nhận tiếp tục dịch dữ liệu songsong, loại bỏ các bit bắt đầu, chẵn lẻ và dừng UART nhận cuối cùng sẽ chuyểntiếp gói dữ liệu song song với bus dữ liệu nhận
Trang 21Hình 2.2 Cách thức truyền dữ liệu của giao tiếp UART
Dữ liệu truyền qua UART được tập hợp thành từng gói Mỗi gói chứa 1 bit bắtđầu, 5 đến 9 bit dữ liệu, 1 bit chẵn lẻ và 1 hoặc 2 bit dừng
Hình 2.3 Gói dữ liệu
- Bit bắt đầu
Đường truyền UART được giữ ở mức cao khi không có dữ liệu nào được gửi đi.UART truyền kéo đường truyền từ cao xuống thấp trong một chu kỳ đồng hồ đểbắt đầu truyền dữ liệu Khi UART nhận phát hiện quá trình chuyển đổi từ caoxuống thấp, nó bắt đầu đọc các bit của khung dữ liệu theo tần số của tốc độtruyền
Trang 22là 0 và ngược lại Một khi bit chẵn lẻ trùng khớp với dữ liệu thì quá trình truyềnkhông có lỗi, nhưng nếu trường hợp bit chẵn lẻ là 1 và tổng là chẵn, hay bit chẵn
lẻ là 0 và tổng lẻ, thì UART biết được các bit ở trong khung dữ liệu đã bị thayđổi
Hình 2.6 Bit chẵn lẻ
2.1.1.3 Các bước truyền UART:
- UART truyền và nhận dữ liệu theo dạng song song từ bus dữ liệu.
Trang 23Hình 2.7 Truyền và nhận dữ liệu theo dạng song song từ bus
- UART sẽ truyền thêm 3 bit: dừng, bắt đầu và chẳn lẽ vào khung dữ liệu.
Hình 2.8 Truyền các bit vào khung dữ liệu
- Toàn bộ gói dữ liệu sẽ được gửi theo dạng nối tiếp từ UART truyền đếnUART nhận Sau đó, UART nhận sẽ bắt đầu lấy mẫu dữ liệu ở tốc độ truyềnđược định cấu hình từ trước
Hình 2.9 Gửi gói dữ liệu từ UART truyền đến UART nhận
- UART nhận loại bỏ 3 bit: dừng, bắt đầu và chẵn lẻ ra khỏi khung dữ liệu
Trang 24Hình 2.10 Bỏ các bit khỏi khung dữ liệu
- UART nhận sẽ chuyển đổi lại dữ liệu từ nối tiếp sang song song trước khichuyển nó sang bus dữ liệu nhận
Hình 2.11 Chuyển dữ liệu đến bus dữ liệu ở đầu nhận
2.1.1.4 Ưu và nhược điểm của giao tiếp UART
- Ưu điểm
Sử dụng hai đường dây để truyền nhận dữ liệu
Có 1 bit chẵn lẻ kiểm tra khi truyền dữ liệu có lỗi hay không
Cách thức truyền dữ liệu đơn giản
- Nhược điểm
Kích thước của khung dữ liệu bị giới hạn ở 9 bit
2.1.1.5 Các ứng dụng của giao tiếp UART
Giao tiếp UART thường được sử dụng trên các thiết bị yêu cầu độ chính xác Nócũng có thể được sử dụng với các thiết bị truyền thông khác nhau như thiết bị GPS vàthiết bị Bluetooth
Trang 252.1.2 Tổng quan về chuẩn giao tiếp SPI
2.1.2.1 Tổng quan về giao thức:
Giao thức SPI là một giao thức truyền thông phổ biến được sử dụng trong nhiềuloại thiết bị như mô-đun đầu đọc thẻ RFID và bộ thu phát không dây Tất cả đều sửdụng SPI để giao tiếp với vi điều khiển Điểm đặc biệt của SPI là nó có thể gửi dữliệu không bị gián đoạn Gửi hoặc nhận bit trong một luồng liên tục
Các thiết bị truyền thông SPI có mối quan hệ điều khiển - chấp hành Bộ phận điềukhiển là thiết bị điều khiển (thường là VĐK) và bộ phận chấp hành (thường là cảmbiến hoặc màn hình) nhận lệnh từ bộ điều khiển Cấu hình đơn giản nhất của SPI làmột hệ thống chỉ bao gồm một bộ phận chấp hành và một bộ phận điều khiển, nhưngmột bộ phận điều khiển có thể điều khiển nhiều bộ phận chấp hành
Hình 2.12 Tổng quan giao thức SPI
MOSI - đường truyền cho điều khiển gửi dữ liệu đến chấp hành.
MISO - đường cho chấp hành gửi dữ liệu đến điều khiển.
SCLK - đường cho tín hiệu đồng hồ.
SS / CS - đường cho điều khiển chọn chấp hành nào để gửi tín hiệu.
2.1.2.2 Cách thức truyền của giao tiếp SPI:
- Xung đồng hồ:
Tín hiệu đồng hồ đồng bộ hóa đầu ra của các bit dữ liệu từ bộ phận điều khiển
để lấy mẫu các bit của bộ phận chấp hành Vì một bit dữ liệu được truyền trongmột chu kỳ đồng hồ nên tốc độ truyền được xác định bởi tần số của tín hiệuđồng hồ Giao tiếp SPI được khởi tạo bởi bộ phận điều khiển để cấu hình và tạo
ra tín hiệu đồng hồ
- Slave Select:
Trang 26Bộ phận điều khiển có thể chọn bộ phận chấp hành để giao tiếp bằng cách đặtđường CS / SS của chấp hành thành mức thấp Nếu không được truyền, đường
SS sẽ được giữ ở mức cao Do đi dây song song với nhiều chấp hành, thiết bịđiều khiển có thể sử dụng nhiều chân CS / SS Nếu chỉ có một chân CS / SS, cóthể kết nối nhiều chấp hành với điều khiển trong một chuỗi
- Nhiều chấp hành:
SPI có thể được cấu hình để hoạt động với một điều khiển và một chấp hành, và
có thể được cấu hình với nhiều chấp hành được điều khiển bởi một bộ thiết bịđiều khiển duy nhất Có hai cách để kết nối nhiều chấp hành với một điều khiển.Nếu bộ phận điều khiển có nhiều chân SS, các bộ phận chấp hành có thể đượcnối dây song song như sau:
Hình 2.13 Trường hợp nhiều chấp hành và nhiều chân SS
Khi chỉ có một chân SS, các chấp hành có thể được nối chuỗi như sau:
Hình 2.14 Trường hợp nhiều chấp hành và 1 chân SS
Trang 27- MOSI và MISO
Bộ phận điều khiển lần lượt gửi dữ liệu từng bit một nối tiếp nhau đến bộ phậnchấp hành qua đường MOSI Chấp hành nhận dữ liệu được gửi từ điều khiểntrên chân MOSI Dữ liệu được gửi từ điều khiển đến chấp hành thường gửi bitquan trọng nhất trước
Chấp hành cũng có thể gửi dữ liệu trở lại điều khiển thông qua đường MISO nốitiếp Dữ liệu trả về từ chấp hành đến điều khiển thường gửi bit ít quan trọng nhấttrước
2.1.2.3 Các bước truyền dữ liệu SPI:
- Bộ phận điều khiển ra tín hiệu xung đồng hồ
- Bộ phận điều khiển chuyển chân SS/CS sang mức thấp, điều này sẽ kích hoạtchấp hành
- Bộ phận điều khiển gửi dữ liệu từng bit một tới chấp hành theo đườngMOSI Chấp hành sẽ đọc các bit khi nó nhận được
- Khi cần phản hồi, chấp hành trả dữ liệu từng bit một cho điều khiển dọc theođường MISO Bộ phận điều khiển đọc các bit khi nó nhận được
2.1.2.4 Ưu và nhược điểm của giao tiếp SPI
- Ưu điểm
Vì không có bit bắt đầu và bit dừng nên dữ liệu có thể được truyền liên tục
mà không bị gián đoạn
Tốc độ truyền dữ liệu gấp đôi I2C
Không có hệ thống định địa chỉ chấp hành phức tạp như I2C
Vì đường MISO và đường MOSI riêng biệt, dữ liệu có thể được gửi vànhận cùng một lúc
- Nhược điểm
Không thể xác nhận xem dữ liệu có được nhận thành công hay không (I2C
có điều này)
Chỉ cho phép một điều khiển
Không có phương pháp kiểm tra lỗi như bit chẵn lẻ của UART
Sử dụng 4 dây (I2C và UART chỉ sử dụng 2 dây)
2.1.2.5 Các ứng dụng của giao tiếp SPI
Giao thức SPI được tích hợp ở nhiều loại thiết bị như:
Các IC thời gian thực
Trang 282.1.3 Tổng quan về chuẩn giao tiếp I2C:
2.1.3.1 Tổng quan về giao thức:
Giao thức I2C kết hợp các ưu điểm của cả SPI và UART, có thể kết nốinhiều bộ phận chấp hành với một bộ phận điều khiển duy nhất (giống SPI) vàchúng ta có thể có nhiều bộ phận điều khiển sẽ điều khiển một hoặc nhiều bộphận chấp hành Điều này rất hữu ích khi cần nhiều bộ vi điều khiển để ghi
dữ liệu vào thẻ nhớ hoặc hiển thị văn bản trên màn hình LCD
Hình 2.15 Tổng quan về giao thức I2CCũng giống như UART và I2C chỉ sử dụng hai dây để truyền dữ liệu giữacác thiết bị:
SDA - đường truyền cho điều khiển và chấp hành để gửi và nhận dữ
liệu
SCL - đường mang tín hiệu đồng hồ.
Vì giao thức I2C là giao thức nối tiếp, dữ liệu được truyền từng bit dọc theomột đường SDA duy nhất Cũng giống như SPI và I2C đều là đồng bộ, đầu racủa bit được đồng bộ hóa với việc lấy mẫu bit bằng tín hiệu đồng hồ đượcchia sẻ giữa điều khiển và chấp hành Tín hiệu đồng hồ luôn được điều khiểnbởi thiết bị điều khiển
2.1.3.2 Cách thức truyền của I2C:
Ở I2C, dữ liệu được truyền theo dạng các tin nhắn và nó được chia thành cáckhung dữ liệu Mỗi tin nhắn sẽ có một khung địa chỉ chứa địa chỉ nhị phâncủa địa chỉ chấp hành và có một hoặc nhiều khung dữ liệu chứa dữ liệu đangđược truyền Có điều kiện bắt đầu và điều kiện dừng, các bit ghi, các bit đọc
và các bit ACK/NACK ở giữa mỗi khung dữ liệu:
Trang 29Hình 2.16 Cách thức truyền của I2C
Điều kiện bắt đầu: Đường SDA thay đổi từ mức cao xuống mức thấp trước
khi SCL chuyển từ mức cao xuống mức thấp
Điều kiện dừng: Sau khi đường SCL chuyển từ mức thấp lên mức cao,
đường SDA chuyển từ mức thấp lên mức cao
Khung địa chỉ: Một chuỗi 7-10 bit duy nhất trên mỗi chấp hành để xác định
chấp hành khi điều khiển muốn giao tiếp với nó
Bit Đọc /Ghi: Một bit duy nhất được sử dụng để chỉ định việc điều khiển gửi
dữ liệu đến chấp hành (mức thấp) hoặc yêu cầu dữ liệu từ chấp hành (mứccao)
- Bit ACK / NACK:
Mỗi khung trong tin nhắn được theo sau bởi 1 bit ACK / NACK Nếukhung dữ liệu hoặc địa chỉ được nhận thành công, bit ACK được trả về thiết
bị gửi
- Địa chỉ:
Vì giao thức I2C không có đường SS như SPI, chúng ta cần một cách khác
để thông báo cho chấp hành rằng dữ liệu đang được gửi đến một chấp hànhnày thay vì một chấp hành khác Nó được thực thi bằng cách định địa chỉ.Khung địa chỉ luôn là khung đầu tiên sau bit bắt đầu của một tin nhắn mới
Bộ phận điều khiển gửi địa chỉ của chấp hành mà nó muốn giao tiếp với tất
cả các chấp hành được kết nối Sau đó, mỗi chấp hành sẽ so sánh địa chỉđược gửi bởi điều khiển với địa chỉ của chính nó Nếu các địa chỉ khớp nhau,bit ACK mức thấp được gửi trở lại điều khiển Nếu các địa chỉ không khớp,chấp hành không làm gì và dòng SDA vẫn ở mức cao
- Bit đọc/ghi:
Khung địa chỉ có một bit duy nhất ở cuối tin nhắn cho chấp hành biết liệuđiều khiển ghi hay nhận dữ liệu Nếu điều khiển muốn gửi dữ liệu đến chấphành, bit đọc / ghi là mức thấp Nếu điều khiển yêu cầu dữ liệu từ chấphành, bit là mức cao
- Khung dữ liệu
Trang 30Khi điều khiển phát hiện ra bit ACK từ chấp hành, nó sẵn sàng gửi khung
dữ liệu đầu tiên
Khung dữ liệu luôn là 8 bit và bit quan trọng nhất được gửi trước Theo saumỗi khung dữ liệu là một bit NACK / ACK để xác định xem khung có đượcnhận thành công hay không Bit ACK phải được nhận bởi điều khiển hoặcchấp hành trước khi gửi khung tiếp theo Khi tất cả các khung dữ liệu đãđược gửi đi, điều khiển có thể gửi điều kiện dừng chạy để ngừng gửi dữliệu Điều kiện dừng là sự chuyển đổi điện áp từ thấp sang cao trên đườngSDA sau khi chuyển từ thấp sang cao trên đường SCL, và đường SCL vẫn ởmức cao
2.1.3.3 Các bước truyền dữ liệu I2C:
- Bộ phận điều khiển gửi điều kiện khởi động đến tất cả các chấp hành đượckết nối bằng cách chuyển dòng SDA từ cao sang thấp trước khi chuyển dòngSCL từ cao sang thấp
- Bộ phận điều khiển sẽ gửi mỗi địa chỉ chấp hành 7 - 10 bit của chấp hành mà
nó muốn giao tiếp, cùng với 1 bit đọc/ghi
- Mỗi chấp hành sẽ so sánh xem địa chỉ được gửi từ điều khiển với địa chỉ củachính nó Trường hợp trùng địa chỉ, chấp hành sẽ trả lại 1 bit ACK bằngcách kéo đường SDA xuống thấp cho một bit Ngược lại thì chấp hành sẽ rờikhỏi đường SDA mức cao
- Bộ phận điều khiển gửi và nhận các khung dữ liệu
- Sau mỗi khung dữ liệu được truyền, thiết bị nhận trả về một bit ACK kháccho thiết bị truyền để xác minh rằng khung đã được nhận thành công Nếumuốn dừng truyền dữ liệu, điều khiển sẽ gửi điều kiện dừng đến chấp hànhbằng cách chuyển đổi mức cao SCL trước khi chuyển mức cao SDA
Trường hợp một điều khiển và nhiều chấp hành:
Vì I2C sử dụng định địa chỉ nên nhiều chấp hành có thể được điều khiển từ 1điều khiển duy nhất và địa chỉ 7 bit sẽ có 128 địa chỉ duy nhất Việc sử dụngđịa chỉ 10 bit không phổ biến, nhưng sẽ cung cấp 1.024 địa chỉ duy nhất Khi
ta muốn kết nối nhiều chấp hành đến một điều khiển duy nhất thì cần nối dâynhư sau:
Trang 31Hình 2.17 Trường hợp một điều khiển và nhiều chấp hành
Trường hợp nhiều điều khiển và nhiều chấp hành:
Nhiều điều khiển có thể được kết nối với 1 chấp hành hoặc nhiều chấphành Mỗi điều khiển cần phát hiện xem đường SDA cao hay thấp trước khitruyền tin nhắn Trường hợp khi đường SDA thấp, một điều khiển khác cóquyền điều khiển bus và điều khiển đó phải đợi để gửi tin nhắn Ngược lạithì có thể truyền tin nhắn 1 cách an toàn Khi ta muốn kết nối nhiều điềukhiển với nhiều chấp hành thì cần nối dây như sau:
Hình 2.18 Trường hợp nhiều điều khiển và nhiều chấp hành
2.1.3.4 Ưu và nhược điểm của giao tiếp I2C:
Ưu điểm:
Chỉ sử dụng hai dây
Hỗ trợ nhiều điều khiển và nhiều chấp hành (Khác với UART)
Bit NACK/ACK sẽ xác nhận rằng mỗi khung dữ liệu được gửi thành cônghay không
Trang 32 Phần cứng ít phức tạp hơn UART.
Được sử dụng rộng rãi
Nhược điểm:
Tốc độ truyền chậm hơn so với giao thức SPI
Kích thước khung dữ liệu bị giới hạn ở 8 bit
Yêu cầu phần cứng cao cấp hơn SPI
2.1.3.5 Các ứng dụng của giao tiếp I2C
Được tích hợp trong 1 số module như: Module I2C cho LCD 16x2, các loạimodule thời gian thực DS3231,
2.2 Tổng quan về công nghệ RFID:
RFID là công nghệ nhận dạng vật thể bằng sóng vô tuyến, khi đó cả hai thiết bị đềuhoạt động trên cùng một tần số và tần số đó thường được sử dụng trong RFID là125Khz hoặc 900Mhz
Hình 2.19 Tổng quan về công nghệ RFID
Hệ thống RFID bao gồm hai thành phần chính: thẻ RFID và đầu đọc Thẻ RFIDvới chip silicon và ăng-ten không dây được sử dụng để gắn vào các đối tượng đượcquản lý như sản phẩm, hàng hóa, động vật và thậm chí cả con người Thẻ RFID cókích thước rất nhỏ, cỡ vài cm Bộ nhớ của chip có thể chứa 96 đến 512 bit dữ liệu.Đầu đọc cho phép giao tiếp với thẻ RFID qua sóng vô tuyến với khoảng cách trungbình từ 0,5 đến 30 mét, từ đó gửi dữ liệu về hệ thống máy tính trung tâm
2.2.1 Nguyên lý hoạt động của công nghệ RFID:
Đầu đọc RFID phát ra sóng điện từ ở một tần số cụ thể và bộ tạo mã RFID trongkhu vực hoạt động sẽ cảm nhận được các sóng điện từ này, thu nhận năng lượng vàgửi đến thiết bị RFID để lấy mã Sau đó, đầu đọc RFID sẽ nhận biết thẻ nào đanghoạt động trong vùng của sóng điện từ
Trang 33Hình 2.20 Nguyên lý hoạt của công nghệ RFID
2.2.2 Ứng dụng công nghệ RFID:
Ứng dụng tiêu biểu là chống trộm trong các cửa hàng, siêu thị thời trang Các chipRFID sẽ được gắn mã hàng hóa Khi thiết bị RFID đọc và ăng ten được gắn bênngoài cửa, những đồ vật, hàng hóa chưa được tháo chip khi ra khỏi cửa, đầu đọc cóthể dễ dàng nhìn thấy và đưa ra cảnh báo
2.3 Tổng quan về thư viện xử lý hình ảnh:
Dự án được viết bằng C # trong Visual Studio 2015 Community NetworkFramework 4.5 Sử dụng thư viện Emgucv mã nguồn mở tích hợp thư viện nhậndạng ký tự Tesseract OCR
2.3.1 Open CV:
OpenCV [6] là thư viện mã nguồn mở hàng đầu cho thị giác máy tính, máy học
và xử lý hình ảnh Vì OpenCV được viết bằng C / C ++ nên nó cực kỳ nhanh và cóthể được sử dụng trong các ứng dụng thời gian thực Opencv có cả giao diện C, C++ và Java, vì vậy nó có thể dễ dàng hỗ trợ Window, Android, iOS…
OpenCV có nhiều ứng dụng như:
Wrappers có thể được biên dịch bằng phần mềm VS, Xamarin Studio và Unity Nó
có thể chạy trên Windows, Linux, Android
Trang 34EmguCV được viết hoàn toàn bằng C # và có thể chạy trên nhiều nền tảng được hỗtrợ như Android và Linux Nó có thể được sử dụng từ các ngôn ngữ phổ biến khácnhau như C # và C.
Nhận dạng hình ảnh: khuôn mặt, đối tượng
Xử lý hình ảnh: Giảm nhiễu và tăng độ sáng
Đây là sự lựa chọn giữa việc sử dụng hình ảnh lớp hoặc gọi hàm trực tiếp từOpenCV
2.4 Tổng quan về cơ sở dữ liệu (Database):
2.4.1 SQL Server:
SQL Server là phần mềm quản lý cơ sở dữ liệu do Microsoft phát triển giúp dễdàng lưu trữ dữ liệu theo tiêu chuẩn RDBMS, bao gồm cả việc tạo, bảo trì và phântích dữ liệu
Phần mềm này đi kèm với việc triển khai các ngôn ngữ riêng như SQL, T - SQL,
cụ thể như sau:
• SQL Server Management Studio: công cụ giao diện máy chủ chính, hỗ trợ cho cảmôi trường 64bit và 32bit
• T - SQL: là NNLT thuộc sở hữu của Microsoft
Các thành phần cơ bản của một SQL Server:
Hình 2.21 Các thành phần của một SQL ServerTất cả các thành phần kết hợp để tạo thành một SQL Server - đây là giải pháp phùhợp để giúp phân tích và lưu trữ dữ liệu dễ dàng hơn
Trang 35- Database Engine: có khả năng lưu trữ dữ liệu ở quy mô lớn dưới dạng hỗ
trợ và bảng, có thể tự điều chỉnh
- Integration Services: một tập hợp các đối tượng lập trình, công cụ đồ họa
để sao chép, di chuyển và chuyển đổi dữ liệu
- Analysis Services: Dịch vụ phân tích dữ liệu của Microsoft sử dụng các kỹ
thuật khai thác dữ liệu và khái niệm về hình khối đa chiều
- Notification Services: là nền tảng cho việc phát triển và thiết lập các ứng
dụng gửi / soạn thông báo
- Reporting Services: là công cụ xây dựng, quản lý và triển khai các báo cáo.
- Full Text Search Services: là một thành phần đặc biệt trong việc truy vấn
và đánh giá các mục dữ liệu văn bản phi cấu trúc được lưu trữ trong cơ sở
dữ liệu SQL Server
- Service Broker: là môi trường lập trình để thiết kế ra các ứng dụng theo
bước nhảy của các yêu cầu
Mục đích SQL Server:
Mục đích chính của nó là lưu trữ dữ liệu nhưng còn những tính năng khác như:
Develop and test your app: Phát triển và thử nghiệm ứng dụng được
thiết kế của người dùng
Grow and engage your audience: Phát triển và tối ưu hóa trải nghiệm
người dùng
Những dịch vụ tiêu biểu của Firebase:
Trang 36Firebase là một nền tảng đa năng cung cấp cho người dùng nhiều dịch vụ khácnhau, bao gồm:
- Real-time Database:
Dịch vụ RTD cho phép bạn lưu trữ và đồng bộ hóa dữ liệu của mình trong thời gianthực Dữ liệu được lưu trữ trực tiếp trong iCloud Khi thiết bị chuyển sang chế độngoại tuyến, thiết bị sẽ hết bộ nhớ trên thiết bị và tự động đồng bộ hóa với máy chủkhi thiết bị trực tuyến
- Authentication:
Dịch vụ xác thực cung cấp cho người dùng các phương thức xác thực qua email,mật khẩu, tài khoản Google Tính năng này giúp người dùng dễ dàng tạo thông tinđăng nhập mà không cần sử dụng dữ liệu đăng ký cá nhân
- Firebase cloud messaging:
FCM là tính năng cơ bản nhất của nền tảng, vì Firebase lần đầu tiên được tích hợpsẵn trong trò chuyện Cho phép người dùng xây dựng các ứng dụng trò chuyện vàgửi thông báo đến các thiết bị khác nhau như web và Android Điểm nổi bật là córất ít mã hóa được bao gồm trong dịch vụ này
2.5 Tổng quan về thuật toán xử lý nhận diện ảnh
2.5.1 Thuật toán ORC:
Hình 2.22 Công nghệ OCRCông nghệ OCR là viết tắt của công nghệ nhận dạng ký tự quang học Nó làmột ứng dụng công nghệ đặc biệt để đọc các ký tự trong tập tin ảnh Kỹ thuật nàyđược biết đến như một công cụ quét kỹ thuật số đa năng có thể nhận dạng các ký
Trang 37tự, ký tự được đánh máy hoặc chữ viết tay và nó chuyên về truyền tải và nhập dữliệu.
Cách thức hoạt động của OCR:
Hình 2.23 Cách thức hoạt động của OCRCác trang in hoặc viết tay được quét bởi OCR được lưu ở định dạng tệp TIF
và có thể dễ dàng đọc dưới màn hình Tuy nhiên, một số máy tính có một loạt hìnhảnh với các chấm trắng hoặc đen Tại thời điểm này, công nghệ sẽ kiểm tra từnghàng của hình ảnh để xác định xem các dấu có khớp nhau hay không
Những hạn chế của OCR:
Công nghệ OCR hạn chế riêng như:
- Phần mềm và ứng dụng chứa OCR, có độ chính xác khoảng 80-90%
- Sai nhiều ở phần dấu câu
- Chưa hỗ trợ nhiều ngôn ngữ
2.5.2 Thuật toán Canny:
Biên là một vấn đề quan trọng trong việc trích xuất đặc điểm đối tượng để tìm hiểuhình ảnh [8] Cho đến nay, không có định nghĩa chính xác về biên Mỗi ứng dụngđược cung cấp các phép đo biên khác nhau Một trong số đó là sự thay đổi về cấp độxám Một tập hợp các điểm biên tạo nên các biên hoặc đường bao của một đốitượng Có hai phương pháp phát hiện biên cơ bản đã được đề xuất:
Trang 38- Phát hiện trực tiếp: Một phương pháp phát hiện biên dựa trên sự thay đổimức xám sử dụng công nghệ thay đổi hướng.
- Phát hiện gián tiếp
Kỹ thuật phát hiện biên Canny là một phương pháp phát hiện biên trực tiếp rất hiệuquả được áp dụng cho các hình ảnh nhiễu
Kỹ thuật này giới thiệu ba điểm chính cần được giải quyết trong phương pháp pháthiện biên:
- Mức sai số: Phương pháp chỉ có hiệu lực đối với các điểm biên, nó phải pháthiện tất cả các biên, không còn biên nào bị sót lại
- Định vị: Khoảng cách giữa các điểm biên được phát hiện bởi thuật toán vàcác biên thực tế nên càng nhỏ càng tốt
- Hiệu suất: không thể chỉ định nhiều biên nếu chỉ có một biên
Thuật toán phát hiện biên Canny được thể hiện như sau:
- Đọc hình I để xử lý
- Tạo một mặt nạ G nhân vòng xoắn với I Độ lệch chuẩn của mặt nạ này làmột tham số của sự phân tách cạnh
- Tạo một mặt nạ của đạo hàm bậc một của Gassian theo hướng x, y và gọi nó
là Gx, Gy Giá trị được giữ lại như trong bước 2
- Nhân và xoắn hình I với G dọc theo các hàng để tạo ra hình ảnh của thànhphần x gọi là Ix và tạo hình Iy dọc theo các cột
- Nhân Ix xoắn theo Gx để tạo ra I’x Đạo hàm của I được xoắn bởi đạo hàmGauss, và chuỗi xoắn được nhân với Iy và Gy để tạo ra I’y
2.5.3 Quy trình xử lý nhận diện ảnh:
Quy trình xử lý nhận diện ảnh được thực hiện như bảng 2.2 [8]:
Bảng 2.2 Quy trình xử lý nhận diện hình ảnh
Trang 39Hệ thống đầu vào là hình ảnh được chụp từ camera
Sau đó xử lý ảnh để tìm ra vùng chứa biển số xe cần nhận dạng.
Sau đó, sử dụng thuật toán OCR để nhận dạng các ký tự trong khu vực chứa biển số xe.
Đưa vào cơ sở dữ liệu để xử
lý và lưu trữ.
Trang 40Sau khi ảnh được trả về, nó sẽ được chuyển thành ảnh đen trắng
và được mã hóa sang dạng binary kiểu byte.
Bước tiếp theo là sử dụng thuật toán Canny để tìm sườn của hình ảnh Việc này giúp giảm đáng kể tổng dữ liệu của ảnh và loại bỏ thông tin không cần thiết trong khi vẫn bảo toàn các đặc điểm cấu trúc quan trọng của ảnh.
Bước tiếp theo là tạo đường biên Thuật toán Canny giúp lấy các pixel đại diện cho sườn của ảnh, nhưng nó không thể hiển thị sự liên kết giữa các sườn ảnh này.
Có nhiều cách để vẽ một đường cong, nhưng trong OpenCV, biên được mô tả bằng một chuỗi số và mỗi thực thể trong chuỗi mã hóa thông tin về vị trí của điểm tiếp theo trên đường biên Các biên được phát hiện được sắp xếp theo một thứ tự cụ thể để có thể thấy mối quan hệ giữa chúng.
Với yêu cầu ứng dụng là tìm biển số xe, chúng ta xem xét cách tổ chức theo dạng
cây của các đường biên