Домашняя автоматизация с использованием клиента Arduino/XMPP для Arduino

StackOverflow https://stackoverflow.com/questions/1839645

Вопрос

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

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

Здесь 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

Рассмотрев все доступные варианты, ни один меня не удовлетворил.

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

Решение находится в комментариях, на которые я ответил Дастину выше.

Я опубликую здесь URL-адрес проекта, как только выпущу здесь первую версию своего решения.

Другие советы

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

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

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

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

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

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

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

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

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

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

Управление датчиками и сетями | Данные датчика записи | Диаграммы | Политики | ИСТОРИЯ/Дата/Датчик Правила | SMS/Email/URL/Twitter/XMPP уведомления | Событие журнала | Google Maps | и многое другое

демо на http://dev.hci.uma.pt/sawa

вики по адресу dev.hci.uma.pt/mediawiki/index.php.

блог на middlewaresensing.wordpress.com

Вы можете отправлять данные на сервер с помощью HTTP Post, затем данные датчиков публикуются через XMPP.HTTP Post (для ресурсов Limited Devices, таких как Arduino) и Sox_tools, клиент XMPP для публикации через XMPP в этой системе

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top