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. 17 do an Chương 3: Thiết kế và xây dựng hệ thống Trình bày sơ đồ khối của hệ thống và giải thích hoạt động,chức năng của từng khối. Đưa ra các lựa chọn về phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài.
Đưa ra giải thuật phần mềm. Chương 4: Kết quả thực hiện Trình bày kết quả đã thực hiện về phần cứng và phần mềm, đưa ra nhận xét. Chương 5: Kết luận và phạm vi ứng dụng Nêu các ưu điểm và nhược điểm của đề tài, hướng khắc phục và phạm vi sử dụng trong thực tế. 18 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 MODULE ESP8266 NODEMCU V1.1 Giới thiệu ESP8266 là dạng Vi điều khiển tích hợp Wifi (Wifi SoC) được phát triển bởi Espressif Systems, một nhà sản xuất Trung Quốc có trụ sở tại Thượng Hải.
Với Vi điều khiển và Wifi tích hợp, ESP8266 cho phép lập trình viên có thể thực hiện vô số các tác vụ TCP/IP đơn giản để thực hiện vô số các ứng dụng khác nhau, đặc biệt là các ứng dụng IoT. Tuy nhiên, vào thời điểm ra mắt năm 2014, hầu như chỉ có tài liệu bằng tiếng Trung Quốc nên ESP8266 chưa được phổ biến như hiện nay. Module ESP8266 có giá thành rẻ, phải nói là rẻ nhất trong tất cả các loại Wifi SoC từ trước tới nay (trước ESP8266 có series CC3xxx từ Ti rất mắc nên không phổ biến), chỉ khoảng 2USD cho phiên bản đầu tiên, điều này đã thu hút các IoT-er khám phá cũng như dịch các tài liệu của ESP8266 sang tiếng Anh và phát triển vô số các ứng dụng kèm theo. Sau nhiều năm phát triển, hiện nay đã có hơn 14 phiên bản ESP ra đời, trong đó phổ biến nhất là ESP-12.1: Esp8266 Module ESP-12 kết hợp với firmware ESP8266 trên Arduino và thiết kế phần cứng giao tiếp tiêu chuẩn đã tạo nên NodeMCU, loại Kit phát triển ESP8266 phổ biến nhất trong thời điểm hiện tại.
Với cách sử dụng, kết nối dễ dàng, có thể lập trình, nạp chương trình trực tiếp trên phần mềm Arduino, đồng 19 do an thời tương tích với các bộ thư viện Arduino sẵn có, NodeMCU là sự lựa chọn hàng đầu cho các bạn muốn tìm hiểu về ESP8266 hiện nay.2: Module Esp8266 NodeMcu V1.2 Cấu trúc Module Esp8266 NodeMCU V1.0 LUA - Chip: ESP8266EX - WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n - Điện áp hoạt động: 3.3V - Điện áp vào: 5V thông qua cổng USB - Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0) - Số chân Analog Input: 1 (điện áp vào tối đa 3.3V) - Bộ nhớ Flash: 4MB - Giao tiếp: Cable Micro USB Hỗ trợ bảo mật: WPA/WPA2 - Tích hợp giao thức TCP/IP - Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU - Lua 20 do an Hình 2.3: Sơ đồ chân Module Esp8266 NodeMCU V1.4 Phần mềm lập trình Arduino IDE Thiết kế Module nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Esp8266 NodeMCU, tuy nhiên sức mạnh thực sự của nó nằm ở phần mềm. Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn. 21 do an Hình 2.4: Giao diện IDE.
Arduino Toolbar: có một số button và chức năng của chúng như sau : : Verify : kiểm tra code có lỗi hay không : Upload: nạp code đang soạn thảo vào Arduino. : New, Open, Save : Tạo mới, mở và Save sketch. : Serial Monitor: Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính .2 MODULE CẢM BIẾN VÂN TAY R305 2.1 Giới thiệu về cảm biến vân tay R305 Cảm biến dùng để nhận diện dấu vân tay, sử dụng cảm biến này thực sự dễ dàng với chuẩn giao tiếp UART dùng để kết nối với các vi điều khiển hoặc 22 do an máy vi tính thông qua modul RS232 hoặc USB-Serial. Bạn cũng có thể lưu trữ dấu vân tay mới - lên đến 120 dấu vân tay vào bộ nhớ FLASH trên mạch.
Đã có một số thư viện để giúp bạn sử dụng bộ cảm biến này với Arduino , chẳng hạn như các thư viện adafruit dấu vân tay.5: Cảm biến vân tay R305.2 Thông số kỹ thuật R305 Hình 2. 23 do an Bảng 2.1: danh mục các chân kết nối module R305. Chân số Tên Chức năng 1 VCC Nguồn cung cấp 2 TD Truyền dữ liệu 3 RD Nhận dữ liệu 4 GND Nối đất 2.3 Nguyên tắc hoat động của module R305 Quá trình xử lý dấu vân tay gồm hai phần: quét vân tay và so sánh sự trùng khớp của hai dấu vân tay. Khi quá trình quét vân tay diễn ra, một đèn LED màu đỏ sẽ phát sáng, sau đó cảm biến hình ảnh sẽ lưu lại hình ảnh dấu vân tay.
Người dùng khi tạo một mẫu vân tay, cần quét ngón tay hai lần, hệ thống sẽ xử lý hai ảnh vân tay để tạo ra một mẫu và lưu mẫu đó vào thư viện của module. Khi tìm kiếm hệ thống sẽ so sánh dấu vân tay cần tìm với toàn bộ thư viện của module, sau đó sẽ trả về kết quá tìm thấy hoặc không tìm thấy mẫu vân tay đó.4 Cấu trúc lệnh để điều khiển module R305 và dữ liệu nhận về Quét vân tay. Lệnh gửi đi: Bảng 2.2: Lệnh quét vân tay 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Instruction Check Header address identifier length code sum EF01H FFFFFFFFH 01H 0003H 01H 0005H Dữ liệu nhận về: 24 do an Bảng 2.3: Dữ liệu trả về sau khi quét 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Confirmation Check Header address identifier length code sum EF01H FFFFFFFFH 07H 0003H xxH sum Ghi chú: confirmation code = 00H: finger collection successs. confirmation code = 01H: error when receiving package.
confirmation code = 02H: can’t detect finger. confirmation code = 03H: fail to collect finger. Đưa hình ảnh vân tay vào biến tạm Lệnh gửi đi: Bảng 2.4: Lệnh đưa ảnh vào biến tạm 2 byte 4 byte 1 byte 2 byte 1 byte 1 byte 2 byte Module Package Package Instruction Buffer Check Header address identifier length code number sum EF01H FFFFFFFFH 01H 0003H 01H BuferID 0005H Ghi chú: ID của 2 bộ nhớ tạm CharBuffer1 và CharBuffer2 tương ứng là 1h và 2h, các giá trị khác thì xem như là CharBuffer2. Dữ liệu nhận về: Bảng 2.5: Dữ liệu trả về sau khi đưa ảnh vào biến tạm 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Confirmation Check Header address identifier length code sum EF01H FFFFFFFFH 07H 0003H xxH sum 25 do an Ghi chú: confirmation code = 00H: generate character file complete.
confirmation code = 01H: error when receiving package. confirmation code = 06H: fail to generate character file due to the over- disorderly fingerprint image. confirmation code = 07H: fail to generate character file due to lackness of character point or over-smallness of fingerprint image. confirmation code = 15H: fail to generate the image for the lackness of valid primary image.
Tổng hợp thông tin 2 dấu vân tay trong biến tạm Lệnh gửi đi: Bảng 2.6: Lệnh tổng hợp thông tin 2 dấu vân tay 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Instruction Check Header address identifier length code sum EF01H FFFFFFFFH 01H 0003H 05H 0009H Dữ liệu nhận về: Bảng 2.7: Dữ liệu nhận về sau khi tổng hợp 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Confirmation Check Header address identifier length code sum EF01H FFFFFFFFH 07H 0003H xxH sum Ghi chú: confirmation code = 00H: operation success. confirmation code = 01H: error when receiving package. confirmation code = 0aH: fail to combine the character files. That’s, the character files don’t belong to one finger.
26 do an Lưu vân tay Lệnh gửi đi: Bảng 2.8: Lệnh lưu vân tay 2 byte 4 byte 1 byte 2 byte 1 byte 1 byte 2 byte 2 byte Modul Package Packag Buffer Locatio Heade e Instructio checksu identifie e numbe n r addres n code m r length r number s EF01 xxxxH 01H 0006H 06H xxH PageID sum H Dữ liệu nhận về: Bảng 2.9: Dữ liệu gởi về sau khi lưu. 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Confirmation Check Header address identifier length code sum EF01H FFFFFFFFH 07H 0003H xxH sum Ghi chú: confirmation code = 00H: storage success. confirmation code = 01H: error when receiving package. confirmation code = 0bH: addressing PageID is beyond the finger library.
confirmation code = 18H: error when writing Flash. Xóa toàn bộ vân tay. Lệnh gửi đi: Bảng 2.10: Lệnh xóa toàn bộ dấu vân tay 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte 27 do an Module Package Package Instruction Check Header address identifier length code sum EF01H FFFFFFFFH 01H 0003H 0DH 0011H Dữ liệu nhận về: Bảng 2.11: Dữ liệu gởi về sau khi lưu 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Confirmation Check Header address identifier length code sum EF01H FFFFFFFFH 07H 0003H xxH sum Ghi chú: confirmation code = 00H: empty success. confirmation code = 01H: error when receiving package.
confirmation code = 11H: fail to clear finger library. Tìm dấu vân tay trong bộ nhớ flash. Lệnh gửi đi Bảng 2.12: Lệnh tìm dấu vân tay 2 1 byte 2 byte 2 byte 2 4 byte 1 byte 2 byte 1 byte byte byte Modu Packag Bufer Parame Parame Packa Che Head le e Instructi nuber ter ter ge ck er addre identifi on code length sum ss er EF01 xxxx 0008 Buffer StartPa PageNu 01H 04H sum H H H ID ge m Dữ liệu nhận về 28 do an Bảng 2.13: Dữ liệu gửi về sau khi tìm 2 byte 2 byte 2 2 byte 4 byte 1 byte 2 byte 1 byte byte Packag Packa Chec Head Module e Confirmati ge k er address identifi on code length sum er EF01 FFFFFFF PageI MatchSco 07H 0007H xxH sum H FH D re So sánh 2 dấu vân tay. Lệnh gửi đi: Bảng 2.14: Lệnh so sánh 2 dấu vân tay.
2 byte 4 byte 1 byte 2 byte 1 byte 2 byte Module Package Package Instruction Check Header address identifier length code sum EF01H FFFFFFFFH 01H 0003H 03H 0007H Dữ liệu nhận về: Bảng 2.15: Dữ liệu gởi về sau khi so sánh. 2 byte 4 byte 1 byte 2 byte 1 byte 2 byte 2 byte Module Package Package Confirmation Matching Check Header address identifier length code score sum EF01H FFFFFFFFH 07H 0003H xxH xxH sum Ghi chú: confirmation code = 00H: templates of the two buffers are matching.