web-dev-qa-db-fra.com

IoT: dois-je utiliser MQTT ou HTTP?

Je travaille sur un appareil qui détecte et collecte des informations provenant de l'environnement, telles que la température, l'humidité, etc.

L'appareil n'est connecté à aucune source d'alimentation, mais il dispose d'une batterie et d'un panneau solaire pour le charger.

La plupart du temps, il est pratiquement en état de sommeil profond et il ne se réveille que lorsqu'il doit détecter et transférer des données. Cette opération prend environ 1 à 2 minutes avant de se rendormir.

Je ne suis pas un expert dans ce domaine, mais je pense que MQTT devrait être une bonne option si le périphérique doit être accessible pour recevoir les messages d'un sujet à tout moment, mais dans mon cas, il ne lit que des capteurs et envoie des données à un serveur périodiquement.

Actuellement, j'envoie les données via HTTP, mais je me demande s'il est logique d'implémenter MQTT? Devrais-je obtenir un avantage sur HTTP pour ce scénario?

5
zephrax

Nous avons testé MQTT vs HTTP (REST) ​​ sur SSL à partir du serveur normal et des cartes Raspberry Pi, tant du point de vue des performances que de la consommation d’énergie. Les résultats dépendent du cas d'utilisation et du périphérique sur lequel le processus est en cours d'exécution.

En ce qui concerne votre cas d'utilisation, nous avons également un test spécial => livrer de nombreux messages (plusieurs sondes) via HTTP, HTTP-batch ou MQTT. Les résultats sont assez simples, si vous avez la possibilité d'envoyer des données en une requête HTTP, ce sera la meilleure option. MQTT est à la deuxième place et HTTP avec remise par message est beaucoup moins efficace en énergie et plus lent que MQTT.

2
shal

Je suis nouveau dans le jeu mais j'adore mqtt pour la collecte de données et l'envoi d'informations aux appareils.

J'utilise les puces Synapses RF200 (réseau maillé à guérison automatique) et j'ai construit un pont en connectant l'un des RSF200 en série à une puce wifi esp8266.

En gros, j'ai mqtt_in et mqtt_out en tant que sujets et mon application c # xamarin iOs/Android se connecte aux informations de demande de courtier mqtt à partir du rf200 à l'aide de mqtt_in (dans le réseau maillé rf200) et les nœuds répondent à l'aide de mqtt_out (hors du réseau maillé rf200) Je collecte toutes les informations au fur et à mesure que les chaînes analysent et convertissent les informations dont j'ai besoin.

Les frais généraux sont très bas et le courtier mqtt est très facile à configurer.

1
Mark