Giới thiệu về Bluetooth Low Energy. Tôi biết iPhone 4S, iPhone 5, iPad 3 với iOS 5.1 trở lên hỗ trợ BLE 4.0. Và tôi đọc mã mẫu TemperatureSensor từ Apple. Câu hỏi của tôi là yêu cầu cho các cảm biến là gì? Nói cách khác, loại cảm biến nào có thể được kết nối trong ứng dụng này? Có phải tất cả các thiết bị hỗ trợ BLE 4.0 có thể được kết nối trong các thiết bị iOS của tôi có hỗ trợ BLE 4.0 không?Có phải tất cả các thiết bị hỗ trợ BLE 4.0 có thể được kết nối trong các thiết bị iOS hỗ trợ BLE 4.0 không?
Trả lời
Giao tiếp BLE dựa trên GATT (Thuộc tính chung), về cơ bản là trao đổi các giá trị của các đặc điểm khác nhau trong một dịch vụ. Nếu bạn đã đọc mã mẫu TemperatureSensor, bạn phải thấy rằng nó bắt đầu khám phá các thiết bị theo một UUID dịch vụ, và sau đó đọc/ghi các đặc điểm, vẫn dựa trên UUID, theo dịch vụ. Do đó, miễn là cảm biến hỗ trợ BLE và bạn biết về các dịch vụ của nó (UUID, đặc điểm và đặc tính của nó), bạn có thể lập trình ứng dụng iOS để giao tiếp với nó. Một số dịch vụ được Bluetooth SIG xác định trước, vì vậy bạn có thể tìm thấy thông tin của các dịch vụ này trên Bluetooth SIG website.
Có, bạn có thể kết nối bất kỳ thiết bị BLE nào với thiết bị iOS được hỗ trợ BLE.
Liên quan đến mã ví dụ bạn đang nói về, nó sẽ cho một UUID dịch vụ cụ thể cho cảm biến nhiệt độ:
[centralManager scanForPeripheralsWithServices:uuidArray options:options];
Là như không có cảm biến nhiệt độ trên thị trường mà tôi có thể tìm thấy, bạn thể muốn sử dụng con số không để quét cho bất kỳ và tất cả các thiết bị:
[centralManager scanForPeripheralsWithServices:nil options:options];
để thử nghiệm với điều này, bạn có thể sử dụng ứng dụng LightBlue hoặc iTunes Link mà cho phép bạn biến iPhone của bạn thành một thiết bị ngoại vi với bất kỳ dịch vụ/đặc điểm bạn định nghĩa.
- 1. Chính xác, thiết bị được kết nối BLE trên iOS là gì?
- 2. Có thể kết nối Wi-Fi Direct trong các thiết bị iOS và giữa các thiết bị hỗ trợ Wi-Fi Direct không?
- 3. Thiết bị nhúng hỗ trợ web SSL
- 4. Tôi có cần thêm hỗ trợ armv6 khi giới hạn ứng dụng cho iOS 4.0+ không?
- 5. Cách nhận IMEI cho J2ME hỗ trợ tất cả các thiết bị?
- 6. iTunes Kết nối: Loại trừ iPad khỏi Thiết bị được Hỗ trợ
- 7. iOS: Tự động thiết lập lại kết nối Bluetooth BLE khi ở trong phạm vi
- 8. Hỗ trợ WebSocket trên thiết bị di động
- 9. Android: Kích thước hình nền (trong Pixel) hỗ trợ tất cả thiết bị
- 10. Hỗ trợ iframe trên thiết bị di động
- 11. Thiết bị Android/webOS có hỗ trợ các sự kiện Javascript đa chạm không?
- 12. Hỗ trợ NHibernate .NET 4.0 framework?
- 13. Hỗ trợ Thiết bị Bluetooth mới trong Android
- 14. Làm cách nào để kiểm tra phần cứng hỗ trợ BLE trên OS X?
- 15. Thuộc tính thiết bị được hỗ trợ trên iOS trong giai đoạn đăng ký là gì?
- 16. Làm cách nào để xác định liệu đa nhiệm có được hỗ trợ trên thiết bị không?
- 17. iPod Touch thế hệ thứ 4 có hỗ trợ Bluetooth LE không?
- 18. VS2010 hoặc .NET 4.0 có hỗ trợ công cụ mới cho Trợ năng không?
- 19. Vui lòng kết nối thiết bị này với Xcode để cài đặt các tệp hỗ trợ phát triển
- 20. Mọi trình duyệt có hỗ trợ tất cả unicode không?
- 21. Strange SQLiteException không có trong tất cả các thiết bị
- 22. Hỗ trợ phát trên Google Play/danh sách thiết bị không hỗ trợ khi bộ lọc Quốc gia áp dụng
- 23. Làm thế nào để sử dụng LeDeviceListAdapter khi cố gắng tìm các thiết bị BLE?
- 24. PHP - Hệ thống thông báo thời gian thực - hỗ trợ tất cả các trình duyệt và thiết bị
- 25. Video trên các trang web và thiết bị di động, có một mã/định dạng đa nền tảng cho tất cả các hỗ trợ này không?
- 26. Nhiều kết nối BLE bằng Linux và Bluez 5.0
- 27. Orchard CMS có hỗ trợ hiển thị trên thiết bị di động không?
- 28. 'Thiết bị hỗ trợ gỡ lỗi' của Android không hiển thị trên Eclipse
- 29. mailto: liên kết không được hỗ trợ trong Android?
- 30. Tệp dự án có chứa ToolsVersion = "4.0", không được hỗ trợ bởi phiên bản MSBuild
Một điều không rõ ràng về UUID. Bạn có nghĩa là tôi phải biết UUID của thiết bị BLE (cảm biến) trước khi tôi kết nối? Các thiết bị BLE khác nhau có UUID khác nhau? Hoặc trong một từ khác khi tôi mua một thiết bị BLE mới, nó sẽ cung cấp một UUID với nó để tôi có thể thêm id vào chương trình của tôi trước khi tôi có thể kết nối với nó? Cảm ơn. –
@bagusflyer Trong BLE, mọi thứ (Thiết bị, Dịch vụ, Đặc tính) được gán một UUID. Nhưng bạn không cần phải biết UUID thiết bị để kết nối với chúng. Thay vào đó, bạn luôn có thể quét các thiết bị lân cận và kết nối với chúng, sau đó quét dịch vụ trên thiết bị ngoại vi đó. Nhưng nó sẽ là khôn ngoan để bạn biết UUID dịch vụ để xác định những người cung cấp dịch vụ này. Ví dụ, nếu bạn biết UUID cho nhiệt độ SERVICE 'là 0xabcd, thì bạn chỉ có thể xử lý những ngoại vi đó cung cấp dịch vụ mua gọi' scanForPeripheralsWithServices: 'với UUID 0xabcd làm đối số cho hàm này. –
Cảm ơn lời khuyên của bạn. Rất rõ ràng. –