• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Управлять несколькими устройствами с компьютера (веб-интерфейс)

Mauser_od

New member
Всем доброго времени суток.

Возможно такая задача уже решалась, но не нашел...

Стоит задача, на первый взгляд простая, но по факту оказалась чуть сложнее..
Есть некоторое количество ЕСП, а именно NodMCU, порядка 20шт
каждое устройство должно отправлять информацию о своем статусе (грубо говоря, показания датчиков и какие кнопки нажаты на устройстве) и получать команды.

пока это пробуем реализовать через веб-интерфейс, через iframe.

т.е. одна страница, а в ней много маленьких окошек с веб интерфейсами с каждой ЕСПэхи.

интересно, может эти задачи уже решались и решались успешно и более толковыми методами?

спасибо!
 

gerkimuyda

New member
А в чем сложность? Заводим php скрипт (backend), который обслуживается все запросы от клиентов (esp) и складирует данные в mysql. Потом пишем второй скрипт (frontend) который выводит из mysql данные на веб-страничку для пользователя, а также принимает от него команды. Команды записываются для передачи нужному клиенту (при следующем коннекте с ним) или напрямую сразу передаются (если клиент постоянно на связи, а не как штирлиц, выходит только по установленному графику). Делов-то? Можно наворотить restful-api с авторизацией и токенами для пущей безопасности :)
 

gerkimuyda

New member
У Сергея Третьякова наоборот, на каждой ESP- сервер!
Никто не мешает параллельно клиентам наделать на еспешках и сервера для избыточной надежности. Но сервер требует большего потребления по питанию и не может долго спать.
Также, такой вариант не позволяет оперировать с данными за прошлые периоды одновременно с разных устройств (например, в дб - накопленные данные из разных таблиц от разных источников).
Каждый выбирает сам подходящий для его условий вариант. У меня, вдобавок, локальный комп синхронизирует все полученные от устройств данные с моим внешним сайтом на хостинге.
 

kab

New member
@gerkimuyda
Я извиняюсь - может я что-то упустил? А свою систему Вы "презентовали" на этом сайте для стороннего копирования/использования? На каких условиях?
 

gerkimuyda

New member
Нет. Ее и не рекламирую. Т.к. каждый делает под себя. Я просто упомянул, как можно реализовать в случае необходимости. Так сказать - указал направление :)
Многие, например, сейчас на MQTT помешаны, а мне такое не надо. Зачем тогда его пихать в свой код? Или выкладывать то, что нужно мне и больше никем не востребованно?
А что касается пхп - то тут посильно помочь могу человеку, если не напряжно будет. Или просто наставнические советы и направления на реализации могу дать.
Бывают такие моменты, когда есть кирка и лопата и шлем, но нет компаса, в какую сторону копать :))))))) а надо - от обеда и до ближайшего дерева ))))))))

--------------
Вот смотрите, у ТС задача управлять 20 шт. модулей. Все это в ифреймах. Нагрузка на браузер ппц и никакой стабильности. Если модуль отвалился на время опроса - надо вручную перезагружать страницу. Плюс - не понятно что и где и как у каждого.
Когда заводишь все на централизованное управление - можно обслуживать многопользовательский интерфейс. Данные уже как-бы закешироаны в БД и нагрузки на сами модули не поступает. Плюс - сразу можно реализовывать разные сценарии: Смотреть время последнего онлайна модуля (по каждому модулю установить свои пределы) и при явной потери связи с модулем - выводить юзеру предупреждение, мол, модуль с позывным "котельня-петя" со вчерашнего обеда не выходил на связь! Надо бы пойти, проверить, и дать пинка. Или при определенных ситуациях - слать смски и емайлы по установленным адресам, включать алярм и через громкоговорители играть музыку. Можно сравнивать температуру с одного модуля, с температурой другого модуля, и по результатам - давать команду третьему модулю (при этом сами модули друг с другом не связаны). Это-же, если уже отлажено, и необходимо на постоянной основе, зашивается непосредственно в прошивку, которая передается в модули. Да даже элементарнейшая команда модулю, а он сейчас перегружается или занять расчетами и проворонил команду, при ифреймах он потеряет ее, а при центральном управлении - получит при следующем обращении. Центральный сервер не обязательно должен быть компом - это может быть rasbery, или старый pentium 1 на линухе и без монитора, или навороченый роутер... Все зависит от нужд пользователя и "кебы" программиста.
 
Последнее редактирование:

kab

New member
Ее и не рекламирую. Т.к. каждый делает под себя
Ну, тут можно поспорить. Как говориться - "возможны варианты". Вот я, например, в текущем состоянии, не "под себя", не "для других" в настоящий момент ничего не проектирую. Никак не придумаю устройство, которое мне было бы и интересно, и полезно. (Напр., неск. десятков лет назад, вскорости после женитьбы, молодой супруге сделал стационарный фен с плавной регулировкой температуры тиристорным регулятором. Супруга была в восторге. ). А сейчас идеи кончились, может, попросту - лень:). С другой стороны, вижу, что некоторые местные ребята активно выкладывают свои разработки для повторения.
 

gerkimuyda

New member
Это пока учишься - интересно выкладывать свои разработки :))) А когда уже многое умеешь (а может это не из-за опыта, а из-за возраста?) как-то уже не интересно показывать всем свои поделки :).
Да и у взрослых нет времени разжевывать все молодежи и в рот класть. Ведь если выкладываешь свое - будь готов отвечать на всякие ламерские вопросы и "сопровождать" свое творение год-два...
Ведь в школе мы так любили хвастаться, как красиво умеем писать буквы, или рисовать рисунки! И даже, если сейчас это умеешь куда красивее , надобности и желания показать рисунок или каллиграфический почерк уже нет :)

А про фен с тиристорами - сейчас ведь так модно пихать везде блютуз управление через смартфон ))) с графиком температуры и рекомендациями по похудению ))))))) (минутка юмора). Так что можно еще раз удивить супругу "умным" феном с выходом в интернет и прогнозом погоды )))))))))) Мол, "сегодня эта прическа вам не подходит, т.к. ожидаются осадки и сильный ветер!"
 
  • Like
Реакции: kab

enjoynering

Well-known member
Напр., неск. десятков лет назад, вскорости после женитьбы, молодой супруге сделал стационарный фен с плавной регулировкой температуры тиристорным регулятором. Супруга была в восторге. ). А сейчас идеи кончились, может, попросту - лень
может жену поменять?
 

Юрий Ботов

Moderator
Команда форума
Читал.... потом еще раз.... причем тут iframe???
Есть TCP сервер, на него время от времени 20 клиентов сливают изменения и в ответ получают команды.
Есть особый HTTP клиент который все это надзирает и "жмет кнопки..."
 

enjoynering

Well-known member
Читал.... потом еще раз.... причем тут iframe???
Есть TCP сервер, на него время от времени 20 клиентов сливают изменения и в ответ получают команды.
Есть особый HTTP клиент который все это надзирает и "жмет кнопки..."

iframe HTML технология у которой есть недостатки с навигацией(прокруткой) внутри страницы.

вот тут подробнее.
 

NeoroN

Member
А кто мешает использовать JQuery и Ajax запросы? На всех модулях одинаковая страница, каждый модуль знает обо всех остальных. При этом зайдя на любой модуль получаем страницу, которая опрашивает все модули через JQuery.ajax(...), выводит информацию в соответствующих блоках, обновляет по таймерам.

И не нужно ничего городить с PHP
 

Mauser_od

New member
А кто мешает использовать JQuery и Ajax запросы? На всех модулях одинаковая страница, каждый модуль знает обо всех остальных. При этом зайдя на любой модуль получаем страницу, которая опрашивает все модули через JQuery.ajax(...), выводит информацию в соответствующих блоках, обновляет по таймерам.

И не нужно ничего городить с PHP
как раз сейчас на аджаксе пробуем что-то похожее.
только немного иначе:
общая страница динамически подгружает модули и отображает кусочки у себя, кусочки в свою очередь обновляют информацию только о себе
 

enjoynering

Well-known member
А кто мешает использовать JQuery и Ajax запросы? На всех модулях одинаковая страница, каждый модуль знает обо всех остальных. При этом зайдя на любой модуль получаем страницу, которая опрашивает все модули через JQuery.ajax(...), выводит информацию в соответствующих блоках, обновляет по таймерам.

И не нужно ничего городить с PHP
PHP хорош когда у вас sql база, со значениями температуры или еще чего, за последние 3 года. когда надо передать команду на esp через зашифрованный https. по обычному http, из всемирной паутины на домашнюю сеть, я бы get запросы к esp не слал, а то может так случиться, что вашим котлом, теплым полом, освещением управляет еще кто-то кроме вас:)
 
Последнее редактирование:

enjoynering

Well-known member
как раз сейчас на аджаксе пробуем что-то похожее.
только немного иначе:
общая страница динамически подгружает модули и отображает кусочки у себя, кусочки в свою очередь обновляют информацию только о себе

угу это хор способ забирать текущие данные с esp.

у меня модуль работает как клиенти и как сервер. если php сервак посылает модулю ajax json запрос. esp как клиент отвечает. а дальше хотите в sql складывайте или еще чего.

если вы заходит на esp как на сервер, то из spiffs подгружается html страница и делает тот же ajax json запрос сама на себя. получает ответ и через DOM обнавляет страницу.
 

Вложения

  • 64.9 KB Просмотры: 12

view24

Member
Есть некоторое количество ЕСП, а именно NodMCU, порядка 20шт
каждое устройство должно отправлять информацию о своем статусе (грубо говоря, показания датчиков и какие кнопки нажаты на устройстве) и получать команды.
Websocket - однозначно! Клиенты на ESP, Сервер на ПК на JavaScript во фреймах.
 
Сверху Снизу