Giáo viên hướng dẫn: Nguyễn Công Nhật trêng ®¹i häc vinh khoa c«ng nghÖ th«ng tin -------------- ĐINH HỮU QUYẾT T×m hiÓu vÒ c«ng cô bluetooth vµ lËp T×m hiÓu vÒ c«ng cô bluetooth vµ lËp tr×nh mobile, x©y dùng tr×nh mobile, x©y dùng øng dông minh h øng dông minh h Khãa luËn tèt nghiÖp ®¹i häc CỬ NHÂN CÔNG NGHỆ THÔNG TIN Vinh -5/ 2010 Sinh viên thực hiện: Đinh Hữu Quyết 1 Giáo viên hướng dẫn: Nguyễn Công Nhật LỜI CẢM ƠN Em xin chân thành cảm ơn ban chủ nhiệm khoa Công nghệ thông tin, các thầy cô giáo, gia đình và bạn bè đã động viên giúp đỡ em rất nhiều trong quá trình hoàn thành khóa luận này. Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo hướng dẫn Thạc sỹ Nguyễn Công Nhật về sự chỉ dẫn tận tình và tận tâm hướng dẫn em từ những ý tưởng ban đầu cho đến lúc hoàn thành khóa luận này. Cho em bày tỏ lòng biết ơn tới gia đình thân yêu, những người bạn thân đã luôn quan tâm, tin tưởng, động viên, giúp đỡ em trong thời gian qua. Mặc dù đã rất cố gắng nhưng chắc chắn luận văn không khỏi có những thiếu sót. Em rất mong đón nhận sự đánh giá, bổ sung và những lời chỉ bảo của các thầy cô giúp em có thể tiếp tục nghiên cứu kĩ hơn về lĩnh vực này. Em xin chân thành cảm ơn! Vinh, tháng 5/2010 Sinh viên Đinh Hữu Quyết Sinh viên thực hiện: Đinh Hữu Quyết 2 Giáo viên hướng dẫn: Nguyễn Công Nhật LỜI MỞ ĐẦU 1. Lý do chọn đề tài Ngày nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên nhu cầu về trao đổi thông tin, giải trí, nhu cầu về điều khiển thiết bị từ xa,… ngày càng cao. Và những hệ thống dây cáp phức tạp lại không thể đáp ứng tốt nhu cầu này, nhất là ở những khu vực chật hẹp, những nơi xa xôi, trên các phương tiện vận chuyển,… Vì thế công nghệ không dây đã ra đời và đang phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con người trong đời sống hằng ngày. Kỹ thuật không dây phục vụ rất nhiều nhu cầu khác nhau của con người, từ nhu cầu làm việc, học tập đến các nhu cầu giải trí như chơi game, xem phim, nghe nhạc, v.v… Với các nhu cầu đa dạng và phức tạp đó, kỹ thuật không dây đã đưa ra nhiều chuẩn với các đặc điểm kỹ thuật khác nhau để có thể phù hợp với từng nhu cầu, mục đích và khả năng của người sử dụng như IrDA, WLAN với chuẩn 802.11, ZigBee, OpenAir, UWB, Bluetooth,… Mỗi chuẩn kỹ thuật đều có những ưu, khuyết điểm riêng của nó, và Bluetooth đang dần nổi lên là kỹ thuật không dây tầm ngắn có nhiều ưu điểm, rất thuận lợi cho những thiết bị di động. Với một tổ chức nghiên cứu đông đảo, hiện đại và số lượng nhà sản xuất hỗ trợ kỹ thuật Bluetooth vào sản phẩm của họ ngày càng tăng, Bluetooth đang dần lan rộng ra khắp thế giới, xâm nhập vào mọi lĩnh vực của thiết bị điện tử và trong tương lai mọi thiết bị điện tử đều có thể được hỗ trợ kỹ thuật này. Xuất phát từ các lý do trên, em chọn đề tài “Tìm hiểu công nghệ Bluetooth và lập trình Mobile, xây dựng ứng dụng minh hoạ”. Trong đề tài này, em tìm hiểu về kỹ thuật không dây Bluetooth và xây dựng một chương trình truyền file qua Bluetooth giữa các điện thoại sử dụng hệ điều hành Windows Mobile 6. Sinh viên thực hiện: Đinh Hữu Quyết 3 Giáo viên hướng dẫn: Nguyễn Công Nhật 2. Mục đích nghiên cứu Mục tiêu của đề tài là tìm hiểu công nghệ Bluetooth và xây dựng một ứng dụng thông qua Bluetooth của các điện thoại cài đặt hệ điều hành Windows Mobile 6 và máy tính để minh họa hoạt động của kỹ thuật này … Các nội dung chính của đề tài bao gồm: • Tìm hiểu về hoạt động của kỹ thuật Bluetooth. • Tìm hiểu về hệ điều hành Windows Mobile 6. • Xây dựng ứng dụng chạy trên điện thoại di động truyền file giữa hai điện thoại di động với nhau, và giữa điện thoại di động và máy tính. 3. Bố cục luận văn Luận văn gồm 03 phần: Chương 1: Tổng quan về Windows Mobile và lập trình với Pocket PC – Giới thiệu về hệ điều hành Windows Mobile và các công cụ sử dụng để lập trình với Pocket PC Chương 2: Giới thiệu về công nghệ Bluetooth Chương 3: Cài đặt thiết bị ảo và xây dựng ứng dụng minh hoạ 4. Các kết quả đạt được Đề tài “Tìm hiểu về công nghệ Bluetooth, lập trình Mobile và xây dựng ứng dụng minh hoạ” xuất phát từ thực tế phát triển nhanh chóng của công nghệ Bluetooth và ứng dụng ngày càng rộng rãi của công nghệ này. Mặc dù cố gắng tìm hiểu thêm tài liệu sách vở và trên Internet nhưng do hạn chế về mặt thời gian nên khoá luận đã hoàn thành ở những mức độ sau: + Tìm hiểu về Bluetooth + Tìm hiểu về C# và viết ứng dụng minh hoạ Sinh viên thực hiện: Đinh Hữu Quyết 4 Giáo viên hướng dẫn: Nguyễn Công Nhật CHƯƠNG I: TỔNG QUAN VỀ WINDOWS MOBILE VÀ LẬP TRÌNH VỚI POCKET PC 1. Giới thiệu Windows Mobile là một hệ điều hành nhỏ gọn kết hợp với một bộ ứng dụng cơ bản cho thiết bị di động dựa trên Microsoft Win32 API. Những thiết bị chạy Windows Mobile bao gồm Pocket PC, Smartphones, Portable Media Centers, Ngoài ra, một số máy tính xách tay loại nhỏ (Ultra-Portable Notebook) cũng có thể sử dụng hệ điều hành này. Windows Mobile được thiết kế để có vẻ ngoài và các tính năng tương tự với các phiên bản máy tính để bàn (desktop) của Windows, tính năng thông minh và thẩm mỹ. Ban đầu xuất hiện như là hệ điều hành Pocket PC 2000, Windows Mobile đã được cập nhật nhiều lần, với phiên bản hiện tại là Windows Mobile 6.5, phiên bản Windows Mobile 7 đã được Microsoft giới thiệu đầu năm nay. Các Pocket PC dự kiến ban đầu là nền tảng cho hệ điều hành Windows Mobile. Các thiết bị này bao gồm cả hai thiết bị Pocket PC độc lập mà không có khả năng như điện thoại di động, và những thiết bị có tính năng như điện thoại di động. Cái tên mới nhất của Windows Mobile dự định để sử dụng trên Pocket PC chính thức "Windows Mobile 6 Professional" cho các thiết bị với các khả năng như điện thoại di động và "Windows Mobile 6 Classic" cho các thiết bị mà không có khả năng điện thoại di động, các thiết bị mà không có một màn hình cảm ứng được gọi là các thiết bị tiêu chuẩn Windows Mobile. 2. Lập trình với PPC So với các nền tảng khác như Palm, Symbian, Linux - PPC được coi là dễ lập trình nhất, do chạy Windows nên cách lập trình cũng tương tự so với Windows Desktop cho PC. Nếu đã từng lập trình cho PC, nhất là nền tảng .NET thì càng dễ, gần như không có khác biệt là mấy. Sinh viên thực hiện: Đinh Hữu Quyết 5 Giáo viên hướng dẫn: Nguyễn Công Nhật Hiện nay tùy thuộc vào công nghệ sử dụng, các ứng dụng phát triển cho PPC được chia thành hai dòng chính như sau: - Native Application: Các ứng dụng được viết trên các ngôn ngữ lập trình không phải .NET, như C, C++ và sử dụng các API của Windows. Ưu điểm của các ứng dụng loại này là chương trình nhỏ gọn, khi cài đặt không cần thêm các thư viện đi kèm, có khi chỉ cần copy nguyên file EXE là chạy. Tuy vậy, các ứng dụng kiểu này khó viết hơn, do sử dụng các ngôn ngữ lập trình bậc thấp hơn (C, C++). Chỉ các ứng dụng thực sự cần sự nhỏ gọn, như các driver, các trình thường trú như keyboard, system… mới cần phát triển theo kiểu này. - .NET Application: Như một sự cạnh tranh với sự phát triển ồ ạt và rất thành công của ngôn ngữ lập trình Java, từ năm 2000, Microsoft đã bắt đầu phát triển nền tảng .NET cho các ứng dụng, với mục tiêu dùng một nền tảng ngôn ngữ lập trình cho nhiều nền tảng phần cứng, phần mềm khác nhau. Đến nay .NET vô cùng phát triển và tỏ rõ được thế mạnh của mình. Tất cả các hệ điều hành Windows XP, Windows 2000, 2003 server đến Windows Mobile, Windows for Smart Phone đều hỗ trợ rất tốt .NET. Nếu bạn đã từng lập trình .NET cho Windows XP rồi thì chuyển sang Windows Mobile chỉ cần tìm hiểu thêm một số thư viện làm việc với những đặc thù cho Mobile là đã có thể phát triển các ứng dụng. - Ngoài ra, còn có một số nền tảng và ngôn ngữ lập trình của các hãng khác nữa nhưng không phổ biến. 3. Các công cụ sử dụng Để lập trình .NET, ta cần sử dụng những công cụ sau đây: - Bộ phần mềm Visual Studio.NET – phiên bản 2003, 2005 hoặc 2008. - Các thư viện nâng cao có thể download trên Internet. - Visual Studio.NET 2003 hỗ trợ .NET Framework 1.1 - Visual Studio.NET 2005 hỗ trợ .NET Framework 2.0 Sinh viên thực hiện: Đinh Hữu Quyết 6 Giáo viên hướng dẫn: Nguyễn Công Nhật - Visual Studio.NET 2008 hỗ trợ .NET Compact Framework 2.0 sp2 và 3.5. 3.1. Thư viện lập trình: Với lập trình Windows Mobile, ở đây ta cần phải có là bộ Windows Mobile SDK. Tùy vào mỗi phiên bản của hệ điều hành Windows Mobile, mà Microsoft cung cấp cho ta một bộ SDK tương ứng. Một bộ SDK thường chứa: - Tài liệu và các ví dụ cụ thể. - Các hàm API (Application Programming Interface). - Các công cụ cho trình soạn thảo (cụ thể là Visual Studio) và biên dịch mã. Đối với Visual Studio 2008, thì Microsoft đã tích hợp bộ Windows Mobile 5 SDK có sẵn để có thể lập trình ứng dụng cho các thiết bị chạy Windows Mobile 5. Sau này, chúng ta sử dụng Windows Mobile 6, do đó Microsoft cũng đã cung cấp 1 bộ Windows Mobile 6 SDK. Trong Windows Mobile 6 SDK bao gồm: Windows Mobile 6 SDK Standard Cung cấp thư viện, Emulator để phát triển ứng dụng cho các hệ máy SmartPhone Windows Mobile 6 SDK Professional Cung cấp thư viện, Emulator để phát triển ứng dụng cho các hệ Pocket PC Ngoài ra, trong bộ Windows Mobile 6 SDK còn tích hợp một số công cụ để phát triển ứng dụng tùy thuộc vào từng trường hợp cụ thể. Sinh viên thực hiện: Đinh Hữu Quyết 7 Giáo viên hướng dẫn: Nguyễn Công Nhật FakeGPS Giả lập dữ liệu GPS thông qua các hàm API Local Server Framework (aka FakeServer) Giả lập tương tự như một server. Khi đó ta có thể kiểm tra tính kết nối của một ứng dụng Cellular Emulator Giả lập song Radio thật như một thiết bị di động với một đầy đủ tính năng như GPRS, GSM, …. 3.2. Công cụ soạn thảo code: Ở đây, chúng ta sử dụng Visual Studio để lập trình cho thiết bị. Visual Studio cung cấp đầy đủ tính năng, sự thân thiện để ta có thể tiếp cận lập trình Windows Mobile một cách nhanh nhất. Nó hỗ trợ đầy đủ các chức năng, các loại ứng dụng phát triển, hỗ trợ ngôn ngữ C#, Visual Basic, cũng như tạo các Setup Project để triển khai ứng dụng một cách dễ dàng. * Các nền tảng được hỗ trợ trong Visual Studio: - Windows Mobile 2003 SE Pocket PC - Windows Mobile 2005 Pocket PC - Windows Mobile 2005 Smartphone - Windows Mobile 6 Classic - Windows Mobile 6 Standard - Windows Mobile 6 Professioncal Sinh viên thực hiện: Đinh Hữu Quyết 8 Giáo viên hướng dẫn: Nguyễn Công Nhật * Trình soạn thảo: Hình 1-1: Giao diện soạn thảo Hình 1-2: Các công cụ hỗ trợ Sinh viên thực hiện: Đinh Hữu Quyết 9 Giáo viên hướng dẫn: Nguyễn Công Nhật 3.3. Thiết bị để kiểm tra ứng dụng: 3.3.1 Lợi ích của việc sử dụng Emulator: + Không tốn chi phí cho việc sắm thiết bị để kiểm tra ứng dụng. Điều này đặc biệt quan trọng vì các thiết bị di động thường có cấu hình, khuôn dạng (form) và các nhà sản xuất khác nhau. + Tất cả mọi lập trình viên đều có thể cài đặt lại thiết bị, có điều kiện để thử nghiệm nhiều hệ điều hành khác nhau cho việc kiểm tra chương trình. + Phục vụ việc triển khai ứng dụng nhanh hơn nhờ tính năng lưu giữ trạng thái. 3.3.2. Visual Studio Device Emulator Khi phát triển một ứng dụng, thì vấn đề là chúng ta phải kiểm tra được ứng dụng đó. Windows Mobile SDK cung cấp 1 bộ công cụ Emulator để giả lập thiết bị thật, nó hỗ trợ đầy đủ tính năng của 1 thiết bị thật. Là công cụ giả lập giúp bạn chạy thử chương trình trong trường hợp bạn không có chiếc PPC hay SmartPhone thật nào, hoặc bạn muốn kiểm tra chương trình trên nhiều loại máy khác nhau như WM 2003,WM2005… Emulator đi kèm với Windows Mobile 5.0 SDK nên chỉ cần cài đặt SDK là đủ. Tính năng hệ điều hành đầy đủ như thiết bị thật, cả Windows CE và Windows Mobile. Tính năng đầy đủ của thiết bị, hỗ trợ chipset ARM. Hỗ trợ phần cứng giả lập như cổng COM, Network Card. * Trình quản lý thiết bị ảo + Điều khiển thiết bị ảo: - Start - Shutdown - Reset Sinh viên thực hiện: Đinh Hữu Quyết 10