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

Hệ thống điều khiển và giám sát các thiết bị trong nhà

128 262 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

Định dạng
Số trang 128
Dung lượng 9,46 MB

Nội dung

Một số tập đoàn công nghệ đã trình diễn những công nghệ hiện đại như Sony đã trình diễn Loa và Tivi tích hợp Google assistant. Cụ thể, 1 cái loa 360 độ đã được kết nối với hệ thống điện và loa trong nhà, chúng ta có thể dễ dàng ra lệnh mở đèn, mở nhạc, mở tivi, v.v.... Tuy công nghệ nghệ này không mới nhưng sắp tới sẽ là xu thế của một ngôi nhà thông mình nào cũng phải có.

Trang 1

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

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH -

Tp Hồ Chí Minh - 01/2018

Trang 2

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

BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP Y SINH

Trang 3

KHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Tp HCM, ngày 13 tháng 01 năm 2018

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

Họ tên sinh viên: Phạm Văn Huy Mssv: 12141099

Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành:141

I TÊN ĐỀ TÀI: HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT CÁC THIẾT BỊ TRONG NHÀ

II NHIỆM VỤ

1 Các số liệu ban đầu:

(ghi những thông số, tập tài liệu tín hiệu, hình ảnh,…)

2 Nội dung thực hiện:

 Tìm hiều và lựa chọn nguồn, module kết nối Bluetooth, module Wifi và vi điều khiển

 Viết ứng dụng Android để SmartPhone nhận tín hiệu từ giọng nói con người, xử lý

và đưa tín hiệu đến vi điều khiển

 Thiết kế và thi công các module khối điều khiển: Module Arduino Uno R3, Module Wifi ESP 8266 Node MCU và Module Bluetooth HC-06

 Kết nối các module lại với nhau

 Chạy thử, kiểm tra và cân chỉnh mô hình

 Viết sách luận văn tốt nghiệp

 Báo cáo đồ án tốt nghiệp

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 13/01/2018

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:

ThS Nguyễn Việt Hùng

Trang 4

Tên đề tài: HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT CÁC THIẾT BỊ TRONG NHÀ

Trang 5

LỜI CAM ĐOAN

Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó

Các kết quả công bố trong Đồ án tốt nghiệp “HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT

CÁC THIẾT BỊ TRONG NHÀ” là trung thực và không sao chép từ công trình nào khác

Những người thực hiện đề tài

Trang 6

LỜI CẢM ƠN

Em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Việt Hùng - Giảng viên bộ môn Điện

Tử Công Nghiệp đã nhiệt tình giúp đỡ và hướng dẫn bọn em trong việc thực hiện đề tài

Em xin gởi lời chân thành cảm ơn các thầy cô trong Khoa Điện - Điện Tử đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài

Em cũng gửi lời đồng cảm ơn đến các bạn bè, các bạn có cùng đam mê đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài

Xin chân thành cảm ơn!

Những người thực hiện đề tài

Trang 7

MỤC LỤC

Nhiệm vụ đồ án i

Lịch trình ii

Cam đoan iii

Lời cảm ơn iv

Mục lục v

Liệt kê hình vii

Liệt kê bảng x

Tóm tắt xi

CHƯƠNG 1 TỔNG QUAN 1

1.1 Đặt vấn đề 2

1.2 Mục tiêu 2

1.3 Nội dung nghiên cứu 2

1.4 Giới hạn 3

1.5 Bố cục 3

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

2.1 Giới thiệu về Firebase 6

2.1.1 Khái niệm về Firebase 6

2.1.2 đặc điểm và tính năng 7

2.2 Công nghệ bluetooth 8

2.2.1 Khái niệm về bluetooth 8

2.2.2 Các đặc điểm của bluetooth 10

2.2.3 Ưu nhược điểm của bluetooth 10

2.3 Giới thiệu về hệ điều hành Android 10

2.3.1 Android là gì 10

2.3.2 Lịch sử phát triển của Android 11

2.3.3 Các phiên bản của Android 11

2.3.4 Ưu nhược điểm của Android 13

2.3.5 Kiến trúc cơ bản của hệ điều hành Android 14

2.4 Một số Module sử dụng trong mô hình 18

2.4.1 Vi điều khiển 18

Trang 8

2.4.2 Module bluetooth 24

2.4.3 Module Wifi ESP8266 Node MCU 26

CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 28

3.1 Giới thiệu 29

3.2 Sơ đồ khối hệ thống 30

3.3 Tính toán thiết kế 31

3.3.1 Thiết kế App trên điện thoại 31

3.3.2 Thiết kế mô hình robot 33

3.4 Sơ đồ nguyên lý hệ thống 39

CHƯƠNG 4 THI CÔNG HỆ THỐNG 41

4.1 Giới thiệu 42

4.2 Thi công hệ thống 42

4.2.1 Thi công App trên điện thoại 42

4.2.2 Thi công mô hình mạch 73

4.2.3 Thi công mô hình thiết bị 77

4.2.2 Lắp ráp mạch vào mô hình 78

CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 95

5.1 Kết quả 96

5.2 Nhận xét 97

5.3 Đánh giá 97

CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 98

6.1 Kết luận 99

6.2 Hướng phát triển 99

TÀI LIỆU THAM KHẢO……….100

PHỤ LỤC 101

HƯỚNG DẪN SỬ DỤNG 111

Trang 9

LIỆT KÊ HÌNH VẼ

Hình Trang

Hình 2.1 Firebase 6

Hình 2.2 Giao thức bảo mật SSL 7

Hình 2.3 Biểu tượng bluetooth 9

Hình 2.4 Ứng dụng Bluetooth điều khiển các thiết bị ngoại vi 9

Hình 2.5 Kiến trúc ngăn xếp của hệ thống Android 15

Hình 2.6 Hệ thống vi điều khiển cơ bản 18

Hình 2.7 Sơ đồ và chức năng chân Arduino Uno R3 19

Hình 2.8 Giao tiếp 2 hệ thống dùng chuẩn UART 21

Hình 2.9 Nguyên lý hoạt động chuẩn UART 21

Hình 2.10 Các chân giao tiếp SPI trên Uno R3 22

Hình 2.11 Kết nối giữa 2 thiết bị dùng SPI 23

Hình 2.12 Kết nối giữa nhiều thiết bị dùng SPI 23

Hình 2.13 Module Bluetooth HC-06 24

Hình 2.14 Sơ đồ chân và chức năng của ESP8266 26

Hình 3.1 Sơ đồ khối hệ thống 30

Hình 3.2 Giao diện đăng nhập và chọn hình thức điều khiển 31

Hình 3.3 Giao diện bluetooth và wifi 32

Hình 3.4 Màn hình chờ của điện thoại khi đang nhận giọng nói 32

Hình 3.5 Bố trí thiết bị 33

Hình 3.6 Động cơ DC 34

Hình 3.7 Sơ đồ nguyên lý điều khiển động cơ 34

Hình 3.8 Sơ đồ nguyên lý khối bluetooth 35

Hình 3.9 Module Bluetooth HC-06 thực tế 35

Hình 3.10 Sự tiện dụng của Node MCU 36

Hình 3.11 Sơ đồ chân của Node MCU 36

Hình 3.12 Giao tiếp giữa Node MCU và Uno R3 37

Hình 3.13 Sơ đồ nối dây vi điều khiển trong Broad Arduino Uno R3 37

Hình 3.14 Sơ đồ nối dây mạch nạp trong Arduino Uno R3 38

Hình 3.15 Sơ đồ nguyên lý mô hình 39

Hình 4.1 Công cụ App Inventor 42

Hình 4.2 Giao diện của trang web đăng ký tài khoản google 43

Trang 10

Hình 4.3 Giao diện trang web MIT App Inventor 44

Hình 4.4 Giao diện công cụ App Inventor 2 44

Hình 4.5 Mục Projects 45

Hình 4.6 Mục Connect 46

Hình 4.7 Mục Build 46

Hình 4.8 Giao diện hộp thoại 47

Hình 4.9 Giao diện gồm các công cụ thiết kế app 47

Hình 4.10 Mục User Interface 48

Hình 4.11 Mục Layout 48

Hình 1.12 Mục Media 49

Hình 4.13 Mục Sensors 49

Hình 4.14 Mục Social 50

Hình 4.15 Mục Storage 50

Hình 4.16 Mục Connectivity 51

Hình 4.17 Mục Viewer 51

Hình 4.18 Mục Components 52

Hình 4.19 Mục Properties 52

Hình 4.20 Màn hình đăng nhập và kết nối 53

Hình 4.21 VerticalArrangement1 54

Hình 4.22 HorizontalArrangement1 54

Hình 4.23 Giao diện màn hình bluetooth của app 55

Hình 4.24 HorizontalArrangement5 55

Hình 4.25 HorizontalArrangement6 55

Hình 4.26 TableArrangement4 56

Hình 4.27 HorizontalArrangement10 56

Hình 4.28 HorizontalArrangement7 57

Hình 4.29 HorizontalScrollArrangement1 57

Hình 4.30 Màn hình điều khiển bằng wifi 58

Hình 4.31 Lable_text 58

Hình 4.32 HorizontalArrangement30 58

Hình 4.33 Các thành phần ẩn 59

Hình 4.34 Lưu đồ chương trình app điện thoại Android 61

Hình 4.35 Lưu đồ cập nhật dữ liệu 61

Hình 4.36 SpeechRecognizer1 64

Trang 11

Hình 4.37 Sự kiện button để điều khiển đèn 65

Hình 4.38 Sự kiện button để điều khiển quạt 66

Hình 4.39 Sự kiện FirebaseDB1.DataChanged 66

Hình 4.40 Sự kiện Initialize 67

Hình 4.41 Sự kiện FirebaseDB1.GotValue 67

Hình 4.42 Sự kiện Timer 68

Hình 4.43 Sự kiện LickPicker1.Before/AfterPicking 68

Hình 4.44 Sự kiện của manhinhbluetooth.Initialize 69

Hình 4.45 Hàm thủ tục(1) 71

Hình 4.46 Hàm thủ tục(2) 72

Hình 4.47 Các biến sử dụng 73

Hình 4.48 Sơ đồ mạch nguyên lý 74

Hình 4.49 Mạch in layout 75

Hình 4.50 Sơ đồ chân và vị trí linh kiện 76

Hình 4.51 Mạch hoàn thiện 77

Hình 4.52 Lắp ráp thiết bị vào mạch 79

Hình 4.53 Lưu đồ chương trình vi điều khiển 80

Hình 4.54 Lưu đồ truyền nhận dữ liệu và cập nhật của ESP 81

Hình 4.55 Giao diện phần mềm Arduino IDE 82

Hình 5.1 Kết quả đạt được(1) 96

Hình 5.1 Kết quả đạt được(2) 97

Trang 12

LIỆT KÊ BẢNG

Bảng Trang

Bảng 3.1 Bảng liệt kê điện áp và dòng điện các linh kiện sử dụng trong mạch

……… 38 Bảng 4.1 Danh sách và thông số các linh kiện ………… ………73

Trang 13

TÓM TẮT

Với sự phát triển mạnh mẽ của công nghệ nói chung và các tập đoàn công nghệ nói riêng thì đã giúp ích con người rất nhiều, hơn thế nữa đã giúp chất lượng cuộc sống con người ngày càng được nâng cao Có những công nghệ mà cách đây vài năm, người ta thậm chí không dám nghĩ đến nhưng bây giờ đã được thử nghiệm và dần thành hiện thực

Với ý tưởng trên và để khắc phục điểm yếu của hệ thống là : chi phí cao, không hỗ trợ Tiếng Việt Vì vậy, chúng em làm ra đề tài là để xây dựng lại mô hình trên và đặc biệt là

để ngừơi Việt dễ dàng sử dụng Bằng cách sử dụng và lập trình Arduino làm trung tâm

xử lý và các modul để tương tác với trung tâm điều khiển và thiết bị thông qua ứng dụng trên điện thoại

Nhóm thực hiện đề tài Phạm Văn Huy

Trang 14

Chương 1 TỔNG QUAN

Trang 15

1.1 ĐẶT VẤN ĐỀ

Trong thời đại Công Nghiệp 4.0 các dây chuyền công nghệ mới lần lượt ra đời nhằm đơn giản hóa quá trình sản xuất, máy móc hiện đại đã bắt đầu thay thế con người chúng ta Hàng loạt các sản phẩm tự động hóa tiên tiến được phát minh và bán rộng rãi trên thị trường giúp nâng cao chất lượng sống và tăng hiệu suất công việc Đối với nước ngoài thì việc nghiên cứu và ứng dụng giọng nói để ứng dụng vào đời sống và sản xuất chỉ mới mở ra trong vài năm gần đây Ví dụ như Google có trợ lý ảo GG assistant, Amazon có Alexa và Apple có siri Thấy được khả năng phát triển và nhu cầu tìm hiểu về điều khiển thiết bị bằng giọng nói của chính bản thân và những người yêu thích mong muốn được sử dụng dịch vụ này, những người thực hiện đã bắt tay vào

thực hiện đồ án: HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT CÁC THIẾT BỊ

TRONG NHÀ Đồ án HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT CÁC THIẾT

BỊ TRONG NHÀ nhằm khai thác yếu tố giọng nói trong việc điều khiển thiết bị, vốn

thường được thực hiện bằng tay Đồ án này giúp cho sinh viên hiểu rõ hơn về ứng dụng nhận dạng, xử lí giọng nói sẵn có của Google, được sử dụng trong việc điều khiển thiết bị của mình Qua quá trình tìm hiểu, nhận thấy Arduino thích hợp trong việc thực hiện đề tài này, nhóm đề tài đã khai thác sử dụng Arduino trong đồ án của mình Đề tài được ứng dụng để điều khiển nhà thông minh Điện thoại di động hiện nay đang được sử dụng rộng rãi, nên việc tận dụng thiết bị này trong việc điều khiển thiết bị cũng góp phần vào việc khai thác thêm giá trị sử dụng của điện thoại di động trong đời sống hàng ngày

1.2 MỤC TIÊU

Mục tiêu của đề tài là thiết kế một mô hình thiết bị hoạt động bằng cách nhận lệnh từ giọng nói của con người thông qua điện thoại Smartphone Mô hình có thể ứng dụng trong việc điều khiển, giám sát những ngôi nhà hiện đại nào cũng phải có

1.3 NỘI DUNG NGHIÊN CỨU

 Tìm hiều và lựa chọn nguồn, module kết nối Bluetooth, module Wifi và vi điều khiển

 Viết ứng dụng Android để SmartPhone nhận tín hiệu từ giọng nói con người, xử

lý và đưa tín hiệu đến vi điều khiển

Trang 16

 Thiết kế và thi công các module khối điều khiển: Module Arduino Uno R3, Module Wifi ESP 8266 Node MCU và Module Bluetooth HC-06

 Kết nối các module lại với nhau

 Chạy thử, kiểm tra và cân chỉnh mô hình

 Viết sách luận văn tốt nghiệp

 Báo cáo đồ án tốt nghiệp

1.4 GIỚI HẠN

 Không thể tích hợp AI hoặc Machine learning vào hệ thống

 Ứng dụng chỉ tương thích với hệ điều hành Android

 Việc nhận diện giọng nói đôi khi chưa chính xác do nói không chuẩn giọng

1.5 BỐ CỤC

 Chương 1: Tổng quan

Chương này trình bày, đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án

 Chương 2: Cơ Sở Lý Thuyết

Chương này trình bày khái quát về công nghệ Bluetooth, giới thiệu về Firebase, các thông số và ý nghĩa của các linh kiện chính sử dụng cho thiết kế bộ điều khiển (vi điều khiển Arduino, module Bluetooth HC-06, module Wifi ESP 8266 Node MCU ), kiến thức cơ bản về hệ điều hành Android hỗ trợ cho lập trình phần

mềm điều khiển trên điện thoại ở chương sau.

 Chương 3: Thiết Kế và Tính Toán

Chương này sẽ trình bày sơ đồ khối của bộ điều khiển, đưa ra các phương án thực hiện và lựa chọn phương án tối ưu nhất để thực hiện Chương này cũng trình bày các yêu cầu cần có đối với phần mềm điều khiển trên điện thoại từ đó làm cơ

sở để viết ứng dụng trên điện thoại Ngoài ra còn trình bày phần yêu cầu đối với phần mềm điều khiển của vi điều khiển và lưu đồ hoạt động của chương trình

 Chương 4: Thi Công Hệ Thống

Chương này gồm có các nội dung sau: Thi công App trên điện thoại, thi công mô hình, lưu đồ giải thuật phần mềm và quy trình thao tác

Trang 17

 Chương 5: Kết Quả, Nhận Xét và Đánh Giá

Chương này sẽ trình bày các kết quả đạt được sau thời gian thực hiện đề tài gồm

có hình ảnh về sản phẩm (bộ điều khiển và ứng dụng trên điện thoại), đánh giá sai số, tính ổn định của hệ thống, thời gian đáp ứng của hệ thống, tính dễ sử dụng, …

 Chương 6: Kết Luận và Hướng Phát Triển

Chương này sẽ đưa ra những kết luận sau khi hoàn thành sản phẩm, các hướng phát triển của đề tài để có thể phát triển sản phẩm tốt hơn trong tương lai

Trang 18

Chương 2 CƠ SỞ LÝ THUYẾT

Trang 19

2.1 GIỚI THIỆU VỀ FIREBASE:

2.1.1 Khái niệm về Firebase:

Hình 2.1 Firebase

Firebase là một dịch vụ cơ sở dữ liệu thời gian thực, hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu Nếu cần xây dựng một ứng dụng cho mobile hoặc các thiết bị di động khác, mà bạn đang gặp khó khăn vì không biết chọn dịch vụ VPS nào, loại database gì thì Firebase sẽ là dịch vụ dành cho bạn

2.1.2 Đặc điểm và tính năng:

Realtime Database

Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực Cụ thể hơn là bạn có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung một database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database được thêm mới hoặc sửa đổi

Tự động tính toán quy mô ứng dụng của bạn, giúp bạn dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay mở rộng dịch vụ Ngoài ra Firebase sử dụng NoSQL, giúp cho

database của bạn sẽ không bị bó buộc trong các bảng và các trường mà bạn có thể tùy

ý xây dựng database theo cấu trúc của riêng bạn

Cho phép bạn phân quyền một cách đơn giản bằng cú pháp tương tự như javascript Khi ứng dụng của bạn muốn phát triển, bạn không cần lo lắng về việc nâng cấp máy chủ…Firebase sẽ xử lý việc tự động cho bạn Các máy chủ của Firebase quản lý hàng triệu kết nối đồng thời và hàng tỉ lượt truy vấn mỗi tháng

Trang 20

Các tính năng bảo mật

Firebase hoạt động dựa trên nền tảng cloud và thực hiện kết nối thông qua giao thức bảo mật SSL, chính vì vậy bạn sẽ bớt lo lắng rất nhiều về việc bảo mật của dữ liệu cũng như đường truyền giữa client và server Không chỉ có vậy, việc cho phép phân quyền người dùng database bằng cú pháp javascipt cũng nâng cao hơn nhiều độ bảo mật cho ứng dụng của bạn, bởi chỉ những user mà bạn cho phép mới có thể có quyền chỉnh sửa cơ sở

Xác thực người dùng

Với Firebase, bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trên Android, iOS và JavaScript SDKs chỉ với một vài đoạn mã Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nặc danh Các ứng dụng sử dụng chức năng xác thực của FireBase có thể giải quyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiện thời gian và rất nhiều các vấn đề phức tạp về phần backend Hơn nữa bạn có thể tích hợp xác thực người dùng với các chức năng backend đã có sẵn dùng custom auth tokens

Trang 21

Firebase Hosting

Các bạn có thể triển khai một ứng dụng nền web chỉ với vài giây với hệ thống Firebase

và các dữ liệu sẽ được lưu trữ đám mây đồng thời được bảo mật thông qua giao thức truy cập SSL

Các ứng dụng sẽ được cấp 1 tên miền dạng *.firebaseio.com hoặc bạn có thể trả tiền

để sử dụng tên miền của riêng mình

Triểu khai siêu tốc

Với Firebase bạn có thể giảm bớt rất nhiều thời gian cho việc viết các dòng code để quản lý và đồng bộ cơ sở dữ liệu, mọi việc sẽ diễn ra hoàn toàn tự động với các API của Firebase Không chỉ có vậy Firebase còn hỗ trợ đã nền tảng nên bạn sẽ càng đỡ mất thời gian rất nhiều khi ứng dụng bạn muốn xây dựng là ứng dụng đa nền tảng Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase còn giúp ta đơn giản hóa quá trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thống xác thực do chính Firebase cung cấp

Sự ổn định

Firebase hoạt động dựa trên nền tảng Cloud đến từ Google vì vậy hầu như bạn không bao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối lúc nhanh lúc chậm, … nữa

Giá thành

Google Firebase có rất nhiều gói dịch vụ với các mức dung lượng lưu trữ cũng như băng thông khác nhau với mức giá dao động từ Free đến $1500 đủ để đáp ứng được nhu cầu của tất cả các đối tượng Chính vì vậy bạn có thể lựa chọn gói dịch vụ phù hợp nhất với nhu cầu của mình Điều này giúp bạn tới ưu hóa được vốn đầu tư và vận hành của mình tùy theo số lượng người sử dụng Ngoài ra bạn còn không mất chi phí để bảo trì, nâng cấp, khắc phục các sự cố

2.2 CÔNG NGHỆ BLUETOOTH:

2.2.1 Khái niệm về bluetooth:

Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vô tuyến qua băng tần chung ISM (Industrial, Scientific, Medical) trong dãy tầng 2.40 – 2.48 GHz và có khả năng truyền tải giọng nói

và dữ liệu

Trang 22

Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một cách

thuận lợi với giá thành rẻ

Khi được kích hoạt Bluetooth có thể tự động định vị những thiết bị khác có chung công nghệ trong vùng xung quanh và bắt đầu kết nối với chúng Nó được định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói

Hình 2.3 Biểu tượng bluetooth

Công nghệ không dây Bluetooth là một tiêu chuẩn trong thực tế, dùng cho các thiết bị

cỡ nhỏ, chi phí thấp, sóng ngắn liên kết giữa PC di động, điện thoại di động và giữa các máy tính với nhau

Bluetooth ít tiêu hao năng lượng và có giá thành thấp nhưng tốc độ của nó chậm hơn khá nhiều so với mạng không dây Wi-Fi Các Smartphone và máy tính bảng đã trang bị chức năng hỗ trợ Bluetooth vào hệ điều hành của chúng để kích hoạt khả năng hoạt động vớiđồng bộ hoá dữ liệu với điện thoại di động (ĐTDĐ) và thiết bị hỗ trợ cá nhân PDA,

in ấn với các máy in hỗ trợ Bluetooth và kết nối đến các thiết bị khác

Hình 2.4 Ứng dụng Bluetooth điều khiển các thiết bị ngoại vi

Trang 23

2.2.2 Các đặc điểm của Bluetooth

Bluetooth tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết

bị, bao gồm cả các thiết bị cầm tay và điện thoại di động

Bluetooth sử dụng băng tần đăng ký 2.4Ghz trên dãy băng tần ISM Tốc độ truyền

dữ liệu có thể đạt tới mức tối đa 1Mbps (do sử dụng tần số cao) mà các thiết bị không cần phải lấy trực tiếp nhau Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với một ứng dụng khác thông qua các chuẩn “Bluetooth profiles”, do đó có thể độc lập về phần cứng cũng như hệ điều hành sử dụng

Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để truyền tiếng nói

là 7 kênh để truyền dữ liệu trong một mạng cá nhân

Tính an toàn và bảo mật được tích hợp với sự xác nhận và mã hóa Nó có tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ

2.2.3 Ưu nhược điểm của Bluetooth

Ưu điểm:

- Thay thế hoàn toàn dây nối

- Bảo mật an toàn với công nghệ mã hóa trong Một khi kết nối được thiết lập thì khó có một thiết bị nào có thể nghe trộm hoặc lấy cắp dữ liệu

- Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện (hiện nay có loại Bluetooth kết nối lên đến 100m)

- Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe hoặc bận việc dễ dàng

- Giá thành rẻ

- Tốn ít năng lượng, chờ tốn 0.3mAh, tối đa 30mAh trong chế độ truyền dữ liệu

- Không gây nhiễu các thiết bị không dây khác

Nhược Điểm:

- Tốc độ thấp, khoảng 720kbps tối đa

- Bắt sóng kém khi có vật cản

- Thời gian thiết lập lâu

2.3 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID:

2.3.1 Android là gì?

Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát

HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005)

Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm

Trang 24

tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai

2.3.2 Lịch sử phát triển của Android

Tháng 10/2003, Android (inc) ra đời như một hãng phần mềm, với mục tiêu tạo ra những thiết bị thông minh, đáp ứng nhu cầu của người dùng

Tháng 8/2005, gã khổng lồ Google mua lại Android với toàn bộ nhân viên

Tháng 11/2007, Open Handset Alliance – Liên minh thiết bị cầm tay mở rộng ra đời với các thành viên Texas Instruments, Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel

và T-Mobile

Tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm mã nguồn mở Tháng 11/2008, Liên minh OHA ra mắt gói phát triển phần mềm Android SDK cho nhà lập trình Theo đó, các công ty thứ ba được phép thêm những ứng dụng của riêng của họ vào Android và bán chúng mà không cần phải hỏi ý kiến Google

Tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm

có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc

2.3.3 Các phiên bản của Android

Phiên bản đầu tiên của hệ điều hành Android ra đời vào tháng 9/2008 và tháng 2/2009 không có tên gọi chính thức Sau này, những phiên bản tiếp theo ra đời với tên gọi là những món tráng miệng với vần đầu của bảng Anphabet C-D-E-F-G-H-I…

Android Cupcake 1.5, tháng 4/2009: Phiên bản này có một số tính năng đáng chú ý

như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới có thể cài đặt linh động trên màn hình chủ

Android Donut 1.6, tháng 9/2009: Phiên bản này giúp nâng cao trải nghiệm trên kho

ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu hỗ trợ màn hình độ phân giải WVGA

Android Eclair 2.0 + 2.1, tháng 10/2009: Phiên bản này có sự cải thiện rõ rệt trong

giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn

Trang 25

Android Froyo 2.2, tháng 5/2010: Phiên bản này chú trọng nâng cấp tốc độ xử lí, giới

thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi Một tính năng đáng chú ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ Một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One

Android Gingerbread 2.3, tháng 12/2010: Phiên bản này đã nâng cấp đáng kể giao

diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste Cùng với phiên bản Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng

sử dụng nền tảng này là Google Nexus S

Android Honeycomb 3.0, tháng 2/2011: Đây là phiên bản hệ điều hành dành riêng cho

máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail ) Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao diện nếu muốn

Android 4.0 Ice Cream Sandwich, cuối năm 2011: Đây cũng là lần đầu tiên Google

hợp nhất hệ điều hành dành cho smartphone và cho máy tính bảng vào làm một Android 4.0 cũng nhắm đến việc duyệt web nhanh hơn, tối ưu hóa hiệu suất hoạt động của thiết

bị, kéo dài thời gian dùng pin…

Android Jelly Bean 4.1 +4.2, năm 2012: Quan trọng hơn hết của Jelly Bean không

phải là về giao diện hay ứng dụng mới mà về Project Butter giúp mang lại độ mượt chưa từng có cho Android Theo như giải thích của Google, độ mượt này có được là nhờ vào

dự án Butter

Android 4.3 Jelly Bean 4.3, 24/4/2013: Đi kèm những tính năng mới như hỗ trợ kết

nối Bluetooth Smart, bộ API OpenGL ES 3.0, bổ sung tính năng sử dụng Wi-Fi để định

vị ngay cả khi người dùng tắt kết nối này đi cùng nhiều thay đổi lớn nhỏ khác

Android 4.4 KitKat, 15/10/2013: Với các cải tiến mới chế độ toàn màn hình Immersive

Mode, hiệu ứng chuyển cảnh màn hình – Transition Manager, Storage Access Framework, Chromium WebView, NFC, Cổng hồng ngoại – Infrared Blasters

Android L (Lolli pop), 26/06/2014: Với những cai tiến về chất lượng pin, giao diện

thanh thoát nhẹ nhàng theo thiết kế Material Design, Android Runtime (ART) đã được

sử dụng mặc định Về thời lượng pin, Android L cũng bổ sung nhiều chế độ linh hoạt

để người dung có thể kiểm soát thời gian sử dụng pin dễ dàng hơn

Android 6.0 Marshmallow, 5/10/2015: Google đã giới thiệu đến người dùng phiên bản

Android kế tiếp với mã hiệu Marshmallow (kẹo dẻo) với những thay đổi đợt cập nhật

Trang 26

này tuy nhỏ nhưng thiên về xu hướng hoàn thiện tương tác người dùng, cho một trải nghiệm tuyệt vời hơn Ngoài ra Android 6 cũng mang lại cho người dùng một số tính năng mới như: sử dụng thẻ SD cắm ngoài như bộ nhớ trong hay chính thức hỗ trợ nhận diện vân tay và Google Pay

Android 7.0 Nougat, 22/08/2016: Android 7.0 hỗ trợ một số tính năng mới đáng kể

như: Hỗ trợ Menu chuyển đổi nhanh giữa các cài đặt hệ thống, Trả lời nhanh tin nhắn

từ thanh thông báo, Chế độ chia đôi màn hình Trung tâm thông báo được làm mới Ngoài

ra còn một số tính năng đáng chú ý như: hỗ trợ chế độ thực tế ảo với VR, tích hợp chế

độ tiết kiệm dữ liệu, chế độ tiết kiệm pin Doze được cải tiến

Android 8.0 Oreo: Một số tính năng mới của Android 8.0 Oreo như: Khởi động máy

nhanh hơn Giảm bớt hoạt động chạy ngầm của các app ít dùng, giúp máy tiết kiệm pin

và chạy nhanh hơn Autofill: tự động đăng nhập cực nhanh vào các app mà bạn đã đăng nhập trước đó Picture-in-Picture: sử dụng hai app cùng lúc Notification Dots: có chấm tròn thông báo Noti trên icon của app và hiện được những nội dung mới ngay phía trên icon mà không cần mở app Android Instant Apps: chức năng dùng thử app thông qua trình duyệt web mà không cần cài đặt.Google Play Protect: tích hợp sẵn Tự động quét các app trong Play Store và app trong máy để bảo vệ bạn khỏi các hành vi xấu của virus, malware, hacker Emoji: Thiết kế lại toàn bộ Emoji cho đẹp hơn, có thêm 60 Emoji mới.Adaptive Icons: cho phép các hãng điện thoại chọn các loại hình icon ví dụ như icon vuông, icon tròn, nền trong suốt In-app Shortcut Pinning: Đánh dấu ("pin") một trang bất kỳ trong app

2.3.4 Ưu nhược điểm của Android

Ưu điểm của android:

Tính linh hoạt: Android kế thừa tính mở từ Linux, hay nói cụ thể hơn là google và

Android mang đến một thế giới hoàn toàn mở Với Apple, người dùng dường như bị cột chặt với những gì hãng này cho phép, từ tính năng chuẩn đến ứng dụng – chỉ những ứng dụng được Apple công nhận mới có thể hoạt động trên iPhone một cách hợp pháp Trong khi đó, với Android, người dùng được tự do với những gì họ muốn, các nhà phát triển được tự do hơn để tạo và thương mại các ứng dụng, và các nhà sản xuất có thể tùy biến lại những trải nghiệm Android cho khách hàng của riêng mình

Gia tăng về số lượng thiết bị: Một thực tế là, chỉ có iPhone và các sản phẩm mang

nhãn Apple mới sử dụng iOS Đó có thể là sản phẩm tốt nhất thế giới, nhưng nếu chỉ có duy nhất một thiết bị như thế thì khách hàng sẽ cảm thấy họ có quá ít sự lựa chọn Với Android, sự lựa chọn có phần thoải mái hơn

Nhiều công cụ dành cho người dùng hơn: Với App inventer, Google đã thậm chí đặt

tay vào người dùng nhiều sức mạnh hơn Với rất nhiều bộ công cụ phát triển dạng tự tay thực hiện được google và các đối tác cung cấp, chưa bao giờ việc tạo ứng dụng lại dễ

Trang 27

Hiệu ứng từ thương hiệu Google: Rõ ràng là Android không hề đơn độc bởi hiện có

vài HĐH trên nền Linux khác cũng đang làm mưa làm gió trên vùng đất di động, diển hình là Bada của Samsung hay MeeGo của liên doanh Nokia – Intel Điểm khác biệt nằm ở chỗ Android được google “chống lưng” và tiền tố Google đi cùng Android là 1 thương hiệu đáng giá

Nhược điểm của Android:

Thời lượng sử dụng pin thấp: Hầu hết các thiết bị Android đều có thời lượng pin thấp

và đây là một trong những vấn đề quan trọng mà Google và các nhà sản xuất thiết bị Android đang chú trọng giải quyết

Anhdroid đa năng nhưng khó kích hoạt: Khi trải nghiệm Android lần đầu, bạn sẽ

thấy nhiều thứ đang hoạt động Có hàng loạt widget, ứng dụng và lựa chọn mà bạn chưa

hề biết đến

Nội dung giải trí: google đang không ngừng cải tiến nội dung của Play Store, cung cấp

chương trình giải trí truyền hình và thêm nhiều phim cho thuê trên thiết bị Android… Nhưng so sánh với iTunes, sự lựa chọn vẫn còn thua xa những gì bạn nhận được trên iOS Khi nhắc đến lĩnh vực âm nhạc, Google play còn thiếu vắng nội dung của Warner, một trong bốn hãng ghi âm lớn nhất hành tinh

Phụ kiện cho thiết bị Android chưa thật sự tốt: Dễ nhận thấy, giới sản xuất phụ kiện

dường như kém quan tâm đến Android Trên thị trường có rất nhiều phụ kiện dành cho iphone mà không dành cho Android

Dễ nhiễm phần mềm độc hại và virus: Android hoạt động như hệ điều hành mở và

xuất hiện những kho ứng dụng không chính thức Bởi vậy, thiết bị Android dễ nhiễm malware hoặc ứng dụng giả mạo

2.3.5 Kiến trúc cơ bản của hệ điều hành Android

Android gồm 5 tầng chính sau được chứa trong 4 lớp:

Trang 28

Hình 2.5 Kiến trúc ngăn xếp của hệ thống Android

Tầng hạt nhân Linux (Linux Kernel):

Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt động của điện thoại muốn thi hành thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý

bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)

Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp

và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về

bộ vi xử lý, dung lượng của bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng không dây,…

Tầng này có các thành phần chủ yếu:

 Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người sử dụng lên màn hình (di chuyển, cảm ứng, )

 Camera Driver: Điều khiển hoạt động của camera, nhận dữ liệu từ camera trả về

 Bluetooth Driver: Điều khiển thiết bị phát và thu Bluetooth

 USB driver: Quản lý hoạt động của các cổng giao tiếp USB

 Keypad driver: Điều khiển hoạt động của bàn phím cứng trên máy

 Wifi Driver: Quan lý thu phát sóng wifi

 Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại

 Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như GSM, 3G, 4G để đảm bảo những chức năng truyền thông được thực hiện

Trang 29

 M-System Driver: Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD, flash

 Power management: Quản lý, giám sát việc tiêu thụ điện năng

Tầng thư viện (Libraries):

Bao gồm các thư viện C/C++ được sử dụng bởi các thành phần khác nhau trong hệ thống Android Một số các thư viện cơ bản:

 System C library: Sử dụng hệ thống C chuẩn, được điều hưởng cho những thiết

bị nền tảng Linux nhúng

 Media framework: Dựa trên nền tảng PacketVideo’s OpenCore, các thư viện hỗ trợ phát và ghi cho các định dạng âm thanh, hình ảnh thông dụng bao gồm MPEG4, H.264, MP3, ACC, MR, JPG, và PNG

 Surface manager: Quản lý việc truy xuất vào hệ thống hiển thị

 Webkit: Cung cấp kỹ thuật duyệt wed hiện đại thông qua việc kết hợp sức mạnh giữa trình duyệt wed của Android với một trang wed nhúng

 SGL: Cung cấp các công cụ đồ họa 2D

 OpenGL/ES: Thi hành các hàm API dựa trên thư viện đồ họa OpenGL/ES 1.0, cung cấp công cụ đồ họa 3D đối với phần cứng được hỗ trợ và phần mềm

 Free Type: Bộ tạo phông chữ dạng bitmap và vector

 SQLite: Hệ quản lý cơ sở dữ liệu cho các ứng dụng với đặc điểm chạy nhẹ nhàng

và việc quản lý mạnh

Android runtime:

Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động Phần này có hai bộ phận tương tự như mô hình chạy Jave trên máy tính thường Thứ nhất là các thư viện lõi (Core library), chứa các lớp như JAVA IO, Collections, File Access Thứ hai là một máy ảo java (Dalvik Virtual Machine)

Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành Android không được chạy bằng JRE của Sun (nay là Oracle) mà chạy bằng máy ảo dalvik do Google phát triển Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex) Định dạng được tối ưu hóa cho bộ nhớ tối thiểu VM là dựa trên nền tảng thanh ghi, và chạy các lớp đã được biên dịch bởi một trình biên dịch java để chuyển đổi thành các định dạng dex Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng

và quản lý bộ nhớ thấp

Android 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ú, sinh động và sáng tạo Họ được tận dụng tự do 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, các thiết lập báo cáo, thông báo trạng

Trang 30

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 thiết kế đơn giản hóa việc sử dụng lại các thành phần

Tầng Applycations 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 activity

 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 để thiết kế phần giao diện ứng dụng như: TextView, EditText, GirdView, …

 Content providers: Cho phép các ứng dụng truy xuất dữ liệu từ các ứng khác (tính kế thừa)

 Resource Manager: Cung cấp truy xuất tới các tài nguyên không phải mã nguồn (source code), chẳng hạn như graphics, layout, …

 Location manager, Noitifycation Manager: Cho phép tất cả ứng dụng có thể hiển thị các loại thông báo khác nhau (custom arlets) trong status bar

 Telephony Manager: Dịch vụ thoại (phone’s services), cho phép các ứng dụng thông qua dịch vụ này truy xuất các thao tác liên quan đến điện thoại

 Package Manager: Quản lý các gói ứng dụng, các chương trình đã cài đặt, các thư viện

Tầng ứng dụng (Application):

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

Các ứng dụng được cài đặt như phần mềm, trò chơi, từ điển…

Các chương trình có đặc điểm là:

 Viết bằng Java, có phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho hệ thống Nó có thể là một Active program: chương trình có 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

 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 bên thứ ba được phép chạy nền

Trang 31

Công cụ xấp xỉ đường cong (Curve fitting toolbox):

2.4 MỘT SỐ MODULE SỬ DỤNG TRONG MÔ HÌNH:

2.4.1 Vi điều khiển:

a Giới thiệu về vi điều khiển:

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một vi

xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số, Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài

Hình 2.6 Hệ thống vi điều khiển cơ bản

Có rất nhiều hãng sản xuất vi điều khiển, nổi tiếng là TI, Microchip, Atmel, Mỗi loại đều có ưu và nhược điểm khác nhau, vì giới hạn của đề tài này dùng chức năng vi điều khiển không quá phức tạp nên hầu hết các vi điều khiển đều có thể dùng được, ở đây ta cân nhắc về vấn đề thông dụng, nhỏ gọn và khả năng phát triển trong tương lai của vi điều khiển nên ta chọn dòng vi điều khiển AVR của hãng Atmel

Trang 32

b Board vi điều khiển Arduino Uno R3:

Arduino Uno được xây dựng với phân nhân là vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ)

ra / vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin) Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0

- A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13) Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên board

Hình 2.7 Sơ đồ và chức năng chân Arduino Uno R3

 Một vài thông số của Arduino Uno:

 Arduino Uno R3 sử dụng vi điều khiển Atmega328P

Trang 33

 Số chân Digital: 14 (6 chân PWM)

 Giao tiếp UART: 1 bộ UART

 Giao tiếp SPI : 1 bộ SPI

 Giao tiếp I2C : 2 bộ I2C

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

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

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

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

 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

 Bộ nhớ của Arduino Uno R3:

 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ần quá 20KB bộ nhớ này đâu

 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM

 Chú ý: khi mất điện, dữ liệu trên SRAM sẽ bị mất

 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): tương tự như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào đây mà không phải lo bị mất khi mất điện giống như dữ liệu trên SRAM

c Giao tiếp UART trong Arduino Uno R3:

Khái niệm giao tiếp UART:

UART là chuẩn truyền thông nối tiếp bất đồng bộ (Universal Asynchronous Receiver – Transmitter) dùng để truyền nhận dữ liệu giữa 2 hệ thống và không có phân biết chủ-

tớ, giữa các hệ thống là ngang cấp nhau

Chuẩn UART gồm một đường phát dữ liệu và một đường nhận dữ liệu Để truyền

dữ liệu giữa 2 hệ thống với nhau thì cả hai hệ thống phải tự tạo xung clock (CK) có cùng tần số (Tốc độ baud)

Trang 34

Hình 2.8 Giao tiếp 2 hệ thống dùng chuẩn UART

Nguyên lý hoạt động:

Khi ở trạng thái chờ, mức điện áp của thiết bị truyền ở mức 1 (high) Khi bắt đầu truyền

dữ liệu, START bit sẽ chuyển từ 1 xuống 0 để báo hiệu cho thiết bị nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền Cuối cùng là STOP bit là 1 báo cho thiết bị nhận rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền (Frame) nhằm đảm báo tính đúng đắn của dữ liệu

Hình 2.9 Nguyên lý hoạt động chuẩn UART

Giao tiếp UART trong Arduino Uno R3:

Trên Arduino Uno có hổ trợ một chuẩn giao tiếp UART đó là 1 chân D0 (RX) dùng

để nhận dữ liệu chuẩn TTL và 1 chân D1(TX) dùng để truyền dữ liệu chuẩn TTL

d Giao tiếp SPI trong Arduino Uno R3:

Khái niệm giao tiếp SPI:

SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn

Trang 35

này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave Select)

Hình 2.10 Các chân giao tiếp SPI trên Uno R3

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 chân SCK báo 1 bit dữ liệu đến hoặc đi Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trong chuẩn UART Sự tồn tại của chân SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip Master

MISO– Master Input / Slave Output: nếu là chip Master thì đây là đường Input

còn nếu là chip Slave thì MISO lại là Output MISO của Master và các Slaves được nối trực tiếp với nhau MOSI – Master Output / 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 – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave

đường SS sẽ ở mức cao khi không làm việc Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có 1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng

Trang 36

Ta có thể kiểm soát 1 hoặc nhiều thiết bị sử dụng SPI Ví dụ dưới đây là 1 thiết bị

Hình 2.11 Kết nối giữa 2 thiết bị dùng SPI

Dữ liệu được truyền qua lại dữa 2 đường MISO và MOSI Điều này chỉ thực hiện được khi Dòng SS được thiết lập ở mức thấp LOW Nói cách khác, để giao tiếp với một thiết

bị SPI chúng ta cần thiết lập các dòng SS với thiết bị ở mức thấp LOW, sau đó giao tiếp với nó, sau đó thiết lập các dòng SS trở lại mức cao HIGH Nếu chúng ta có hai hoặc nhiều thiết bị SPI trên cùng 1 bus, chúng sẽ được kết nối như sau:

Hình 2.12 Kết nối giữa nhiều thiết bị dùng SPI

Chú ý, ở đây có hai dòng SS - với mỗi 1 thiết bị chỉ sử dụng 1 dòng SS Bạn có thể sử dụng bất kỳ chân digital nào trên Arduino của bạn cho dòng SS Chỉ cần nhớ là để tất

cả các dòng SS ở mức cao HIGH , "ngoại trừ" dòng SS mà bạn muốn kết nối với các thiết bị SPI vào thời điểm đó

Trang 37

2.4.2 Module bluetooth:

Trên thị trường hiện nay có khá nhiều module Bluetooth hỗ trợ vi điều khiểu giao tiếp với thiết bị khác thông qua kết nối Bluetooth, một số module Bluetooth thường được sử dụng trong thực tế như: module Bluetooth HC-05, module Bluetooth HC-06, Bluetooth Smart Module,… Tuy nhiên, module Bluetooth HC-06 là lựa chọn tối ưu cho đồ án này vì:

- Giá thành rẻ hơn so với các Module khác

- Tốc độ hoạt động phù hợp với truyền dữ liệu điều khiển thiết bị

- Dễ dàng mua ở thị trường Việt Nam

- Được nhiều người sử dụng và đánh giá là rất ổn định

Giới thiệu module Bluetooth HC06

Module HC-06 được thiết kế dựa trên chip BC417 Con chip này khá phức tạp và sử dụng bộ nhớ flash ngoài 8Mbit Nhưng việc sử dụng module này hoàn toàn đơn giản bởi nhà sản xuất đã tích hợp mọi thứ trên module HC-06

Sơ đồ chân HC-06 gồm có:

KEY: Chân này để chọn chế độ hoạt động AT Mode hoặc Data Mode

VCC: Chân này có thể cấp nguồn từ 3.6V đến 6V bên trong module đã có một ic

nguồn chuyển về điện áp 3.3V và cấp cho IC BC417

GND: Nối với chân nguồn GND

TXD, RXD: Đây là hai chân UART để giao tiếp module hoạt động ở mức logic 3.3V STATE: Chân này chỉ cần thả nổi và không cần quan tâm đến chân này

Sơ đồ chân của module HC06:

Hình 2.13 Module Bluetooth HC 06

Đặc điểm của module Bluetooth HC06

Trang 38

 Điện áp hoạt động 3,3V đến 6,6V

 Khi bắt đầu kết nối cần dòng là 30 mA, sau khi kết nối xong dòng hoạt động truyền nhận bình thường là 8 mA

 Tốc độ Baud UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400,

57600, 115200

 Kích thước của module chính: 27mm X 13mm X 2mm

 Phiên bản Bluetooth V2.0 + EDR

 Chipset CSR BC417143

 Bluetooth class 2: Tầm phủ sóng 10m

 Dải tần sóng hoạt động: 2.4GHz

 Thiết lập mặc định: Baud rate: 9600, N, 8, 1 Pairing code: 1234

 Module này có 2 chế độ làm việc (có thể tùy chỉnh 2 chế độ đó thông qua chân key 34 của nó):

- Tự động kết nối

- Đáp ứng theo lệnh: khi làm việc ở chế độ này, các bạn có thể gửi các lệnh AT để giao tiếp với module

Các chế độ hoạt động

HC-06 có hai chế độ hoạt động là Command Mode và Data Mode Ở chế độ Commad Mode ta có thể giao tiếp với module thông qua cổng serial trên module bằng tập lệnh

AT quen thuộc Ở chế độ Data Mode module có thể truyền nhận dữ liệu tới module bluetooth khác Chân KEY dùng để chuyển đổi qua lại giữa hai chế độ này Có hai cách

để cho chúng ta có thể chuyển đổi module hoạt động trong chế độ Data Mode :

- Nếu đưa chân này lên mức logic cao trước khi cấp nguồn module sẽ đưa vào chế

độ Command Mode với baudrate mặc định 9600 Chế độ này khá hữu ích khi không biết baudrate trong module được thiết lập ở tốc độ bao nhiêu Khi chuyển sang chế độ này đèn led trên module sẽ nháy chậm (khoảng 2s) và ngược lại khi chân KEY nối với mức logic thấp trước khi cấp nguồn module sẽ hoạt động chế độ Data Mode

- Nếu module đang hoạt động ở chế Data Mode để có thể đưa module vào hoạt động ở chế độ Command Mode bằng cách đưa chân KEY lên mức cao Lúc này module sẽ vào chế độ Command Mode nhưng với tốc độ Baud Rate được thiết lập lần cuối cùng

Vì thế phải biết baudrate hiện tại của thiết bị để có thể tương tác được với nó

Ở chế độ Data Mode, HC-06 chỉ có thể cấu hình ở chế độ SLAVE : Cần thiết lập kết nối

từ smartphone, laptop, usb bluetooth để dò tìm module sau đó pair với mã PIN là 1234 Sau khi pair thành công, ta sẽ có 1 cổng serial từ xa hoạt động ở baud rate 9600

Trang 39

2.4.3 Module Wifi ESP8266:

Hiện tại thì đã có tới 14 phiên bản của ESP8266, quá nhiều sự lựa chọn cho chúng ta Nhưng vì ở Việt Nam chỉ có 2 phiên bản ESP8266 phổ biến hiện nay đó là ESP-01 và ESP-12.Tuy nhiên, tôi chọn Module sử dụng là ESP-12 vì:

- Phiên bản mới nhất

- Có nhiều chân I/O

- Hỗ trợ chuẩn truyền nhận dữ liệu cả SPI và UART

Giới thiệu module ESP-12:

Mạch thu phát Wifi Soc ESP8266 ESP-12 có nhân xử lý bên trong là IC Wifi SoC ESP8266, thường được sử dụng trong các ứng dụng kết nối wifi, IoT hiện nay

Sơ đồ chân và chức năng:

Hình 2.14 Sơ đồ chân và chức năng ESP-12

Đặc điểm của Module ESP-12:

 1 x Reset button,

 1 x User button khi khởi động module, nhấn phím này sẽ đưa chip về bootloading mode để upload firmware

 1xRed LED có thể lập trình được ( nhấp nháy khi có tín hiệu chẳng hạn…),

 Tích hợp chuyển đổi điện áp tín hiệu từ 5V sang 3.3V cho UART và chân Reset,

lý do là esp8266 chỉ chạy ở điện áp 3.3V,

 Tích hợp IC ổn áp 3.3V, 500mA

 2 điot bảo vệ chống cấp ngược nguồn

Trang 40

 9 x GPIO (3.3V logic), có thể sử dụng các giao tiếp I2C hặc SPI

 2 x UART pins

 2 x 3-6V power inputs, reset, enable, LDO-disable, 3.3V output

Tính năng:

 Sử dụng nguồn 3.3v

 Tích hợp anten PCB trace trên module

 Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz và hổ trợ bảo mật WPA/WPA2

 Khoảng cách giữa các chân 2mm

Các chế độ hoạt động:

ESP8266 có ba chế độ hoạt động là Station, Access Point và cả hai chế độ này Ở chế

độ Station, thiết bị kết nối vào mạng WIFI được gọi là station (trạm) Việc kết nối vào mạng Wifi được hỗ trợ bởi một access point (AP), một AP có chức năng như một hub nhưng dùng cho nhiều station Chế độ Access Point thì được hiểu là một điển truy cập cho các Station

Ngày đăng: 01/06/2019, 19:45

TỪ KHÓA LIÊN QUAN

w