不幸的是,我对这类话题的经验很少,所以我已经停滞了一段时间(在搜索并阅读可能的解决方案时)。
我的问题很简单,我有一个像这样工作的系统:
客户端设备(现在是覆盆子pi;将来考虑多个设备),它们都会读取传感器数据并控制一些执行器。
服务器(我现在的电脑)想要详细说明这些数据并向远程执行器发送命令(显然取决于它的详细说明)。
因此,基本上,我需要的是 ,因为' n'客户端连接到特定的服务器地址,并提供传感器数据每个' x'分钟。然后,我希望服务器将特定命令发送给特定客户端'当感觉需要时(客户端需要监听命令或定期从服务器拉出命令)执行器。
我对各种可用的协议和模块以及从这里开始的最佳方式感到困惑。特别是我正在寻找一些非常轻量级的东西,它可以很好地扩展(如果很多客户端将连接)并且不需要低级实现(我试图避免自己处理套接字并定义我自己的协议)
额外信息: 为了给你一些背景,我主要考虑过:
答案 0 :(得分:1)
MQTT是IOT(而不仅仅是)的轻量级订阅者/发布者协议,在该领域大量开发。
如果您的客户端设备是Raspberry Pi(或运行Linux OS的任何其他设备),那么MQTT可能就是您的选择。您的发行版很可能提供MQTT代理(称为mosquitto
),它将在安装后立即运行。您可以轻松地对其进行测试mosquitto-clients
,它将为您提供mosquitto_sub
和mosquitto_pub
命令行api。
这将使您轻松进行双向沟通。 MQTT在各种平台(包括裸机)上为大多数语言(包括Python,C,C ++,Perl,Java,甚至支持Web套接字)提供各种客户端库,因此它可以很好地与任何系统集成。
如果您未来的客户端设备是简单的uC,那么您应该看看是否支持MQTT(最有可能的是,有一大堆教程)。
您可以轻松管理MQTT代理,根据需要使用网桥将其置于云中,或通过IP主机名单独管理。它非常容易学习并且使用起来非常有趣。