该设备未连接任何电源,但具有电池和太阳能面板充电。
大部分时间它几乎处于深度睡眠状态,并且仅在需要感测和传输数据时才唤醒。此操作大约需要1-2分钟,然后它再次进入睡眠状态。
我不是该领域的专家,但是我认为如果需要将设备设为MQTT,MQTT应该是一个不错的选择可以随时接收来自某个主题的消息,但是在我的情况下,它只能读取传感器,并定期将数据发送到服务器。
当前,我正在通过HTTP发送数据,但是想知道实施MQTT是否有意义?在这种情况下,我应该比HTTP获得任何优势吗?
#1 楼
如果要存储数据,只需坚持使用HTTP。 HTTP只是单向信号。如果服务器或任何其他“事物”应对特定信号做出反应(低温等),则使用MQTT。像这样,许多设备可以订阅您的温度信号并立即做出反应,而无需使用服务器。
评论
同时,大数据量(http)和小数据量(mqtt)会立即分开,并且mqtt在信号不好的情况下更加可靠。
–mico
17年5月19日在17:56
服务器仅从传感器接收数据。我的帖子的重点是,我不确定使用MQTT是否有意义,因为该设备将在99%的时间处于深度睡眠状态(所有总线,调制解调器,传感器均已关闭),并且仅醒来以读取传感器并发送数据。
– zephrax
17年5月19日在18:40
如果将数据存储在某处,则意味着您拥有数据库和查询数据库的后端方法(Apache服务器,命令行SQL等)。如果将MQTT放在此之上,则将有另一个实例和要管理的端口。
–古法利特
17年5月19日在21:03
我同意这个答案。如果您不需要双向通信,并且设备经常处于睡眠状态,那么HTTP是一种简单且合适的协议选择。
– TheMagicCow
17年5月20日在14:15
#2 楼
您提到太阳能电池板和电池是设备的一部分,因此您可能希望最大程度地减少传输过程中的电源使用,以确保设备不会完全用尽电量。因此,您可能会想考虑CoAP(约束应用协议),它是专门为物联网中受约束的设备设计的。
在本文中比较CoAP和HTTP在物联网中的成本效率
应用程序中,您可以找到一些非常有说服力的证据,证明CoAP可以为您节省一些电能。在附录A(第38页)中,您可以在表A.4中查看设备的预期电池寿命。正如您在用例中所期望的那样,时间间隔为120秒:
tbat(HTTP),天— 2013年
tbat(CoAP) ,天— 11013
这些计算是基于一对碳锌AA电池进行的,但是您可以清楚地看到CoAP所消耗的电量要少得多,因此可能值得考虑。如本文所述,它的“推送模式”似乎完全是您计划要做的事情。
尽管您没有特别询问CoAP,但我认为值得一提,因为Goufalite已经介绍了MQTT和HTTP之间的本质区别。一个好的经验法则是:您打算进行一对一或一对多的交流吗?如果是前者,HTTP和CoAP似乎更合适。如果是后者,则MQTT可能更方便。
评论
相似,但是我的意思是要了解我是否需要在我的场景中实现MQTT:当我的设备99%的时间处于深度睡眠状态时,只是醒来发送读数。我不会建议。首先写出您的要求,并实施最简单的协议。在割草机上使用法拉利引擎来割草是没有意义的。不要陷入繁琐的话题中-只需进行基础研究并实施最有效的方法即可。
很好地捕捉问题标题中的要求,我想通常来说,您是在询问较小的,不经常使用的传感器值。
@Xofo我很想看到一个答案,以及为什么您可能建议使用自定义协议。值得付出“自己动手”的额外努力,再加上安全性问题等吗?
不是自定义协议...我说的是首先定义需求。某些规定的协议通常过于繁琐。