Apakah saya perlu menggunakan MQTT atau HTTP?


9

Saya sedang mengerjakan perangkat yang merasakan dan mengumpulkan informasi dari lingkungan seperti suhu, kelembaban, dll.

Perangkat tidak terhubung ke sumber daya apa pun, tetapi memiliki baterai, dan panel surya untuk mengisi daya.

Hampir dalam kondisi tidur nyenyak sebagian besar waktu, dan hanya bangun ketika perlu merasakan dan mentransfer data. Operasi ini memakan waktu sekitar 1-2 menit, dan kemudian kembali tidur.

Saya bukan ahli di bidang ini, tapi saya pikir MQTT harus menjadi pilihan yang baik jika perangkat harus dapat diakses untuk menerima pesan dari suatu topik sepanjang waktu, tetapi dalam skenario saya itu hanya membaca sensor, dan mengirim data ke server secara berkala.

Saat ini saya mengirim data melalui HTTP, tapi saya bertanya-tanya apakah masuk akal untuk mengimplementasikan MQTT? Haruskah saya mendapatkan keuntungan dari HTTP untuk skenario ini?


1
Ini serupa, tetapi poin saya adalah untuk memahami apakah saya perlu menerapkan MQTT dalam skenario saya: ketika perangkat saya akan tidur nyenyak 99% dari waktu, dan hanya bangun untuk mengirim bacaan.
zephrax

1
Saya tidak akan menyarankan. Pertama, tuliskan persyaratan Anda, dan terapkan protokol yang paling sederhana. Tidak masuk akal untuk menggunakan Mesin Ferrari di mesin pemotong rumput untuk memotong rumput. Jangan terjebak dalam desas-desus hal - Lakukan saja riset dasar Anda dan terapkan yang terbaik.
Xofo

Akan menyenangkan untuk menangkap persyaratan dalam judul pertanyaan, Secara umum, Anda bertanya tentang nilai sensor yang kecil dan jarang, saya pikir.
Sean Houlihane

@Xofo Saya tertarik untuk melihat jawaban tentang itu, dan mengapa Anda menyarankan menggunakan protokol khusus. Apakah ini sepadan dengan upaya tambahan 'menggulung sendiri', ditambah masalah keamanan, dll?
Aurora0001

Bukan protokol khusus ... Saya katakan pertama mendefinisikan persyaratan. Beberapa protokol yang ditentukan seringkali terlalu berat.
Xofo

Jawaban:


8

Jika Anda menyimpan data, cukup gunakan HTTP. HTTP hanyalah sinyal satu arah.

Jika server Anda atau "hal" lainnya harus bereaksi terhadap sinyal tertentu (suhu rendah, ...) maka gunakan MQTT. Seperti ini, banyak perangkat dapat berlangganan sinyal suhu Anda dan langsung bereaksi tanpa menggunakan server Anda.


1
Juga ada pembagian antara jumlah data besar (http) dan kecil (mqtt) sekaligus dan juga mqtt lebih dapat diandalkan pada kondisi sinyal buruk.
mico

1
Server hanya menerima data dari sensor. Maksud dari posting saya, adalah bahwa saya tidak yakin apakah masuk akal untuk menggunakan MQTT, karena perangkat akan 99% dari waktu dalam keadaan tidur nyenyak (semua bus, modem, sensor dimatikan) dan hanya bangun untuk membaca sensor dan mengirim data.
zephrax

Jika Anda menyimpan data di suatu tempat, ini berarti Anda memiliki database dan cara backend untuk menanyakannya (server apache, SQL baris perintah, ...). Jika Anda meletakkan MQTT di atas ini, Anda akan memiliki instance dan port lain untuk dikelola.
Goufalite

1
Saya setuju dengan jawaban ini. Jika Anda tidak memerlukan komunikasi dua arah, dan perangkat sering tertidur, maka HTTP adalah pilihan protokol yang sederhana dan cocok.
TheMagicCow

8

Anda menyebutkan panel surya dan baterai sebagai bagian dari perangkat, jadi Anda mungkin ingin meminimalkan penggunaan daya selama transmisi untuk memastikan perangkat Anda tidak kehabisan daya sepenuhnya.

Oleh karena itu, Anda mungkin ingin mempertimbangkan coap , yang Co nstrained A plikasi P rotocol, yang dirancang khusus untuk perangkat dibatasi di Internet of Things.

Dalam makalah Membandingkan efisiensi biaya CoAP dan HTTP dalam aplikasi Web of Things , Anda dapat menemukan beberapa bukti yang cukup meyakinkan bahwa CoAP mungkin memberi Anda penghematan daya di sini. Dalam Lampiran A (halaman 38), Anda dapat melihat usia baterai perangkat yang diharapkan pada Tabel A.4. Untuk interval waktu 120 detik, seperti yang Anda harapkan dalam use case Anda:

t bat (HTTP), days - 2013

t bat (CoAP), hari - 11013

Perhitungan itu dijalankan pada sepasang baterai AA karbon-seng, tetapi Anda dapat dengan jelas melihat bahwa CoAP menggunakan daya yang jauh lebih sedikit, sehingga mungkin perlu dipertimbangkan. 'Mode push' -nya, seperti yang dijelaskan di koran, sepertinya persis seperti yang Anda rencanakan.

Meskipun Anda tidak secara khusus bertanya tentang CoAP, saya pikir itu layak disebutkan, karena Goufalite telah membahas perbedaan mendasar antara MQTT dan HTTP. Aturan praktis yang baik adalah: apakah Anda berencana untuk berkomunikasi satu-ke-satu , atau satu-ke-banyak ? Jika yang pertama, HTTP dan CoAP sepertinya lebih cocok. Jika yang terakhir, MQTT mungkin lebih nyaman.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.