THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH: ĐỒ ÁN TỐT NGHIỆPCNKT ĐIỆN TỬ - VIỄN THÔNG
THIẾT KẾ HỆ THỐNG ĐÓNG/MỞ CỬA THÔNG MINH
GVHD: GVC.ThS THÁI HOÀNG LINH LÝ THẮNG HUY
VÕ TRÍ LONG
S K L 0 0 9 2 7 8
Trang 2KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
Trang 3TP.HCM, ngày 25 tháng 7 năm 2022
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên 1: Lý Thắng Huy MSSV: 18161079 Họ và tên sinh viên 2: Võ Trí Long MSSV: 18161102 Ngành: Công nghệ kỹ thuật Điện tử Viễn Thông Lớp: 18161CLDT1B
Giảng viên hướng dẫn: GVC.ThS Thái Hoàng Linh ĐT: 0918242212
1 Tên đề tài: Thiết kế hệ thống đóng/mở cửa thông minh
2 Các số liệu, tài liệu ban đầu: Giáo trình điện tử: Arduino; Bài báo cáo môn học RFID Nguồn tài liệu: ĐAMH, ĐATN
3 Nội dung thực hiện đề tài: Thiết kế và xây dựng hệ thống đóng/mở cửa thông minh Tìm hiểu thông số, công dụng, tính năng của các module kết hợp cùng Arduino 4 Sản phẩm: Mô hình hệ thống đóng/mở cửa thông minh là hệ thống bảo mật nhà
cửa, khối xử lý trung tâm sẽ thu thập tín hiệu và điều khiển các module
GIẢNG VIÊN HƯỚNG DẪN
Trang 4PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1: Lý Thắng Huy MSSV: 18161079 Họ và tên Sinh viên 2: Võ Trí Long MSSV: 18161102 Ngành: Công nghệ kỹ thuật Điện tử - Viễn Thông
Tên đề tài: Thiết kế hệ thống đóng/mở cửa thông minh Họ và tên Giáo viên hướng dẫn: ThS Thái Hoàng Linh
Trang 5PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Lý Thắng Huy MSSV: 18161079 Họ và tên Sinh viên 2: Võ Trí Long MSSV: 18161102 Ngành: Công nghệ kỹ thuật Điện tử - Viễn Thông
Tên đề tài: Thiết kế hệ thống đóng/mở cửa thông minh Họ và tên Giáo viên hướng dẫn: ThS Thái Hoàng Linh
Trang 6Để có thể hoàn thành đề tài này, chúng em xin gửi lời cảm ơn chân thành đến các Thầy/Cô trong khoa Đào tạo Chất lượng cao, trường Đại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, những người đã truyền đạt cho chúng em những kiến thức quý báu, chỉ dẫn và định hướng cho nhóm trong quá trình học tập Đây là những tiền đề để nhóm có thể hoàn thành được đề tài cũng như trong sự nghiệp sau này
Đặc biệt, chúng em xin chân thành cảm ơn Thầy Thái Hoàng Linh đã tận tình
hướng dẫn và tạo điều kiện thuận lợi cho chúng em trong suốt thời gian thực hiện đồ án tốt nghiệp Chúng em xin được phép gửi đến thầy lòng biết ơn và lời cảm ơn chân thành và sâu sắc nhất Kiến thức, kinh nghiệm và cái tâm nghề nghiệp của thầy đã không những đã giúp đỡ chúng em hoàn thành tốt đề tài mà còn là tấm gương để nhóm học tập và noi theo trên con đường sau này
Bên cạnh đó, chúng em cũng xin cảm ơn các anh, chị khóa trước cũng như các bạn sinh viên trong lớp 18161CLDT1B đã nhiệt tình đóng góp ý kiến và chia sẽ kinh nghiệm để giúp chúng em hoàn thành đề tài này
Cuối cùng, mặc dù đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra và đảm bảo thời hạn nhưng do kiến thức còn hạn hẹp chắc chắn sẽ không tránh khỏi những thiếu sót, mong Thầy/Cô và các bạn sinh viên thông cảm Chúng em mong nhận được những ý kiến của Thầy/Cô và các bạn sinh viên
Chúng em xin chân thành cảm ơn!
Trang 7Ngày nay với sự phát triển của xã hội hiện đại ai trong số chúng ta cũng cần bảo những thiết bị bảo vệ tài sản trong nhà như khoá cửa, thiết bị cảnh báo chống trộm hay camera nhưng có lẽ thiết bị được sử dụng nhiều nhất vẫn chính là khoá cửa Hiện nay trên thị trường có rất nhiều loại khoá của nhưng hầu hết là khoá cơ khí, các cơ khi xây gặp vấn đề lớn đó là tính bảo mật của các loại khoá này là không cao, dể dàng bị phá bởi các chìa khóa đa năng Đa số khóa kỹ thuật số đang có bản trên thị trường đều có giá bán khá cao và chu yểu là loại khoá tay nắm ta thưởng thấy trong khách sạn hoặc các sàn hộ chung cư Rất may, với sự phát triển mạnh của ngành khoa học kỹ thuật và giá thành các linh kiện điện tử ở mức tiếp cận người dùng Với sự phát triển mạnh mẽ của khoa học kỹ thuật Đặc biệt trong lĩnh vực tự động hóa đã tạo nên một động lực thức đẩy và phát triển các ngành công nghiệp khác nhằm phục vụ và đáp ứng được nhu cầu của con người trong cuộc sống Con người với sự trợ giúp của máy móc, những công cụ thông minh đã không phải trực tiếp làm việc, hay những công việc mà con người không thể làm được với khả năng của minh mà chỉ việc điều khiển chúng hay chúng làm việc hoàn toàn tự động đã mang lại những lợi ích hết sức to lớn, giảm nhẹ và tối ưu hóa công việc
Với sự tiến bộ này đã đáp ứng được những nhu cầu của con người trong cuộc sống hiện đại nói chung và trong sự phát triển của khoa học kỹ thuật nói riêng Đối với những sinh viên tự động hóa chúng ta thì việc nghiên cứu, tìm hiểu các đặc tính của công nghệ nhận dạng đối tượng bằng sóng vô tuyến RFID và công nghệ quét vân tay quang học có ý nghĩa thực tế hết sức quan trọng Nó không những trang bị cho chúng ta kỹ năng làm việc trong lĩnh vực điều khiển tự động, điện tử mà còn giúp chúng ta theo kịp với sự phát triển của khoa học kĩ thuật ngày nay khi tốt nghiệp ra trường Sau đây em xin tìm hiểu và khảo sát các đặc tính của công nghệ nhận dạng bằng sóng vô tuyến RFID, dấu vân tay và cảnh báo an ninh nhắn tin về điện thoại cũng như thiết kế một ứng dụng thực tế là “Thiết kế hệ thống đóng mở cửa thông minh” Đây là cơ sở để thiết kế những hệ thống tự động hóa đơn giản, cũng như phức tạp được ứng dụng rộng rãi trong khoa học và đời sống
Trang 8NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii
1.1.2 Tính cấp thiết của đề tài 2
1.2 MỤC TIÊU NGHIÊN CỨU 3
1.3 ĐỐI TƯỢNG NGHIÊN CỨU 3
2.1.3 Phương thức giao tiếp I2C 10
2.1.4 Phương thức giao tiếp SPI 16
2.1.5 Phương thức UART 17
Trang 92.1.7 Phần mềm Proteus 21
2.1.8 Các tập lệnh AT 22
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 24
3.1 YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG 24
3.1.1 Yêu cầu của hệ thống 24
3.2.7 Khối giao tiếp Module Sim: 32
3.2.8 Khối xử lý trung tâm: (Arduino MEGA): 34
3.2.9 Khối nguồn: 35
3.3 SƠ ĐỒ HỆ THỐNG 37
CHƯƠNG 4: KẾT QUẢ VÀ THỰC HIỆN 38
4.1 KẾT QUẢ PHẦN MỀM 38
4.1.1 Lưu đồ khi sử dụng RFID 38
4.1.2 Lưu đồ khi sử dụng cảm biến vân tay (Module AS608) 40
4.1.3 Lưu đồ khi sử dụng bàn phím (Keypad) 42
Trang 104.2 KẾT QUẢ PHẦN CỨNG 44
4.3 PHẦN MỀM LẬP TRÌNH CHO VI ĐIỀU KHIỂN 57
4.3.1 Kết nối cảm biến vân tay với Arduino 62
4.3.2 Kết nối module RFID với Arduino 67
CHƯƠNG 5 KẾT LUẬN, HẠN CHẾ VÀ PHƯƠNG HƯỚNG PHÁT
Trang 11Hình 2 1 Module RFID RC522 6
Hình 2 2 Module Arduino MEGA 7
Hình 2 3 Kết nối chuẩn I2C 11
Hình 2 4 Khung truyền I2C 12
Hình 2 5 Hình minh họa điều kiện khởi động của phương thức I2C 12
Hình 2 6 Hình minh họa điều kiện kết thúc của phương thức I2C 13
Hình 2 7 Hình minh họa Master gửi địa chỉ cho Slave 13
Hình 2 8 Hình minh họa Slave gửi về ACK 14
Hình 2 9 Hình minh họa truyền dữ liệu giữa thiết bị Master và Slave 14
Hình 2 10 Hình minh họa bit ACK/NACK của thiết bị Slave 15
Hình 2 11 Hình minh họa thiết bị Master gửi tín hiệu kết thúc 15
Hình 2 12 Hình thể hiện toàn bộ các bit dữ liệu được gửi trên đường SDA 16
Hình 2 13 Module LCD I2C 1602 17
Hình 2 14 Giao tiếp UART 17
Hình 2 15 Khung truyền UART 18
Hình 2 16 Biểu tượng (icon) phần mềm Arduino IDE 20
Hình 2 17 Giao diện phần mềm Arduino IDE 21
Hình 2 18 Biểu tượng (icon) của phần mềm Proteus 21
Hình 3 1 Sơ đồ khối hệ thống 24
Hình 3 2 Sơ đồ nguyên lý của khối RFID 26
Hình 3 3 Sơ đồ nguyên lý của LCD 27
Hình 3 4 Sơ đồ nguyên lý kết nối của cảm biến vân tay AS608 29
Hình 3 5 Sơ đồ nguyên lý của bàn phím 30
Hình 3 6 Sơ đồ nguyên lý của Buzzer 31
Hình 3 7 Sơ đồ nguyên lý của động cơ Servo 32
Hình 3 8 Sơ đồ nguyên lý của Module Sim 33
Trang 12Hình 3 10 Sơ đồ nguyên lí khối nguồn 36
Hình 3 11 Sơ đồ nguyên lí toàn mạch 37
Hình 4 1 Lưu đồ khi tác động vào RFID 38
Hình 4 2 Lưu đồ khi tác động vào cảm biến vân tay 40
Hình 4 3 Lưu đồ khi sử dụng bàn phím 42
Hình 4 4 Lưu đồ chương trình chính 43
Hình 4 5 Hình ảnh thực tế của mạch 45
Hình 4 6 Trạng thái chờ của mạch 46
Hình 4 7 LCD hiển thị mở khóa bằng RFID 47
Hình 4 8 LCD hiển thị mở khóa bằng Password 48
Hình 4 9 LCD hiển thị mở khóa bằng vân tay 49
Hình 4 10 LCD hiển thị khi quẹt sai thẻ 50
Hình 4 11 LCD hiện thị nhập sai Password 51
Hình 4 12 LCD hiển thị quét sai vân tay 52
Hình 4 13 Tin nhắn cảnh báo 53
Hình 4 14 Cuộc gọi cảnh báo thực tế 54
Hình 4 15 Hộp thoại tin cảnh báo 55
Hình 4 16 Cuộc gọi cảnh báo 56
Hình 4 17 Sơ đồ mạch in PCB của hệ thống 57
Hình 4 18 Giao diện file menu Arduino IDE 58
Hình 4 19 Giao diện Examples menu arduino IDE 59
Hình 4 20 Giao diện Sketch Menu Arduino IDE 59
Hình 4 21 Giao diện edit menu arduino IDE 60
Hình 4 22 Giao diện Tool menu 60
Hình 4 23 Board Arduino sử dụng 61
Hình 4 24 Arduino Toolbar 61
Hình 4 25 Kết nối Arduino Uno với cảm biến vân tay 62
Trang 13Hình 4 27 Serial Monitor enroll 64
Hình 4 28 Nhập ID đăng kí vân tay mới 64
Hình 4 29 Kết quả học vân tay 65
Hình 4 30 Code fingerprint vân tay đăng kí 66
Hình 4 31 Kết quả vân tay đăng kí 67
Hình 4 32 Thử vân tay chưa đăng kí 67
Hình 4 33 Arduino kết nối với Module RC522 68
Hình 4 34 DumpInfo 69
Hình 4 35 Serial Monitor RFID 70
Hình 4 36 ID của từng thẻ đã quét 71
Bảng 2 1 Thông số kĩ thuật Arduino Mega 8
Bảng 3 1 Thông số sử dụng nguồn của các thiết bị 35
Trang 14RFID Radio Frequency Identification
Công nghệ nhận dạng đối tượng bằng sóng vô tuyến
MCU Microprocessor Control Unit Khối vi điều khiển
GPRS General Packet Radio
Dịch vụ truyền thông cá nhân GSM Global System for Mobile
Communications
Hệ thống Toàn cầu cho Truyền thông Di động
GPS Global Positioning System Hệ thống định vị toàn cầu LCD Liquid Crystal Display Công nghệ màn hình tinh thể lỏng
USB Universal Serial Bus Một chuẩn kết nối có dây
Trang 15CHƯƠNG 1 TỔNG QUAN
1.1 GIỚI THIỆU TÌNH HÌNH HIỆN NGHIÊN CỨU HIỆN NAY 1.1.1 Đặt vấn đề
Ngày nay, với sự phát triển mạnh mẽ của khoa học kĩ thuật Đặc biệt trong lĩnh vực điện tử viễn thông đã tạo nên một động lực thúc đẩy và phát triển các ngành công nghiệp khác nhằm phục vụ và đáp ứng được nhu cầu của con người trong cuộc sống Con người với sự trợ giúp của máy móc, những công cụ thông minh đã không phải trực tiếp làm việc, hay những công việc mà con người không thể làm được với khả năng của mình mà chỉ việc điều khiển chúng hay chúng làm việc hoàn toàn tự động đã mang lại những lợi ích hết sức to lớn, giảm nhẹ và tối ứu hóa công việc Với sự tiến bộ này đã đáp ứng được những nhu cầu của con người trong cuộc sống hiện đại nói chung và trong sự phát triển hơn nữa của những ứng dụng trong việc nghiên cứu, phát triển của khoa học kĩ thuật nói riêng
Đối với những sinh viên điện tử chúng ta thì việc nghiên cứu, tìm hiểu các đặc tính của công nghệ nhận dạng đối tượng bằng sóng vô tuyến RFID và sinh trắc học có ý nghĩa thực tế hết sức quan trọng Nó không những trang bị cho chúng ta những kiến thức sâu rộng hiện đại mà còn tạo cho chúng ta những kĩ năng làm việc trong lĩnh vực điện tử viễn thông để theo kịp với sự phát triển của khoa học kĩ thuật ngày nay khi tốt nghiệp ra trường
Ngày nay gia đình nào cũng hướng đến một cuộc sống tiện nghi và an toàn Ta có thể thấy việc bảo mật được thúc đẩy và phát triển một cách mạnh mẽ Từ các hệ thống khóa cửa cao siêu của các cơ quan, trụ sở tối cao hay đến những ổ khóa cửa thông thường ở các hộ gia đình bình thường Với việc khoa học kỹ thuật phát triển không ngừng, giá thành các linh kiện điện tử dễ dàng đến với người dùng, nên các hệ thống bảo mật càng ngày càng được nâng cao mà chi phí lại thấp Hệ thống bảo vệ có thể là một ổ khóa thông minh được người dùng cài mật khẩu bằng dãy số, hay hệ thống đó dựa trên công nghệ sinh trắc học: vân tay, võng mạc,…hay các hệ thống AI nhận diện giọng nói
Công nghệ RFID và công nghệ bảo mật vân tay quang học tuy đã được ứng dụng khá lâu và phổ biến ở nhiều nước trên thế giới nhưng đối với Việt Nam thì vẫn còn khá mới mẻ Đất nước chúng ta đang nắm bắt và triển khai các công nghệ mới này để tận dụng các ưu điểm nổi trội của nó Ở Việt Nam, công nghệ RFID đang trong bước đầu được ứng dụng trong các lĩnh vực: kiểm soát vào-ra, chấm công điện tử, quản lý phương tiện qua trạm thu phí, kiểm soát bãi đỗ xe tự động Với công nghệ bảo mật vân tay cũng đang phát triển mạnh với các ứng dụng trong lĩnh vực: mở khóa bằng vân tay, check in/out ca làm cho nhân viên, nhận diện thông tin cá nhân,…
Trang 16Bên cạnh đó, việc công nghệ RFID và công nghệ bảo mật vân tay xuất hiện ngày càng nhiều đặt hệ thống công nghiệp nước ta vào thách thức nâng cao chất lượng và tự động hóa, hiện đại hóa nền công nghiệp
Ngày nay, với sự phát triển của xã hội, nhu cầu bảo vệ, an toàn nhà cửa của con người càng phát triển, đặc biệt là nhu cầu về hệ thống khóa cửa thông minh Từ đó các chung cư, nhà ở hiện nay ngày càng xuất hiện nhiều các hệ thống khóa cửa thông minh tiện lợi Lựa chọn hệ thống đóng/mở của thông minh sẽ tăng sự an ninh, bảo mật cho mái ấm của mọi người
Chính vì thế, chúng em thực hiện đề tài: “THIẾT KẾ HỆ THỐNG ĐÓNG/MỞ CỦA TỰ ĐỘNG THÔNG MINH” nhằm sử dụng công nghệ RFID và công nghệ bảo mật vân tay vào một đề tài thực tế, kết hợp kiến thức đã học sử dụng các module LCD, servo, arduino, vào hệ thống trở nên hiện đại hơn
1.1.2 Tính cấp thiết của đề tài
Thẻ RFID có kích thước rất nhỏ, dùng để gắn lên vật thể cần quản lý như hàng hóa, người Thẻ RFID chứa các chip silicon và các anten cho phép nhận lệnh và đáp ứng lại bằng tần số vô tuyến RF từ một đầu đọc RFID Tín hiệu được ghi vào thẻ và được đọc không phụ thuộc vào hướng của thẻ mà chỉ cần thẻ đó nằm trong vùng phủ sóng của thiết bị là được Khi một thẻ RFID tiến đến gần một thiết bị đọc ghi thẻ, năng lượng sóng điện từ đủ để cung cấp cho thẻ và từ đó quá trình trao đổi dữ liệu giữa thẻ và thiết bị đọc ghi thẻ bắt đầu Trong quá trình này, thiết bị có thể đọc ghi thông tin trên thẻ, sau khi kết thúc quá trình trao đổi dữ liệu, chiếc thẻ đó được chỉ thị không tiếp nhận thêm thông tin gì nữa cho đến khi được lọt vào vùng phủ sóng tiếp theo Cộng thêm dấu vân tay là một công nghệ bảo mật sử dụng dấu vân tay của một người để xác định danh tính một cá nhân Như chúng ta đều biết mỗi người sẽ sở hữu những cấu trúc vân tay riêng biệt, hay nói cách khác dấu vân tay của chúng ta hoàn toàn không giống nhau Dấu vân tay của một người giống như một thẻ nhận dạng, và đây cũng là nền tảng cốt lõi để sáng tạo ra công nghệ bảo mật vân tay thêm vào đó cảnh báo khi nhập vân tay, rfid hoặc mật khẩu sai nhiều lần về điện thoại chúng ta giúp cải thiện an ninh, bảo mật hơn và kịp thời xử lý các trường hợp khi bị kẻ gian đột nhập
Vì vậy, em đã thực hiện đề tài “THIẾT KẾ HỆ THỐNG ĐÓNG/MỞ THÔNG MINH” để đảm bảo sự an ninh, bảo mật cho nhà cửa thông minh
Trang 171.2 MỤC TIÊU NGHIÊN CỨU
Tại Việt Nam, nhu cầu bảo mật và tiện ích ngày càng nhiều và mở ra một thị trường đầy tiềm năng cho các nhà nghiên cứu và sản xuất Tuy nhiên, để đón nhận, vận dụng và phát triển 1 hệ thống mới này, chúng ta cần có sự hiểu biết nhất định về chúng Công nghệ RFID và bảo mật vân tay chưa được triển khai rộng rãi ở Việt Nam là do chi phí còn cao và chưa khai thác được nhiều ứng dụng của công nghệ này Khóa thông minh cung cấp giải pháp bảo mật cao, giúp kiểm soát việc ra vào được tốt hơn so với khóa cửa truyền thống rất dễ bị bẻ gãy bởi kết cấu vô cùng thô sơ, vì thế không hiếm gặp nhiều vụ mất trộm xảy ra liên tục Ngày nay các quốc gia phát triển rất ưa chuộng khóa cửa dùng vân tay, nhận dạng thông qua sinh trắc học Công nghệ này giúp cho việc mở khóa trở nên phức tạp hơn nhiều Đối với việc ứng dụng công nghệ vân tay là cách mà nhà sản xuất đã cá nhân hóa cho việc mở cửa Hơn nữa người dùng có thể kiểm tra được ai đã vào nhà và vào bằng cách nào
Phương thức mở khóa này rất an toàn và đáng tin cậy Việc ứng dụng một loại khóa thông minh cho ngôi nhà sẽ giúp chúng ta yên tâm hơn để lo những công việc khác trong cuộc sống Chúng ta sẽ cảm thấy vô cùng thuận tiện không chỉ độ an toàn Không còn cảnh phải mất công đi tìm chìa khóa Không còn hốt hoảng khi bị làm rơi chìa khóa Nếu như việc sử dụng khóa truyền thống khiến cho tội phạm trộm cắp gia tăng thì giờ đây xã hội có thể giảm thiểu được việc đó bằng một cách dễ dàng hơn Việc phá một chiếc khóa thông minh là vô cùng khó khăn mà không phải ai cũng có thể làm được Nhận định được những điều đó và thấy được tiềm năng ứng dụng của công nghệ tiên tiến em làm đề tài: “Thiết kế hệ thống đóng/mở cửa thông minh”
1.3 ĐỐI TƯỢNG NGHIÊN CỨU
- Arduino Mega 2560 - LCD I2C 16x2 - Module RFID
- Module cảm biến nhận diện vân tay AS608 - Module sim 800A Mini
- Bàn phím Keypad - Buzzer
- Servo
Trang 181.4 BỐ CỤC ĐỒ ÁN
Chương 1: Tổng quan: Trong chương này, chúng em thực hiện đề tài trình bày tổng
quan về tình hình nghiên cứu về công nghệ RFID và công nghệ nhận diện vân tay hiện nay Mục tiêu, đối tượng và mục tiêu nghiên cứu của đề tài
Chương 2: Cơ sở lý thuyết: Trong chương này, em thực hiện đề tài sẽ giới thiệu về
sơ lược về module RFID, LCD I2C, Servo, module cảm biến nhận diện vân tay, module sim 800A,…
Chương 3: Thiết kế và thi công: Trong chương này, em thực hiện đề tài sẽ đưa ra
các yêu cầu khi thiết kế, các thiết kế về phần cứng và phần mềm
Chương 4: Kết quả thi công: Trong chương này, em thực hiện đề tài sẽ đưa ra kết
quả mà đạt được, video, hình ảnh hệ thống sau khi thi công
Chương 5: Kết luận và hướng phát triển: Trong chương này, em sẽ đưa ra kết luận,
những hạn chế và hướng phát triển của đề tài
Trang 19CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU
Với chương này, nội dung chủ yếu giới thiệu khái niệm của các linh kiện sử dụng và các phương thức giao tiếp
2.1.1 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, cho phép một thiết bị đọc có thể đọc thông tin chứa trong một thiết bị khác ở một khoảng cách gần mà không cần phải có một sự tiếp xúc vật lý nào Một hệ thống RFID thường bao gồm 2 thành phần chính là thẻ tag (chip RFID chứa thông tin) và bộ đọc (reader) đọc các thông tin trên chip
Dạng đơn giản và phổ biến nhất được sử dụng hiện nay là hệ thống RFID bị động Trong đó bộ đọc truyền một tín hiệu tần số vô tuyến thông qua anten đến một con chip, sau đó bộ đọc sẽ nhận lại thông tin phản hồi từ chip và gửi đến máy tính để xử lý thông tin Các con chip từ các thẻ Tag này không cần nguồn nuôi, chúng sử dụng năng lượng phát ra từ tín hiệu được gửi bởi bộ đọc
Thẻ RFID gồm chip bán dẫn nhỏ (bộ nhớ của chip có thể chứa từ 96 đến 512 bit dữ liệu, nhiều gấp 64 lần so với mã vạng) và anten được thu nhỏ trong một số hình thức đóng gói Vài thẻ RFID giống như những nhãn giấy và được ứng dụng để bỏ vào hộp và đóng gói Một số khác được sản xuất thành các miếng da bao cổ tay Mỗi thẻ được lập trình với nhận dạng duy nhất cho phép theo dõi không dây đối tượng hoặc con người đang gắn thẻ đó Khi thẻ đi vào sóng điện từ, nó sẽ phát hiện ra tín hiệu kích hoạt từ đầu đọc và sẽ phát thông tin nhận dạng đến đầu đọc Đầu đọc giải mã dữ liệu được mã hóa trong chip (sóng vô tuyến phản xạ từ thẻ) và gửi vào hệ thống để xử lý
Nguyên lí hoạt động:
Thiết bị RFID reader phát ra sóng điện từ ở một tần số nhất định, khi thiết bị RFID tag trong vùng hoạt động sẽ cảm nhận được sóng điện từ này và thu nhận năng
Trang 20lượng từ đó phát lại cho thiết bị RFID Reader biết mã số của mình Từ đó thiết bị RFID reader nhận biết được tag nào đang trong vùng hoạt động
2.1.2 Arduino MEGA
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm Board Arduino có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino MEGA, Arduino LilyPad Trong số đó, Arduino Mega 2560 Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển:
Arduino Mega2560 khác với tất cả các vi xử lý trước giờ vì không sử dụng FTDI chip điều khiển chuyển tín hiệu từ USB để xử lý Thay vào đó, nó sử dụng ATmega16U2 lập trình như là một công cụ chuyển đổi tín hiệu từ USB Ngoài ra,
Arduino Mega2560 cơ bản vẫn giống Arduino MEGA, chỉ khác số lượng chân và
nhiều tính năng mạnh mẽ hơn, nên các ta vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho Arduino MEGA
Vì đây là một bo mạch được tích hợp nhiều tính năng nổi bật Tính năng đầu tiên là thiết kế hệ thống I / O lớn với 16 bộ chuyển đổi tương tự và 54 bộ chuyển đổi digital hỗ trợ UART và các chế độ giao tiếp khác Thứ hai, Arduino Mega 2560 có sẵn RTC và các tính năng khác như bộ so sánh, timer, ngắt để điều khiển hoạt động, tiết kiệm điện năng và tốc độ nhanh hơn với xung thạch anh 16Mhz
Các tính năng khác bao gồm hỗ trợ JTAG để lập trình, gỡ lỗi và xử lý sự cố Với bộ nhớ FLASH lớn và SRAM, bo này có thể xử lý chương trình hệ thống lớn một cách dễ dàng Nó cũng tương thích với các loại bo mạch khác nhau như tín hiệu mức cao (5V) hoặc tín hiệu mức thấp (3.3V) với chân nạp I / O Brownout và
Hình 2 1 Module RFID RC522
Trang 21watchdog giúp hệ thống đáng tin cậy và mạnh mẽ hơn Nó hỗ trợ ICSP cũng như lập trình vi điều khiển USB với PC
Hình 2 2 Module Arduino MEGA
Trang 22Bảng 2 1 Thông số kĩ thuật Arduino Mega
Vi điều khiển AVR ATmega2560 (8 bit) Điện áp hoạt động 5V
Điện áp đầu vào (khuyên dùng) 7-12V Điện áp đầu vào (giới hạn) 6-20V
Chân Digital I/O 54
Giao tiếp USB (Lập trình với Atmega), ICSP (Lập trình), SPI, I2C và UART
Bộ TIMER 2 (8 bit) + 4 (16 bit) = 6 Timer Ngắt thay đổi chân 24
Chân điều khiển:
RESET: Arduino Mega Mega 2560 có sẵn mạch reset với nút ấn để thiết lập lại hệ thống và chân này có thể được sử dụng khi kết nối các thiết bị khác để thiết lập lại bộ điều khiển
XTAL1, XTAL2: Thạch anh(16Mhz) được kết nối với xung clock cung cấp cho bộ điều khiển
AREF: Chân này được dùng khi sử dụng ADC để chuyển đổi tín hiệu với điện áp tham chiếu bên ngoài mà không muốn sử dụng điện áp tham chiếu nội bộ 1.1V hoặc 5V
Các chân Digital (70):
Trang 23Chân số: Từ 0-53 (số) và 0-15 (tương tự) có thể được sử dụng làm đầu vào hoặc đầu ra cho thiết bị được thiết lập bằng các hàm Mode (), digtalWrite (), digitalRead ()
Ứng dụng: Thiết bị đầu ra: Relay, LED, buzzer, LCD và các thiết bị khác Thiết bị đầu vào: Nút ấn, cảm biến siêu âm, cần điều khiển và các thiết bị khác
Chân tương tự (16):
Từ 0-15 (analog) có thể được sử dụng như chân đầu vào tương tự cho bộ ADC, nếu không sử dụng nó hoạt động như chân digital bình thường Nó được thiết lập bởi các hàm pinMode () khai báo chân, analogRead () để đọc trạng thái chân và nhận giá trị kỹ thuật số cho tín hiệu analog Lưu ý phải cẩn thận để lựa chọn điện áp tham chiếu bên trong hoặc bên ngoài và chân Aref
Ứng dụng : Thiết bị đầu vào: Cảm biến nhiệt độ, cảm biến (như ldr, irled và độ ẩm) và các thiết bị khác
Chân có chức năng thay thế:
Chân SPI: Chân 22-SS, 23_SCK, 24-MOSI, 25-MISO
Các chân này được sử dụng cho giao tiếp nối tiếp với giao thức SPI để liên lạc giữa 2 thiết bị trở lên SPI cho phép bit phải được thiết lập để bắt đầu giao tiếp với các thiết bị khác
Ứng dụng: Lập trình điều khiển AVR, giao tiếp với những người khác ngoại vi như LCD và thẻ SD
Chân I2C: Chân 20 cho SDA và 21 cho SCL (Tốc độ 400khz) để cho phép
liên lạc hai dây với các thiết bị khác Hàm được sử dụng là wire.begin () để bắt đầu chuyển đổi I2C, với wire.Read () để đọc dữ liệu i2c và wire.Write () để ghi dữ liệu i2c
Ứng dụng: Thiết bị đầu ra: LCD và liên lạc giữa nhiều thiết bị với hai dây Thiết bị đầu vào: RTC và các thiết bị khác
Chân PWM : Chân 2-13 có thể được sử dụng như đầu ra PWM với hàm
analogWrite () để ghi giá trị pwm từ 0-255
Ứng dụng: Thiết bị đầu ra: Điều khiển tốc độ của động cơ, ánh sáng mờ, pid cho hệ thống điều khiển hiệu quả
Trang 24Chân này được sử dụng cho giao tiếp nối tiếp giữa bo mạch với máy tính hoặc hệ thống khác để chia sẻ và ghi dữ liệu Nó được sử dụng với hàm serialBegin () để cài đặt tốc độ truyền và bắt đầu truyền thông với serial.Println () để in mảng ký tự
Ứng dụng : Bộ mã hóa vòng quay, nút bấm dựa trên ngắt và các nút khác
Chân ngắt phần cứng: Chân 18 - 21,2,3 ngắt phần cứng được sử dụng cho
các ứng dụng ngắt Ngắt phần cứng phải được bật với tính năng ngắt toàn cục để ngắt quãng từ các thiết bị khác
Ứng dụng: Nhấn nút cho chương trình ISR, đánh thức bộ điều khiển bằng thiết bị bên ngoài như cảm biến siêu âm và các thiết bị khác
Các phần của Arduino Mega: Giắc cắm nguồn DC Cấp nguồn cho Arduino
Mega từ 7-12V qua cổng này Arduino Mega R3 có bộ điều chỉnh điện áp nguồn cấp 5V và 3.3V cho bộ điều khiển Arduino và bộ cảm biến
AVR 2560: Đây là vi điều khiển chính được sử dụng để lập trình và chạy tác
vụ cho hệ thống Đây là bộ não của hệ thống để điều khiển tất cả các thiết bị khác trên mạch
ATmega8: Vi điều khiển này được sử dụng để liên lạc giữa bộ điều khiển
chính và các thiết bị khác Bộ điều khiển này được lập trình cho giao tiếp USB và các tính năng lập trình nối tiếp
ICSP 1 (ATmega8) và 2 (AVR 2560): Nó có các tính năng của lập trình sử
dụng bus nối tiếp với lập trình AVR sử dụng giao tiếp SPI AVR 2560 được lập trình để chạy hệ thống và ATmega 8 được lập trình để liên lạc và lập trình nối tiếp
2.1.3 Phương thức giao tiếp I2C
I2C là tên viết tắt của cụm từ tiếng anh “Inter-Integrated Circuit” Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu
Do tính đơn giản của nó nên loại giao thức này được sử dụng rộng rãi cho giao tiếp giữa vi điều khiển và mảng cảm biến, các thiết bị hiển thị, thiết bị IoT, EEPROMs,…
Trang 25I2C kết hợp các tính năng tốt nhất của SPI và UART Với I2C, bạn có thể kết nối nhiều slave với một master duy nhất (như SPI) và bạn có thể có nhiều master điều khiển một hoặc nhiều slave Điều này thực sự hữu ích khi bạn muốn có nhiều hơn một vi điều khiển ghi dữ liệu vào một thẻ nhớ duy nhất hoặc hiển thị văn bản trên một màn hình LCD
Đây là một loại giao thức giao tiếp nối tiếp đồng bộ Nó có nghĩa là các bit dữ liệu được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi một tín hiệu đồng hồ tham chiếu
Giống như giao tiếp UART, I2C chỉ sử dụng hai dây để truyền dữ liệu giữa các thiết bị:
+ SDA (Serial Data) - đường truyền cho master và slave để gửi và nhận dữ liệu + SCL (Serial Clock) - đường mang tín hiệu xung nhịp
+ I2C là một giao thức truyền thông nối tiếp, vì vậy dữ liệu được truyền từng bit dọc theo một đường duy nhất (đường SDA)
Giống như SPI, I2C là đồng bộ, do đó đầu ra của các bit được đồng bộ hóa với việc lấy mẫu các bit bởi một tín hiệu xung nhịp được chia sẻ giữa master và slave Tín hiệu xung nhịp luôn được điều khiển bởi master
Đặc điểm của chuẩn giao tiếp I2C
Chỉ cần có hai đường buýt (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên mạng I2C
Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết
Cơ chế đơn giản để xác thực dữ liệu được truyền
Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên buýt I2C Các mạng I2C dễ dàng mở rộng Các thiết bị mới có thể được kết nối đơn giản với hai đường buýt chung I2C
Ưu điểm của chuẩn giao tiếp I2C
Chỉ sử dụng 2 dây
Hình 2 3 Kết nối chuẩn I2C
Trang 26 Hỗ trợ nhiều Master và nhiều Slave
Bit ACK/NACK xác nhận mỗi khung được chuyển thành công Phần cứng ít phức tạp
Giao thức được sử dụng rộng rãi
Nhược điểm của chuẩn giao tiếp I2C
Tốc độ truyền dữ liệu chậm hơn SPI Kích thước của dữ liệu bị giới hạn 8 bit Phức tạp SPI khi truyền khai
Phương thước hoạt động của chuẩn giao tiếp I2C
Với I2C, dữ liệu được truyền trong các tin nhắn Tin nhắn được chia thành các khung dữ liệu Mỗi tin nhắn có một khung địa chỉ chứa địa chỉ nhị phân của địa chỉ slave và một hoặc nhiều khung dữ liệu chứa dữ liệu đang được truyền Thông điệp cũng bao gồm điều kiện khởi động và điều kiện dừng, các bit đọc/ghi và các bit ACK / NACK giữa mỗi khung dữ liệu:
Hình 2 4 Khung truyền I2C
+ Điều kiện khởi động: Đường SDA chuyển từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển từ mức cao xuống mức thấp
Hình 2 5 Hình minh họa điều kiện khởi động của phương thức I2C
+ Điều kiện kết thúc: Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị master sẽ chuyền đường SDA từ mức điện áp thấp lên điện áp cao trước khi đường SCL chuyển từ cao xuống thấp
Trang 27Hình 2 6 Hình minh họa điều kiện kết thúc của phương thức I2C
Khung địa chỉ: Một chuỗi 7 hoặc 10 bit duy nhất cho mỗi slave để xác định slave khi master muốn giao tiếp với nó
Bit Đọc/Ghi: Một bit duy nhất chỉ định master đang gửi dữ liệu đến slave (mức điện áp thấp) hay yêu cầu dữ liệu từ nó (mức điện áp cao)
Bit ACK/NACK: Mỗi khung trong một tin nhắn được theo sau bởi một bit xác nhận / không xác nhận Nếu một khung địa chỉ hoặc khung dữ liệu được nhận thành công, một bit ACK sẽ được trả lại cho thiết bị gửi từ thiết bị nhận
Các bước truyền dữ liệu của I2C
Master gửi điều kiện khởi động đến mọi slave được kết nối bằng cách chuyển đường SDA từ mức điện áp cao sang mức điện áp thấp trước khi chuyển đường SCL từ mức cao xuống mức thấp
Master gửi cho mỗi slave địa chỉ 7 hoặc 10 bit của slave mà nó muốn giao tiếp, cùng với bit đọc/ghi
Hình 2 7 Hình minh họa Master gửi địa chỉ cho Slave
Mỗi thiết bị Slave so sánh địa chỉ được gửi từ thiết bị Master đến địa chỉ riêng của nó Nếu địa chỉ trùng khớp, thiết bị Slave gửi về một bit ACK bằng cách kéo đường SDA xuống thấp và bit ACK/NACK được thiết lập là ‘0’ Nếu địa chỉ từ thiết
Trang 28bị Master không khớp với địa chỉ riêng của thiết bị Slave thì đường SDA ở mức cao và bit ACK/NACK sẽ ở mức ‘1’ (mặc định)
Hình 2 8 Hình minh họa Slave gửi về ACK
Thiết bị Master gửi hoặc nhận khung dữ liệu Nếu thiết bị Master muốn gửi dữ liệu đến thiết bị Slave thì bit đọc/ghi là mức điện áp thấp “0” và ngược lại nếu thiết bị Master muốn nhận dữ liệu từ thiết bị Slave thì bit đọc/ghi là mức điện áp cao “1”
Hình 2 9 Hình minh họa truyền dữ liệu giữa thiết bị Master và Slave
Nếu khung dữ liệu được thiết bị Slave nhận được thành công, nó sẽ thiết lập bit ACK/NACK thành mức “0”, báo hiệu cho thiết bị Master tiếp tục
Trang 29Hình 2 10 Hình minh họa bit ACK/NACK của thiết bị Slave
Sau khi tất cả dữ liệu được gửi đến thiết bị Slave, thiết bị Master gửi điều kiện dừng để báo hiệu cho tất cả các thiết bị Slave biết rằng việc truyền dữ liệu đã kết thúc
Hình 2 11 Hình minh họa thiết bị Master gửi tín hiệu kết thúc
Trang 30Các chế độ hoạt động của I2C
Dựa vào tốc độ sẽ chia làm hai loại:
Chế độ chuẩn (Standard mode) hoạt động ở tốc độ 100Kbit/s Chế độ tốc độ thấp (Low-speed mode) hoạt động ở tốc độ 10Kbit/s Dựa vào quan hệ kết nối sẽ chia làm ba loại:
Một thiết bị Master và một thiết bị Slave Một thiết bị Master và nhiều thiết bị Slave Nhiều thiết bị Master và nhiều thiết bị Slave
2.1.4 Phương thức giao tiếp SPI
Giao tiếp ngoại vi nối tiếp hoặc SPI (Serial Peripheral Interface) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full – duplex) tức trong cùng một thời điểm có thể xảy ra đồng thời quá trình truyền và nhận
Giao tiếp ngoại vi nối tiếp (SPI) là một loại giao thức kiểu Master – Slave cung cấp một giao diện chi phí đơn giản và chi phí thấp giữa vi điều khiển và các thiết bị ngoại vi của nó.
Hình 2 12 Hình thể hiện toàn bộ các bit dữ liệu được gửi trên đường SDA
Trang 31Hình 2 13 Module LCD I2C 1602
Trong đó:
+ MOSI (đầu ra master/đầu vào slave) - đường truyền cho master gửi dữ liệu đến slave
+ MISO (đầu vào master/đầu ra slave) - đường cho slave gửi dữ liệu đến master + SCLK (clock) - đường cho tín hiệu xung nhịp
+ SS/CS (Slave Select/Chip Select) - đường cho master chọn slave nào để gởi tín hiệu
2.1.5 Phương thức UART
UART (Universal Asynchronous Receiver-Transmitter – Bộ truyền nhận dữ liệu nối tiếp bất đồng bộ) là một trong những giao thức truyền thông giữa thiết bị với thiết bị được sử dụng nhiều nhất Bạn có thể thấy giao tiếp UART được sử dụng nhiều trong các ứng dụng để giao tiếp với các module như: Wifi, Bluetooth, Xbee, module đầu đọc thẻ RFID với Raspberry Pi, Arduino hoặc vi điều khiển khác
Hình 2 14 Giao tiếp UART
Trang 32Trong một sơ đồ giao tiếp UART:
Chân Tx (truyền) của một chip kết nối trực tiếp với chân Rx (nhận) của chip kia và ngược lại Thông thường, quá trình truyền sẽ diễn ra ở 3.3V hoặc 5V UART là một giao thức một master, một slave, trong đó một thiết bị được thiết lập để giao tiếp với duy nhất một thiết bị khác
Dữ liệu truyền đến và đi từ UART song song với thiết bị điều khiển (ví dụ: CPU)
Khi gửi trên chân Tx, UART đầu tiên sẽ dịch thông tin song song này thành nối tiếp và truyền đến thiết bị nhận
UART thứ hai nhận dữ liệu này trên chân Rx của nó và biến đổi nó trở lại thành song song để giao tiếp với thiết bị điều khiển của nó
UART truyền dữ liệu nối tiếp, theo một trong ba chế độ:
Full duplex: Giao tiếp đồng thời đến và đi từ mỗi master và slave Half duplex: Dữ liệu đi theo một hướng tại một thời điểm
Simplex: Chỉ giao tiếp một chiều
Dữ liệu truyền qua UART được tổ chức thành các gói Mỗi gói chứa 1 bit bắt đầu, 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ tùy chọn và 1 hoặc 2 bit dừng
Hình 2 15 Khung truyền UART
Bit bắt đầu
Đường truyền dữ liệu UART thường được giữ ở mức điện áp cao khi không truyền dữ liệu Để bắt đầu truyền dữ liệu, UART truyền sẽ kéo đường truyền từ mức cao xuống mức thấp trong một chu kỳ clock Khi UART nhận phát hiện sự chuyển đổi điện áp cao xuống thấp, nó bắt đầu đọc các bit trong khung dữ liệu ở tần số của tốc độ truyền
Khung dữ liệu
Trang 33Khung dữ liệu chứa dữ liệu thực tế được chuyển Nó có thể dài từ 5 bit đến 8 bit nếu sử dụng bit chẵn lẻ Nếu không sử dụng bit chẵn lẻ, khung dữ liệu có thể dài 9 bit Trong hầu hết các trường hợp, dữ liệu được gửi với bit ít quan trọng nhất trước tiên
Bit chẵn lẻ
Bit chẵn lẻ là một cách để UART nhận cho biết liệu có bất kỳ dữ liệu nào đã thay đổi trong quá trình truyền hay không Bit có thể bị thay đổi bởi bức xạ điện từ, tốc độ truyền không khớp hoặc truyền dữ liệu khoảng cách xa Sau khi UART nhận đọc khung dữ liệu, nó sẽ đếm số bit có giá trị là 1 và kiểm tra xem tổng số là số chẵn hay lẻ Nếu bit chẵn lẻ là 0 (tính chẵn), thì tổng các bit 1 trong khung dữ liệu phải là một số chẵn Nếu bit chẵn lẻ là 1 (tính lẻ), các bit 1 trong khung dữ liệu sẽ tổng thành một số lẻ Khi bit chẵn lẻ khớp với dữ liệu, UART sẽ biết rằng quá trình truyền không có lỗi Nhưng nếu bit chẵn lẻ là 0 và tổng là số lẻ; hoặc bit chẵn lẻ là 1 và tổng số là chẵn, UART sẽ biết rằng các bit trong khung dữ liệu đã thay đổi
Bit dừng
Để báo hiệu sự kết thúc của gói dữ liệu, UART gửi sẽ điều khiển đường truyền dữ liệu từ điện áp thấp đến điện áp cao trong ít nhất khoảng 2 bit
Có thể tóm tắt lại như sau Quá trình truyền dữ liệu diễn ra dưới dạng các gói dữ liệu, bắt đầu bằng một bit bắt đầu, đường mức cao được kéo xuống đất Sau bit bắt đầu, năm đến chín bit dữ liệu truyền trong khung dữ liệu của gói, theo sau là bit chẵn lẻ tùy chọn để xác minh việc truyền dữ liệu thích hợp Cuối cùng, một hoặc nhiều bit dừng được truyền ở nơi đường đặt ở mức cao Như vậy là kết thúc một gói UART là giao thức không đồng bộ, do đó không có đường clock nào điều chỉnh tốc độ truyền dữ liệu Người dùng phải đặt cả hai thiết bị để giao tiếp ở cùng tốc độ Tốc độ này được gọi là tốc độ truyền, được biểu thị bằng bit trên giây hoặc bps Tốc độ truyền thay đổi đáng kể, từ 9600 baud đến 115200 và hơn nữa Tốc độ truyền giữa UART truyền và nhận chỉ có thể chênh lệch khoảng 10% trước khi thời gian của các bit bị lệch quá xa
Mặc dù UART là giao thức cũ và chỉ có thể giao tiếp giữa một master và slave duy nhất, nhưng nó dễ thiết lập và cực kỳ linh hoạt Do đó, bạn có thể gặp nó khi làm việc với các dự án vi điều khiển UART có thể là một phần của hệ thống mà bạn sử dụng hàng ngày, mà có thể bạn không nhận ra
Ưu điểm của chuẩn giao tiếp UART
Chỉ sử dụng hai dây Không cần tín hiệu Clock
Có một bit chẵn lẽ để kiểm tra lỗi
Trang 34 Cấu trúc của gói dữ liệu có thể thay đổi Phương thức được sử dụng rộng rãi
Nhược điểm của chuẩn giao tiếp UART
Kích thước khung dữ liệu bị giới hạn tối đa là 9 bit Không hỗ trợ nhiều hệ thống Master và Slave Tốc độ truyền phải nằm trong 10% của nhau
2.1.6 Phần mềm Arduino IDE
Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và biên dịch mã vào module Arduino
Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên dễ dàng mà ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể làm được
Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường
Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino Leonardo, Arduino Micro và nhiều module khác
Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận thông tin dưới dạng mã
Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo
Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và tải mã lên module Arduino
Môi trường này hỗ trợ cả ngôn ngữ C và C ++
Hoạt động của phần mềm Arduino IDE
Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã File Hex là các file thập phân Hexa được Arduino hiểu và sau đó được gửi đến bo mạch bằng cáp USB Mỗi bo Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file hex và chạy theo mã được viết.
Hình 2 16 Biểu tượng (icon) phần mềm Arduino IDE
Trang 35Hình 2 17 Giao diện phần mềm Arduino IDE
2.1.7 Phần mềm Proteus
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR,… Proteus là phần mềm mô phỏng mạch điện tử của Labcenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola
Phần mềm bao gồm 2 chương trình: ISIS (Intelligent Schematic Input System) cho phép mô phỏng mạch và ARES (Advanced Routing and Editing Software) dùng để vẽ mạch in.
Hình 2 18 Biểu tượng (icon) của phần mềm Proteus
Những đặc điểm nổi bật của phần mềm Proteus
Có khả năng mô phỏng hầu hết trình điều khiển cho vi điều khiển Chọn đối tượng và thiết lập thông số dễ dàng
Trang 36 Tương thích với các chương trình làm mạch in thông dụng Xuất file thống kê linh kiện cho mạch
Tịch hợp nhiều công cụ giúp cho việc quản lý mạch điện lớn Khả năng tự động đánh số linh kiện
Cấu hình đề xuất
Hệ điều hành: Windown 7,8,10 (chỉ 64 bit) Ram: Trên 8G
Bộ nhớ: 10G
Card đồ họa: Có hiệu xuất cao từ DirectX10 hoặc cao hơn
Màn hình: Màn hình kép với độ phân giải từ 2560x1440 hoặc tốt hơn
2.1.8 Các tập lệnh AT
- Các lệnh chung:
AT: Kiểm tra module có hoạt động không
Trả về: OK nếu hoạt động bình thường, báo lỗi hoặc không trả về nếu có lỗi xảy ra
ATEx: Bật (x=1) hoặc tắt (x=0) chế độ phản hồi lệnh vừa gửi (nên tắt đi) AT+CPIN?: Kiểm tra Simcard
Trả về: +CPIN: READY OK (nếu tìm thấy simcard) AT+CSQ: Kiểm tra chất lượng sóng
Trả về: +CSQ: xx,0 OK (xx là chất lượng sóng, tối đa là 31) AT+COPS?: Kiểm tra tên nhà mạng
Trả về: +COPS: 0,0, ”Viettel Mobile” OK (nhận dạng được nhà mạng là Viettel Mobile)
Trả về: +COPS: 0 (không thấy nhà mạng) - Các lệnh gọi điện:
ATD0123456789: Gọi điện cho số điện thoại 0123456789 ATA: Chấp nhận cuộc gọi đến
ATH: Hủy cuộc gọi - Các lệnh nhắn tin:
AT+CMGF=x: Cấu hình tin nhắn (x=0: DPU, x=1: dạng ký tự)
AT+CNMI=2,x,0,0: Chọn x=1 (chỉ báo vị trí lưu tin nhắn) hoặc x=2 (hiển thị ra ngay nội dung tin nhắn)
Trả về: +CMTI: “SM”,3 (x=1)
Trang 37Trả về: +CMT: “+84938380171″,””,”17/07/30,14:48:09+28″ noidungtinnhan AT+CMGR=x: Đọc tin nhắn tại vị trí lưu x
Trả về: nội dung tin nhắn
AT+CMGD=x: Xóa tin nhắn được lưu ở vị trí x
AT+CMGS= ”sodienthoai”: Gửi tin nhắn cho sodienthoai, sau dòng lệnh này sẽ nhận được ‘>’ (mã HEX là 0x3C), bây giờ có thể nhập vào nội dung tin nhắn, nhập tiếp 0x1A để gửi tin nhắn đi hoặc 0x1B để hủy gửi tin nhắn
Trang 38CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 3.1 YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG
3.1.1 Yêu cầu của hệ thống
Hệ thống có các chức năng sau:
Quét thẻ RFID hoặc quét vân tay hoặc nhập mật khẩu để mở cửa Hiển thị trạng thái cửa trên LCD
Cảnh báo về điện thoại khi quét sai thẻ hoặc vân tay hoặc nhập mật khẩu nhiều lần
Báo hiệu bằng còi khi mở/đóng cửa hoặc khi quẹt sai thẻ
Mở khóa cửa khi nhận được đúng vân tay, thẻ tag hoặc mật khẩu
Sơ đồ khối và chức năng mỗi khối: 3.1.2 Chức năng từng khối:
Khối xử lý trung tâm: Truyền dữ liệu và hiển thị lên LCD, đồng thời truyền dữ
liệu đến khối báo hiệu và nhận tín hiệu điều khiển từ khối RFID, khối cảm biến nhận diện vân tay và keypad
Khối hiển thị: Nhận dữ liệu từ khối xử lý trung tâm để hiển thị trạng thái cửa và
hiển thị nhập password
Hình 3 1 Sơ đồ khối hệ thống
Trang 39Khối cảm biến nhận diện vân tay: Truyền dữ liệu tín hiệu đến khối xử lý trung
tâm để thực hiện thao tác mở cửa và hiển thị trạng thái mở cửa trên LCD
Khối RFID: Truyền dữ liệu điều khiển đến khối xử lý trung tâm để chuyển đổi
trạng thái cửa và hiển thị trên LCD
Khối nút nhấn: Truyền mật khẩu đến khối xử lý trung tâm để chuyển đổi thành
trạng thái mở cửa
Khối báo hiệu: Tiếp nhận dữ liệu từ khối xử lý trung tâm để báo hiệu khi cửa
mở/đóng và khi dùng sai thẻ, sai vân tay
Khối Module Sim: Tiếp nhận dữ liệu từ khối xử lý trung tâm để báo hiệu khi hệ
thống bị nhập sai vân tay, mật khẩu hoặc thẻ RFID quá 3 lần Sau đó gọi điện và nhắn tin về số điện thoại đã thiết lập sẵn
Khối động cơ: Nhận tín hiệu từ khối xử lý trung tâm để thực hiện mở/đóng cửa Khối nguồn: Cung cấp nguồn cho các khối: hiển thị LCD, khối báo hiệu, trung
tâm xử lý,…
3.1.3 Hoạt động của hệ thống
Khi hệ thống được cấp nguồn hệ thống sẽ hoạt động theo trình tự như sau:
Bước 1: Khi được cấp nguồn toàn bộ hệ thống sẽ khởi động, các khối như khối
hiển thị và khổi báo hiệu sẽ đợi tín hiệu từ khối xử lý trung tâm
Bước 2: Khối xử lý trung tâm sẽ bắt đầu nhận dữ liệu từ khối RFID và khối cảm
biến nhận diện vân tay khi được cấp nguồn hoạt động Nếu thẻ tag RFID quét mã hợp lệ thì Servo sẽ thực hiện mở cửa Hoặc khi quét vân tay hợp lệ thì Servo sẽ mở cửa Sau khi đọc dữ liệu, khối xử lý trung tâm sẽ gửi dữ liệu đến khối hiển thị và hiển thị trạng thái cửa mở/đóng lên LCD
Bước 3: Nhập mật khẩu từ ma trận phím sau đó khối xử lý sẽ nhận dữ liệu và
truyền đến khối hiển thị và đồng thời Servo sẽ thực hiện mở cửa nếu mật khẩu đúng
Bước 4: Khối báo hiệu sẽ nhận tín hiệu từ khối xử lý trung tâm và báo hiệu khi
cửa mở/đóng hoặc dùng sai thẻ
Trang 403.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG PHẦN CỨNG 3.2.1 Khối RFID:
Yêu cầu thiết kế: Khối RFID có nhiệm vụ đọc mã UID từ thẻ RFID sau đó chuyển mã UID thành chuỗi số rồi gửi về Arduino
Phương án chọn phần cứng: Trên thị trường hiện nay, có rất nhiều loại RFID như: RC522, RC531, PN512, Với đề tài này của em, để thực hiện đóng/mở cửa bằng thao tác quẹt thẻ tiện lợi, bảo mật Em đã lựa chọn sử dụng IC RC522 để làm việc này
Mô tả hoạt động: Đây là đầu đọc thẻ 13.56MHz với khoảng cách không cần xa, mức giá rẻ thiết kế nhỏ gọn, module này rất phù hợp cho mô hình điện tử nhỏ Dùng giao tiếp SPI kết nối với Arduino, kết nối qua 4 chân: SCK, MISO, MOSI, SS(SDA): SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên
cần 1 đường giữ nhịp, mỗi nhịp trên SCK báo 1 bit dữ liệu đến hoặc đi MISO - Master Input / Slave Output: nếu là chip Master thì đây là đường
Input còn nếu chip Slaves thì MISO là Output MISO của Master và các Slaves được nối trực tiếp với nhau
MOSI - Master Ouput / Slave Input: nếu là chip Master thì đây là đường Output còn nếu là chip Slave thì MOSI là Input MOSI của Master và các Slaves được nối trực tiếp với nhau
SS(SDA) - Slave Select: đường chọn Slave cần giao tiếp, tích cực mức thấp - Thông số kĩ thuật:
Hình 3 2 Sơ đồ nguyên lý của khối RFID