1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế giải pháp phần mềm và quản lý csdl cho hệ thống cửa điện tử bảo mật ứng dụng công nghệ iot

73 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế giải pháp phần mềm và quản lý CSDL cho hệ thống cửa điện tử bảo mật ứng dụng công nghệ IoT
Tác giả Huỳnh Văn Phương
Người hướng dẫn TS. Tôn Thất Đồng
Trường học Đại học Duy Tân
Chuyên ngành Điện tự động
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 73
Dung lượng 10,85 MB

Nội dung

Để thực hiện được đề tài, em đã sử dụng:  Arduino trung tâm để xử lý các tín hiệu từ website, thẻ từ, bàn phím và quyết định việc mở cửa  Các ESP để gửi dữ liệu lưu trữ lên SQL, nhận d

Trang 1

TRƯỜNG CÔNG NGHỆ KHOA ĐIỆN – ĐIỆN TỬ

HUỲNH VĂN PHƯƠNG

THIẾT KẾ GIẢI PHÁP PHẦN MỀM VÀ QUẢN LÝ CSDL CHO HỆ THỐNG CỬA ĐIỆN TỬ BẢO MẬT ỨNG DỤNG CÔNG

NGHỆ IOT

ĐỒ ÁN TỐT NGHIỆP NGÀNH ĐIỆN TỰ ĐỘNG

Trang 2

KHOA ĐIỆN – ĐIỆN TỬ

Trang 3

TRƯỜNG ĐẠI HỌC DUY TÂN CỘNG HOÀ XÃ HỘI CHỦ NGHĨA

VIỆT NAM

Độc lập - Tự do – Hạnh phúc

KHOA ĐIỆN ĐIỆN TỬ

PHIẾU NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP

(Dành cho giảng viên hướng dẫn)

Họ và tên sinh viên: Huỳnh Văn Phương MSSV:25211702222

Tên đề tài: Thiết kế giải pháp phần mềm và quản lý CSDL cho hệ thống

cửa điện tử bảo mật ứng dụng công nghệ IoT

Ngành đào tạo: Điện tự động

Họ và tên GV hướng dẫn: Ts Tôn Thất Đồng

Ý KIẾN NHẬN XÉT

1 Nhận xét về tinh thần, thái độ làm việc của sinh viên:

2 Nhận xét về kết quả thực hiện của ĐATN: 2.1.Kết cấu, cách thức trình bày ĐATN:

2.2 Nội dung đồ án: (Cơ sở lý luận, tính thực tiễn và khả năng ứng dụng của đồ án, các hướng nghiên cứu có thể tiếp tục phát triển)

2.3.Kết quả đạt được:

Trang 4

2.4 Những tồn tại (nếu có):

1 Hình thức và kết cấu ĐATN 30

Đúng format với đầy đủ cả hình thức và nội dung

của các mục

10

Mục tiêu, nhiệm vụ, tổng quan của đề tài 10

Tính cấp thiết của đề tài 10

Khả năng ứng dụng kiến thức toán học, khoa học và

kỹ thuật, khoa học xã hội…

5

Khả năng thực hiện/phân tích/tổng hợp/đánh giá 10

Khả năng thiết kế chế tạo một hệ thống, thành phần,

hoặc quy trình đáp ứng yêu cầu đưa ra với những

ràng buộc thực tế

15

Khả năng cải tiến và phát triển 15

Khả năng sử dụng công cụ kỹ thuật, phần mềm

Trang 5

PHIẾU NHẬN XÉT ĐỒ ÁN CỦA GIẢNG VIÊN PHẢN BIỆN

(Dành cho giảng viên hướng dẫn)

Họ và tên sinh viên: Huỳnh Văn Phương

Tên đề tài: Thiết kế giải pháp phần mềm và quản lý CSDL cho hệ thống cửa điện tử

bảo mật ứng dụng công nghệ IoT

Nhận xét – ý kiến: (GV nêu những nhận xét chung, những sai sót trong thuyết

minh, bản vẽ hoặc những góp ý cho (nhóm) sinh viên):

Câu hỏi: 1

2

3

Giảng viên phản biện

(Ký và ghi rõ họ tên)

Trang 6

TÓM TẮT KHOÁ LUẬN

Đề tài mà em đã chọn có tên là “Hệ thống cửa bảo mật ứng dụng IoT”

Để thực hiện được đề tài, em đã sử dụng:

 Arduino trung tâm để xử lý các tín hiệu từ website, thẻ từ, bàn phím và quyết định việc mở cửa

 Các ESP để gửi dữ liệu lưu trữ lên SQL, nhận dữ liệu từ arduino cũng như thu thập hình ảnh và lưu trữ lên Google Drive

 Module sim để thực hiện việc gửi tin nhắn và gọi điện cảnh báo mỗi khi có trường hợp đột nhập

Sau khi hoàn thành và kiểm tra thì kết quả là hệ thống chạy ổn định đảmbảo yêu cầu bảo mật, đôi khi có chút chậm do tín hiệu wifi, chất lượng thiết bịcũng như các dây kết nối

Trang 7

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Mục tiêu dự kiến sẽ đạt được:

 Nghiên cứu chế tạo ra được mô hình smartlock tối ưu và hiệu quả nhất

 Nghiên cứu và chọn thiết bị, linh kiện cho tốt ưu và hiệu quả nhất

 Tăng cường bảo mật và tiết kiệm thời gian cho người sử dụng smartlock

 Thiết kế được giao diện người dùng hệ thống đơn giản thân thiện với người dùng để quản lí tài khoản người dùng, lịch sử mở cửa, screen short lưu vào database Thực hiện điều chỉnh chế độ bảo mật và điều khiển đóng mở cửa từ

xa trên hệ thống web

 Đảm bảo yêu cầu về bảo mật: xử lí bảo mật ứng dụng module sim để thực hiện việc gửi tin nhắn và gọi điện cảnh báo mỗi khi có hợp đột nhập, lập trình Arduino chức năng lớp bảo mật

Nhiệm vụ đồ án tốt nghiệp: (các nội dung sẽ thực hiện trong đề tài):

 Thiết kế sơ đồ khối chức năng chính của hệ thống: khối xử lí âm thanh, khối truyền nhận không dây, khối hiển thị, khối bàn phím, khối nhận diện thẻ từ, khối camera, khối cảnh báo di động, khối cảnh báo âm thanh

 Tìm hiểu kĩ và lựa chọn thiết bị phù hợp với các khối chức năng đã thiết kế

 Tìm hiểu, nghiên cứu lập trình cùng bạn làm chung và nạp code cho các thiếtbị: Lập trình web html, lập trình logic Arduino và ESP cam

 Lắp mạch: thiết kế sơ đồ nối mạch cho hệ thống, sau đó tiến hành nối mạch theo sơ đồ đã thuyết kế

 Lưu đồ giải thuật: vẽ lưu đồ giải thuật cho chương trình chính của hệ thống,

vẽ lưu đồ chương trình quẹt thẻ, vẽ lưu đồ chương trình nhập mật khẩu, vẽ lưu đồ chương trình quản lí qua website và lưu đồ điều khiển khóa cửa

 Kiểm tra sửa lỗi, tối ưu hóa, nâng cấp thêm tính năng hệ thống: kiểm tra, sửa lỗi, tối ưu những phần chưa ổn định của hệ thống và nâng cấp thêm tính nănghay cho hệ thống

Trang 8

LỜI CẢM ƠN

Đồ án này có thể xem là kết quả của quá trình học tập, tích luỹ kiến thứccủa em trong những năm học vừa qua Nhưng kiến thức chỉ là lý thuyết để có thểthực hiện được đồ án này em đã nhận được sự giúp đỡ và hỗ trợ rất nhiều từ cácthầy cô Sự hướng dẫn, chỉ dạy từ quý thầy cô đã giúp em có thể hoàn thànhđược đồ án này một cách trọn vẹn như những gì đã đặt ra trước khi bắt đầu tìmhiểu và thực hiện

Chính vì lẽ đó, em xin gửi lời cảm ơn đến Khoa Điện điện tử nói chung cũng như Chuyên ngành điện tự động đã tạo điều kiện để sinh viên em có thể

thực hiện đồ án nhằm củng cố lại kiến thức đã học đồng thời tìm hiểu, nghiêncứu những kiến thức mới để có thể áp dụng vào công việc trong tương lai

Đặc biệt, em xin chân thành cảm ơn thầy Tôn Thất Đồng đã tận tính

hướng dẫn, giúp đỡ em trong suốt quá trình thực hiện đồ án Nhờ sự hỗ trợ cũngnhư chỉ dạy của thầy mà em mới có thể hoàn thành đồ án như mong đợi

Em xin cam đoan đây là công trình nghiên cứu của em

Các số liệu, kết quả nêu trong khóa luận là trung thực và chưa từng được

ai công bố trong bất kì công trình nào khác

Một lần nữa, em xin chân thành cảm ơn!

Trang 9

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu khoa học độc lập của tôi Những sốliệu trong luận văn là hoàn toàn trung thực, có nguồn gốc rõ ràng và chưa từng được

ai công bố trong bất kỳ công trình nào khác Các kết quả nghiên cứu do chính tôithực hiện dưới sự hướng dẫn của giảng viên hướng dẫn

Tôi xin bày tỏ lòng biết ơn đối với TS Tôn Thất Đồng, người đã tận tình hướng dẫntôi trong suốt quá trình nghiên cứu

Tôi cũng xin chân thành cảm ơn các thầy, cô giáo Trường Đại Học Duy Tân đã hỗtrợ để tôi hoàn thành đồ án tốt nghiệp này

Trang 10

MỤC LỤC

PHIẾU NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP i

PHIẾU NHẬN XÉT ĐỒ ÁN CỦA GIẢNG VIÊN PHẢN BIỆN iii

TÓM TẮT KHOÁ LUẬN iv

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP v

LỜI CẢM ƠN vi

LỜI CAM ĐOAN vii

MỤC LỤC viii

DANH SÁCH HÌNH x

DANH SÁCH BẢNG xi

DANH SÁCH CHỮ VIẾT TẮT xiii

CHƯƠNG 1: TỔNG QUAN 1

1 Bối cảnh của đề tài 1

2 Lý do thực hiện đề tài 1

3 Mục tiêu của đề tài 1

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3

1 Ngôn ngữ lập trình 3

1.1 Ngôn ngữ Arduino 3

Dễ dàng sử dụng, phù hợp cho người mới: 3

1.2 Ngôn ngữ html 4

2 Các chuẩn giao tiếp 5

2.1 Chuẩn giao tiếp UART 5

3 Arduino UNO R3 11

3.1 Giới thiệu 11

3.2 Năng lượng 12

3.3 Bộ nhớ 13

3.4 Các cổng vào/ra 13

4 NodeMCU ESP32 14

4.1 Giới thiệu 14

4.2 Thông số kỹ thuật 15

5 ESP32-CAM OV2640 16

5.1 Giới thiệu 16

5.2 Thông số kỹ thuật 16

6 Module RFID RC522 17

6.1 Giới thiệu 17

Trang 11

6.2 Thông số kỹ thuật 18

7 Module bàn phím ma trận 4×4 19

7.1 Giới thiệu 19

7.2 Thông số kỹ thuật và sơ đồ nối dây 19

8 Module SIM800A GSM/GPRS 20

8.1 Giới thiệu 20

8.2 Thông số kỹ thuật 20

9 Servo SG90 21

9.1 Giới thiệu 21

9.2 Thông số kỹ thuật 21

10 Module Tiny RTC I2C 21

10.1 Giới thiệu 21

10.2 Thông số kỹ thuật 22

11 Module mở rộng chân PCF8574T giao tiếp I2C 22

11.1 Giới thiệu 22

11.2 Thông số kỹ thuật 23

12 LCD 1602 tích hợp sẵn module chuyển đổi I2C 23

12.1 Giới thiệu 23

12.2 Thông số kỹ thuật 24

CHƯƠNG 3: NỘI DUNG ĐỀ TÀI 25

1 Chuẩn bị 25

1.1 Thiết kế sơ đồ khối chức năng chính của hệ thống 25

1.2 Lựa chọn thiết bị phù hợp với các khối chức năng 26

2 Thực hiện 33

2.1 Nạp code cho các thiết bị 33

Cài Preferences: 33

2.2 Lắp mạch 36

2.3 Lưu đồ giải thuật 38

2.4 Nguyên lý hoạt động 43

CHƯƠNG 4: KẾT LUẬN 49

1 Kết quả đạt được 49

Mô hình hệ thống cửa: 49

Website quản lý hệ thống: 49

Website camera: 52

2 Hạn chế của đồ án 52

3 Hướng phát triển 53

TÀI LIỆU THAM KHẢO 54

Trang 12

DANH SÁCH HÌNH

Hình 1 Chuẩn giao tiếp UART 5

Hình 2 Cách thức hoạt động của UART 7

Hình 3 Cấu trúc packet trong UART 7

Hình 4 Truyền nhận dữ liệu song song với bus dữ liệu 7

Hình 5 Truyền bit vào khung dữ liệu 8

Hình 6 Truyền nhận giữa 2 UART 8

Hình 7 Loại bỏ bit khỏi khung dữ liệu 8

Hình 8 Chuyển dữ liệu nối tiếp thành song song gửi đến bus dữ liệu 9

Hình 9 Chuẩn giao tiếp I2C 9

Hình 10 Cấu trúc tin nhắn truyền trong I2C 10

Hình 11 Arduino UNO R3 11

Hình 12 NodeMCU ESP32 15

Hình 13 ESP32-CAM OV2640 16

Hình 14 Module RFID-RC522 18

Hình 15 Bàn phím ma trận 4x4 19

Hình 16 Sơ đồ nối dây của bàn phím 19

Hình 17 Module sim 800A 20

Hình 18 Servo SG90 21

Hình 19 Module Tiny RTC I2C 22

Hình 20 Module mở rộng chân PCF8574T giao tiếp I2C 23

Hình 21 LCD 1602 tích hợp sẵn module chuyển đổi I2C 24

Hình 22 Giao diện Arduino IDE 32

Hình 23 Chọn Preferences 33

Hình 24 Cài Preferences cho Arduino IDE 33

Hình 25 Set Tools cho Aduino UNO R3 34

Hình 26 Set Tools cho NodeMCU ESP32 34

Hình 27 Set Tools cho ESP32-CAM OV2640 35

Hình 28 Sơ đồ nối mạch 35

Hình 29 Mạch sau khi lắp 36

Hình 30 Mô hình hệ thống cửa hoàn chỉnh 47

Hình 31 Giao diện đăng nhập của website 47

Hình 32 Giao diện trang chủ (có thể tương tác với hệ thống) 48

Hình 33 Giao diện quản lý thông tin người dùng 48

Hình 34 Giao diện quản lý lịch sử mở cửa của hệ thống 49

Hình 35 Giao diện quản lý dữ liệu camera 49

Hình 36 Giao diện website camera 50

Trang 13

DANH SÁCH BẢNG

Bảng 1 Cấu trúc gói dữ liệu UART 6

Trang 14

DANH SÁCH CHỮ VIẾT TẮT

BLE Bluetooth Low Energy Bluetooth năng lượng thấp

EEPROM Electrically Eraseble Programmable

Read Only Memory

Bộ nhớ chỉ đọc lập trình có thểxóa bằng điện

ESP Electronic Stability Program Hệ thống cân bằng điện tử

I2C Inter – Integrated Circuit Giao thức giao tiếp nối tiếp đồng

bộ

IC Integrated Circuit Vi mạch

IoT Internet of Things Internet vạn vật

PWM Pulse Width Modulation Điều chế độ rộng xung

RAM Random Access Memory Bộ nhớ khả biến (bộ nhớ đệm)

RFID Radio Frequency Identification Nhận dạng qua tần số vô tuyến

RTC Real Time Clock Đồng hồ thời gian thực

SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp

SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh

TX Transmit Truyền

UART Universal Asynchronous Receiver /

Transmitter Thu-phát không đồng bộ đa năng

Vin Voltage Input Điện áp vào

CSDL Database Cơ sở dữ liệu

Trang 15

CHƯƠNG 1: TỔNG QUAN

1 Bối cảnh của đề tài

Hiện nay, vấn nạn trộm cắp tài sản, đánh cắp thông tin cá nhân cũng như

tổ chức thông qua các thiết bị điện tử bị mất đang là một trong những vấn đềnhức nhối và đáng báo động Bằng chứng là chúng ta có thể dễ dàng bắt gặp rấtnhiều vụ như vậy trên các bản tin thời sự hằng ngày Có rất nhiều nguyên nhândẫn đến sự việc này như là cửa ra vào không chắc chắn, dễ dàng xâm nhập; nạnnhân thiếu cảnh giác, bất cẩn; vấn đề bảo mật chưa được chú trọng quan tâm.Nhìn chung tất cả các nguyên nhân trên đều xuất phát từ cửa ra vào bởi đây gầnnhư là con đường duy nhất và dễ dàng nhất để những kẻ xấu có thể xâm nhậpvào nhà, cơ quan thực hiện hành vi trộm cắp Chính vì lẽ đó, cần có giải phápbảo mật cửa để khắc phục cũng như hạn chế vấn đề này

 Đề tài gần gũi phù hợp với kiến thức và khả năng sinh viên

 Đề tài tạo điều kiện để có thể áp dụng được những kiến thức đã học về vi điều khiển, IoT, lập trình vi điều khiển, các giao thức giao tiếp giữa vi điều khiển,…

 Đề tài cũng có nhiều kiến thức mới có thể tìm hiểu, nghiên cứu và áp dụng trong tương lai

3 Mục tiêu của đề tài

Mục tiêu mà em đặt ra khi thực hiện đề tài là:

 Thiết kế được hệ thống chạy ổn định đầy đủ các chức năng đề ra

Trang 16

 Có thể ứng dụng thực tế và đưa vào sử dụng trong tương lai

Trang 17

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

vì vậy, dù không biết nhiều về điện tử cũng vẫn có thể lập trình để tạo ra nhữngứng dụng thú vị

Thêm vào đó, vì ngôn ngữ lập trình Arduino là một platform đã được tiếnhành chuẩn hóa, nên đã có rất nhiều các bo mạch mở rộng Những bo mạch nàygọi là shield dùng để cắm chồng lên bo mạch Arduino Có thể hình dung đơngiản rằng nó là “Library” của các ngôn ngữ lập trình khác trên thế giới

1.1.2 Ưu điểm

Ngôn ngữ lập trình Arduino rất rẻ: Lập trình Arduino là một ngôn ngữ

lập trình quen thuộc mà có thể dễ dàng tiếp cận cực kỳ dễ dàng mà khôngtốn quá nhiều chi phí So với những người anh em khác, ngôn ngữ lậptrình Arduino khá rẻ và không yêu cầu thêm nhiều phụ phí khi sử dụng

Có thể dễ dàng mua được một bộ ngôn ngữ lập trình Arduino chỉ với giávài trăm ngàn

Dễ dàng sử dụng, phù hợp cho người mới:

o Ngôn ngữ lập trình Arduino hiện đang sử dụng phiên bản đơn giảnhóa của ngôn ngữ C++ Đây chính là một trong những ưu thế cực

kỳ lớn của Arduino so với những chương trình phần mềm thiết kếkhác Thêm vào đó, hiện nền tảng Arduino có sử dụng phần mềmIDE dành cho người mới học lập trình

o Không chỉ thế, cộng đồng trực tuyến về lập trình Arduino rất lớn

Trang 18

Có hàng triệu người dùng và tổ chức trên thế giới đều đang sửdụng nó Bởi vậy, có rất nhiều bài hướng dẫn và các dự án có sẵntrên Internet dễ dàng có thể tìm kiếm để học và bắt đầu nghiên cứumột cách đơn giản.

Đa nền tảng: Không phải tự nhiên phần mềm lập trình Arduino lại thu

hút và phổ biến đến như vậy Một phần lớn là do lập trình Arduino IDE cókhá nhiều nền tảng Điều này đồng nghĩa với việc có thể khởi động ngônngữ này trên Windows, Macintosh OSX Thậm chí với cả hệ điều hànhLinux so với các hệ thống vi điều khiển khác chỉ chạy Windows cũng cóthể sử dụng và khởi động Arduino

Tính đa dạng: Ngoài việc tìm hiểu ngôn ngữ lập trình Arduino là gì,

người ta còn quan tâm xem nó có đa dạng hay không Nền tảng lập trìnhArduino có nhiều biến thể khác nhau Sự đa dạng của nền tảng mã nguồn

mở của Arduino không bị hạn chế về không gian, bộ nhớ và sức mạnh xửlý

1.2 Ngôn ngữ html

1.2.1 Giới thiệu

HTML có tên đầy đủ là Hypertext Markup Language nghĩa là ngôn ngữđánh dấu siêu văn bản HTML thường được sử dụng để tạo và cấu trúc các phầntrong trang web và ứng dụng, phân chia các đoạn văn, heading, link,blockquotes,…

HTML không phải là một ngôn ngữ lập trình mà chỉ là một ngôn ngữđánh dấu Điều này đồng nghĩa với việc HTML không thể thực hiện các chứcnăng “động” Nói cách khác, HTML tương tự như phần mềm Microsoft Word, chỉ

có tác dụng định dạng các thành phần có trong website

1.2.2 Cấu trúc

Một file code HTML được cấu thành bởi các phần tử HTML và các cặpthẻ Song song đó, HTML gồm có nhiều dạng thẻ khác nhau và mỗi thẻ sẽ cónhiệm vụ và ý nghĩa riêng Ngoài ra, mỗi thẻ sẽ được bắt đầu và kết thúc bằng

Trang 19

dấu ngoặc nhọn “<, >” Các chữ giữa các dấu ngoặc này gọi là phần tử Về cơbản, cấu trúc của một trang HTML sẽ gồm 3 phần như sau:

Phần khai báo loại file code có cấu trúc thẻ là <!DOCTYPE html>: Xuất

hiện ở đầu hoặc trên cùng của file HTML Qua phần này, người dùng sẽbiết được trình duyệt đang sử dụng để tạo trang là phiên bản HTML nào.Phần khai báo ban đầu, khai báo về meta, little, javascript, css,… có cấu

trúc bắt đầu bằng thẻ <head> và kết thúc với thẻ <head>: Chứa tiêu đề

và các khai báo có biểu tượng và một số vấn đề phức tạp khác Bên cạnh

đó, còn cần phải có kiến thức chuyên môn về lập trình

Lập trình tương tác cho trang web: Thông qua HTML, có thể lập trình

tương tác giữa người dùng với trang web Để làm được điều này, cầndùng code JavaScript JavaScript sẽ tạo ra những hiệu ứng khi người dùngnhấp và di chuyển chuột trên website

2 Các chuẩn giao tiếp

2.1. Chuẩn giao tiếp UART

2.1.1 Giới thiệu

UART là một giao thức truyền thông phần cứng sử dụng giao tiếp nối tiếpkhông đồng bộ với tốc độ có thể định cấu hình Không đồng bộ có nghĩa làkhông có tín hiệu đồng hồ để đồng bộ hóa các bit đầu ra từ thiết bị truyền đi đếnbên nhận

Trong giao tiếp UART, hai UART giao tiếp trực tiếp với nhau UART truyềnchuyển đổi dữ liệu song song từ một thiết bị điều khiển như CPU thành dạng nốitiếp, truyền nó nối tiếp đến UART nhận, sau đó chuyển đổi dữ liệu nối tiếp trởlại thành dữ liệu song song cho thiết bị nhận

Trang 20

Hình 1 Chuẩn giao tiếp UART

Hai đường dây mà mỗi thiết bị UART sử dụng để truyền dữ liệu đó là:

 Transmitter (Tx)

 Receiver (Rx)

UART truyền dữ liệu không đồng bộ, có nghĩa là không có tín hiệu đồng hồ

để đồng bộ hóa đầu ra của các bit từ UART truyền đến việc lấy mẫu các bit bởi

UART nhận Thay vì tín hiệu đồng hồ, UART truyền thêm các bit start và stop

vào gói dữ liệu được chuyển

Các bit này xác định điểm bắt đầu và điểm kết thúc của gói dữ liệu để UART nhận

biết khi nào bắt đầu đọc các bit

Khi UART nhận phát hiện một bit start, nó bắt đầu đọc các bit đến ở một

tần số cụ thể được gọi là tốc độ truyền (baud rate) Tốc độ truyền là thước đo tốc

độ truyền dữ liệu, được biểu thị bằng bit trên giây (bps – bit per second) Cả hai

UART đều phải hoạt động ở cùng một tốc độ truyền 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

Phương pháp truyền Bất đồng bộ

Truyền nối tiếp hay song song? Nối tiếp

Số lượng thiết bị chủ tối đa 1

Số lượng thiết bị tớ tối đa 1

Bảng 1 Cấu trúc gói dữ liệu UART

Trang 21

2.1.2 Cách thức hoạt động

UART sẽ truyền dữ liệu nhận được từ một bus dữ liệu (Data Bus) Bus dữliệu được sử dụng để gửi dữ liệu đến UART bởi một thiết bị khác như CPU, bộnhớ hoặc vi điều khiển Dữ liệu được chuyển từ bus dữ liệu đến UART truyền ởdạng song song Sau khi UART truyền nhận dữ liệu song song từ bus dữ liệu, nó

sẽ thêm một bit start, một bit chẵn lẻ và một bit stop, tạo ra gói dữ liệu Tiếptheo, gói dữ liệu được xuất ra nối tiếp từng bit tại chân Tx UART nhận đọc gói

dữ liệu từng bit tại chân Rx của nó UART nhận sau đó chuyển đổi dữ liệu trở lạidạng song song và loại bỏ bit start, bit chẵn lẻ và bit stop Cuối cùng, UARTnhận chuyển gói dữ liệu song song với bus dữ liệu ở đầu nhận

Hình 2 Cách thức hoạt động của UART

Dữ liệu truyền qua UART được tập hợp thành gói (packet) Mỗi gói chứa 1 bitstart, 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ (parity bit) tùychọn và 1 hoặc 2 bit stop

Hình 3 Cấu trúc packet trong UART

2.1.3 Các bước truyền dữ liệu UART

Trang 22

 UART truyền nhận dữ liệu song song từ bus dữ liệu.

Hình 4 Truyền nhận dữ liệu song song với bus dữ liệu

 UART truyền thêm bit start, bit chẵn lẻ và bit dừng vào khung dữ liệu

Hình 5 Truyền bit vào khung dữ liệu

 Toàn bộ gói được gửi nối tiếp từ UART truyền đến UART nhận UART nhận lấy mẫu đường dữ liệu ở tốc độ truyền được định cấu hình trước

Trang 23

Hình 6 Truyền nhận giữa 2 UART

 UART nhận loại bỏ bit start, bit chẵn lẻ và bit stop khỏi khung dữ liệu

Hình 7 Loại bỏ bit khỏi khung dữ liệu

 UART nhận chuyển đổi dữ liệu nối tiếp trở lại thành song song và

chuyển nó đến bus dữ liệu ở đầu nhận

I2C là một giao thức truyền thông nối tiếp, vì vậy dữ liệu được truyềntừ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

2.1.4 Cách thức hoạt động

Với I2C, dữ liệu được truyền trong các tin nhắn Tin nhắn được chia thành cáckhung dữ liệu Mỗi tin nhắn có một khung địa chỉ chứa địa chỉ nhị phân của địachỉ 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ácbit ACK / NACK giữa mỗi khung dữ liệu:

Trang 24

Hình 10 Cấu trúc tin nhắn truyền trong 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

 Điều kiện dừng: Đường SDA chuyển từ mức điện áp thấp sang mức điện

áp cao sau khi đường SCL chuyển từ mức thấp lên mức cao

 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 đếnslave (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ộtbit 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

2.1.5 Các bước truyền dữ liệu I2C

 Master gửi điều kiện khởi động đến mọi slave được kết nối bằng cáchchuyển đường SDA từ mức điện áp cao sang mức điện áp thấp trước khichuyể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 giaotiếp, cùng với bit đọc / ghi

 Mỗi slave sẽ so sánh địa chỉ được gửi từ master với địa chỉ của chính nó.Nếu địa chỉ trùng khớp, slave sẽ trả về một bit ACK bằng cách kéo dòngSDA xuống thấp cho một bit Nếu địa chỉ từ master không khớp với địachỉ của slave, slave rời khỏi đường SDA cao

 Master gửi hoặc nhận khung dữ liệu

 Sau khi mỗi khung dữ liệu được chuyển, thiết bị nhận trả về một bit ACKkhác cho thiết bị gửi để xác nhận đã nhận thành công khung

 Để dừng truyền dữ liệu, master gửi điều kiện dừng đến slave bằng cáchchuyển đổi mức cao SCL trước khi chuyển mức cao SDA

Trang 25

3 Arduino UNO R3

3.1 Giới thiệu

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản nhưđiều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm mộttrạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụngkhác

Hình 11 Arduino UNO R3

Trang 26

Thông số kỹ thuật

Vi điều khiển ATmega328 họ 8bit

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA

Điện áp vào khuyên dùng 7-12V DC

Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp

nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V

Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn

từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng

Arduino UNO

Các chân năng lượng:

GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO.

Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thìnhững chân này phải được nối với nhau

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là

500mA

Trang 27

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là

50mA

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn

nối cực dương của nguồn với chân này và cực âm của nguồn vớichân GND

IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có

thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy vẫnkhông được lấy nguồn 5V từ chân này để sử dụng bởi chức năngcủa nó không phải là cấp nguồn

RESET: việc nhấn nút Reset trên board để reset vi điều khiển

tương đương với việc chân RESET được nối với GND qua 1 điệntrở 10KΩ

3.3 Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong

bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong sốnày sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cầnquá 20KB bộ nhớ này đâu

2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn

khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cầnnhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAMlại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM

Trang 28

chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA.

Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiểnATmega328 (mặc định thì các điện trở này không được kết nối)

Một số chân digital có các chức năng đặc biệt như sau:

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận

(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết

bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm nachính là kết nối Serial không dây Nếu không cần giao tiếp Serial, khôngnên sử dụng 2 chân này nếu không cần thiết

Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ

phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàmanalogWrite() Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ởchân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V nhưnhững chân khác

Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài

các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệubằng giao thức SPI với các thiết bị khác

LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi

bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối vớichân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu

10bit (0

→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trênboard, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog.Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân analog để đođiện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit

Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác

4 NodeMCU ESP32

4.1 Giới thiệu

Trang 29

Kit RF thu phát Wifi BLE ESP32 NodeMCU LuaNode32 được phát triển trên nềnmodule trung tâm là ESP32 với công nghệ Wifi, BLE và nhân ARM SoC tích hợp mớinhất hiện nay, kit có thiết kế phần cứng, firmware và cách sử dụng tương tự KitNodeMCU ESP8266, với ưu điểm là cách sử dụng dễ dàng, ra chân đầy đủ, tích hợpmạch nạp và giao tiếp UART CP2102, Kit Wifi BLE ESP32 NodeMCULuaNode32 là sự lựa chọn hàng đầu trong các nghiên cứu, ứng dụng về Wifi, BLE

o 448KBytes - SRAM: 520 KBytes

o 8 KBytes SRAM in RTC SLOW

o 8 KBytes SRAM in RTC FAST

o 1 Kbit of EFUSE, 256 bits MAC

 WiFi: 802.11 b/g/n/d/e/i/k/r (802.11n up to 150 Mbps)

 Bluetooth v4.2 BR/EDR và BLE specification

Trang 30

 Wi-Fi mode: Station/softAP/SoftAP+station/P2P

 SPI Flash: Mặc định 32Mbit

 RAM: Internal520KB + PSRAM 4M bên ngoài

Trang 31

 Bluetooth: tiêu chuẩn Bluetooth4.2BR / EDR và BLE

o Bật đèn flash và điều chỉnh độ sáng tối đa: 310mA @ 5V

o Sleep Deep: Mức tiêu thụ điện năng thấp nhất có thể đạt 6mA @ 5V

o Modem-bed: lên tới 20mA @ 5V

o Sleep Light: lên tới 6,7mA@5V

 Bảo vệ: WPA / WPA2 / WPA2-Enterprise / WPS

Trang 32

Module RFID RC522 hoạt động với tần số 13.56mhz không tiếp xúc,được thiết kế bởi NXP sử dụng chip tiêu thụ điện năng thấp và kích thước nhỏgọn, là sự lựa chọn tốt nhất trong sự phát triển các ứng dụng thông minh nhưmáy đo và thiết bị cầm tay di động Module này có thể lắp trực tiếp trong cácthiết bị cầm tay để sản xuất hàng loạt Mô-đun sử dụng nguồn điện 3.3V và cóthể giao tiếp trực tiếp với bất kỳ bo mạch CPU nào bằng cách kết nối thông quagiao tiếp SPI, khoảng cách đọc tốt.

 Nhiệt độ hoạt động: -20~80oC

 Nhiệt độ lưu trữ: -40~85oC

Trang 33

 Độ ẩm: 5% -95%

 Giao tiếp: SPI

Trang 34

7 Module bàn phím ma trận 4×4

7.1 Giới thiệu

Module bàn phím ma trận 4×4 gồm có 16 nút bấm được sắp xếp theo matrận 4 hàng, 4 cột Các nút bấm trong cùng một hàng và một cột được nối vớinhau, vì vậy bàn phím matrix 4×4 sẽ có tổng cộng 8 ngõ ra

Hình 15 Bàn phím ma trận 4x4

7.2 Thông số kỹ thuật và sơ đồ nối dây

 Kích thước: 1.69 in x 1.54 in x 0.39 in (4.3 cm x 3.9 cm x 1.0 cm)

 Khối lượng: 0.39 oz (11 g)

 Sơ đồ nối dây:

Hình 16 Sơ đồ nối dây của bàn phím

Trang 35

Hình 17 Module sim 800A

8.2 Thông số kỹ thuật

 Sử dụng module GSM GPRS Sim800A

 Nguồn cấp đầu vào: 5 – 18VDC, lớn hơn 1A

 Mức tín hiệu giao tiếp: TTL (3.3-5VDC) hoặc RS232

 Tích hợp chuyển mức tín hiệu TTL Mosfet tốc độ cao

 Tích hợp IC chuyển mức tín hiệu RS232 MAX232

 Tích hợp nguồn xung với dòng cao cung cấp cho Sim800A

 Sử dụng khe Micro Sim

 Thiết kế mạch nhỏ gọn, bền bỉ, chống nhiễu

Trang 36

9 Servo SG90

9.1 Giới thiệu

Động cơ servo SG90 được dùng để xoay và có thể đạt được góc quaychính xác trong khoảng từ 90o – 180o Việc điều khiển này có thể ứng dụng để láirobot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắpphòng…

Ngày đăng: 08/03/2024, 16:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w