Является ли эта архитектура выполнимой и гибкой?

9

У меня проблемы с тем, чтобы убедиться, что мой проект действительно осуществим.

Что я хочу архивировать: управлять кофемашиной Senseo через Интернет. Это сводится к простому управлению 2 кнопками.

Первое простое решение:

  1. Установите сервер NodeJS на моем Raspberry Pi.
  2. Я подключаю Raspberry GPIO к 2 транзисторам, чтобы управлять кнопками кофемашины
  3. Я могу контролировать Raspberry GPIO прямо в Javascript. Например, вызов http://myraspberrypi.com/makemeacoffee активирует GPIO, активирует кнопки и потоки кофе

Но: я не хочу подключать свою малину к моей кофемашине (мне нужен Pi для других целей), и я думаю, что отсоединение веб-сервера и самого контроллера - хорошая идея. Если завтра я захочу следить за температурой в моей ванной комнате или управлять второй кофемашиной (используя другой ESP8266), я хочу быть в состоянии сделать это без переосмысления всего этого.

То, что мне нужно для архивации, это ESP8266 с NodeMCU, чтобы использовать его как контроллер безголового Wi-Fi (см. Эту ссылку ). Raspberry GPIO больше не используются (в этом суть). На Pi есть только веб-сервер NodeJS.

Вот быстрый набросок архитектуры: эта архитектура возможна?

Позвольте мне уточнить роль основных компонентов:

  • Raspberry Pi: хост веб-сервера NodeJS
  • Веб-сервер NodeJS: обслуживает веб-страницы конечному пользователю. В основном страница с кнопкой «Сделай мне кофе». За кулисами нам нужно «нажать» кнопку нагрева воды, подождать 30 секунд, а затем «нажать» кнопку кофе. Веб-сервер делает это, отправляя HTTP-запросы на ESP8266 (через Wi-Fi). Сервер NodeJS также ведет журнал и анализ данных (сколько кофе вы выпили в этом году?)
  • ESP8266: использует NodeMCU. Его GPIO подключены к транзистору, управляющему кнопками кофемашины. Меня не волнует, как включить ESP8266. Он запускает веб-сервер для прослушивания запросов Raspberry Pi и соответственно выполняет действия с GPIO.

Возможна ли эта архитектура? Эта архитектура гибкая?


РЕДАКТИРОВАТЬ, чтобы ответить Шон Houlihane (спойлер, чтобы сохранить пост относительно коротким):

Я не уверен на 100% в этом, но транзистора вполне достаточно. Переключатель кофемашины работает при низком напряжении (3,3 В), и ESP8266 не будет делить землю с кофемашиной.

Что касается измерения температуры и контроля уровня воды, кофемашина Senseo имеет эту встроенную функцию. Типичное использование: нажмите центральную кнопку, чтобы запустить процесс нагрева, выберите размер кофе, нажав кнопку «одинарная» или «двойная». Как только процесс нагрева заканчивается, кофе начинает течь. Если воды недостаточно, она заканчивается, а светодиод мигает.

Прогресс, которого я ожидаю:

  • Версия 1.0 будет "Просто запустите кофеварку, я уверен, что она готова". Я контролирую одну кнопку чашки и кнопку нагрева.
  • Версия 2.0 будет «Запустить машину и дать мне обратную связь». У меня был еще один ESP8266, подключенный к светодиоду обратной связи (чтобы я мог знать, когда он нагревается, а когда нет воды) и еще один в масштабе, чтобы убедиться, что чашка есть перед запуском кофемашины. Я мог бы также добавить предупреждение, когда кофемашина запущена, чтобы сказать пользователю, чтобы изменить стручок.

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

Эцитпаб Ниолив
источник
Привет и добро пожаловать в Интернет вещей! Хотя я не пытаюсь убедить вас перенести этот вопрос (здесь все хорошо), я хотел бы пригласить вас на raspberrypi.stackexchange.com для любых других вопросов (или ответов, которые вы, возможно, захотите предоставить) в отношении Raspberry Pi :)
Ганима
@Ghanima Мне известно о существовании этого сайта, я просто «присоединился к сообществу» прямо сейчас, спасибо
Etsitpab Nioliv
2
HTTP? Вы должны использовать HTCPCP .
JAB

Ответы:

5

Архитектура, которую вы предлагаете, кажется нормальной. Кроме того, вы можете создать больше функциональных возможностей, таких как аутентификация и очистка запросов (например, контроль времени суток, ограничение скорости и т. Д.), Так что это отличный пример для исследования.

Вероятно, в реализации есть некоторые важные детали, которые вы еще не изучили. Например, транзисторный переключатель - это может быть Mosfet, может быть реле (или твердотельное реле) и могут иметь проблемы с напряжением и изоляцией.

Больше вещей, чтобы рассмотреть, чувствительность к температуре, уровень воды (осторожно о загрязнении) и другие функции. Отслеживание модуля RGB (это делает его одноразовым устройством или требуется сигнализация без замены модуля?)

Шон Хулихейн
источник
1
Отредактировал мой ответ, чтобы дать больше информации о конечной цели и о том, как туда добраться
Etsitpab Nioliv