我正在尝试设置一个系统来自动执行我家中的某些任务。
我正在考虑一种解决方案,其中服务器端应用程序将能够通过网络向Arduino(与Arduino Ethernet Shield连接)发送/接收命令/数据。
在这里,Arduino 既可以充当服务器应用程序的传感器接口,也可以充当服务器应用程序的命令执行器接口。
例如(用户故事):
我家的头顶水箱有一个与 Arduino 相连的水位传感器(与 Arduino Ethernet Shield 相连)。
另一个 Arduino(附有 Arduino Ethernet Shield)附有继电器/锁存器。然后将该继电器/锁存器连接到水泵。
现在网络上的服务器端应用程序能够从水箱上的 Arduino 获取/接收水位信息。
根据收到的水位信息,Web 应用程序应向水泵上的 Arduino 发送合适的信号/命令,以打开或关闭水泵。
现在,为了让这样的系统在网络上运行,我正在考虑按照我的优先级顺序使用其中一种解决方案:
使用XMPP在服务器应用程序和 Arduino 之间进行通信。
使用 HTTP 轮询。
使用 HTTP 挂起 GET。
对于解决方案 1,我需要实现一个驻留在 Arduino 上的 XMPP 客户端。
是否可以编写一个足够小的 XMPP 客户端以驻留在 Arduino 上?
如果是的话,我需要为 Arduino 编写的最低限度的 XMPP 客户端功能是什么,以便它能够联系 XMPP 服务器解决方案,如GTalk等?
对于解决方案 2 和 3,我需要实施指导。
此外,哪种解决方案具有成本效益且易于扩展?