@Misha5
профессиональный бомж

Управление устройствами IoT через веб-интерфейс (MQTT или HTTP)?

Здраствуйте.

Пишу дипломную работу по теме "умный дом".
В данный момент пытаюсь реализовать веб-интерфейс для управления устройствами.

Подходил к этому с разных углов: espeasy, home-assistant и т.д.
Трудность в том, что использовать уже готовые решения как тот же Home.io я не могу (в дипломе нужен код!)

В связи с чем я обдумываю идею написать собственный (локальный) сайт для управления устройствами.

У меня получилось создать простую веб-страницу для управления реле. Все это работало через WinSCP с протоколом SFTP.
Попробовал создать веб-сайт сразу прописывая код html в nodemcu. Но это сильно ограничивает так-как весь сайт находится на одной плате.

1) Можно ли реализовать это таким образом, чтобы сайт существовал независимо от плат (локально в сети) и при этом получал данные со всех устройств (на данный момент есть 2 платы nodemcu с подключенными датчиками) и отправлял данные в ответ (запрос на переключение реле)? И при этом была возможность переходить на этот сайт всем устройствам подключенным к домашнему wi-fi?

2) Еще сложнее. Можно ли реализовать передачу данных через mqtt-брокера между сайтом и несколькими платами NodeMcu? Нужен ли для этого хостинг?
  • Вопрос задан
  • 441 просмотр
Решения вопроса 2
@Indemsys
По первому вопросу ответ - да, можно. Но нужно применить технологию WebSocket, обычный AJAX работать не будет.
Потому что AJAX может обращаться только по тому же адресу откуда была прочитана страница.
Сам сайт может находится на домашнем компьютере.
Насколько видно из примера - https://randomnerdtutorials.com/esp32-websocket-se...
соединение WebSocket сделать на стороне сервера очень просто.

По второму вопросу.
Для MQTT нужен брокер MQTT. Брокеры типа Mosquitto могут работать на любых компьютерах.
В том числе и на том на котором находится сайт. Сами страницы сайта должны применять клиента MQTT на JavaScript.
Ответ написан
1. Что Вы понимаете под фразой
чтобы сайт существовал независимо от плат
Если вообще без оборудования, то нет конечно. Если Вы готовы выделить для сайта отдельный компьютер, то да, это реализуемо.
2. Если все равно выделять компьютер, то почему бы и нет. тот же home assistant прекрасно с MQTT работает. И да, хостингом будет компьютер, арендовать ничего не надо. Или наоборот, арендовать хостинг и не покупать компьютер.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@remzalp
Программер чего попало на чем попало
Raspberry Pi в локалке и хорошо.
На ней поднять mosquitto с поддержкой веб-сокетов, тогда и из браузера можно напрямую с mqtt общаться
бонусом можно Node-red поднять, там и логика и просмотр
Ответ написан
@motomac
По второму вопросу я бы не парился с поднятием собственного брокера и использовал какой-нибудь публичный. Например, www.mqtt-dashboard.com. Устройства подключаются к брокеру и пишут в один топик, ваш сайт/страничка подключается к тому же брокеру и подписывается на этот топик (MQTT over WebSocket). Для реализации этого можно использовать JS библиотеку https://www.npmjs.com/package/mqtt

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы