1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Điều khiển thiết bị qua internet dùng raspberry PI 2 thông qua wi fi

118 20 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 118
Dung lượng 8,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một sản phẩm khác cũng rất gần gũi và phổ biến đó là nhà thông minh SmartHome, với SmartHome bạn có thể kiểm soát ngôi nhà bất cứ đâu, các thiết bị trong nhà được điều khiển không dây là

Trang 1

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

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG

ĐIỀU KHIỂN THIẾT BỊ QUA INTERNET DÙNG

RASPBERRY PI 2 THÔNG QUA WIFI

GVHD: ThS NGUYỄN VĂN NGA SVTH: CAO VĂN TIẾN

MSSV: 12141228 SVTH: NGUYỄN MINH NGHĨA MSSV: 12141145

S K L 0 0 4 3 5 0

Trang 2

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

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

Điều Khiển Thiết Bị Qua Internet Dùng

Raspberry PI 2 Thông Qua Wi-Fi

GVHD: ThS.Nguyễn Văn Nga SVTH: Cao Văn Tiến - Nguyễn Minh Nghĩa MSSV: 12141228 - 12141145

Trang 3

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

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

-

ĐỒ ÁN TỐT NGHIỆP

NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG

ĐỀ TÀI:

Điều Khiển Thiết Bị Qua Internet Dùng

Raspberry PI Thông Qua Wifi

Trang 4

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

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

Tp HCM, ngày tháng năm 2016

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

Họ tên sinh viên: Cao Văn Tiến MSSV: 12141228

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

I TÊN ĐỀ TÀI: Điều Khiển Thiết Bị Qua Internet Dùng Raspberry PI 2 Thông Qua

Wi-Fi

II NHIỆM VỤ

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

- Tìm hiểu thông tin qua mạng

- Sách “Các giải pháp lập trình C# tổng biên dịch Nguyễn Ngọc Bình Phương – Thái Thanh Phong, Chịu trách nhiệm xuất bản: TS NguyễnXuânThủy ”

- Arduino Microcontroller: Processing for Everyone! PartI StevenF.Barrett 2010

- Arduino Microcontroller: Processing for Everyone!PartII StevenF.Barrett 2010

- John Boxall, “Arduino Workshop”, William Pollock, 2013

- Massimo Banzi, “Getting Started with Arduino”, O’Reilly Media, 2009

- Sách “Thực hành điện tử công suất” tác giả ThS.Hoàng Ngọc Văn

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

- Tìm hiểu Kit Arduino UNO và Kit Raspberry PI 2 với hệ điều hành Win 10 Iot

- Viết ứng dụng điều khiển cho Raspberry PI 2 và lập trình cho Arduino UNO

- Tìm hiểu hệ điều hành Android và viết ứng dụng trên hệ điều hành này

- Tìm hiểu các đặc tính của Module Esp8266, cảm biến PIR, cảm biến ánh sáng và cảm biến LM35

- Vẽ mạch in kết nối các Module lại với nhau

III NGÀY GIAO NHIỆM VỤ: 01/04/2016

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 30/06/2016

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Nguyễn Văn Nga

Trang 5

Đề 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 đó

Người thực hiện đề tài

Cao Văn Tiến - Nguyễn Minh Nghĩa

Trang 6

Lời cảm ơn đầu tiên chúng tôi xin gửi tới thầy Nguyễn Văn Nga, mặc dù thầy rất bận trong công việc giảng dạy, nhưng thầy đã đồng ý hướng dẫn đồ án tốt nghiệp cho nhóm chúng em Trong quá trình làm đồ án, thầy luôn chỉ bảo, nhắc nhở để chúng tôi vượt qua những khó khăn và hoàn thành đồ án đúng tiến độ Bên cạnh đó, cùng với những lời nhận xét, góp ý của thầy cũng giúp chúng tôi có những định hướng đúng đắn hơn khi thực hiện

đề tài

Chúng tôi cũng xin bày tỏ lòng biết ơn sâu sắc tới quý thầy cô trong khoa Điện-Điện Tử Quý thầy cô là những người đã dạy dỗ, truyền đạt cho chúng tôi từ những kiến thức cơ bản nhất, đồng thời thường xuyên giúp đỡ rất nhiệt tình khi chúng tôi có khó khăn trong vấn đề nghiên cứu đề tài, không những thế còn tạo điều kiện hết sức thuận lợi để chúng tôi có được môi trường, những điều kiện nghiên cứu tốt nhất có thể

Cuối cùng, chúng tôi không quên gửi lời cảm ơn sâu sắc tới gia đình, người thân và bạn

bè là nguồn động viên to lớn hỗ trợ chúng tôi về mặt tinh thần cũng như vật chất để chúng tôi có thêm động lực và tự tin để hoàn thành đồ án này

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

Người thực hiện đề tài

Trang 7

MỤC LỤC

TRANG BÌA i

NHIỆM VỤ ĐỒ ÁN ii

LỊCH TRÌNH iii

CAM ĐOAN iv

LỜI CẢM ƠN v

MỤC LỤC vi

LIỆT KÊ HÌNH VẼ vii

LIỆT KÊ BẢNG VẼ viii

TÓM TẮT ix

CHƯƠNG 1.TỔNG QUAN 1

1.1 Đặt vấn đề 1

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.6 Bố cục 4

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

2.1Công nghệ không dây Wifi 4

2.1.1Lịch sử hình thành và phát triển Wi-Fi 5

2.1.2 Khái niệm Wi-Fi 5

2.1.3Ưu điểm của công nghệ Wi-Fi 5

2.1.4Khuyết điểm của công nghệ Wi-Fi 6

2.1.5 Các tầng giao thức Wi-Fi 6

2.2 Hệ thống điều hành Android 8

2.2.1 Khái niệm 8

2.2.2 Lịch sử phát triển 8

2.2.3 Các phiên bản của Android 9

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

2.2.5 Giới thiệu về nền tảng Android 17

2.2.5.1 Giới hạn của thiết bị cầm tay 17

2.2.5.2 Kiến trúc của hệ điều hành Android 18

Trang 8

2.3.1 Đặc điểm truyền thông I2C 24

2.3.2 Qúa trình truyền nhận giữa hai thiết bị trên Bus I2C(Master-Slave) 25

2.4 Hệ thống phần cứng 27

2.4.1 Module Esp8266 27

2.4.2 Kit Arduino 29

2.4.3 Kit Raspberry PI2 32

2.4.4 Các cảm biến PIR, LM35, ánh sáng 33

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

3.1 Giới thiệu 37

3.2 Tính toán và thiết kế phần cứng 37

3.2.1 Thiết kế sơ đồ khối hệ thống 37

3.2.1.1 Yêu cầu của hệ thống 37

3.2.1.2 Sơ đồ khối và chức năng từng khối 39

3.2.2 Tính toán và thiết kế mạch 40

3.2.2.1 Khối cảm biến LM35 40

3.2.2.2 Khối cảm biến PIR 41

3.2.2.3 Khối cảm biến ánh sáng 42

3.2.2.4 Khối ngõ ra công suất 43

3.2.2.5 Khối nguồn 44

3.3 Sơ đồ nguyên lý toàn mạch 46

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

4.1 Giới thiệu 47

4.2 Thi công hệ thống 47

4.2.1 Thi công bo mạch 47

4.2.2 Lắp ráp và kiểm tra 48

4.3 Đóng gói và thi công mô hình 49

4.3.1 Đóng gói bộ điều khiển 49

4.3.2 Thi công mô hình 50

4.4 Lập trình hệ thống 51

4.4.1 Lưu đồ giải thuật 51

4.4.2 Phần mềm lập trình cho Arduino UNO 55

4.4.3 Phần mềm lập trình cho Win 10 Iot core 63

4.4.4 Phần mềm lập trình cho Android Studio 69

4.5 Giới thiệu về nền tảng Win10 Iot Core 77

Trang 9

4.6 Giới thiệu về trang Web Thingspeak 80

4.7 Viết tài liệu hướng dẫn sử dụng, thao tác 81

4.6.1 Viết tài liệu hướng dẫn sử dụng 81

4.6.2 Quy trình thao tác 81

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

5.1 Cảm biến 83

5.2 Module Esp8266 83

5.3 Kit Raspberry PI 2 83

5.4 Kit Arduino UNO 84

5.5 Chương trình giao diện điều khiển trên hệ điều hành Android 84

5.6 Kết quả - Đánh giá 84

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

6.1Kết luận 85

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

TÀI LIỆU THAM KHẢO 86

PHU LỤC 88

Trang 10

Hình Trang

Hình 2.7: Khung truyền nhận giữa hai thiết bi trên Bus I2C 25

Hình 3.4: Sơ đồ kết nối cảm biến ánh sáng với Arduino 42

Hình 3.5: Sơ đồ nguyên lý của Module relay kích H/L 43

Hình 3.6: Module 8 relay kích H/L thực tế (5VDC) 44

Trang 11

Hình 4.7: Device Manager 56

Hình 4.9: Click chọn “Browse my computer for driver software” 57

Trang 12

Hình 4.41: Đặt tên cho Activity 75

Hình 4.43: Các bước lựa chọn để tải nền tảng win10 IoT Core 78

Trang 13

Bảng Trang Bảng 2.1: Các sự kiện trong một chu kỳ ứng dụng 24

Bảng 2.2: Thông số kỹ thuật Module Arduino UNO 29

Bảng 3.1:Bảng chỉ ra các điện áp gần đúng dựa trên cảm biến ánh sáng 43 /kháng W/nguồn cấp 5V và 10K

Trang 14

Thời gian gần đây, khoa học kỹ thuật đang có những bước phát triển mạnh mẽ, đặc biệt trong lĩnh vực điện tử và công nghệ thông tin Các chip xử lý được tích hợp ngày càng nhiều bóng bán dẫn nhưng kích thước lại nhỏ hơn trước và tiêu thụ điện năng thấp hơn

Sự phát triển đó đã hỗ trợ rất nhiều cho con người, ngày càng nhiều các hệ thống và thiết

bị thông minh được tạo ra để phục vụ cuộc sống Sản phẩm thông minh gần gũi với con người nhất đó là điện thoại thông minh (SmartPhone), với SmartPhone bạn có thể giải trí, làm việc, cập nhật mọi thông tin cần thiết Nhờ vào sự phát triển của lĩnh vực điện tử mà SmartPhone ngày càng được tích hợp nhiều chức năng trong khi đó giá thành ngày càng

rẻ Một sản phẩm khác cũng rất gần gũi và phổ biến đó là nhà thông minh (SmartHome), với SmartHome bạn có thể kiểm soát ngôi nhà bất cứ đâu, các thiết bị trong nhà được điều khiển không dây làm tăng thêm tính thẩm mỹ Hiện nay, một xu hướng mới được hình thành và ứng dụng rộng rãi là sử dụng SmartPhone điều khiển SmartHome Từ SmartPhone có thể điều khiển các thiết bị và cài đặt các chế độ hoạt động cho ngôi nhà Nhận thấy tiềm năng phát triển của điều khiển không dây, đặc biệt là việc sử dụng

SmartPhone để điều khiển thiết bị, chúng em quyết định thực hiện đề tài: “Điều Khiển Thiết Bị Qua Internet Dùng Raspberry PI 2 Thông Qua Wi-Fi” Đây là cơ hội để

chúng em nghiên cứu kết nối không dây Wi-Fi, đồng thời tìm hiểu hệ điều hành Android (hệ điều hành phổ biến nhất trong thế giới SmartPhone hiện nay) Từ đó có thể tạo ra một ứng dụng điều khiển thiết bị bằng SmartPhone với nhiều tính năng ứng dụng công nghệ truyền không dây Wi-Fi

Mặc dù chúng em đã rất cố gắng hoàn thành đề tài nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, rất mong quý Thầy/Cô và các bạn sinh viên đóng góp ý kiến để chúng tôi có thể hoàn thiện đề tài và tạo ra những sản phẩm tốt hơn Mọi ý kiến đóng góp xin gửi về email: 12141228@student.hcmute.edu.vn

Trang 15

Trong những năm gần đây nỗi lên vấn đề điều khiển thiết bị mỗi lúc mọi nơi, điều khiển và giám sát thông qua mạng Wi-Fi hoặc 3G, người ta gọi là IoT (Internet of thing) Giúp cho việc điều khiển, giám sát của con người trở nên thuận tiện, tiết kiệm được thời gian chi phí

Và với xu hướng phát triển công nghệ truyền nhận dữ liệu không dây đang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh Hiện nay, có khá nhiều công nghệ không truyền nhận dữ liệu không dây như RF, Wi-Fi, Bluetooth, NFC…Trong đó, Wi-

Fi luôn được cải tiến để nâng cao tốc độ cũng như khả năng bảo mật Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao Việc nghiên cứu

và thiết kế một bộ sản phẩm điều khiển thiết bị không dây có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩm được sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển thông minh

Trang 16

Do đó, nhóm em quyết định thực hiện đề tài: “ĐiềuKhiển Thiết Bị Qua Internet Dùng Raspberry PI 2 Thông Qua Wi-Fi” Đề tài ứng dụng đặc biệt công nghệ mới

IoT điều khiển thiết bị trong nhà bằng màn hình cảm ứng bên trong, vừa điều khiển bên ngoài thông qua Wi-Fi dưới sự kiểm soát và điều khiển SmartPhone

1.2 MỤC TIÊU

Thiết kế hệ thống nhà thông minh trong đó có Kit Raspberry PI 2, Kit Ardunio, màn hình cảm ứng điều khiển, các relay có thể điều khiển các đèn và quạt, các cảm biến để thu thập dữ liệu về (cảm biến ánh sáng, cảm biến đo nhiệt độ, cảm biến PIR …) cùng với module Esp8266 để truyền và nhận dữ liệu từ mạng Trong đó yêu cầu cần thực hiện là: Thực hiện việc điều khiển thiết bị qua Internet dùng Raspberry PI 2 qua module Wi-Fi, giao tiếp được giữa Kit Raspberry PI 2 với Kit Arduino UNO, thực hiện lập trình trên Visual Studio 2015 bằng ngôn ngữ C# viết chương trình và giao diện điều khiển đưa xuống Kit Raspberry PI 2, điều khiển thiết bị từ mạng hay màn hình cảm ứng và hồi tiếp lại trạng thái của thiết bị hiện tại, lập trình giao diện trên điện thoại để kết nối với trang wed điều khiển thiết bị

NỘI DUNG NGHIÊN CỨU

Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn có, tìm kiếm thông tin từ những đồ án các khóa trước đã thực hiện, chúng em xác định các nội dung cần nghiên cứu là:

 Hệ điều hành Android: Kiến trúc hệ điều hành Android, chu kỳ sống các ứng dụng chạy trên hệ điều hành Android, phần mềm hỗ trợ lập trình Android Studio, ngôn ngữ lập trình Java Viết giao diện điều khiển, thu thập dữ liệu về điện thoại SmartPhone

 Thiết kế giao diện điều khiển trên Kit Raspberry PI2 với phần mềm hỗ trợ Visual Studio 2015 viết trên ngôn ngữ C# Với giao diện truyền dữ liệu từ Kit Raspberry PI2 theo chuẩn I2C xuống Kit Arduino giám sát và điều khiển thiết

Trang 17

 Chỉ hoạt động trên các thiết bị chạy hệ điều hành Android,chưa hỗ trợ các hệ điều hành khác như IOS, Blackbery OS, Window Phone, Symbian,…

 Bộ điều khiển thiết bị công suất với 4 ngõ ra, công suất mỗi ngõ ra 1000W, điện

áp ngõ ra 220VAC

 Không hỗ trợ tùy chỉnh ngôn ngữ

 Đối với cảm biến PIR phát hiện vật nằm trong khoảng 6 m

1.5 BỐ CỤC

Chương 1: Trong chương này nêu tổng quát về đề tài, với những mục tiêu đạt được,

những nội dung hay đối tượng cần phải nghiên cứu, cuối cùng giới hạn của đề tài khi chạy thực tế trong ngôi nhà

Chương 2: Trong chương này nêu khái quát khái niệm về công nghệ không dây

Wi-Fi, giới thiệu kit Raspberry PI 2 với hệ điều hành mới win 10 Iot core Nêu lên những đặc điểm, giao thức truyền I2C và các thông số của các Module sử dụng cho việc điều khiển (KIT Raspberry PI2, KIT Arduino, Module Esp8266) và 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 3: Trong chương này trình bày sơ đồ khối, sơ đồ nguyên lý toàn mạch chức

năng của từng khối Tính toán các khối cảm biến PIR, LM35, ánh sáng, khối thu thập

dữ liệu, khối điều khiển Kit Raspberrry PI2, khối công suất , cuối cùng là khối nguồn cấp cho toàn hệ thống

Chương 4: Trong chương này trình bày sơ đồ giải thuật, giới thiệu phần mềm lập trình

cho Arduino, điện thoại SmartPhone, win 10Iot core Viết tài liệu hướng dẫn sử dụng, các thao tác

Chương 5:Trong chương này đưa ra một số hình ảnh tiền xử lý, kết quả thống kê Chương 6:Trong chương này đưa ra kết luận và hướng phát triển

Trang 18

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

2.1 Công nghệ không dây Wi-Fi

Wi-Fi trong thế giới hiện đại dường như là một phần không thể thiếu, nó mang lại việc truy cập kết nối Internet dễ dàng tiện lợi cho mọi người Ngày nay, một số thiết bị được tích hợp công nghệ không dây Wi-Fi để cho phép truyền và nhận từ thiết

bị không dây Fi khác Dưới đây là một số đặc trưng cho công nghệ không dây

Wi-Fi

2.1.1 Lịch sử hình thành và phát triển Wi-Fi

Wi-Fi viết tắt từ Wireless Fidelity hay mạng 802.11 là hệ thống mạng không dây

sử dụng sóng vô tuyến Với cuộc cách mạng không dây bắt đầu lặng lẽ với một quyết định của chính phủ Hoa Kì vào năm 1985

Vào năm 1985 FCC phát hành 3 loại tần số không có giấy phép cho công chúng, tại 900MHz, 24GHz và 5GHZ

Năm 1988: NCR được biết đến là công ty Máy tính tiền Quốc Gia, muốn kết nối các máy tính và gửi một yêu cầu đến nhóm kĩ sư điện, điện tử (IEEE), thiết lập một hội đồng được gọi là “802.11” để giúp xác định một tiêu chuẩn cho công nghệ không dây Tại thời điểm này nhiều thiết bị không dây đầu tiên không tương thích với các thiết bị tương tự được sản xuất bởi các công ty khác

Năm 1997: Chuẩn 802.11 được thiết lập bằng cách dùng băng tần 900MHz

Năm 1999: Thuật ngữ Wi-Fi đã trở thành một thương hiệu được đăng kí của Liên minh Wi-Fi, tổ chức phi lợi nhuận toàn cầu thúc đẩy công nghệ và tiêu chuẩn không dây Wi-Fi đề cập đến một sản phẩm mạng không dây phù hợp với một trong những chuẩn 802.11 Trong giai đoạn này Chuẩn 802.22b, dùng băng tầng 2,4GHz, được phê duyệt bởi IEEE Chuẩn 11b tăng tốc độ không dây từ 2 megabit mỗi dây(Mbps) lên 11Mbps Lần đầu tiên sản phẩm 11b Wi-Fi được

Trang 19

Năm 2000: Chuẩn 802.11a được phê duyệt, và sử dụng bằng tần 5GHz, tăng tốc

độ không dây lên đến 54Mbps

Năm2000: D-Link ra mắt điểm truy cập 802.11b đầu tiên tại các điểm bán lẻ,

mở đầu cuộc cách mạng không dây trong nhà và trong doanh nghiệp

Năm 2003: Chuẩn 802.11g được phê duyệt, sử dụng băng tần 24GHz lên đến 54Mbps

Năm 2004: Wi-Fi và điện thoại di động đầu tiên được chứng nhận PDAs được tung ra thị trường, bao gồm HP, iPAQ PocketPC, Nokia 9500 và Motorola MPx

Năm 2005: Từ “Wi-Fi” được thêm vào từ điển tiếng anh Merriam-Webster Các thiết bị chơi game và máy ảnh số dùng Wi-Fi đầu tiên được ra mắt

Năm 2006: D-link ra mắt bộ adapter và router không dây 802.11g và 802.11n

Năm 2009: Chuẩn 802.11n được phê duyệt, tối ưu hóa ở 5GHz, mặc dù công nghệ đa-kênh cho phép nó hoạt động tốt ở 2,4GHz Nhiều router ngày nay cho phép tải băng tần kép, tương thích trên băng tần 2,4GHz và 5GHz, tăng tốc độ lên đến 900Mbpz

Năm 2012: Chuẩn 802.11ac bản 2.0 được công bố, với tốc độ ban đầu lên đến 1750Mbps (1,71Gbps) và khả năng đạt đến 6,93Gbps trong tương lai

Năm 2013: D-link ra mắt một dòng đầy đủ các bộ adapter và router không dây chuẩn 802.11ac

Năm 2014 đến nay: Ngày phê chuẩn dự kiến chuẩn 802.11ac được biết là

“11AC” trên băng tần 5GHz

2.1.2 Khái niệm Wi-Fi

Wi-Fi (Wireless Fidelity) là tên các nhà sản xuất gọi chuẩn công nghệ IEEE 802.11 dùng để thiết lập các hệ thống mạng không dây Bộ chuẩn 802.11 bao gồm nhiều chuẩn, trong đó phổ biến nhất là 802.11b, thường được sử dụng trong triển khai các hotspot, do mang tính chất toàn cầu và có thể ứng dụng rộng rãi mà không đòi hỏi nhiều về cơ sở hạ tầng

2.1.3 Ưu điểm của công nghệ Wi-Fi

Trong không gian văn phòng vốn bề bộn, bạn sẽ cảm thấy thoải mái hơn nếu bớt

đi được hệ thống dây nối loằng ngoằng vướng víu Xu hướng mới, người ta muốn

Trang 20

thay đổi để mọi thứ đều là không dây Các thiết bị không dây sử dụng sóng radio tần

số cao để truyền dữ liệu Phổ biến nhất hiện nay là Wi-Fi và Bluetooth Wi-Fi có tốc

độ kết nối tương đối cao, 11Mb/s đối với chuẩn 802.11b, 54Mb/s đối với chuẩn 802.11g, chuẩn 802.11ac bản 2.0 khả năng đạt đến 6,93Gbps trong tương lai và còn cao hơn nữa Các thiết bị hỗ trợ đều được nhà sản tích hợp sẵn các adapter Wi-Fi Ngoài ra, các nhà sản xuất còn sản xuất các cặp thu phát không dây theo chuẩn riêng tính hợp vào các sản phẩm không dây Chính vì như vậy việc duy trì kết nối mạng Internet (mạng không dây) mọi lúc mỗi nơi khi được phủ sóng Wi-Fi

2.1.4 Khuyết điểm của công nghệ Wi-Fi

Khiếm khuyết trong chuẩn 802.11 – giao thức mạng không dây phổ biến nhất hiện nay do Tổ chức kỹ sư điện và điện tử quốc tế IEEE thiết lập – là cho phép một thiết bị cá nhân gây tắc nghẽn khả năng liên kết của các thiết bị khác trong bán kính 1

km thông qua một tín hiệu cường độ thấp

Khiếm khuyết ảnh hưởng đến thủ tục đánh giá kênh sạch (CCA) – có vai trò giảm thiểu khả năng 2 thiết bị cùng phát sóng trên một băng tần Những cuộc tấn công thông qua lỗi này khiến tất cả thiết bị trong vùng sóng phải chờ đợi cho đến khi vụ tấn công chấm dứt mới có thể truyền tín hiệu

Đối tượng bị lỗi là những thiết bị hỗ trợ các chuẩn không dây 801.11, 802.11b và 802.11g tốc độ thấp Những thiết bị dùng chuẩn 802.11a hoặc 802.11g tốc độ cao (trên 20MB/giây) thì không bị tác động

2.1.5 Các tầng giao thức Wi-Fi

Giao thức là những quy tắc, luật lệ mà các quá trình truyền nhận thông tin trên mạng phải tuân theo một cách triệt để Các tầng giao thức này được chia thành nhiều tầng (layer), mỗi tầng giao thức giải quyết một nhiệm vụ cụ thể trong quá trình truyền, nhận thông tin

Mạng dùng giao thức TCP/IP, dữ liệu được chia thành những gói nhỏ là những gói tin (packet) Khi ta gửi đi một thông điệp, TCP sẽ chia những thông điệp này thành các packet, mỗi packet được đánh dấu bởi một số thứ tự và địa chỉ của người nhận, thêm vào đó là một số thông tin kiểm soát lỗi Các packet này được gửi lên mạng và công

Trang 21

và kiểm tra lỗi, gửi trả lại nếu gói không đúng, với những gói đúng, TCP sử dụng số thứ tự để tạo lại thông điệp ban đầu Tóm lại, công việc của IP là chuyển dữ liệu thô các packet từ nơi này đến nơi khác Công việc của TCP là quản lý dòng chảy và đảm bảo rằng dữ liệu là đúng Trong mô hình TCP/IP gồm có các tầng Ứng dụng (application) , tầng Giao vận (transport), tầng Mạng (NetWork), sau cùng đi tới tầng Host – to – network

- UDP (User Datagram Protocol) cung cấp giao diện ứng dụng

 Số hiệu Port (cổng): Một máy có thể liên lạc với một máy khác trong mạng qua địa chỉ IP Tuy nhiên, với một địa chỉ như vậy không đủ cho tiến trình (process) của máy này liên lạc với một tiến trình của một máy khác Vì vậy, TCP/UDP đã dùng 16 bits để có thể đặc tả nên một số hiệu cổng

Như vậy để 2 tiến trình của 2 máy hoặc Wi-Fi bất kỳ trong mạng có thể giao tiếp được với nhau thì mỗi đơn vị dữ liệu (frame) ở tầng Mạng có

IP gồm:

Trang 22

- Protocol (TCP/UDP)

- Địa chỉ IP của máy nguồn

- Số hiệu cổng của tiến trình ở máy nguồn

- Địa chỉ IP của máy đích

- Số hiệu cổng của tiến trình ở máy đích

là Google) Andorid được phát triển nhằm cạnh tranh với các hệ điều hành di động khác như iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Bada (Samsung), WebOS (Palm)

Android có một cộng đồng phát triển ứng dụng rất lớn, tính đến tháng 08/2014 hiện

có hơn khoảng 1.4 triệu có sẵn trên Play Store và đang liên tục được cập nhật Ứng dụng được phát triển bằng ngôn ngữ Java kết hợp với thư viện Java có sẵn của Google Các nhà phát triển ứng dụng có thể sử dụng máy tính chạy hệ điều hành Windows hoặc MacOS hoặc Linux kết hợp với Android SDK để phát triển ứng dụng cho Android

2.2.2 Lịch sử phát triển

Tổng công ty Android (Android, Inc.) được thành lập tại PaloAlto, California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger) Dù những người thành lập và nhân viên đều là những người có tiếng tăm, nhưng tổng công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm dành cho điện thoại di động Google mua lại Tổng công ty Android vào ngày 17 tháng 8

Trang 23

nhiều thông tin về Tổng công ty, nhưng nhiều người đồn đoán rằng Google dự tính tham gia thị trường điện thoại di động sau bước đi này Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau

Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết

bị di động được xây dựng trên nhân Linux phiên bản 2.6 Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008 Biểu trưng của hệ điều hành Android mới là một con robot màu xanh lá cây

Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn tráng miệng; ví dụ như phiên bản 1.5 Cupcake, sau đó tiếp nối bằng phiên bản 1.6 Donut (bánh vòng) Phiên bản mới nhất hiện nay là 5.0 Lollipop (kẹo que) Vào năm 2010, Google ra mắt loạt thiết bị Nexus - một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất HTC đã hợp tác với Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android

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

Hệ điều hành Android đã trãi qua chặng đường 5 năm phát triển, hàng loạt phiên bản mang nhiều cải tiến ra mắt Sau đây là các tính năng chủ chốt trong các phiên bản Android từ khi ra mắt đến nay

Trang 24

Hình 2.1: Các phiên bản Android

Điểm khởi đầu của Android là Android 1.0

Kỷ nguyên Android chính thức khởi động vào ngày 22/10/2008, khi mà chiếc điện thoại HTC Dream G1 chính thức được bán ra ở Mỹ Ở giai đoạn này, rất nhiều những tính năng cơ bản cho một smartphone bị thiếu sót, chẳng hạn như bàn phím ảo, cảm ứng đa điểm hay khả năng mua ứng dụng Tuy nhiên, vai trò của phiên bản đầu tiên này vô cùng quan trọng Nó đã đặt nền móng cho các tính năng có thể xem là đặc điểm nhận dạng của Android ngày nay

 Android 1.1 (dành riêng cho T_mobile G1), tháng 2/2009 bản nâng cấp đầu tiên của Android trình làng, khoảng 3 tháng sau khi G1 được bán ra Phiên bản 1.1 không phải là một cuộc cách mạng gì to lớn bởi tính năng chính của nó là sửa một danh sách lỗi khá dài Tuy nhiên, nó đã cho thấy khả năng nâng cấp thiết bị di động qua phương pháp Over-The-Air (tức tải về và cài đặt bản cập nhật ngay trên thiết bị, không cần kết nối với máy tính) Ở thời điểm đó, rất ít

hệ điều hành di động có thể làm được việc này, hầu hết đều phải nhờ đến một phần mềm chuyên dùng nào đó trên PC Trước đó, ở Mỹ có dòng máy Danger Hiptop (được biết nhiều hơn với tên Sidekick) đã có cập nhật dạng gần giống over the air theo từng giai đoạn, và chính Andy Rubin, người sáng lập công ty Android Inc (sau đó Google mua lại) cũng chính là nhà đồng sáng lập hãng Danger

 Android 1.5: Cupcake (bánh nướng) ra mắt ngày 30-4-2009 Android 1.5 có lẽ

có vai trò cực kỳ quan trọng trong quá trình trưởng thành của Android khi nó

bổ sung cho hệ điều hành này những tính năng nổi bật giúp nó cạnh tranh với

Trang 25

Android 1.5 không có nhiều điểm thay đổi so với người tiền nhiệm của mình Google chỉ điểm thêm vài điểm để làm giao diện trông bóng bẩy, mượt mà hơn một tí, chẳng hạn như widget tìm kiếm có độ trong suốt nhẹ, biểu tượng app drawer có một số hoa văn nhỏ mới,… Nói chung, giao diện không phải là một điểm nhấn của Android 1.5 mà người ta quan tâm nhiều hơn đến các tính năng mới mà nó mang lại, chẳng hạn như: bàn phím ảo, cải tiến clipboard, khả năng quay phim, mở rộng khả năng cho widget,…

 Android 1.6: Donut (bánh rán) ra mắt ngày 30-9-2009 Mặc dù chỉ thêm có 0.1 vào mã số của Android 1.5 nhưng nó cũng mang lại nhiều cải tiến đáng giá Một vài điểm trong giao diện được cải thiện, vài tính năng nhỏ được thêm vào, cuối cùng là hỗ trợ cho mạng CDMA Động thái này cho phép nhiều nhà mạng hơn có thể sử dụng với Android, giúp cho Android có thêm một số lượng lớn người dùng ở Mỹ và ở cả Châu Á nữa Nhưng có lẽ điểm thú vị nhất của Donut

đó là hỗ trợ các thành phần đồ họa độc lập với độ phân giải Lần đầu tiên, Android có thể chạy trên nhiều độ phân giải và tỉ lệ màn hình khá nhau, cho phép những thiết bị có nhiều độ phân giải hơn là 320 x 480

 Android 2.0: Eclair ra mắt ngày 26-10-2009 Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair, phiên bản được nhận định là

“bước đi lớn‘‘ của hệ điều hành này Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc

Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối Bluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản Một điểm thuận tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vào một ảnh danh bạ để gọi, nhắn tin hay email đến họ Giao diện ứng dụng lịch biểu (Calendar) cũng thay đổi Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper) dù tùy chọn này tiêu tốn khá nhiều pin

 Android 2.2: Froyo ra mắt ngày 20-5-2010 Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn Phiên bản 2.2 ( Froyo ) mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game trên nền Flash Người dùng cũng có thể xem video clip nền Flash như YouTube và ra lệnh thực hiện cuộc gọi qua Bluetooth Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G Tính năng này được sử dụng rất phổ biến đến ngày nay Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị Điểm đầu tiên nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One

Trang 26

 Android 2.3: Gingerbread (bánh gừng) ra mắt ngày 6-12-2010 Đến cuối năm

2012, Gingerbread vẫn đang phủ sóng trên rất nhiều thiết bị dùng Android, chiếm đến hơn phân nửa (54%) Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp tầm gần NFC Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập tin đã tải về máy Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một số điều chỉnh trong giao diện người dùng (UI)

 Android 3.0: Honeycomb ra mắt ngày 22-2-2011 Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy Không chỉ

có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng… Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục sự phân mảng của Android (có các phiên bản riêng dành cho smartphone và tablet) Sau Android 3.0, Android 3.1 và 3.2 là hai bản nâng cấp nhỏ của Honeycomb và vẫn dùng lại cái tên này Mục đích chủ yếu của chúng là để sửa lỗi và thêm vài tính năng mới như resize widget ngay trên homescreen, hỗ trợ thẻ SD,…

 Android 4.0: Ice Cream Sandwich (bánh kẹp kem) ra mắt ngày 19/10/2011 Ice Cream Sandwich (ICS) là thế hệ Android được mong đợi nhất đến thời điểm

đó, ra đời cùng dòng smartphone bom tấn Samsung Galaxy Nexus thế hệ smartphone đầu tiên trang bị ICS Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thông thường vào phần bên dưới giao diện chủ, tùy biến widget,

dễ sắp xếp và duyệt danh sách ứng dụng hơn Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock Sceen) Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn

 Android 4.1: Jelly Bean ra mắt ngày 9-7-2012 Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả-ông lớn Windows Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành

Trang 27

thông tin, xác định vị trí… Rất đa năng và được xem như lời đáp trả của Google với phụ tá ảo Apple Siri trong iOS

 Android 4.2: vẫn là Jelly Bean ra mắt tháng 11-2012 Chỉ sau gần năm tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn từ rất hay trong bàn phím ảo Chức năng bom tấn hỗ trợ nhiều tài khoản người dùng (multi-userprofile) lần đầu tiên được áp dụng trong Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này

 Android 4.3: vẫn là Jelly Bean công bố (24/7/2013), phiên bản hệ điều hành di động Android 4.3 chính thức được cung cấp đến các thiết bị Nexus 4, Nexus 7, Nexus 10 thông qua giao thức OTA Không có thay đổi lớn về cả giao diện lẫn cấu trúc so với Android 4.1 và 4.2 trước đó, phiên bản 4.3 có thể coi là một bản nâng cấp nhỏ mà Google dành cho hệ điều hành của hãng Một số nâng cấp ở phiên bản này là: tạo tài khoản giới hạn quyền sử dụng, nâng cấp trình chụp ảnh, bluetooth thông minh tiết kiệm năng lượng, cải tiến tính năng thông báo notifications, tích hợp Google Keep (Ghi chú đồng bộ đám mây) … Trong đó, tính năng Bluetooth thông minh như sau Phiên bản mới nhất của chuẩn kết nối Bluetooth là Bluetooth 4.0 Hiệp hội Bluetooth đã phân biệt có hai loại thiết bị

sử dụng Bluetooth 4.0 là Bluetooth Smart Ready và Bluetooth Smart Bluetooth Smart là những thiết bị ngoại vi như đồng hồ đo nhịp tim, máy chăm sóc sức khỏe … Bluetooth Smart Ready là những thiết bị có khả năng kết nối đến các thiết bị Bluetooth Smart, đồng thời vẫn có các tính năng quen thuộc như truyền tập tin, kết nối tai nghe … iPhone, iPad, Samsung Galaxy SIII, Motorola Droid RAZR … là những thiết bị đã hỗ trợ Bluetooth Smart Ready

Ở Android 4.3, hai dòng thiết bị Nexus 4 và Nexus 7 mới (phiên bản 2013) cũng có khả năng hỗ trợ công nghệ Bluetooth Smart Ready (còn gọi là Bluetooth Low-Energy) Nhờ vậy, hai thiết bị này có thể giao tiếp với các thiết

bị ngoại vi sử dụng Bluetooth Smart như máy đo nhịp tim, hay đồng hộ đếm bước chạy bộ thông qua kết nối Bluetooth 4.0, với điểm mạnh là không gây hao tốn nhiều dung lượng pin khi sử dụng Thêm một cải tiến về kết nối Bluetooth, khi Android 4.3 hỗ trợ profile AVRCP 1.3, cho phép truyền thông tin về tên bài hát lên các thiết bị phát nhạc từ xa thông qua kết nối Bluetooth, như dàn âm thanh trong xe hơi, hay loa Bluetooth

 Android 4.4: KitKat, trong sự kiện diễn ra vào sáng 1/11 (theo giờ VN), Google đã công bố nền tảng di động mới nhất của mình, bản Android 4.4 với tên mã là KitKat Theo GSMArena, Android 4.4 đã được Google cải tiến giao diện làm việc với thanh trạng thái và thông báo ở cạnh trên màn hình sẽ hiển

Trang 28

thị trong suốt, nhờ thế khi chạy một ứng dụng thông báo hiện ra sẽ "hòa màu" vào nền của ứng dụng chứ không còn là một màu đen nữa Ngoài ra, phiên bản mới còn cải thiện khả năng chạy đa nhiệm bằng cách nâng cấp việc quản lý bộ nhớ và tăng cường độ phản hồi của màn hình cảm ứng Android 4.4 còn bổ sung chế độ chụp ảnh HDR+ mới, cho phép người dùng chụp nhiều tấm ảnh với độ phơi sáng khác nhau rồi ghép lại thành ảnh duy nhất để hiển thị rõ chi tiết cả trong vùng sáng lẫn trong tối Nền tảng mới này của Google còn hỗ trợ khả năng in ảnh, tài liệu và trang web ngay từ điện thoại và máy tính bảng một cách nhanh chóng và dễ dàng với giao diện trực quan hơn Đặc biệt, Android 4.4 có khả năng hỗ trợ các dòng máy Android cũ, chỉ cần yêu cầu cấu hình phần cứng RAM là 512 MB Ngoài ra, ứng dụng Hangouts cũng được tích hợp sâu vào Android 4.4 với việc cải tiến Hangouts và Messaging làm thành tính năng duy nhất trên máy Nhờ vậy người dùng chỉ cần sử dụng ứng dụng Hangouts để nhắn tin với bạn bè theo giao thức SMS/MMS hoặc OTT và hỗ trợ khả năng trò chuyện bằng video Theo công bố của Google, Android 4.4 được cài sẵn trong máy Nexus 5 vừa được giới thiệu Sau đó, bản cập nhật Android 4.4 đầu tiên sẽ được trình làng trong vài tuần tới và các dòng máy smartphone đầu tiên có thể lên nền tảng mới nhất này là: Nexus 4, Nexus 7, Nexus 10, Galaxy S4 Google Edition và HTC One Google Edition

 Android 5.0: Lollipop, ngày 25/06/2014, tại sự kiện Google I/O, Google công

bố Material Design - phong cách thiết kế mới dành cho các phần mềm và dịch

vụ của hãng như Android, Chrome, Gmail Trong đó, hệ điều hành Android L Preview (bản dành cho chuyên gia phát triển) có giao diện phẳng, nhất quán và đẹp hơn với nhiều màu sắc tươi sáng và phần nào gợi nhớ đến iOS và Windows Phone Các biểu tượng (icon) cũng được chuyển từ vuông sang tròn, trong khi hệ thống nhắc báo đã được cải tiến Giới phân tích đánh giá đây là bước tiến đángkhen ngợi của Google bởi thiết kế vốn không phải điểm mạnh của hãng này

Trang 29

Hình 2.2: Giao diện của Android L

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

Ưu điểm của hệ điều hành 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 cho đế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 Apple tin rằng đó là cách để họ kiểm soát cả guồng máy kinh doanh, từ thiết bị đầu cuối, dịch vụ cho đến ứng dụng bổ sung Trong khi đó, với thế giớ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ó được sự 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ì chắc chắn rằng khách hàng

sẽ không sớm thì muộn cảm thấy họ có quá ít 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 Inventor, Google đã thậm chí đặt vào tay 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 (Do-It-Yourself) đượ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ễ dàng đến thế với người dùng và kể các lập trình viên Tuy nhiên, nhiều người lại cho rằng điều này sẽ khiến cho

Trang 30

Android tràn ngập ứng dụng rác, nhưng chắc chắn một điều rằng, trong số đó

sẽ có vài ứng dụng đáng đồng tiền bát gạo

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, điể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 với Android là một thương hiệu đáng giá

 Nhược điểm của hệ điều hành 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

Android đ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 Chẳng hạn như Galaxy S III sở hữu những tính năng độc đáo mà iPhone không thể làm được Đáng tiếc, bạn cũng phải tùy chỉnh không

ít cài đặt nếu muốn kích hoạt tính năng Chúng là điều khó khăn đối với người mới dùng Android

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ực 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 độc dành cho iPhone, không những hỗ trợ chụp ảnh tốt mà còn tăng cường dung lượng pin Nghĩ một cách đơn giản, dòng điện thoại Android không có được sự nhiệt tình tương tự từ đối tác làm phụ kiện

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 Gần đây nhất, một virus đánh cắp thông tin qua SMS đã xuất hiện trên kho ứng dụng Android tại Trung Quốc Ước tính có hơn 500.000 người bị lây nhiễm loại virus này

Trang 31

2.2.5 Giới thiệu về nền tảng Android

2.2.5.1 Giới hạn của thiết bị cầm tay

Trong khi các thiết bị cầm tay như điện thoại di động, máy tính bảng đem lại nhiều tiện lợi cho người sử dụng, thì nó vẫn còn tồn tại nhiều mặt hạn chế Những giới hạn cơ bản là:

 Bộ nhớ giới hạn: Hầu hết các thiết bị cầm tay đều có bộ nhớ lưu trữ giới hạn Tuy nhiên, với nhiều nỗ lực của các tập đoàn sản xuất công nghệ bán dẫn, giới hạn này sẽ đươc giải quyết trong tương lai không xa

 Năng lượng xử lý giới hạn: rất nhiều dịch vụ trên internet như game, nhạc, video đòi hỏi phải có bộ xử lý nhanh Nhưng khả năng xử lý của các thiết bị cầm tay vẫn còn rất hạn chế

 Nguồn năng lượng: Việc thường xuyên thay đổi vị trí của các thiết bị làm tiêu hao năng lượng nhanh chóng Rất nhiều nghiên cứu phát minh ra những nguồn năng lượng mới có chu kỳ sống lâu hơn chẳng hạn như fuel cell

 Công nghệ và nền tảng khác nhau: Mỗi thiết bị được xây dựng trên những nền tảng và tiêu chuẩn riêng mà nhà sản xuất quy định Đó là hạn chế bởi nó giới hạn khả năng tương thích và giao tiếp giữa các thiết bị;

 Bàn phím nhỏ, cách nhập dữ liệu khác biệt: Bàn phím của các thiết bị cầm tay thường nhỏ hoặc ít phím Điều này làm cho viêc sử dụng các dịch vụ chậm chạp và khó khăn hơn

 Giao diện người dùng đơn giản, kích thước nhỏ gọn nên giao diện ứng dụng của các thiết bị cầm tay cũng rất đơn giản

 Băng thông giới hạn: Khi số lượng người sử dụng thiết bị cầm tay ngày càng tăng thì nhu cầu sử dụng băng thông mạng cũng tăng theo

Trang 32

2.2.5.2 Kiến trúc của hệ điều hành Android

Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android Mỗi một phần sẽ mô tả một cách chi tiết dưới đây:

Hình 2.3: Cấu trúc Stack hệ thống Android

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

nguồn mở (Open source code), Android cung cấp cho các nhà phát triển phần mềm khả năng xây dựng các ứng dụng cực kỳ phong phú và sinh động và sáng tạo Họ được tự do tận dụng các tài nguyên về thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy (services run), các thiết lập báo cáo, thông báo, trạng thái… Nhà phát triển có thể truy cập vào các hàm API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc được thiết kế đơn giản hóa việc sử dụng lại các thành phần Tầng Applycation Framework bao gồm nhiều dịch vụ (services) cho việc quản lý:

 Activity Manager: Quản lý vòng đời (lifecycle) của các ứng dụng điều hướng cho các avtivity

 Window Manager: Cung cấp khả năng quản lý giao diện người sử dụng

Trang 33

 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, TableView…

 Content Providers: Cho phép các ứng dụng truy xuất dữ liệu từ các ứng dụng khác (tính kế thừa), ví dụ như ứng dụng Phone sẽ truy xuất dữ liệu thông tin về số điện thoại của người được gọiđược chứa trong ứng dụng Contact

 Resource Manager: Cung cấp truy xuất tới các tài nguyên không phải là

mà nguồn (source code), chẳng hạn như graphics, layout …

 Location Manager, Notifycation 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, ví dụ như thực hiện một cuộc gọi đ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

thành phần khác nhau trong hệ thống Android Một số các thư viện cơ bản được liệt kê dưới đây:

 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ự 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, AAC, AMR, 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 web hiện đại thông qua việc kết hợp sức mạnh giữa trình duyệt web của Android với một trang web 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

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

Trang 34

 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

viết bằng ngôn ngữ Java có thể hoạt động Phần này có 2 bộ phận tương tự như

mô hình chạy Java 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) (JVM) mà là 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

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 được 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 bộ nhớ, kích thước màn hình, nhu cần 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 kiể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 hơn 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: Quản lý về việc thu phát sóng wifi

Trang 35

 Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính 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ư CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện

 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

2.2.5.3 Chu kỳ ứng dụng trên Android

Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi code cần được run và sẽ còn chạy cho đến khi:

 Nó không phụ thuộc

 Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không được điều khiển trực tiếp bới chính nó Thay vào đó, nó được xác định bởi hệ thống qua một kết hợp của:

- Những phần của ứng dụng mà hệ thống biết đang chạy

- Những phần quan trọng như thế nào đối với người vùng

- Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống

 Chu kỳ sống thành phần: Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc Giữa

đó, đôi lúc chúng có thể là active hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible

 Activity Stack: Bên trong hệ thống các activity được quản lý như một activity stack Khi một Activity mới được start, nó được đặt ở đỉnh của stack

và trở thành activity đang chạy activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity mới tồn tại Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và trở thành active

Trang 36

Hình 2.4: Activity Stack

 Các trạng thái của chu kỳ sống

Trang 37

Một Activity chủ yếu của chu kỳ chính sau:

 Active hoặc running: Khi Activity là được chạy trên màn hình Activity này tập trung vào những thao tác của người dùng trên ứng dụng

 Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người dùng vẫn trông thấy Có nghĩa là một Activity mới ở trên nó nhưng không bao phủ đầy màn hình Một Activity tạm dừng là còn sống nhưng

có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ

 Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còn trạng thái và thông tin thành viên trong nó Người dùng không thấy nó và thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác

thành phần và mỗi thành phần đều có một chu trình sống riêng Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng kết thúc Activity là một thành phần cho phép người dùng giao tiếp với ứng dụng Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn giao tiếp được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc Bởi vì ngoài Activity là thành phần có khả năng tương tác người dùng thì còn có các thành phần không có khả năng tương tác với người dùng như là Service, Broadcast receiver Có nghĩa là những thành phần không tương tác người dùng có thể chạy background dưới sự giám sát của hệ điều hành cho đến khi người dùng tự tắt chúng

tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ thông tin khác của nó từ vùng nhớ bởi việc finish() (gọi hàm finish() của nó), hoặc đơn giản giết tiến trình của nó Khi nó được hiển thị lần nữa với người dùng, nó phải được hoàn toàn restart và phục hồi lại trạng thái trước Khi một Activity chuyển qua chuyển lại giữa các trạng thái, nó phải báo việc chuyển của nó bằng việc gọi hàm transition.Tất cả các phương thức là những móc nối mà bạn có thể override để làm tương thích công việc trong ứng dụng khi thay đổi trạng thái Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng Nhiều Activity sẽ cũng hiện thực onPause() để xác nhận việc thay đổi dữ liệu và mặt khác chuẩn

bị dừng hoạt động với người dùng

Trang 38

Void onCreate(BundlesavedInstanceState) void onPause()

void onResume()

Bảng 2.1: Các sự kiện trong một chu kỳ ứng dụng

 Thời gian sống của ứng dụng: Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sống của một Activity Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng thái cuối cùng gọi onDestroy() Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), và giải phóng các tài nguyên đang tồn tại trong onDestroy()

 Thời gian hiển thị của Activity: Lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến khi gọi onStop() Trong suốt khoảng thời gian này người dùng có thể thấy activity trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tác với người dùng Giữa 2 phương thức người dùng có thể duy trì tài nguyên để hiển thị activity đến người dùng

2.3 Chuẩn truyền nối tiếp I2C

2.3.1 Đặc điểm giao tiếp I2C

Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SDL) SDA là đường truyền dữ liệu 2 hướng , còn SCL là đường truyền xung đồng hồ và chỉ theo một hướng

Mỗi dây SDA hay SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pull-up resistor) Sự cần thiết của các điện trở kéo này là chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (open-drain or open-collector) Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1kΩ đến 4.7kΩ

Các thiết bị kết nối I2C sẽ không xảy ra sự nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị

sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ chủ/tớ tại trong suốt thời gian kết nối Mỗi thiết bị có thể hoạt động như là thiết bị nhận dữ liệu hay có thể vừa

Trang 39

truyền vừa nhận Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hay tớ (slave)

Thiết bị chủ nắm vai trò tạo xung đồng hồ cho toàn hệ thống, khi giữa hai thiết bị chủ/tớ giao tiếp thì thiết bị chủ có nhiệm vụ tạo xung đồng hồ và quản lý địa chỉ của thiết bị tớ trong suốt quá trình giao tiếp

Hình 2.6: Chuẩn truyền I2C (Master-Slave)

Nhìn hình ta thấy xung đồng hồ chỉ có một hướng từ chủ đến tớ, còn luồng dữ liệu có thể đi theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ

Về dữ liệu truyền trên bus I2C, một bus I2C chuẩn truyền 8-bit dữ liệu có hướng trên đường truyền với tốc độ là 100Kbit/s - Chế độ chuẩn (Standard mode) Tốc độ truyền

có thể lên tới 400Kbit/s - Chế độ nhanh(Fast mode) và cao nhất là 3,4Mbits/s - Chế độ cao tốc (High-speed mode)

Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau

 Một chủ một tớ (one master-one slave)

 Một chủ nhiều tớ (one master- multi slave)

 Nhiều chủ nhiều tớ (Multi master-multi slave)

2.3.2 Qúa trình truyền nhận giữa hai thiết bị trên Bus I2C(Master-Slave)

Với chế độ Master-Slave dữ liệu truyền có thể theo hai hướng, từ chủ đến tớ hay ngược lại Hướng truyền được quy định bởi bit thứ 8 R/W trong byte đầu tiên được truyền đi

Hình 2.7: Khung truyền nhận giữa hai thiết bi trên Bus I2C

Trang 40

Truyền dữ liệu từ Master đến Slave (ghi dữ liệu): Thiết bị Master khi muốn ghi

dữ liệu đến Slave, quá trình thực hiện là:

 Thiết bị Master tạo xung START

 Thiết bị Master gửi địa chỉ của thiết bị Slave mà nó cần giao tiếp cùng với bit R/(not)W=0 ra bus và đợi xung ACK phản hồi tư Slave

 Khi nhận được xung ACK báo đã nhận diện đúng thiết bị Slave, Master bắt đầu gửi dữ liệu Slave theo từng byte một Theo sau mỗi byte này đều là một xung ACK Số lượng byte truyền là không hạn chế

 Kết thúc quá trình truyền, Master sau khi truyền byte cuối sẽ tạo xung STOP báo hiệu kết thúc

from Master to SlaveA= acknowledge (SDA LOW)

from Slave to Master Not A= not acknowledge(SDA HIGH)

S = START condition P = STOP condition

Hình 2.8: Ghi dữ liệu từ Master đến Slave

Truyền dữ liệu từ Slave đến Master (đọc dữ liệu): Thiết bị chủ muốn đọc dữ liệu

từ thiết bị Slave, quá trình thực hiện như sau:

 Khi bus rỗi, thiết bị Master tạo xung START, báo hiệu bắt đầu giao tiếp

 Thiết bị Master gửi địa chỉ của thiết bị Slave cần giao tiếp cùng với bit R/not W = 1 và đợi xung ACK từ phía thiết bị Slave

 Sau xung ACK đầu tiên, thiết bị Slave sẽ gửi từng byte ra bus, thiết bị Master sẽ nhận dữ liệu và trả về xung ACK Số lượng byte không hạn chế

Slave address

S

Ngày đăng: 27/11/2021, 23:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Tổng biên dịch Nguyễn Ngọc Bình Phương – Thái Thanh Phong, Chịutráchnhiệmxuấtbản: TS. NguyễnXuânThủy Sách “Các giải pháp lập trình C#” Sách, tạp chí
Tiêu đề: Các giải pháp lập trình C#
[2]StevenF.Barrett “Arduino Microcontroller: Processing for Everyone!PartI” 2010 Sách, tạp chí
Tiêu đề: Arduino Microcontroller: Processing for Everyone!PartI
[3] StevenF.Barrett “Arduino Microcontroller: Processing for Everyone!PartII” 2010 Sách, tạp chí
Tiêu đề: Arduino Microcontroller: Processing for Everyone!PartII
[4] John Boxall, “Arduino Workshop”, William Pollock, 2013 Sách, tạp chí
Tiêu đề: Arduino Workshop
[5] Massimo Banzi,O’Reilly Media, “Getting Started with Arduino”, 2009 Sách, tạp chí
Tiêu đề: Getting Started with Arduino
[6]ThS.Hoàng Ngọc Văn Sách “Thực hành điện tử công suất” Sách, tạp chí
Tiêu đề: Thực hành điện tử công suất

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w