Соединение MQTT с Arduino и ESP8266 — какое ПО следует использовать?

Извините за неопределенность моего вопроса, я просто ищу идеи, которые укажут мне правильное направление...

Я хочу подключить много (читай: 20+) различных датчиков к локальной сети Wi-Fi и регистрировать все данные и управлять ими с помощью одного сервера в сети. Довольно стандартная штука для людей, занимающихся домашней автоматикой и т. д. Некоторые датчики подключаются к платам esp8266 напрямую, другие взаимодействуют через последовательный порт и будут использовать 8266 для обеспечения Wi-Fi.

Мне сложно решить, в каком направлении двигаться или какое программное обеспечение/прошивку объединить, поскольку они быстро меняются и существует довольно много руководств, но у всех разные подходы и конечные цели.

Это должно быть полностью автономно — у меня есть Raspberry Pi, беспроводной маршрутизатор и различные датчики (в основном на базе Arduino).

Теперь, судя по исследованиям, мне нужно настроить последовательный порт в MQTT «мост» — и заставить esps «общаться» с pi по MQTT. И что pi должен работать под управлением «mosquitto», если я хочу, чтобы MQTT был двунаправленным (т.е. я мог получать последовательные данные И отправлять последовательные команды). Я никогда не имел дела с MQTT, поэтому пытаюсь учиться по ходу дела.

Я некоторое время работал с программным обеспечением «ESP-Link» и успешно использовал его в качестве простого моста последовательного порта в TCP-IP и использовал виртуальные последовательные порты для связи с подключенным устройством. Однако использование виртуальных последовательных портов на сервере неуклюже, ненадежно и не то, что я хочу делать — кто-нибудь знает, можно ли настроить его так, чтобы я мог отправлять «сырые» последовательные сообщения по TCP на сервер для использования? И с сервера для управления подключенными устройствами? Или есть более простой способ? Я не могу изменить все последовательные устройства, которые хочу подключить, поэтому просто хочу получать данные из/ввод и управлять ими на сервере при необходимости.

По сути, я хочу получить несколько датчиков, подключенных к маршрутизатору и регистрируемых/контролируемых через веб-интерфейс, размещенный на PI, все «офлайн» и ограниченное. В конечном итоге я хотел бы, чтобы сервер мог автоматически распознавать, какие устройства он может «видеть», однако в данный момент я просто хочу получить представление о том, как я могу наиболее легко этого добиться? Или даже если я полностью ошибаюсь в своем подходе?

Спасибо

, 👍1