LẬP TRÌNH ANDROID ĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTHĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTH SỬ DỤNG PIC 16F887 PIC 16F877A LẬP TRÌNH TRÊN ANDROID STUDIO LẬP TRÌNH ANDROID ĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTHĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTH SỬ DỤNG PIC 16F887 PIC 16F877A LẬP TRÌNH TRÊN ANDROID STUDIO
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN MÔN HỌC 2 NGÀNH :CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
ĐỀ TÀI:
LẬP TRÌNH ANDROID ĐIỀU KHIỂN THIẾT BỊ QUA BLUETOOTH
TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Khoa Điện – Điện Tử Độc lập – Tự do – Hạnh phúc
Bộ Môn Điện Tử Viễn Thông
Tp Hồ Chí Minh, ngày tháng năm 2015
TP HỒ CHÍ MINH – 12/2015
Trang 2Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 2
PHIẾU CHẤM ĐỒ ÁN MÔN HỌC 2
(Dành cho người hướng dẫn)
1 Họ tên Sinh Viên: Đặng Minh Tuấn MSSV: 10119062
2 Tên đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth
3 Người hướng dẫn: Huỳnh Hoàng Hà
4 Những ưu điểm của đồ án: ………
………
………
………
………
………
5 Những nhược điểm của đồ án:………
………
………
………
………
………
6 Đề nghị: Được bảo vệ: Bổ sung để được bảo vệ: Không được bảo vệ: 7 Các câu hỏi sinh viên phải trả lời trước tổ chấm ĐAMH: a ………
………
b ………
………
c ………
………
d ………
………
e ………
………
8 Đánh giá điểm (Số và chữ):………
Chữ ký và họ tên
TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Khoa Điện – Điện Tử Độc lập – Tự do – Hạnh phúc
Bộ Môn Điện Tử Viễn Thông
Tp Hồ Chí Minh, ngày tháng năm 2015
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN MÔN HỌC 2
Chương IV: Kết luận
Trang 3Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 3
Họ và tên: Đặng Minh Tuấn MSSV: 10119062
Tên đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth
Chương IV: Kết luận
Trang 4Đề tài:Lập trình Android điều khiển thiết bị qua Bluetooth Trang 4
LỜI CẢM ƠN
Lời đầu tiên, sinh viên thực hiện đề tài xin được phép chân thành gửi lời cảm
ơn đến thầy giáo Huỳnh Hoàng Hà, giáo viên hướng dẫn đề tài đã định hướng vàtrao đổi những kinh nghiệm quý báu để sinh viên thực hiện những nội dung trong đềtài một cách hoàn chỉnh
Sinh viên thực hiện đề tài cũng xin trân trọng cảm ơn các thầy (cô) trongtrường Đại Học Sư Phạm Kỹ Thuật TPHCM nói chung và thầy (cô) khoa Điện –Điện Tử nói riêng đã tận tình truyền đạt những kiến thức nền tảng để sinh viên thựchiện hoàn thành tốt đề tài
Cũng gửi lời cảm ơn đến gia đình: bố mẹ, anh chị em đã tạo điều kiện thuậnlợi về mặt vật chất và tinh thần là cơ sở vững chắc về tâm lý để sinh viên thực hiện
đề tài hoàn thành tốt công việc học tập của mình
Cũng xin gửi lời chân thành cảm ơn đến tất cả các bạn trong lớp KMT10119đã cùng nhau học tập, giúp đỡ trao đổi kiến thức liên quan để hoàn thành đồ án mônhọc đúng tiến độ và đạt được kết quả tốt nhất
TP HCM, Ngày 17 Tháng 12 Năm 2015
Sinh viên thực hiện đề tài
Đặng Minh Tuấn
Trang 5Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 5
MỤC LỤC
Trang 6Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 6
LIỆT KÊ HÌNH:
Trang 7Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 7
LỜI MỞ ĐẦU
Cùng với sự tiến bộ và phát triển của khoa học và công nghệ, các thiết bịđiện tử đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi với giá thành ngàycàng giảm ,mang lại hiệu quả cao trong hầu hết các lĩnh vực kinh tế kỹ thuật cũngnhư đời sống xã hội hiện nay
Với sự phát triển nhanh chóng của thị trường công nghệ di di động thế giới,ngày nay sử dụng smart phone, tablet, phục vụ cho công việc và giải trí hàng ngàygần như không thể thiếu đối với mọi người chúng ta Với giá thành ngày cànggiảm,việc sở hữu một smartphone trở nên dễ dàng với người dùng phổ thông
Hệ điều hành Android chiếm thị phần lớn trong mảng thiết bị đi động và trởnên quen thuộc với mọi người.Các ứng dụng trên hệ điều hành Android ngày càng
đa dạng và phong phú, cung cấp cho người dùng những ứng dụng phù hợp với yêucầu đặt ra
Mặc dù sinh viên thực hiện đề tài đã cố gắng hoàn thành được nhiệm vụ đượcđặt ra, nhưng chắc chắn không tránh còn thiếu sót Sinh viên thực hiện đề tài mongnhận nhận được sự đóng góp ý kiến của quý thầy cô cùng các bạn sinh viên
Sinh viên thực hiện đề tài:
Đặng Minh Tuấn
Trang 8Đề tài: Lập trình Android điều khiển thiết bị qua Bluetooth Trang 8
2 Lý do chọn đề tài
Đề tài : “ Lập trình Android điều khiển thiết bị qua Bluetooth ”
• Đề tài giúp tìm hiểu hệ điều hành Android
• Đề tài giúp tìm hiểu thêm việc lập trình ứng dụng bằng ngôn ngữ Java bằngcông cụ Eclipse, cũng như có thể phát triển cho nhu cầu sau này
3 Nội dung cần nghiên cứu
Tổng quan về hệ điều hành Android
Tổng quan về module Bluetooth HC-05
Ngôn ngữ lập trình Java - công cụ lập trình Eclipse
Trang 9CHƯƠNG II: CƠ SỞ LÝ THUYẾT
1 Hệ điều hành Android
1.1 Giới thiệu hệ điều hành Android
Hệ điều hành Android là hệ điều hành mở, hoàn thiện, cho phép người dùngtùy biến
Hình 1 : Logo Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự
hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm
2005, Android ra mắt vào năm 2007 Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộcđã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi.Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới và được các công ty công nghệ lựa chọn khi họ cần một
hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu
Các phiên bản của hệ điều hành Android:
• Android 1.0 : 23/09/2008
• Android 1.1 : 09/02/2009
• Android 1.5 - Cupcake : 30/04/2009
• Android 1.6 - Donut : 15/09/2009
Trang 10• Adroid 2.0/2.1 - Eclair : 26/10/2009
• Android 2.2 - Froyo : 20/05/2010
• Android 2.3 - Gingerbread : 06/12/2010
• Android 3.0/3.1- Honeycomb : 02/02/2011
• Android 4.0 - Ice Cream Sandwich : 16/12/2011
• Android 4.1 - Jelly Bean : 09/07/2012
• Android 4.2 - Jelly Bean : 13/11/2012
• Android 4.3 - Jelly Bean : 25/07/2013
• Android 4.4 – KitKat : 10/2013
• Android 5.0 – Lollipop: 07/2014
1.2 Tính năng của hệ điều hành Android
- Lưu trữ: sử dụng SQLite, một cơ sở dữ liệu quan hệ, trọng lượng nhẹ cho
PNG,GIF và BMP
- Hỗ trợ phần cứng: Accelerometer cảm biến, máy ảnh, kỹ thuật số
Compass, cảm biến tiệm cận và GPS
- Multi-touch : hỗ trợ màn hình cảm ứng đa điểm
- Đa chức năng: Hỗ trợ các ứng dụng đa tác vụ
- Hỗ trợ Flash: Android 2.3 hỗ trợ Flash 10.1
- Tethring: Hỗ trợ chia sẻ kết nối Internet là một điểm phát sóng không dây/có dây
1.3 Kiến trúc và các thành phần trong hệ điều hành Android
Kiến trúc hệ điều hành Android gồm 4 lớp cơ bản:
• Nền ứng dụng ( Application Framework)
• Thư viện ( Libraries )
• Android Runtime
• Linux Kernel
Trang 11Hình 2: Mô hình kiến trúc hệ điều hành Android 1.3.1 Linux kernel
Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phầncứng và tầng dưới của phần mềm Lớp này chứa tất cả các thiết bịmức thấp điều khiển các thành phần phần cứng khác nhau của mộtthiết bị Android
1.3.2 Libraries
Libraries bao gồm một tập hợp các thư viện lập trình chứa mã lệnhcung cấp những tính năng và thao tác chính trên hệ điều hành
Một số các thư viện cơ bản :
• System C library: được xây dựng từ BSD của thư viện hệ thốngngôn ngữ C chuẩn, được được điều chỉnh để tối ưu hóa cho cácthiết bị chạy trên nền Linux
• Media Libraries – Bộ thwu viện hỗ trợ trình diễn và ghi các địnhdạng âm thanh và hình ảnh phổ biến : MPEG4, H.264, MP3, AAC,AMR, JPG và PNG
• Surface Manager – Quản lý truy cập đến các hệ thống con hiển thịcũng như các lớp đồ họa 2D, 3D từ tầng ứng dụng
• LibWebCore – Thư viện được dùng để tạo nên thành phầnwebview trong Android
• SGL – Thư viện hỗ trợ đồ hoạ 2D
• 3D libraries – thư viện này sử dụng các tăng tốc 3D bằng phầncứng lẫn phần mềm để tối ưu hóa hiển thị 3D
• FreeType - bitmap and vector font rendering
Trang 12• SQLite – Một cơ sở dữ liệu nhỏ được dùng cho các thiết bị cầmtay có bộ nhớ hạn chế
1.3.3 Android runtime:
Android runtime cung cấp một bộ lõi thư viện cho phép các nhàphát triển viết các ứng dụng android bằng cách sử dụng ngôn ngữ lậptrình java Android runtime cũng bao gồm các máy ảo Dalvik, chophép mọi ứng dụng android chạy trong tiến trình riêng của mình.Dalvik là một máy ảo chuyên dụng được thiết kế đặc biệt cho android
và tối ưu hóa cho các thiết bị điện thoại di động với giới hạn bộ nhớ
và CPU
1.3.4 Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cungcấp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳphong phú và sáng tạo Nhà phát triển được tự do tận dụng các thiết bịphần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập
hệ thống báo động, thêm các thông báo để các thanh trạng thái, vànhiều, nhiều hơn nữa
Nhà phát triển có thể truy cập vào các API được sử dụng bởi cácứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóaviệc sử dụng lại các API Đưa ra những khả năng khác nhau của hệđiều hành android vào ứng dụng để sử dụng chúng trong các ứngdụng của mình
1.3.5 Applications:
Hệ điều hành Android tích hợp sẵn một số ứng dụng cơ bản như emailclient, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một sốứng dụng khác Ngoài ra tầng này cũng chính là tầng chứa các ứng dụngđược phát triển bằng ngôn ngữ java
1.4 Một số khái niệm cơ bản trong lập trình ứng dụng Android 1.4.1 Activity
Một activity thể hiện một giao diện đồ họa người dùng Một ứng dụngcó thể gồm chỉ một activity hay nhiều activity Activity chính phảiđược hiển thị đầu tiên khi khởi động chương trình.Chuyển từ mộtactivity sang activity khác bằng cách cho activity hiện thời khởi độngactivity kế tiếp
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnhvòng đời của một Activity Class Activity định nghĩa các sự kiện sau đây:
Trang 13• onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên
• onStart(): Được gọi khi hoạt động trở nên hữu hình so với người
• onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng
• onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống
(bằng tay hoặc bằng hệ thống để bảo tồn bộ nhớ)
• onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại
Trang 14dụng có thể giao tiếp với service thông qua giao diện mà service thểhiện.
Giống như các activity và các thành phần khác khác, service chạytrong thread chính của tiến trình ứng dụng Vì thế chúng không thểchặn những thành phần khác hay giao diện người dùng, chúng thườngtạo ra các thead khác cho các nhiệm vụ hao tốn thời gian
Hình 4: Sơ đồ các sự kiện trong vòng đời của một service
1.4.3 View
Trong một ứng dụng Android, giao diện người dùng được xây dựng
từ các đối tượng View và ViewGroup Có nhiều kiểu View vàViewGroup Mỗi một kiểu là một con của class View và tất cả các kiểuđó được gọi là các Widget
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cáchtrình bày vị trí, background, kích thước, lề,… Tất cả những thuộc tínhchung này được thể hiện hết ở trong đối tượng View Ứng dụng tìmkiếm thông tin bản đồ trên thiết bị Android Trong Android Platform,các screen luôn được bố trí theo một kiểu cấu trúc phân cấp.Một màn hình là một tập hợp các Layout và các widget được bố trí cóthứ tự Để thể hiện một màn hình thì trong hàm onCreate của mỗiActivity
Trang 15Hình 5 :Giao diện View đơn giản 1.4.4 Intent
Intent là cầu nối giữa các Activity Ứng dụng Android thường baogồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thựchiện những công việc khác nhau Intent chính là người liên lạc, giúp cácActivity có thể kết nối cũng như truyền các dữ liệu cần thiết tới mộtActivity khác
Hình 6: Mô hình hoạt động của Intent.
2 Công nghệ không dây Bluetooth
2.1 Giới thiệu
Hình 7: Logo Bluetooth
Bluetooth là một công nghệ cho phép truyền thông giữa các thiết bị vớinhau mà không cần dây dẫn Nó là một chuẩn điện tử, điều đó có nghĩa làcác hãng sản xuất muốn có đặc tính này trong sản phẩm thì họ phải tuântheo các yêu cầu của chuẩn này cho sản phẩm của mình Những tiêu chuẩnkỹ thuật này đảm bảo cho các thiết bị có thể nhận ra và tương tác với nhaukhi sử dụng công nghệ Bluetooth
Ngày nay phần lớn các nhà máy đều sản xuất các thiết bị có sử dụngcông nghệ Bluetooth Các thiết bị này gồm có điện thoại di động, máy tính
Trang 16và thiết bị hỗ trợ cá nhân PDA ( Prosonal Digital Assistant ) Công nghệBluetooth là một công nghệ dựa trên tần số vô tuyến và bất cứ một thiết bịnào có tích hợp bên trong công nghệ này đều có thể truyền thông với cácthiết bị khác với một khoảng cách nhất định về cự ly để đảm bảo công suấtcho việc phát và nhận sóng Công nghệ này thường được sử dụng để truyềnthông giữa hai loại thiết bị khác nhau.
2.2 Đặc điểm của công nghệ Bluetooth
2.2.1 Ưu điểm
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được nhiều loại thiết bị bao gồm các thiết bị cầm tay và điện thoại di động
- Giá thành ngày một giảm
- Khoảng cách giao tiếp cho phép giữa hai thiết bị đầu cuối có thể lên đến 10m, khoảng cách giữa thiết bị đầu cuối và access point có thể lêntới 100m
- Bluetooth sử dụng băng tần 2.4GHz Tốc độ truyền dữ liệu có thể đạt tới mức tới đa 1Mbps mà các thiết bị không cần phải trực tiếp thấy 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 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
- 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.2 Khuyết điểm
- Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác
- Chỉ kết nối được hai thiết bị với nhau, không thể kết nối thành mạng
- Tốc độ truyền không cao
2.3 Hoạt động
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nốithiết bị cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến2.485GHz Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ Khi kếtnối , nó sẽ tự động tìm ra tần số tương thích để di chuyển đến thiết bị cần kếtnối trong khu vực nhằm đảm bảo sự liên tục
Về tầm phủ sóng, bluetooth có 3 class: class 1 có công suất 100mW vớitầm phủ sóng gần 100m; class 2 có công suất 2,5mW tầm phủ sóng khoảng10m; và class 3 là 1mW với tầm phủ sóng khoảng 5m
Trang 17
Hình 8: Khả năng kết nối các thiết bị qua Bluetooth 2.4 Lịch sử phát triển của Bluetooth
- Bluetooth 1.0 ( 7/1999 ): là phiên bản đầu tiên được đưa ra thị trường với tốc
độ kết nối ban đầu là 1Mbps
- Bluetooth 1.1 ( 2001 ): Đánh dấu bước phát triển mới của công nghệ
Bluetooth trên nhiều lĩnh vực khác nhau với sự quan tâm của nhiều nhà sản xuất mới
- Bluetooth 1.2 ( 11/2003 ): Bắt đầu có nhiều tiến bộ đáng kể Chuẩn này hoạt động dựa trên băng tần 2.4GHz và tăng cường kết nối thoại
- Bluetooth 2.0 + ERD (2004): đã bắt đầu nâng cao tốc độ và giảm thiểu một nửa năng lượng tiêu thụ so với trước đây Tốc độ của chuẩn Bluetooth lên đến 2.1Mbps với chế độ cải thiện kết nối truyền tải – ERD ( Enhanced data rate )
- Bluetooth 2.1 + ERD(2004) : đây chính là thế hệ nâng cấp của Bluetooth 2.0 có hiệu năng cao hơn và tiết kiệm năng lượng hơn Chuẩn này chủ yếu được
sử dụng trong điện thoại, máy tính và các thiết bị di động khác
- Bluetooth 3.0 + HS(2008): có tốc độ truyền dữ liệu đạt mức 24Mbps – bằng sóng Bluetooth – High Speed, tương đương chuẩn Wifi thế hệ đầu tiên, phạm
vi hiệu quả nhất chỉ trong vòng 10m
- Bluetooth 4.0: được đưa ra ngày 30/06/2010, là chuẩn Bluetooth mới nhất hiện nay Bluetooth 4.0 là sự kết hợp của “classic Bluetooth” ( Bluetooth 2.1
và 3.0), “Bluetooth high speed” ( Bluetooth 3.0 + HS) và “ Bluetooth low energy -Bluetooth năng lượng thấp ( Bluetooth Smart Ready/ Bluetooth Smart) “Bluetooth low enegry” là một phần của Bluetooth 4.0 với một giao thức tiêu chuẩn của Bluetooth 1.0 vào 4.0 nhằm phục vụ cho những ứng dụng năng lượng cực thấp
Trang 18- Chuẩn Bluetooth : V2.0 + EDR
- Điện áp hoạt động : 3,6 ~ 6V DC, 30mA
- Module có 2 chế độ làm việc:
o Kết nối truyền thông
o Đáp ứng theo lệnh: khi làm việc ởchế độnày, chúng ta có thể gửi các lệnh AT để giao tiếp và cài đặt module
3.2 Đặc điểm phần cứng
Sơ đồ chân :
Hình 10: Sơ đồ chân module HC-05
Chức năng chân:
• State: Trạng thái hoạt động của module HC-05