Tìm hiểu công nghệ bluetooth
Client:
Ở đoạn code trên, bạn mở kết nối tới server thông qua phương thức Connector.open(m_strUrl). Sau đó, bạn mở stream Input/Output để giao tiếp với server. Để gửi dữ liệu tới server, trước tiên bạn cần gửi độ dài của dữ liệu, rồi sau đó mới tới dữ liệu. Bằng cách này, client hay server sẽ biết được kích thước dữ liệu.
m_Output.write(CLIENT_RESPONSE.length()); m_Output.write(CLIENT_RESPONSE.getBytes());m_Output được sử dụng để gửi dữ liệu đến đối tượng được kết nối, CLIENT_RESPONSE đơn giãn chỉ là dữ liệu. Về phía server, phương thức acceptAndOpen() cho phép bắt đầu quá trình giao tiếp.
29 trang |
Chia sẻ: lylyngoc | Lượt xem: 3011 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tìm hiểu công nghệ bluetooth, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH SVTH: LÊ QUANG VŨ LÊ HÙNG QUỐC CBHD: Ths.VÕ ĐỨC HOÀNG THỰC TẬP NHẬN THỨC ĐỀ TÀI: TÌM HIỂU CÔNG NGHỆ BLUETOOTH NỘI DUNG Demo ví dụ bằng J2ME Xây dựng chương trình về bluetooth Đặc điểm Lịch sử,hình thành và phát triển của Bluetooth Khái niệm và mục đích về công nghệ Bluetooth CÔNG NGHỆ KHÔNG DÂY Hồng ngoại Wireless Bluetooth ZigBee KHÁI NIỆM 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 2.40 – 2.48 GHz. KHÁI NIỆM(tt) 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. 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. 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. MỤC ĐÍCH Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử với nhau một cách thuận lợi với giá thành rẻ. MỤC ĐÍCH (tt) Ví dụ: Bạn có thể hoạt động trên máy tính với một bàn phím không dây, sử dụng bộ tai nghe không dây để nói chuyện trên điện thoại di động của bạn hoặc bổ sung thêm một cuộc hẹn vào lịch biểu PDA(thiết bị hổ trợ cá nhân) của một người bạn từ PDA của bạn CÁC LOẠI GIAO TIẾP BLUETOOTH Gồm 3 loại: OBEX(Object Exchange):dùng trao đổi các dữ liệu vật lý:tập tin, hình ảnh và cả các dạng nhị phân. L2CAP(Logical link control and adaptation protocol): được sử dụng để gửi các gói dữ liệu giữa máy chủ và máy khách CÁC LOẠI GIAO TIẾP BLUETOOTH(tt) RFCOMM(Radio Frequency COMMunication): được sử dụng cho luồng dữ liệu đơn giản. CÁC LOẠI GIAO TIẾP BLUETOOTH(tt) LỊCH SỬ Lịch sử tên Bluetooth: Bluetooth là tên của nhà vua Đan Mạch – Harald I Bluetooth(Danish Haral Blatand) (910-985). Harald I Bluetooth đã hợp nhất Đan Mạch và Norway. Ngày nay Bluetooth là biểu tượng của sự thống nhất Computer và TeleCom, giữa công nghệ máy tính và công nghệ truyền thông đa phương tiện Hình thành và phát triển của Bluetooth Năm 1994 : lần đầu tiên hãng Ericsson đưa ra một đề án nhằm hợp nhất liên lạc giữa các thiết bị điện tử khác nhau mà không dùng đến các sợi dây cáp nối cồng kềnh, phức tạp( dùng vi mạch cỡ 9mm để truyền tín hiệu sóng vô tuyến). Năm 1998: 5 công ty lớn trên thế giới gồm Ericsson, Nokia, IBM, Intel và Toshiba đã liên kết, hợp tác thiết kế và triển khai phát triển chuẩn công nghệ nối không dây mang tên Bluetooth nhằm kết nối các thiết bị vi điện tử lại với nhau dùng sóng vô tuyến. Bluetooth có tốc độ phát triển khá nhanh, ứng dụng đa dạng. Được coi là thị trường năng động và sôi nổi trong lĩnh vực truyền thông. Hình thành và phát triển của Bluetooth(tt) ĐẶC ĐIỂM Tiêu thụ năng lượng thấp, cho phép ứng dụng trên 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 hạ. Khoảng cách giữa 2 thiết bị đầu cuối có thế lên đến 10m ngoài trời và 5m trong tòa nhà An toàn và bảo mật. Độc lập với phần cứng và hệ điều hà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ợ. ĐẶC ĐIỂM(tt) Các loại giao tiếp bluetooth: - Có 3 loại bao gồm: OBEX: Viết tắt bởi “Object Exchange” giao thức giao tiếp được sử dụng để trao đổi dữ liệu vật lý như các tập tin, hình ảnh, và kể cả các định dạng nhị phân. L2CAP: Viết tắt bởi “Logical Link Control and Adaptation Protocol” được sử dụng để gửi các gói dữ liệu giữa máy chủ và máy khách. RFCOMM: Viết tắt bởi ” Radio Frequency COMMunication” được sử dụng cho luồng dữ liệu đơn giản. Xây dựng chương trình về bluetooth Java Bluetooth API : Bluetooth API thuộc JSR 82, và nó có khả năng cung cấp cả 3 loại giao tiếp kể trên, đó là: OBEX, L2CAP và RFCOMM. Nhưng mà chúng ta sẽ chỉ tập trung vào giao thức đơn giản nhất là RFCOMM và mô tả cách thức gửi dữ liệu giữa các thiết bị thông qua giao thức này. Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: Kỹ thuật giao tiếp giữa các thiết bị sẽ được thực hiện theo quy tắc client-server. Đó là, bạn sẽ mở server và sau đó chờ client kết nối tới, sau đó cả client và server sẽ giao tiếp với nhau. Trong Bluetooth, bạn cũng làm kỹ thuật tương tự, đó là ứng dụng phải cho phép người dùng lựa chọn nó hoặc là client hoặc server. Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server Server: Mỗi thiết bị Bluetooth có các đối tượng Bluetooth cục bộ giúp giao tiếp giữa các thiết bị. Trong JSR82, gọi phương thức LocalDevice.getLocalDevice () sẽ trả về đối tượng của thiết bị Bluetooth cục bộ. Sau đó đối tượng này sẽ gọi phương thức setDiscoverable(DiscoveryAgent.GIAC), trong đó chế độ thiết lập là GIAC. Nói một cách đơn giản, bằng cách làm này, bạn cho phép thiết bị hiện tại tìm kiếm các thiết bị khác. Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Server: Để mở các kết nối Bluetooth, bạn cần phải xây dựng một chuỗi URL Bluetooth và sẽ được gọi bên trong phương thức Connector.open (URL), phương thức này sẽ trả về đối tượng StreamConnectionNotifier. Thực tế thì URL chính là cách để khởi tạo các giao thức giao tiếp cho Bluetooth, giống như trên một hộp tìm kiếm của Internet Explorer. Bạn chỉ cần gõ trong đó “http://” chính là giao thức và phần còn lại là địa chỉ. Tương tự, trong Bluetooth bạn sẽ làm như sau: URL = “btspp://localhost:” + UUID + “;name=rfcommtest;authorize=true”; Ở đây, btspp:// cũng tương tự như http://, và phần còn lại là một định danh ID duy nhất để xác định rằng nó chỉ có một địa chỉ duy nhất mà thôi. Sau khi StreamConnectionNotifier đã được khởi tạo, nó phải gọi phương thức acceptAndOpen() để mở giao tiếp và trả về đối tượng StreamConnection. Tuy nhiên, nếu không có một kết nối client nào được tìm thấy, nó sẽ chặn các tiến trình khác và chờ đợi. Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Server: Bây giờ, bạn có thể sử dụng hai phương thức của đối tượng StreamConnection, đó là: openOutputStream() hoặc openInputStream(). Cả hai được sử dụng để yêu cầu gửi và nhận dữ liệu. m_strUrl= "btspp://localhost:" + RFCOMM_UUID + "; name=rfcommtest;authorize=true"; // m_StrmConn = BTFACADE.waitForClient(SERVICE_NBR); try { m_LclDevice = LocalDevice.getLocalDevice(); m_LclDevice.setDiscoverable(DiscoveryAgent.GIAC); m_StrmNotf = (StreamConnectionNotifier)Connector.open(m_strUrl); //Now it will start waiting for the client connection m_StrmConn = m_StrmNotf.acceptAndOpen(); m_bInitServer = true; m_Output = m_StrmConn.openOutputStream(); m_Input = m_StrmConn.openInputStream(); } catch (BluetoothStateException e){ System.err.println( "BluetoothStateException: " + e.getMessage() ); } catch (IOException ex) { ex.printStackTrace(); } catch(Exception e) { System.err.println( "Exception: " + e.getMessage() ); } Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Để tạo client, UPI phải làm theo một số quy tắc để đạt được mục tiêu của bạn, đó là thực thi giao diện DiscoveryListener. Giao diện này cung cấp 4 phương thức sau: void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) void servicesDiscovered(int transID, ServiceRecord[] records) void serviceSearchCompleted(int transID, int respCode) void inquiryCompleted(int discType) -> Đầu tiên, bạn phải quét để tìm kiếm các thiết bị Bluetooth xung quanh bạn. Bạn phải nhận thông tin thiết bị cục bộ và thông qua nó để lấy đối tượng DiscoveryAgent để bắt đầu tìm hiểu về các thiết bị có sẵn. Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Code: public void SearchAvailDevices() { try { //First, get the local device and obtain the discovery agent. m_LclDevice = LocalDevice.getLocalDevice(); m_DscrAgent= m_LclDevice.getDiscoveryAgent(); m_DscrAgent.startInquiry(DiscoveryAgent.GIAC,this); } catch (BluetoothStateException ex) { System.out.println("Problem in searching the Bluetooth devices"); ex.printStackTrace(); } } Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Đầu tiên, phương thức deviceDiscovered sẽ phát hiện các thiết bị Bluetooth được tìm thấy. Sau đó, nhiệm vụ của bạn là tìm kiếm các dịch vụ có sẵn trên thiết bị là: OBEX, RFCOMM hay L2CAP. public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) { try { // Device information System.out.println("Major Device Class and information : " + cod.getMajorDeviceClass() + " Minor Device Class: " + cod.getMinorDeviceClass()); System.out.println("Bluetooth Address of the device: " + btDevice.getBluetoothAddress()); System.out.println("Friendly Name: " + btDevice.getFriendlyName(true)); // Now its our responsibility to search its services UUID uuidSet[] = new UUID[1]; uuidSet[0] = RFCOMM_UUID; Int searchID =m_DscrAgent.searchServices(null,uuidSet, btDevice,this); } catch (Exception e) { System.out.println("Device Discovered Error: " + e); } } Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Phương thức servicesDiscovered() dưới đây được kích hoạt khi các dịch vụ trên thiết bị được tìm thấy. Tại đây, bạn dừng vòng lặp trên giao thức đầu tiên mà bạn tìm thấy như Bluetooth. public void servicesDiscovered(int transID, ServiceRecord[] records) { for (int i = 0; i < records.length; i++) { m_strUrl=records[i].getConnectionURL(ServiceRecord. AUT HENTICATE_ENC RYPT, false); System.out.println(m_strUrl); //we have found our service protocol if(m_strUrl.startsWith("btspp")) { m_bServerFound = true; m_bInitClient=true; break; } } Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Sau khi phương thức tìm kiếm dịch vụ hoàn tất, phương thức serviceSearchComplete(int transID, int respCode) được kích hoạt, từ đó bạn có thể khởi tạo khi bạn tìm thấy dịch vụ muốn tìm kiếm. public void serviceSearchCompleted(int transID, int respCode) { if(m_bServerFound) { try //lets the communication start by setting the URL and sending //the client response { m_StrmConn = (StreamConnection) Connector.open(m_strUrl); m_Output = m_StrmConn.openOutputStream(); m_Input = m_StrmConn.openInputStream(); m_Output.write(CLIENT_RESPONSE.length()); m_Output.write(CLIENT_RESPONSE.getBytes()); System.out.println("serviceSearchCompleted"); } catch (IOException ex) { ex.printStackTrace(); } } } Xây dựng chương trình về bluetooth (tt) Cơ chế hoạt động của bluetooth: (tt) Giải thích code của Client và Server (tt) Client: Ở đoạn code trên, bạn mở kết nối tới server thông qua phương thức Connector.open(m_strUrl). Sau đó, bạn mở stream Input/Output để giao tiếp với server. Để gửi dữ liệu tới server, trước tiên bạn cần gửi độ dài của dữ liệu, rồi sau đó mới tới dữ liệu. Bằng cách này, client hay server sẽ biết được kích thước dữ liệu. m_Output.write(CLIENT_RESPONSE.length()); m_Output.write(CLIENT_RESPONSE.getBytes());m_Output được sử dụng để gửi dữ liệu đến đối tượng được kết nối, CLIENT_RESPONSE đơn giãn chỉ là dữ liệu. Về phía server, phương thức acceptAndOpen() cho phép bắt đầu quá trình giao tiếp. Xây dựng chương trình về bluetooth (tt) Demo ví dụ bằng J2ME Xây dựng chương trình về bluetooth (tt)
Các file đính kèm theo tài liệu này:
- tim_hieu_cong_nghe_bluetooth_6211.ppt