Estoy trabajando en un dispositivo que detecta y recopila información del entorno, como la temperatura, la humedad, etc.
El dispositivo no está conectado a ninguna fuente de alimentación, pero tiene una batería y un panel solar para cargarlo.
Está casi en un estado de sueño profundo la mayor parte del tiempo, y solo se despierta cuando necesita detectar y transferir datos. Esta operación dura aproximadamente 1-2 minutos, y luego se va a dormir nuevamente.
No soy un experto en esta área, pero creo que MQTT debería ser una buena opción si el dispositivo necesita ser accesible para recibir mensajes de un tema todo el tiempo, pero en mi escenario solo lee sensores y envía datos a un servidor periódicamente.
Actualmente estoy enviando los datos a través de HTTP, pero me pregunto si tiene sentido implementar MQTT. ¿Debo obtener alguna ventaja sobre HTTP para este escenario?
Respuestas:
Si está almacenando datos, simplemente siga con HTTP. HTTP es solo una señal unidireccional.
Si su servidor o cualquier otra "cosa" debe reaccionar a una señal específica (baja temperatura, ...), utilice MQTT. De esta manera, muchos dispositivos pueden suscribirse a su señal de temperatura y reaccionar inmediatamente sin usar su servidor.
fuente
Usted menciona un panel solar y una batería como parte del dispositivo, por lo que probablemente desee minimizar el uso de energía durante las transmisiones para asegurarse de que su dispositivo no se quede sin energía por completo.
Por lo tanto, es posible que desee considerar la COAP , el Co nstrained A plicación P rotocolo, que está diseñado específicamente para dispositivos con restricciones en la Internet de las cosas.
En el documento Comparando la rentabilidad de CoAP y HTTP en aplicaciones Web of Things , puede encontrar evidencia bastante convincente de que CoAP podría obtener algunos ahorros de energía aquí. En el Apéndice A (página 38), puede ver la vida útil esperada de la batería de los dispositivos en la Tabla A.4. Por un intervalo de tiempo de 120 segundos, como espera en su caso de uso:
Esos cálculos se realizaron con un par de baterías AA de carbono-zinc, pero puede ver claramente que CoAP usa mucha menos energía, por lo que vale la pena considerarlo. Su 'modo push', como se describe en el documento, parece exactamente el tipo de cosas que planeas hacer.
Aunque no preguntó específicamente sobre CoAP, creo que vale la pena mencionarlo, ya que Goufalite ya ha cubierto las diferencias esenciales entre MQTT y HTTP. Una buena regla general es: ¿planea comunicarse uno a uno o uno a muchos ? Si es lo primero, HTTP y CoAP parecen encajar mejor. Si es lo último, MQTT es probablemente más conveniente.
fuente