11.1. Tại sao chọn Bluetooth¶
Kết nối mạng giúp camera kết nối vào mạng Wi-Fi hoặc Ethernet để giao tiếp với bất kỳ thiết bị nào có thể kết nối từ đó. Một máy tính xách tay ở cuối hành lang, một máy chủ ở châu lục khác, một chiếc điện thoại đang dùng mạng di động. Tầm với rộng lớn đó đi kèm với các điều kiện tiên quyết. Phải có mạng sẵn. Phải có điểm truy cập trong vùng phủ sóng, phải có thông tin đăng nhập, phải có router sẵn sàng cấp địa chỉ cho camera. Camera cũng phải duy trì radio (hoặc cổng Ethernet) hoạt động đủ mạnh để duy trì kết nối.
Bluetooth bao phủ trường hợp ngược lại -- tầm ngắn, không cần hạ tầng, tiêu thụ điện năng thấp. Camera và điện thoại trong cùng một phòng trao đổi dữ liệu qua liên kết radio trực tiếp, không có gì ở giữa. Không cần điểm truy cập, không cần router, cả hai thiết bị đều không cần thuộc bất kỳ mạng nào. Radio gần như tắt hoàn toàn giữa các đợt hoạt động ngắn, nên một viên pin chỉ đủ dùng chưa đầy một ngày với Wi-Fi có thể hoạt động trong nhiều tháng.
11.1.1. Khi nào Bluetooth là công cụ phù hợp¶
Các trường hợp phổ biến trên camera:
Điện thoại hoặc máy tính bảng ghép đôi với camera. Người dùng gần đó mở ứng dụng trên điện thoại và cấu hình camera, đọc trạng thái hoặc tải xuống kết quả -- mà không cần cả hai thiết bị phải kết nối cùng mạng Wi-Fi. Hầu hết điện thoại đều hỗ trợ Bluetooth Low Energy nguyên bản, nên trải nghiệm người dùng là "mở ứng dụng, nhấn kết nối", chứ không phải "kết nối mạng này trước".
Thiết bị đeo hoặc cảm biến báo cáo về camera. Đai đo nhịp tim, nhiệt kế, beacon, công tắc tiếp xúc -- tất cả đều là thiết bị chạy pin được thiết kế xung quanh Bluetooth Low Energy. Camera kết nối với tư cách là client, đọc giá trị từ chúng và tích hợp dữ liệu vào những gì đang xử lý.
Camera phát một luồng trạng thái nhỏ. Mức pin, đối tượng được phát hiện cuối cùng, tốc độ khung hình -- một vài con số được hiển thị cho bất kỳ thiết bị nào gần đó muốn đọc. Ghép đôi là tùy chọn; với dữ liệu không nhạy cảm, camera có thể quảng bá giá trị trực tiếp mà không cần kết nối.
Hai camera (hoặc camera và vi điều khiển) chia sẻ dữ liệu không qua mạng. Cả hai đầu đều biết nhau; cả hai đều ở trong cùng tòa nhà; không có lý gì để các byte phải truyền lên đám mây rồi quay lại chỉ để đi qua căn phòng.
11.1.2. Khi nào kết nối mạng mới là công cụ phù hợp¶
Những đánh đổi của Bluetooth không phù hợp với một số trường hợp phổ biến:
Thiết bị đối tác nằm ngoài tầm phủ sóng. Bluetooth Low Energy chỉ có vài mét trong thực tế, và tối đa vài chục mét trong không gian trống. Bất cứ điều gì qua một tòa nhà, qua thành phố, hoặc qua internet đều cần Wi-Fi hoặc Ethernet.
Các liên kết băng thông cao. Bluetooth Low Energy chỉ đạt vài chục đến vài trăm kilobit mỗi giây trong thực tế. Truyền phát khung hình hay bất kỳ video có ý nghĩa nào đều cần Wi-Fi.
Giao tiếp nhóm nhiều-đến-nhiều trên cơ sở hạ tầng chung. Một phòng đầy thiết bị đều nói chuyện với một máy chủ, hoặc mạng lưới camera chia sẻ kết quả -- đó là mô hình mà mạng IP được xây dựng cho.
11.1.3. Low Energy, không phải classic¶
"Bluetooth" trong cách dùng thông thường bao gồm hai ngăn xếp radio riêng biệt. Classic Bluetooth là loại được dùng trong tai nghe không dây, âm thanh xe hơi, và kết nối bàn phím/chuột: radio đạt chuẩn giọng nói và âm thanh, ngăn xếp tương đối phức tạp, và tiêu thụ điện đáng kể. Bluetooth Low Energy (BLE) là một giao thức riêng biệt, mới hơn, cùng thương hiệu và dải tần 2.4 GHz nhưng hầu như không có gì giống nhau. Nó được xây dựng xung quanh các đợt radio ngắn và không thường xuyên để giữ mức tiêu thụ điện trung bình ở mức thấp, và xung quanh mô hình dữ liệu key/value thay vì phát trực tuyến âm thanh.
MicroPython trên camera chỉ hỗ trợ BLE. Classic Bluetooth hoàn toàn không có trong API. "Bluetooth" bên dưới có nghĩa là BLE.
11.1.4. Những gì thay đổi so với mô hình mạng¶
BLE có cùng ngăn xếp năm tầng như mạng, nhưng các tầng trên hoạt động khác đi:
Không có khái niệm "mở socket và gửi byte". BLE được xây dựng xung quanh một cơ sở dữ liệu key/value nhỏ mà một bên lưu trữ và bên kia đọc, ghi hoặc đăng ký. Camera phát các giá trị được đặt tên (mức pin, nhiệt độ, thanh ghi lệnh); đối tác đọc hoặc theo dõi chúng.
Không có địa chỉ hóa theo tên. Thiết bị tự nhận dạng bằng cách quảng bá một bản tin broadcast ngắn mô tả chúng là ai; các đối tác quét các bản tin đó và chọn một để kết nối.
Radio gần như ở trạng thái chờ. Cả hai đầu thỏa thuận tại thời điểm kết nối về tần suất thức dậy và giao tiếp. Ở giữa, cả hai quay lại trạng thái ngủ.
Ba sự khác biệt đó là nguyên nhân khiến phần còn lại của BLE API khác xa mô hình socket.