11.1. Mengapa Bluetooth

Jaringan memungkinkan kamera terhubung ke jaringan Wi-Fi atau Ethernet sehingga dapat berkomunikasi dengan perangkat apa pun yang dapat dijangkau dari sana. Laptop di ujung lorong, server di benua lain, atau ponsel yang menggunakan data seluler. Jangkauan tersebut memerlukan prasyarat. Jaringan harus ada. Ada titik akses yang harus berada dalam jangkauan, kredensial harus tersedia, router harus bersedia memberikan alamat ke kamera. Kamera juga harus terus mengoperasikan radio (atau port Ethernet) dengan cukup keras untuk mempertahankan koneksi.

Bluetooth mencakup kasus yang berlawanan -- jangkauan pendek, tanpa infrastruktur, daya rendah. Kamera dan ponsel di ruangan yang sama bertukar data melalui tautan radio langsung, tanpa perantara apa pun. Tidak ada titik akses, tidak ada router, tidak perlu salah satu pihak terhubung ke jaringan apa pun. Radio sebagian besar dalam keadaan mati di antara aktivitas singkat, sehingga baterai yang hampir tidak bertahan sehari dengan Wi-Fi dapat berjalan selama berbulan-bulan.

11.1.1. Kapan Bluetooth adalah alat yang tepat

Kasus-kasus umum pada kamera:

  • Ponsel atau tablet dipasangkan dengan kamera. Pengguna di dekatnya membuka aplikasi di ponsel mereka dan mengonfigurasi kamera, membaca statusnya, atau mengunduh hasil -- tanpa harus terlebih dahulu menghubungkan kedua perangkat ke jaringan Wi-Fi yang sama. Sebagian besar ponsel mendukung Bluetooth Low Energy secara native, sehingga pengalaman pengguna adalah "buka aplikasi, tekan sambung", bukan "bergabung dengan jaringan ini terlebih dahulu".

  • Perangkat wearable atau sensor melapor ke kamera. Tali pengukur detak jantung, termometer, beacon, saklar kontak -- semuanya adalah perangkat bertenaga baterai yang dirancang untuk Bluetooth Low Energy. Kamera terhubung sebagai klien, membaca nilai-nilainya, dan menggabungkan data ke dalam aktivitas lainnya.

  • Kamera menerbitkan umpan status kecil. Level baterai, objek yang terdeteksi terakhir, laju bingkai -- beberapa angka yang diekspos untuk perangkat terdekat yang ingin membacanya. Pemasangan bersifat opsional; untuk data yang tidak sensitif, kamera dapat mengiklankan nilai-nilai tersebut secara langsung tanpa perlu koneksi sama sekali.

  • Dua kamera (atau kamera dan mikrokontroler) berbagi data tanpa jaringan. Kedua ujung saling mengenal; keduanya berada di gedung yang sama; tidak ada alasan bagi byte untuk bepergian ke cloud dan kembali hanya untuk melintasi ruangan.

11.1.2. Kapan jaringan adalah alat yang tepat

Pertukaran Bluetooth tidak tepat untuk beberapa kasus umum:

  • Perangkat yang berada di luar jangkauan. Bluetooth Low Energy hanya mencakup beberapa meter dalam praktiknya, dan puluhan meter di ruang terbuka paling baik. Apa pun yang melewati gedung, lintas kota, atau melalui internet membutuhkan Wi-Fi atau Ethernet.

  • Tautan bandwidth tinggi. Bluetooth Low Energy memberikan puluhan hingga beberapa ratus kilobit per detik dalam praktiknya. Streaming bingkai atau video apa pun yang bermakna membutuhkan Wi-Fi.

  • Komunikasi kelompok banyak-ke-banyak pada infrastruktur bersama. Seruangan perangkat yang semuanya berbicara ke satu server, atau jaring kamera yang berbagi hasil -- pola itulah yang dibangun oleh jaringan IP.

11.1.3. Low Energy, bukan klasik

"Bluetooth" dalam penggunaan sehari-hari mencakup dua tumpukan radio yang berbeda. Classic Bluetooth adalah yang ada di headset nirkabel, audio mobil, dan tautan keyboard / mouse: radio berkelas suara-dan-audio, tumpukan yang relatif kompleks, dan konsumsi daya yang terlihat. Bluetooth Low Energy (BLE) adalah protokol terpisah yang lebih baru yang berbagi nama merek dan pita 2,4 GHz tetapi hampir tidak ada persamaan lain. Ini dibangun di sekitar semburan radio pendek yang jarang terjadi untuk menjaga rata-rata daya tetap kecil, dan di sekitar model data kunci/nilai alih-alih audio streaming.

MicroPython pada kamera hanya mendukung BLE. Classic Bluetooth sama sekali bukan bagian dari API. "Bluetooth" di bawah ini berarti BLE.

11.1.4. Apa yang berubah dari model jaringan

BLE memiliki tumpukan lima lapisan yang sama dengan jaringan, tetapi lapisan atas berperilaku berbeda:

  • Tidak ada abstraksi "buka soket dan kirim byte". BLE dibangun di sekitar basis data kunci/nilai kecil yang di-hosting oleh satu sisi dan dibaca, ditulis, atau dilanggan oleh sisi lain. Kamera menerbitkan nilai bernama (level baterai, suhu, register perintah); peer membaca atau memantaunya.

  • Tidak ada pengalamatan-berdasarkan-nama. Perangkat mengidentifikasi diri dengan mengiklankan siaran singkat yang mendeskripsikan identitas mereka; peer memindai siaran tersebut dan memilih satu untuk terhubung.

  • Radio sebagian besar tidak aktif. Kedua ujung menyepakati saat koneksi tentang seberapa sering bangun dan berkomunikasi. Di antaranya, keduanya kembali tidur.

Ketiga perbedaan itulah yang mendorong API BLE menjauh dari model soket.