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 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH -
Tp Hồ Chí Minh - 01/2018
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP Y SINH
Trang 3KHOA Đ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 4Tên đề tài: HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT CÁC THIẾT BỊ TRONG NHÀ
Trang 5LỜ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 6LỜ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 82.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 9LIỆ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 10Hì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 11Hì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 12LIỆ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 13TÓ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 14Chương 1 TỔNG QUAN
Trang 151.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 18Chương 2 CƠ SỞ LÝ THUYẾT
Trang 192.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 20Cá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 21Firebase 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 22Bluetooth đượ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 232.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 24tay 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 25Android 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 26nà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 27Hiệ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 28Hì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 30thá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 31Cô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 32b 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 34Hì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 35nà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 36Ta 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 372.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 392.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