4

我正在尝试设置一个系统来自动执行我家中的某些任务。

我正在考虑一种解决方案,其中服务器端应用程序将能够通过网络向Arduino(与Arduino Ethernet Shield连接)发送/接收命令/数据。

在这里,Arduino 既可以充当服务器应用程序的传感器接口,也可以充当服务器应用程序的命令执行器接口。

例如(用户故事):

  1. 我家的头顶水箱有一个与 Arduino 相连的水位传感器(与 Arduino Ethernet Shield 相连)。

  2. 另一个 Arduino(附有 Arduino Ethernet Shield)附有继电器/锁存器。然后将该继电器/锁存器连接到水泵。

  3. 现在网络上的服务器端应用程序能够从水箱上的 Arduino 获取/接收水位信息。

  4. 根据收到的水位信息,Web 应用程序应向水泵上的 Arduino 发送合适的信号/命令,以打开或关闭水泵。

现在,为了让这样的系统在网络上运行,我正在考虑按照我的优先级顺序使用其中一种解决方案:

  1. 使用XMPP在服务器应用程序和 Arduino 之间进行通信。

  2. 使用 HTTP 轮询。

  3. 使用 HTTP 挂起 GET。

对于解决方案 1,我需要实现一个驻留在 Arduino 上的 XMPP 客户端。

是否可以编写一个足够小的 XMPP 客户端以驻留在 Arduino 上?

如果是的话,我需要为 Arduino 编写的最低限度的 XMPP 客户端功能是什么,以便它能够联系 XMPP 服务器解决方案,如GTalk等?

对于解决方案 2 和 3,我需要实施指导。

此外,哪种解决方案具有成本效益且易于扩展?

4

8 回答 8

3

你可以看看 MQTT,它有一个 arduino 库,它是一个简单的发布者-订阅者消息代理。

于 2010-09-13T22:48:19.773 回答
1

我不认为我会为你正在尝试做的事情寻找任何这些。

只需在给定的时间间隔内将传感器数据从 Arduino 中输入,然后让另一方进行智能操作。

此外,对于这些类型的项目,我一直在寻求避免使用以太网屏蔽并使用XBeeRFM12B。这些将引导您朝那个方向前进,但更重要的是,让更多设备同时进行遥测和控制变得容易得多。

如果在 Arduino 上运行XMPP之类的东西,那将是一个通过更智能的服务器端进程代理的真正精简的存在协议。也就是说,这将是相似的工作量。尽管有可能,但 1 KB RAM 中的 XMPP 与您的应用程序代码一起听起来真的很痛苦。

于 2009-12-03T17:23:08.893 回答
1

我们正在开发一个开源中继基础设施,以使 Arduinos(以及任何其他支持 TCP/IP 套接字的设备)可以通过 Web 访问。然后,您的应用程序可以通过简单的 REST API 调用 Arduinos。有关更多信息和现场演示,请参见http://www.yaler.org/

问候,坦伯格

于 2010-02-23T08:34:05.590 回答
1

有一个正在开发的项目,具有政策和数据记录器功能。(sensors/any_data_source over xmpp) http://middlewaresensing.wordpress.com/

于 2010-03-19T13:39:37.953 回答
1

为什么不使用旧的 RS485 连接传感器执行器?只需发明一些简单的协议(地址、命令、数据)。如果您需要更复杂的东西,请使用另一个人作为 RS485/以太网桥。

于 2010-04-06T19:44:08.100 回答
1

开源项目

管理传感器和网络 | 记录传感器数据 | 图表 | 政策 | 历史/日期/传感器规则 | 短信/电子邮件/url/twitter/xmpp 通知 | 事件记录 | 谷歌地图 | 以及更多

http://dev.hci.uma.pt/sawa的演示

维基 dev.hci.uma.pt/mediawiki/index.php

middlewaresensing.wordpress.com 上的博客

您可以使用 HTTP Post 向服务器发送数据,然后通过 XMPP 发布传感器数据。HTTP Post(用于资源有限的设备,例如 arduino)和 sox_tools 一个 xmpp 客户端,用于在此系统上通过 xmpp 发布

于 2010-08-04T09:56:43.223 回答
1

有一个新的库,用于在称为 RESTduino 的 Arduino(带以太网)上发出类似 REST 的 HTTP 请求并接收 JSON 响应。对于您的 Arduino 项目,它可能是有用的插入式 HTTP 接口。

http://jasongullickson.posterous.com/restduino-arduino-hacking-for-the-rest-of-us

于 2011-04-26T13:12:52.673 回答
0

在查看了所有可用选项后,我对任何选项都不满意。

目前我正在努力为我上面定义的问题提出自己的解决方案。

解决方案是我在上面回复“达斯汀”的评论中的行。

一旦我在这里提出我的解决方案的第一个版本,将立即发布项目 URL。

于 2009-12-29T07:29:46.947 回答