Đồ án Hệ thống đóng mở cửa dùng NFC điện thoại (Phần 1)

pdf 22 trang phuongnguyen 160
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Hệ thống đóng mở cửa dùng NFC điện thoại (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_he_thong_dong_mo_cua_dung_nfc_dien_thoai_phan_1.pdf

Nội dung text: Đồ án Hệ thống đóng mở cửa dùng NFC điện thoại (Phần 1)

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG HỆ THỐNG ĐÓNG MỞ CỬA DÙNG NFC ĐIỆN THOẠI GVHD: ThS. NGUYỄN VĂN HIỆP SVTH: TRƯƠNG VĂN NGÂN MSSV: 11241012 SVTH: NGUYỄN HỮU TIẾN MSSV: 11241022 S K L 0 0 4 1 7 8 Tp. Hồ Chí Minh, tháng 1/2016
  2. BỘ GIÁO DỤC VÀ ĐÀ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 ĐỒ ÁN TỐT NGHIỆP HCMUTE Đề tài:HỆ THỐNG ĐÓNG MỞ CỬA DÙNG NFC ĐIỆN THOẠI NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG Sinh viên: Trương Văn Ngân MSSV: 11241012 Nguyễn Hữu Tiến MSSV: 11241022 GVHD: ThS. Nguyễn Văn Hiệp Tp. Hồ Chí Minh – 01/2016
  3. PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1. Thông tin sinh viên Họ và tên: Trương Văn Ngân MSSV: 11241012 Tel: 0982022566 Email: ngantruong1508@gmail.com Họ và tên: Nguyễn Hữu Tiến MSSV: 11241022 Tel: 0988399033 Email: tiennhspkt@gmail.com 2. Thông tin đề tài Tên của đề tài: Hệ thống đóng mở cửa dùng NFC điện thoại Mục đích của đề tài: Hệ thống đóng mở cửa dùng NFC điện thoại giúp chúng ta không cần chìa khoá nữa mà thay vào đó sử dụng một thiết bị di động luôn luôn ở bên người để mở với tốc độ nhanh chóng, gọn gàng, và không còn ám ảnh bởi nỗi lo quên hay mất chìa khoá. Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Viễn Thông, Khoa Điện - Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh. Thời gian thực hiện: Từ ngày 10/10/2015 đến 31/01/2016 3. Các nhiệm vụ cụ thể của đề tài - Tìm hiểu về giao tiếp NFC, các điện thoại android có hỗ trợ NFC hiện nay. - Nguyên tắc kết nối và truyền dữ liệu giữa PN532 với Arduino Mega 2560. - Nguyên tắc truyền dữ liệu giữa PN532 và điện thoại chạy Android. - Thiết lập giao diện quản lý ra vào cửa trên điện thoại Android. - Tìm giải thuật chương trình, vẽ lưu đồ và bắt đầu lập trình. - Kiểm tra chương trình, thử nghiệm thực tế. - Viết báo cáo luận văn. - Báo cáo đề tài tốt nghiệp. 4. Lời cam đoan của sinh viên Chúng tôi – Trương Văn Ngân và Nguyễn Hữu Tiến cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sỹ Nguyễn Văn Hiệp. Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công trình nào khác. Tp.HCM, ngày 31 tháng 01 năm 2016 SV thực hiện đồ án Trương Văn Ngân Nguyễn Hữu Tiến Tp.HCM, ngày . tháng .năm 2016 Xác nhận của Bộ Môn Giáo viên hướng dẫn (Ký ghi rõ họ tên và học hàm học vị) i
  4. TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc Bộ Môn Điện Tử Công Nghiệp Tp. Hồ Chí Minh, ngày 31 tháng 01 năm 2015 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình này được đóng vào đồ án) Họ tên sinh viên 1: Trương Văn Ngân Lớp: 112410B MSSV: 11241012 Họ tên sinh viên 2: Nguyễn Hữu Tiến Lớp: 112410A MSSV: 11241022 Tên đề tài: Hệ thống đóng mở cửa dùng NFC điện thoại Tuần/ngày Nội dung Xác nhận GVHD Tuần 6 Nhận đề tài. Tìm tài liệu liên quan đưa ra hướng thực hiện đề tài, Tuần 7-8 thiết kế sơ đồ khối. Tuần 9-10 Thiết kế sơ đồ nguyên lý. Tuần 11-12 Viết giao diện trên điện thoại android. Tuần 13-14 Thi công phần cứng. Viết chương trình giao tiếp giữa PN532 với Arduino Tuần 15-16 Mega 2560. Tuần 17 Thi học kỳ 1 2015-2016. 28/12/2015- Viết báo cáo lần 1, chỉnh sửa hoàn thiện đề tài. 10/01/2016 11/01/2016- Viết báo cáo hoàn tất. 25/01/2016 GV HƯỚNG DẪN (Ký và ghi rõ họ tên) ii
  5. LỜI CẢM ƠN Nhóm thực hiện đề tài xin chân thành cảm ơn thầy ThS. Nguyễn Văn Hiệp đã tận tình hướng dẫn, chỉ bảo kinh nghiệm quý báu cũng như hỗ trợ phương tiện thí nghiệm trong suốt quá trình tìm hiểu, nghiên cứu đề tài. Đồng thời chúng em xin cảm ơn các thầy cô trong Khoa Điện - Điện Tử đã tạo điều kiện, cung cấp cho nhóm những kiến thức cơ bản, cần thiết để chúng em có điều kiện và đủ kiến thức để thực hiện quá trình nghiên cứu. Đồng thời, nhóm cũng xin cám ơn các thành viên trong lớp 112410 đã có những ý kiến đóng góp, bổ sung giúp nhóm hoàn thành tốt đề tài. Ngoài ra, nhóm cũng đã nhận được sự chỉ bảo của các anh (chị) đi trước. Các anh (chị) cũng đã hướng dẫn và giới thiệu tài liệu tham khảo thêm trong việc thực hiện nghiên cứu. Xin chân thành cảm ơn! iii
  6. MỤC LỤC Phiếugiao nhiệm vụ đồ ántốtnghiệp i Lịch trình thực hiện đồ án tốt nghiệp ii Lời cảm ơn iii Mục lục iv Liệt kê hình vi Liệt kê bảng vii Tómtắt viii CHƯƠNG I: DẪN NHẬP 1 1.1. Đặt vấn đề 1 1.2. Lý do chọn đề tài. 1 1.3. Nội dungthựchiện 2 1.4. Giới hạn đề tài 2 1.5. Dàn ý tìmhiểu 2 1.6. Tình hình nghiên cứu 3 1.7. Ý nghĩa thực tiễn đề tài 3 CHƯƠNG II: CƠ SỞ LÝ THUYẾT 4 2.1. Cổng giao tiếp trường gần 4 2.1.1. Giới thiệu 4 2.1.2. Lịch sử phát triển 4 2.1.3. Các đặc tính kỹ thuật của NFC 5 2.1.4. So sánh với kết nối Bluetooth 6 2.1.5. Các ứng dụng thực tế NFC 7 2.2. Hệ điều hành Android 8 2.2.1. Giới thiệu 8 2.2.2. Lịch sử phát triển 8 2.2.2.1. Kiến trúc hệ điều hành Android 10 2.2.2.2. Applications 10 2.2.2.3. Applications Framework 11 2.2.2.4. Libraries 12 2.2.2.5. Android Runtime 12 iv
  7. 2.2.2.6. Kernel Linux 13 2.2.3. Các phần mềm hỗ trợ lập trình Android 13 2.3. Giới thiệu về board Arduino Mega 2560 14 2.4. Sơ lược về ic chuyên dụng PN532 15 2.4.1. Tổng quan về PN532 15 2.4.2. Truyền dữ liệu giữa Arduino Mega 2560 và PN532 17 CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG 19 3.1. Bài toán thiết kế 19 3.2. Sơ đồ khối 21 3.3. Thiết kế 21 3.3.1. Thiết kế phần cứng 21 3.3.1.1. Khối động lực 22 3.3.2. Thiết kế phần mềm 24 3.3.2.1. Khối thiết bị NFC 24 3.3.2.1.1. Thiết kế giao diện đăng nhập 25 3.3.2.1.2. Thiết kế giao diện mở cửa 26 3.3.2.1.3. Thiết kế giao diện thêm người sử dụng 27 3.3.2.1.4. Thiết kế giao diện thay đổi mật khẩu 28 3.3.2.1.5. Thiết kế giao diện thông tin tác giả 29 3.3.2.2. Khối điều khiển trung tâm và khối giao tiếp NFC 29 3.4. Thi công 30 3.5. Lưu đồ giải thuật và chương trình điều khiển 30 3.5.1. Lưu đồ gải thuật 30 3.5.2. Chương trình điều khiển 36 CHƯƠNG IV: KẾT QUẢ THỰC HIỆN 37 4.1.Khối thiết bị NFC 37 4.1.1Giao diện đăng nhập. 37 4.1.2. Giao diện mở cửa 37 4.1.3. Giao diện thay đổi mật khẩu 39 4.1.4. Giao diện thêm người sử dụng 39 4.1.5. Giao diện thông tin tác giả 40 4.2. Khối điều khiển trung tâm và khối giao tiếp NFC 42 v
  8. CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 45 5.1. Kết luận 45 5.2. Hướng phát triển đề tài 45 Tài liệu tham khảo 46 Phụ lục 59 Liệt kê hình Hình 2.1. Chia sẻ dữ liệu giữa 2 điện thoại qua giao tiếp NFC 7 Hình 2.2. Các ứng dụng thực tế của NFC 7 Hình 2.3. Cấu trúc Stack của Android OS 10 Hình 2.4. Board Arduino Mega 2560 14 Hình 2.5. Sơ đồ khối PN532 16 Hình 2.6. Sơ đồ chân PN532 16 Hình 2.7. Chọn kết nối giao thức kết nối PN532 17 Hình 2.8. Sơ đồ truyền dữ liệu 17 Hình 2.9. Khung truyền dữ liệu 18 Hình 2.10. Khung ACK 18 Hình 3.1. Cửa sử dụng công nghệ NFC 19 Hình 3.2. Mô tả hoạt động của hệ thống 20 Hình 3.3. Các khối của hệ thống cửa 20 HÌnh 3.4. Sơ đồ khối của hệ thống 21 Hình 3.5. Sơ đồ nguyên lý mạch động lực 22 Hình 3.6. Thiết kế giao diện đăng nhập 25 Hình 3.7. Thiết kế giao diện mở cửa 26 Hình 3.8. Thiết kế giao diện thêm người sử dụng 27 Hình 3.9. Thiết kế giao diện thay đổi mật khẩu 28 Hình 3.10. Thiết kế giao diện thông tin tác giả 29 Hình 3.11. Sơ đồ nguyên lý mạch in khối động lực 30 Hình 3.12. Lưu đồ chương trình chính 31 Hình 3.13. Lưu đồ chương trình mở cửa 32 Hình 3.14. Lưu đồ chương trình đóng cửa 34 Hình 3.15. Lưu đồ chương trình đăng nhập trên điện thoại 35 Hình 3.16. Lưu đồ chương trình điều khiển cửa trên điện thoại 36 vi
  9. Hình 4.1. Giao diện đăng nhập 37 Hình 4.2. Giao diện điều khiển mở cửa 38 Hình 4.3. Giao diện thay đổi mật khẩu 39 Hình 4.4. Giao diện thêm người sử dụng 39 Hình 4.5. Giao diện thông tin tác giả 40 Hình 4.6. Thông tin ứng dụng trên Android OS 41 Hình 4.7. Giao diện trên Samsung Note 2 42 Hình 4.8. Giao diện trên Sony Z 42 Hình 4.9. Mô hình sau khi thi công 42 Hình 4.10. Mô hình đóng gói sản phẩm 43 Hình 4.11. Giao diện xem logfile 44 Liệt kê bảng Bảng 2.1. So sánh giữa NFC với Bluetooth 6 Bảng 2.2. Các phiên bản Android 9 Bảng 2.3. Các thông số chi tiết của Arduino Mega 2560 15 Bảng 3.1. Bảng kết nối chân Arduino với PN532 30 Bảng 3.2. Bảng kết nối chân Arduino với Step Motor 30 Bảng 3.3. Bảng kết nối chân Arduino với Sensor 30 Bảng 3.4. Bảng trạng thái tạo xung chương trình mở cửa 33 Bảng 3.5. Bảng trạng thái tạo xung chương trình đóng cửa 34 vii
  10. TÓM TẮT Đề tài đề xuất phương pháp điều khiển cửa sử dụng phần mềm android trên điện thoại. Trên điện thoại android được thiết lập các giao diện như: giao diện đăng nhập, giao diện điều khiển mở cửa, giao diện thêm người sử dụng, giao diện thay đổi mật khẩu, giao diện thông tin tác giả. Để điều khiển được cửa trên android thì trước tiên người sử dụng phải đăng nhập đúng tên tài khoản và mật khẩu của mình. Khi đăng nhập đúng thì đi đến giao diện điều khiển mở cửa, trên giao diện này khi ta chạm vào nút “mở cửa” và đồng thời áp điện thoại lại gần board PN532, lúc này sẽ diễn ra quá trình giao tiếp giữa điện thoại android và PN532. Khi quá trình giao tiếp thành công thì PN532 lấy địa chỉ ID (Username,Password,ngày,giờ,lệnhcần thực hiện) gửi xuống vi điều khiển arduino Mega2560, nếu arduino nhận đúng địa chỉ ID thì nó sẽ kích hoạt các transisitor ở mạch động lực đóng ngắt để điều khiển động cơ chạy, lúc này cửa sẽ được mở ra. Khi cửa đã mở thì sau khoảng thời gian 3 giây cửa sẽ tự động đóng lại và kết thúc một quá trình mở cửa. viii
  11. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP CHƯƠNG I: DẪN NHẬP 1.1. Đặt vấn đề Chìa khoá từ xƣa đến nay luôn là sự lƣa chọn hàng đầu cho ổ khoá bởi tính đơn giản, phổ biến của vật liệu làm ra chúng. Song song với chìa khoá cơ khí con ngƣời cũng phát minh ra nhiều phƣơng pháp khoá khác nhƣ khoá số, và nhiều phƣơng pháp hiện đại nhƣ dấu vân tay, quét võng mạc và gần đây nhất là công nghệ RFID/NFC (giao tiếp trƣờng gần). Để có thể lĩnh hội nhanh chóng kiến thức về VDK, ngƣời học phải nghiên cứu trên lý thuyết, thiết kế, thi công mạch và sau đó lập trình sẽ gây tốn khá nhiều thời gian và công sức của ngƣời tìm hiểu công nghệ, nhất là việc nghiên cứu loại VDK mới. Việc thiết kế KIT thí nghiệm ứng dụng những tính năng của VDK sẽ làm tăng hiệu quả của việc nắm bắt kỹ thuật, tiết kiệm thời gian và chi phí trong việc nghiên cứu. Công nghệ càng cao, càng phức tạp sẽ làm tăng tính bảo mật, cũng nhƣ sự tiện lợi cho ngƣời sử dụng, đặc biệt khi smartphone càng ngày càng đƣợc phổ biến, tích hợp vào đó là công nghệ NFC. Vậy thay vì dùng chìa khoá để mở cửa – hơi rƣờm rà và phức tạp nếu ta có 1 xâu trên 10 chiếc chìa khác nhau cho những nơi khác nhau, chúng ta không cần chìa khoá nữa mà thay vào đó sử dụng một thiết bị di động (hoặc thẻ Tag) luôn luôn ở bên ngƣời để mở với tốc độ nhanh chóng và gọn gàng, và không còn ám ảnh bởi nỗi lo quên hay mất chìa khoá. 1.2. Lý do chọn đề tài Trong thời đại hiện nay, điện thoại di động giúp mọi ngƣời có thể liên lạc với bạn bè, gia đình, đồng nghiệp một cách dễ dàng. Nhƣng với ứng dụng NFC (Near-Field Communications - Giao tiếp trƣờng gần), điện thoại di động sẽ trở nên gần gũi hơn với cuộc sống hằng ngày, chẳng hạn chỉ cần cú chạm đến một điện thoại di động khác là ta có thể trao đổi thông tin, mua vé xem hát, trả tiền mua hàng Chính vì vậy, việc phát triển công nghệ NFC là chất xúc tác quan trọng để phát triển công nghệ kết nối không dây có tính ổn định, trực quan trong tƣơng tác 2 chiều giữa 2 thiết bị điện tử. Trong thực tế tại Việt Nam, công nghệ NFC đang dần đƣợc phổ biến, thể hiện ở việc thị trƣờng Việt Nam đang ra mắt rất nhiều loại điện thoại có tính năng này. Chính vì thế việc phát triển cơ sở hạ tầng, cho phù hợp với công nghệ này nói chung, và việc tiếp cận với công nghệ này nói riêng là vấn đề rất cần thiết. Đánh giá từ thực tế xã hội, nhóm sinh viên chúng tôi nhận thấy cần có những nghiên cứu kỹ thuật để tiếp cận công nghệ này. Ngoài ra đây cũng là một đề tài mới lạ, và nhóm chúng tôi thực sự có những đam mê về lĩnh vực này. Chính vì thế nhóm chúng tôi quyết định chọn đề tài “HỆ THỐNG ĐÓNG MỞ CỬADÙNG NFC ĐIỆN THOẠI” làm đề tài tốt nghiệp của nhóm chúng tôi. CHƢƠNG I: DẪN NHẬP 1
  12. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP 1.3. Nội dungthựchiện  Mụctiêuđềtài Tìmhiểu hệ điều hành Android. Tìmhiểuứngdụng NFC. Thiếtkếhệthốngmởcửadùngđiệnthoạicóchứcnăng NFC.  Thiếtkếvàthicông Thiếtkếgiaodiệnmởcửatrênđiệnthoại android. Thicôngmạchđộnglựcđiềukhiểncửa. 1.4. Giới hạn đề tài Đề tài nàychỉứngdụngchoviệcđóngmởcửa.Phầnmềmchỉsửdụngchođiệnthoại android vàcóhỗtrợchứcnăng NFC.Phầncơkhíhệthốngkháđơngiảnmangtínhchấtmôphỏngnênchƣakếthợptínhnăng ổ khóavàotronghệthống. 1.5. Dàn ý tìmhiểu Với sự hƣớng dẫn của thầy Nguyễn Văn Hiệp, nhóm đã thực hiện các bƣớc tiến hành nghiên cứu nhƣ sau: Phân chia các nội dung cần tìm hiểu và nghiên cứu chủ động về mặt thời gian. Tìm hiểu về hệ điều hành Android. Tìm hiểu IC chuyên dụng PN532. Tìm hiểu về công nghệ giao tiếp trƣờng gần NFC, các điện thoại có hỗ trợ chip NFC hiện nay. Tải và cài đặt các phần mềm, công cụ hỗ trợ cho việc lập trình ứng dụng trên hệ điều hành Android. Tìm hiểu về Arduino Mega 2560 về các chức năng và đặc tính, tìm hiểu phần mềm lập trình và nạp chƣơng trình cho Arduino Mega 2560. Tìm giải thuật chƣơng trình, vẽ lƣu đồ và bắt đầu lập trình. Tiến hành viết chƣơng trình từ cả hai đối tƣợng là hệ điều hành Android và Arduino Mega 2560. Kiểm tra chƣơng trình, thử nghiệm thực tế. Tìm và khắc phục lỗi, đóng gói sản phẩm. Viết báo cáo. CHƢƠNG I: DẪN NHẬP 2
  13. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP 1.6. Tình hình nghiên cứu Công nghệ giao tiếp trƣờng gần (NFC) là một công nghệ tƣơng đối mới mẻ ở Việt Nam nên hiện nay có rất ít đề tài nghiên cứu về lĩnh vực này. Tuy nhiên về công nghệ RFID ở tần số 13.56MHz thì đã có các đề tài đƣợc nghiên cứu và ứng dụng thành công vào thực tế. Các đề tài về hệ điều hành Android đã đƣợc nghiên cứu nhiều trong thời gian gần đây: Đề tài “TÌM HIỂU VÀ VIẾT ỨNG DỤNG MINH HỌA CHO HỆ ĐIỀU HÀNH ANDROID” của tác giả Hồ Công Đức và Huỳnh Huy Tấn, sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2011. Đề tài“THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ DỰA TRÊN HỆ ĐIỀU HÀNH ANDROID” của tác giả Nguyễn Huy Đức và Hồ Huỳnh Công Nhân sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2011. Đề tài “ĐIỀU KHIỂN THIẾT BỊ BẰNG SMARTPHONE THÔNG QUA GIAO TIẾP NFC” của tác giả Nguyễn Đăng Nhật và Thái Văn Chánh sinh viên trƣờng ĐH Sƣ Phạm Kỹ Thuật năm 2012. Trên thế giới thì các đề tài về công nghệ NFC đã đƣợc thực hiện và phát triển khá nhiều, với cơ sở hạ tầng đƣợc phát triển các ứng dụng liên quan đến NFC ngày càng đƣợc mở rộng và chứng tỏ đƣợc tính ƣu việt. 1.7. Ý nghĩa thực tiễn đề tài Với sự phát triển nhanh chóng của các thiết bị viễn thông trên thế giới, đặc biệt là các thiết bị điện thoại di động, thì các hệ thống mạng liên quan cũng không ngừng phát triển. Với việc thực hiện thành công đề tài này, sẽ mở ra sự phát triển cho những sản phẩm đầu tiên ứng dụng công nghệ này tại Việt Nam. Trên thế giới, công nghệ NFC là một công nghệ mang tính đột phá. Giống nhƣ công nghệ RFID, công nghệ NFC nhanh chóng trao đổi thông tin giữa các thiết bị khi chúng chạm vào nhau hoặc ở gần nhau. Ngƣời dùng có thể truyền đi văn bản, hình ảnh, đƣờng link và những dữ liệu khác. Nên từ việc phát triển công nghệ này sẽ mở ra một tiềm năng mới tại Việt Nam nhƣ: ví điện tử, quản lý nhân viên, poster thông minh, hệ thống âm thanh . CHƢƠNG I: DẪN NHẬP 3
  14. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP CHƢƠNG II: CƠ SỞ LÝ THUYẾT 2.1. Cổng giao tiếp trƣờng gần (Near Field Communication – NFC) 2.1.1. Giới thiệu NFC (Near Field Communication) đƣợc phát triển dựa trên nguyên lý tần số vô tuyến nhận dạng (Radio-frequency identification - RFID). RFID cho phép một đầu đọc gởi sóng radio đến một thẻ điện tử thụ động để nhận dạng và theo dõi. Việc giao tiếp đƣợc tiến hành bằng cách đƣa các thiết bị lại gần nhau, thông thƣờng nằm trong khoảng vài cm. NFC đƣợc phát triển dựa trên công nghệ RFID(Radio Frequency Identifi) có nghĩa là sóng vô tuyến nhận dạng - ra đời năm 1983. Chuẩn NFC bao gồm các khái niệm: giao thức giao tiếp và định dạng dữ liệu trao đổi, bao gồm chuẩn ISO/IEC 14443 và Felica đƣợc dựa trên chuẩn giao tiếp sóng vô tuyến sẵn có RFID. Các chuẩn này bao gồm tiêu chuẩn ISO/IEC 18092 và những tiêu chuẩn đƣợc định nghĩa bởi cộng đồng NFC (đƣợc thành lập vào năm 2004 bởi Nokia, Sony và Philips, đến nay đã có hơn 160 thành viên). Cộng đồng này phát triển NFC và đồng thời cấp chứng nhận cho các thiết bị. 2.1.2. Lịch sử phát triển Nguồn gốc của NFC là để nhận dạng bằng sóng vô tuyến hay còn gọi là RFID. RFID cho phép các bộ đọc gửi sóng vô tuyến đến một thẻ điện tử thụ động để nhận dạng cũng nhƣ theo dõi. Năm 1983 Bằng sáng chế đầu tiên liên quan đến từ viết tắt RFID đã đƣợc cấp cho Charles Walton. Năm 2004 Nokia, Philips và Sony thành lập cộng đồng NFC. Năm 2006 Thiết lập các đặc tính kỹ thuật cho các thẻ NFC. Năm 2006 Đặc tính kỹ thuật cho 1 “SmartPoster”. Năm 2006 Nokia 6131 là điện thoại NFC đầu tiên. Năm 2009 Vào tháng 1, cộng đồng NFC đƣa ra tiêu chuẩn Peer to Peer để truyền đi danh bạ, địa chỉ web (URL), khởi tạo Bluetooth và các chức năng khác. Năm 2010 Samsung Nexus S là điện thoại NFC chạy hệ điều hành Android đầu tiên đƣợc ra mắt. Năm 2011 Tại sự kiện GOOGLE I/O, “How to NFC” đã trình diễn NFC để khởi tạo game và chia sẻ danh bạ, tài nguyên internet, ứng dụng, video CHƢƠNG II: CƠ SỞ LÝ THUYẾT 4
  15. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP Năm 2011 RIM 2011 là công ty đầu tiên đƣợc chứng nhận bởi MasterCard Worldwide cho các thiết bị của họ cho chức năng PayPass (thanh toán không cần chạm). Năm 2012 Sony giới thiệu “Smart Tags”, các thẻ dùng công nghệ NFC để thay đổi chế độ và dữ liệu cho smartphone của Sony ở tầm gần. Năm 2013 Samsung và Visa tuyên bố hợp tác để cùng phát triển thanh toán trên nền di động. 2.1.3. Các đặc tính kỹ thuật của NFC NFC là công nghệ giao tiếp không dây tầm ngắn, đặc trƣng yêu cầu một khoảng cách 4cm hoặc ít hơn. NFC hoạt động ở tần số 13,56MHz trên chuẩn giao tiếp ISO/IEC 18000-3 với tốc độ từ 106Kbit/s đến 424Kbit/s. NFC luôn liên quan đến 1 thiết bị khởi tạo và 1 thiết bị mục tiêu. Thiết bị khởi tạo sẽ chủ động phát ra sóng vô tuyến để cung cấp năng lƣợng cho thiết bị mục tiêu. Điều này cho phép các thiết bị mục tiêu NFC có hình thức rất đơn giản nhƣ các loại thẻ, giấy, móc chìa khóa vì không cần phải có nguồn cung cấp. Giao tiếp ngang hàng NFC đƣợc tiến hành khi cả 2 thiết bị đƣợc cấp nguồn. Các thẻ NFC có chứa dữ liệu và thông thƣờng chỉ đọc đƣợc, tuy nhiên cũng có các loại thẻ có thể ghi đƣợc. Nó có thể đƣợc lập trình bởi nhà sản xuất hoặc sử dụng các đặc tính kỹ thuật đƣợc cung cấp bởi cộng đồng NFC. Những thẻ này có thể chứa các thông tin cá nhân nhƣ thông tin thẻ tín dụng, thẻ ghi nợ, thẻ khách hàng, mã pin một cách an toàn cũng nhƣ những dữ liệu khác. Cộng đồng NFC định nghĩa 4 loại thẻ khác nhau về tốc độ giao tiếp và cấu hình liên quan, bộ nhớ, bảo mật, lƣu trữ dữ liệu và số lần ghi. Hiện tại bộ nhớ của các thẻ dao động từ 96 byte đến 4092 byte (4Kbyte). Với công nghệ thẻ không tiếp xúc, NFC sử dụng cảm ứng từ giữa 2 anten vòng kín đƣợc đặt trong từ trƣờng của nhau, hình thành hiệu ứng nhƣ 1 biến áp lõi không khí. NFC hoạt động trong phạm vi băng tần không cần cấp phép ở toàn cầu là 13,56MHz. Phần lớn năng lƣợng sóng radio đƣợc tập trung trong giới hạn băng thông cho phép ± 7kHz, nhƣng độ rộng phổ có thể rộng đến 1,8MHz khi điều chế ASK. Khoảng cách hoạt động về lý thuyết khi sử dụng ăngten tiêu chuẩn lên đến 20cm (khoảng cách hoạt động thực tế chỉ khoảng 4cm). Tốc độ truyền dữ liệu đƣợc hỗ trợ: 106, 212 hay 424 kbit/s ( tốc độ 848 kbit/s là không tuân thủ tiêu chuẩn ISO/IEC 18092). Có 2 chế độ hoạt động:  Chế độ giao tiếp bị động: Thiết bị khởi tạo phát ra trƣờng sóng mang và thiết bị mục tiêu đáp lại bằng cách điều chế sóng mang có sẵn đó, thiết bị CHƢƠNG II: CƠ SỞ LÝ THUYẾT 5
  16. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP mục tiêu có thể lấy năng lƣợng cho hoạt động của nó từ điện từ trƣờng phát ra bởi thiết bị khởi tạo, vì vậy nó còn đƣợc gọi là một bộ phát đáp.  Chế độ giao tiếp chủ động: Cả thiết bị khởi tạo và mục tiêu giao tiếp bằng cách luân phiên phát ra từ trƣờng riêng của mình. Thiết bị sẽ vô hiệu hóa trƣờng sóng radio của nó trong lúc chờ để nhận dữ liệu. Trong chế độ này, cả 2 thiết bị đều đƣợc cấp nguồn. NFC sử dụng 2 cách mã hóa khác nhau để truyền dữ liệu. Nếu 1 thiết bị chủ động truyền dữ liệu ở tốc độ 106 kbit/s thì sẽ sử dụng kiểu mã hóa sửa đổi Miller với 100% điều chế. Tất cả các trƣờng hợp khác sẽ sử dụng kiểu mã hóa Manchester với tỉ lệ điều chế 10%. Các thiết bị NFC có khả năng nhận và truyền dữ liệu cùng lúc. Vì vậy nó có thể kiểm tra những khả năng xung đột xảy ra nếu tần số tín hiệu nhận đƣợc và tần số tín hiệu truyền đi không khớp với nhau. 2.1.4. So sánh với kết nối Bluetooth Bảng 2.1. So sánh giữa NFC với Bluetooth Bluetooth năng NFC Bluetooth lƣợng thấp Tƣơng thích với Chuẩn ISO 18000-3 Kích hoạt Kích hoạt RFID Tổ chức phát ÍSO/IEC Bluetooth SIG Bluetooth SIG triển Tiêu chuẩn ISO 13157 IEEE 802.15.1 IEEE 802.15.1 mạng Loại mạng Điểm nối điểm WPAN WPAN Mã bảo mật Khống đối với RFID Có sẵn Có sẵn Tầm hoạt động Dƣới 0.2m Khoảng 100m Khoảng 50m Tần số 13.56 MHz 2.4 – 2.5 GHz 2.4 – 2.5 GHz Tốc độ bit 424 Kbit/s 2.1 Mbit/s 1.0 Mbit/s Thời gian cài đặt Dƣới 0.1s Dƣới 6s Dƣới 0.006s Lƣợng điện năng Dƣới 15mA Tùy theo cấp độ Dƣới 15mA NFC và Bluetooth đều là công nghệ giao tiếp tầm ngắn đƣợc tích hợp trong điện thoại di động. Nhƣ đƣợc miêu tả chi tiết ở dƣới thì NFC hoạt động ở tốc độ thấp hơn Bluetooth nhƣng điện năng tiêu thụ ít hơn nhiều và không yêu cầu bắt cặp. NFC cài đặt nhanh hơn kết nối Bluetooth tiêu chuẩn nhƣng không nhanh bằng kết nối Bluetooth năng lƣợng thấp. Với NFC, thay vì tự cấu hình bằng tay để định dạng thiết bị thì kết nối giữa 2 thiết bị NFC thành lập tự động một cách nhanh chóng chỉ trong vòng ít hơn 1 phần 10 giây. Tốc độ truyền dữ liệu tối đa của NFC (424 Kbit/s) thấp hơn Bluetooth phiên bản 2.1 (2.1 Mbit/s). NFC có tầm giao tiếp ngắn hơn, khoảng cách hoạt động tối đa nhỏ hơn 20cm, điều này giúp giảm thiểu nguy cơ CHƢƠNG II: CƠ SỞ LÝ THUYẾT 6
  17. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP từnhững nguy hại không mong muốn. Nó khiến cho NFC đặc biệt phù hợp trong khu vực đông ngƣời, nơi mà việc liên hệ giữa tín hiệu với thiết bị phát ra (hay mở rộng là ngƣời dùng) trở nên khó khăn. Trong tƣơng tác với Bluetooth, NFC tƣơng thích với cơ sở hạ tầng có sẵn của tiêu chuẩn RFID thụ động (13.56MHz ISO/IEO 18000-3). NFC yêu cầu lƣợng điện năng tiêu thụ thấp tƣơng tự nhƣ giao thức năng lƣợng thấp phiên bản 4.0 của kết nối Bluetooth. Tuy nhiên khi NFC hoạt động với một thiết bị không đƣợc cấp nguồn (thẻ thông minh không tiếp xúc, poster thông minh ) thì điện năng tiêu thụ của NFC lại lớn hơn kết nối Bluetooth V4.0, bởi vì việc tìm ra thẻ thụ động cần thêm năng lƣợng. 2.1.5. Các ứng dụng thực tế NFC Hình 2.1. Chia sẻ dữ liệu giữa 2 điện thoại qua giao tiếp NFC Hình 2.2. Các ứng dụng thực tế của NFC CHƢƠNG II: CƠ SỞ LÝ THUYẾT 7
  18. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP 2.2. Hệ điều hành Android 2.2.1. Giới thiệu Android là một hệ điều hành dành cho thiết bị di động nhƣ điện thoại, máy tính bảng và notebooks. Android đƣợc phát triển bởi Google, dựa trên nền tảng Linux kernel và các phần mềm nguồn mở. Ban đầu nó đƣợc phát triển bởi Android Inc (sau đó đƣợc Google mua lại) và gần đây nó trở thành một trong những phần mềm đứng đầu của liên minh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm cả nhà sản xuất, nhà phát triển ứng dụng cho thiết bị di dộng mà dẫn đầu là Google). Andorid đƣợc phát triển nhằm cạnh tranh với các hệ điều hành di động khác nhƣ iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm) Android có một cộng đồng phát triển ứng dụng rất lớn, hiện có khoảng hơn 400.000 ứng dụng có sẵn cho Android (1/2012) và đang liên tục đƣợc cập nhật. Ứng dụng đƣợc phát triển bằng ngôn ngữ Java kết hợp với thƣ viện Java có sẵn của Google. Các nhà phát triển ứng dụng có thể sử dụng máy tính chạy hệ điều hành Windows hoặc MacOS hoặc Linux kết hợp với Android SDK để phát triển ứng dụng cho Android. 2.2.2. Lịch sử phát triển Tập đoàn Android (Inc) đƣợc thành lập tại Palo Alto, California, Hoa Kỳ vào tháng 10 năm 2003 bởi Andy Rubin, Rich Miner, và một số thành viên khác, với mục đích để phát triển hay tạo ra các thiết bị di động thông minh hơn phục vụ các mục đích cho lợi ích con ngƣời. Nhân viên chính tham gia vào việc thành lập Android Inc bao gồm Andy Rubin, cũng là đồng sáng lập của Danger Inc, Andy McFadden là ngƣời đã làm việc với Rubin tại WebTV, và Chris White ngƣời đã lãnh đạo việc thiết kế và giao diện của WebTV. Nhân viên quan trọng khác bao gồm Richard Miner, đồng sáng lập của Wildfire Communications Inc và cựu phó chủ tịch công nghệ và tƣơng lai ở Orange, và tất cả những ngƣời trong số họ sử dụng các kinh nghiệm có đƣợc để góp phần vào việc phát triển ngành công nghiệp không dây của công ty. Bƣớc đầu, hệ điều hành Android chỉ đơn thuần là phần mềm trên điện thoại di động. Google mua lại Android Inc vào tháng 8 năm 2005 và Android Inc trở thành một công ty con của Google Inc. Các nhân viên chính của Android Inc, trong đó có Andy Rubin, Rich Miner và Chris White vẫn tiếp tục làm việc tại công ty này sau khi bị mua lại. Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và thiết bị cầm tay nhƣ: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone CHƢƠNG II: CƠ SỞ LÝ THUYẾT 8
  19. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP Group Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu ngƣời tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android. Android đƣợc thiết kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác và các lập trình viên trên các thiết bị cầm tay. Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng T-Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google đƣợc cấp giấy phép mã nguồn mở cho Android Platform. Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay đƣợc gọi là Android Dev Phone 1 có thể chạy đƣợc các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chƣa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tƣ năm 2009, cùng với một số tính năng khác. Chẳng hạn nhƣ nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder. Bảng 2.2. Các phiên bản Android Phiên bản Ngày phát hành Tên gọi 1.0 09/2008 Chƣa có 1.1 02/2009 Chƣa có 1.5 04/2009 Cupcake 1.6 09/2009 Donut 2.0 10/2009 Eclair 2.1 01/2010 Eclair 2.2 05/2010 Froyo 2.3 12/2010 Gingerbread 3.x 2011 Honeycomb 4.0 11/2011 Ice - cream Sandwich CHƢƠNG II: CƠ SỞ LÝ THUYẾT 9
  20. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP 4.x 2012 – 2013 Jelly Bean 4.4 10/2013 Kitkat 5.x 2014 – 2015 Lollipop 6.0 10/2015 Marshmallow 2.2.2.1. Kiến trúc hệ điều hành Android Hình 2.3. Cấu trúc Stack của Android OS 2.2.2.2. Applications Tích hợp sẵn một số ứng dụng cần thiết cơ bản nhƣ: contacts, phone, Browser, Camera Tất cả ứng dụng chạy trên Android đều đƣợc viết trên nền tảng Java (tuy nhiên một số ứng dụng vẫn có thể viết bằng C++). Các ứng dụng đƣợc cài thêm nhƣ các phần mềm chứng khoán (Stock), các trò chơi (Game), từ điển Mỗi chƣơng trình có đặc điểm là: Viết bằng Java, phần mở rộng là apk. Khi mỗi ứng dụng đƣợc chạy, có một phiên bản Virtual Machine đƣợc dựng lên để phục vụ cho nó. Nó có thể là một Active Program - Chƣơng trình có CHƢƠNG II: CƠ SỞ LÝ THUYẾT 10
  21. ĐỒ ÁN TỐT NGHIỆP NĂM 2016 GVHD: ThS. NGUYỄN VĂN HIỆP giao diện với ngƣời sử dụng hoặc là một background - Chƣơng trình chạy nền hay là dịch vụ. Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chƣơng trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance) đƣợc phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. Các ứng dụng đƣợc gán số ID của ngƣời sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống. Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một ứng dụng của bên thứ ba đƣợc phép chạy nền. Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không đƣợc phép sử dung quá 5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng CPU. Ứng dụng không có điểm vào cố định, không có phƣơng thức main để bắt đầu. 2.2.2.3. Applications Framework Bằng việc phát triển trên nền tảng mã nguồn mở (Open source code), Android cung cấp cho các nhà phát triển phần mềm khả năng xây dựng các ứng dụng cực kỳ phong phú và sinh động và sáng tạo. Họ đƣợc tự do tận dụng các tài nguyên về thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy (services run), các thiết lập báo cáo, thông báo, trạng thái Nhà phát triển có thể truy cập vào các hàm API cùng một khuôn khổ đƣợc sử dụng bởi các ứng dụng lõi. Các kiến trúc đƣợc thiết kế đơn giản hóa việc sử dụng lại các thành phần. Tầng Application Framework bao gồm nhiều dịch vụ cho việc quản lý: Activity Manager: quản lý vòng đời (lifecycle) của các ứng dụng điều hƣớng cho các avtivity. Window Manager: cung cấp khả năng quản lý giao diện ngƣời dùng. View System: tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng nhƣ: TextView, EditText, GirdView, TableView Content Providers: cho phép các ứng dụng truy xuất dữ liệu từ các ứng dụng khác (tính kế thừa), ví dụ nhƣ ứng dụng Phone sẽ truy xuất dữ liệu thông tin về số điện thoại của ngƣời đƣợc gọi đƣợc chứa trong ứng dụng Contact. Resource Manager: cung cấp truy xuất tới các tài nguyên không phải là mà nguồn (source code), chẳng hạn nhƣ graphics, layout CHƢƠNG II: CƠ SỞ LÝ THUYẾT 11
  22. android:id="@+id/TextViewChangePWPasswordNewConfirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/EditTextChangePWPasswordNew" android:layout_below="@+id/EditTextChangePWPasswordNew" android:layout_marginTop="21dp" android:text="Nhập lại mật khẩu mới" android:textAppearance="?android:attr/textAppearanceMedium" /> 88