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

我正在考虑一种解决方案,其中服务器端应用程序将能够发送/接收命令/数据 Arduino (附有 Arduino 以太网扩展板)通过网络。

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

例如。(用户故事):

  1. 我家的头顶水箱有一个与Arduino相连的水位传感器(附有Arduino以太网扩展板)。

  2. 另一个 Arduino(附有 Arduino 以太网扩展板)附有继电器/锁存器。然后将该继电器/锁存器连接到水泵。

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

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

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

  1. 使用 XMPP 用于服务器应用程序和 Arduino 之间的通信。

  2. 使用 HTTP 轮询。

  3. 使用 HTTP 挂 GET。

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

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

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

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

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

有帮助吗?

解决方案 8

在研究了所有可用的选项后,我对任何一个都不满意。

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

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

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

其他提示

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

我认为我不会为您想做的事情而寻找其中任何一个。

只需按照给定的时间间隔从 Arduino 输出传感器数据,然后让另一方进行智能操作即可。

另外,对于这些类型的项目,我一直在寻求避免以太网屏蔽并使用 小蜜蜂 或者 RFM12B. 。这些将引导您朝这个方向发展,但更重要的是,使更多设备进行遥测和控制变得更加容易。

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

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

问候,坦贝格

有一个项目正在开发中,具有策略和数据记录器功能。(通过 xmpp 的传感器/any_data_source)http://middlewaresensing.wordpress.com/

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

开源项目

管理传感器和网络|记录传感器数据|图表|政策|历史/日期/传感器规则| SMS/电子邮件/URL/Twitter/XMPP通知|事件记录| Google地图|以及更多

演示于 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发布

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top