Домашняя автоматизация с использованием Arduino / XMPP клиента для Arduino - PullRequest
4 голосов
/ 03 декабря 2009

Я пытаюсь настроить систему для автоматизации определенных задач в моем доме.

Я имею в виду решение, в котором приложение на стороне сервера сможет отправлять / получать команды / данные на Arduino (подключенный с Arduino Ethernet Shield ) через Интернет.

Здесь Arduino может одновременно выступать в качестве сенсорного интерфейса для серверного приложения или интерфейса исполнителя команд для серверного приложения.

например. (пользовательская история):

  1. В верхнем резервуаре для воды в моем доме установлен датчик уровня воды с Arduino (с Arduino Ethernet Shield).

  2. Другой Arduino (подключен к Arduino Ethernet Shield) снабжен реле / ​​защелкой. Затем это реле / ​​фиксатор подключается к водяному насосу.

  3. Теперь веб-приложение на стороне сервера может получать / получать информацию об уровне воды от Arduino в резервуаре для воды.

  4. В зависимости от полученной информации об уровне воды, веб-приложение должно посылать Arduino соответствующие сигналы / команды на водяной насос, чтобы включить или выключить водяной насос.

Теперь, чтобы такая система работала через Интернет, я думаю об использовании одного из типов решений в порядке моего приоритета:

  1. Использование XMPP для связи между серверным приложением и Arduino.

  2. Использование HTTP-опроса.

  3. Использование HTTP зависания GET.

Для решения № 1 мне нужно реализовать клиент XMPP, который будет находиться на Arduino.

Можно ли написать клиент XMPP, достаточно маленький для размещения на Arduino?

Если да, каковы минимально возможные функциональные возможности клиента XMPP, которые мне нужно написать для Arduino, чтобы он мог связываться с такими решениями XMPP-серверов, как GTalk и т. Д.

Для решений № 2 и 3 мне нужно руководство по внедрению.

Кроме того, какое решение будет экономически эффективным и легко расширяемым?

Ответы [ 8 ]

3 голосов
/ 14 сентября 2010

Вы можете взглянуть на MQTT, у него есть библиотека arduino, это простой посредник сообщений издателя-подписчика.

1 голос
/ 26 апреля 2011

Существует новая библиотека для выполнения REST-подобных HTTP-запросов и получения JSON-ответов на Arduino (с Ethernet) под названием RESTduino. Это может быть полезным HTTP-интерфейсом для вашего проекта Arduino.

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

1 голос
/ 04 августа 2010

Проект с открытым исходным кодом

Управление датчиками и сетями | запись данных датчика | диаграммы | политика | история / дата / сенсор правила | sms / email / 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 в этой системе

1 голос
/ 06 апреля 2010

Почему бы не использовать старый добрый RS485, чтобы добраться до исполнительных механизмов датчика? Просто придумайте какой-нибудь простой протокол (адрес, команда, данные). Если вам нужно что-то более сложное, используйте другого парня в качестве моста RS485 / Ethernet.

1 голос
/ 19 марта 2010

Есть проект в разработке, есть политики и возможности записи данных. (sensor / any_data_source over xmpp) http://middlewaresensing.wordpress.com/

1 голос
/ 23 февраля 2010

Мы работаем над инфраструктурой ретрансляции с открытым исходным кодом, чтобы Arduinos (и любое другое устройство, поддерживающее сокеты TCP / IP) были доступны через Интернет. Ваше приложение может затем вызвать Arduinos через простой REST API. См. http://www.yaler.org/ для получения дополнительной информации и демонстрационной версии.

С уважением, Тамберг

1 голос
/ 03 декабря 2009

Не думаю, что я буду искать кого-то из того, что вы пытаетесь сделать.

Просто выведите данные датчика из Arduino за заданный интервал времени и попросите другую сторону сделать смарт.

Кроме того, для проектов такого типа я старался избегать экранов Ethernet и использовать XBee или RFM12B . Они помогут вам в этом направлении, но, что более важно, упростят использование гораздо большего количества устройств, выполняющих как телеметрию, так и управление.

Если бы на Arduino работало что-то вроде XMPP , это был бы действительно урезанный протокол присутствия, проходящий через более интеллектуальный процесс на стороне сервера. То есть это был бы аналогичный объем работы. Хотя это возможно, XMPP в 1 КБ ОЗУ вместе с кодом вашего приложения звучит очень болезненно.

0 голосов
/ 29 декабря 2009

Изучив все доступные варианты, я не остался доволен.

В настоящее время я работаю над тем, чтобы найти собственное решение проблемы, которую я определил выше.

Решение в строках комментария, который я ответил на 'Dustin' выше.

Опубликует URL проекта, как только я приду к первой версии моего решения.

...