Asumsikan bahwa ada banyak sensor lemah (misalnya, perangkat tingkat Arduino) yang mengandalkan BLE sebagai alat komunikasi dan bahwa perangkat ini terhubung ke gateway yang lebih kuat (misalnya, perangkat tingkat Raspberry pi).
Saya ingin tahu apakah MQTT dianggap sebagai protokol yang tepat untuk mentransmisikan bacaan mereka (pesan singkat dan sering meledak).
Sejumlah blog / dokumen menganggap MQTT sesuai untuk "aplikasi IoT" karena bobotnya ringan jika dibandingkan dengan HTTP dan menghemat daya. Namun, untuk pemahaman saya itu memerlukan koneksi tetap terbuka yang tidak terjadi dengan BLE atau protokol komunikasi lain yang sesuai untuk IoT. BLE tidak menjaga koneksi tetap terbuka untuk waktu yang lama untuk menghemat energi. Rupanya, MQTT sesuai ketika protokol lapisan MAC seperti WiFi digunakan. Ini hampir mematahkan alasan di balik penggunaan MQTT di tempat pertama (yaitu, jika perangkat yang secara komputatif menangani protokol seperti WiFi maka mungkin tidak memerlukan protokol seperti MQTT). Apakah Anda melihat cacat dalam logika ini?
Apakah ada protokol lapisan aplikasi alternatif untuk tujuan itu? Apa struktur yang paling sering terlihat dari jenis pesan ini (misalnya, data biner mentah, JSON, XML) ketika mereka berkomunikasi dengan gateway dan ketika mereka berkomunikasi dengan server secara langsung?
Jawaban:
MQTT harus menjalankan lebih dari TCP / IP (Saya tidak ingat apakah itu benar-benar dalam spesifikasi atau jika asumsi yang dibuat cukup untuk membuatnya begitu) tetapi protokol saudara MQTT-SN dapat dijalankan melalui hampir semua protokol yang dapat mengirimkan data , Saya telah melihat implementasi di UDP dan serial.
Setelah mengatakan bahwa saya tidak yakin apa yang Anda peroleh dengan menjalankan lebih dari BLE, Karakteristik bawaan BLE menawarkan banyak manfaat yang sama (jika hanya berdasarkan 1 banding 1) dengan hal-hal seperti pemberitahuan.
Saya pikir salah satu hal penting yang perlu diingat adalah apa yang "saya" singkatan dari IOT, itu menyiratkan akses ke Internet di beberapa titik (bahkan jika itu adalah perangkat gateway atau telepon). Pada titik itu MQTT bisa sangat berguna, tetapi itu tidak selalu berarti semua jalan ke tepi (perdarahan).
sumber
Boleh dibilang, Anda akan lebih baik melakukan pemetaan sederhana data dari paradigma BLE ke MQTT, daripada mencoba mengirim MQTT secara harfiah melalui BLE.
BLE umumnya bertukar data dalam bentuk karakteristik . Ini memiliki berbagai mekanisme unik BLE untuk menemukan perubahan nilai yang mungkin berguna bagi Anda. Tetapi mereka memiliki panjang data maksimum 20 byte .
Hal ini dimungkinkan untuk streaming data serial lebih BLE, bergerak 20 byte pada suatu waktu. Ini kadang-kadang dilakukan untuk mengimplementasikan port serial virtual, dan Anda bisa tunnel MQTT penuh melalui ini.
Tetapi Anda mungkin lebih baik menggunakan koleksi karakteristik BLE untuk membawa data berbagai topik, dan memiliki jembatan yang memetakan identitas karakteristik ke topik MQTT dan memetakan nilai ke muatan MQTT.
BLE memiliki pengertian sendiri tentang sesi yang terhubung yang sedang berlangsung vs yang tidak terhubung. Kemungkinan Anda harus mengetahui penggunaan BLE apa yang terbaik untuk aplikasi Anda, dan kemudian memetakan ini ke rasa MQTT menjaga koneksi.
Anda harus dapat melakukan ini di salah satu atau kedua arah: BLE-> MQTT dan MQTT-> BLE
sumber