Брокер MQTT подключается без предустановленного IP-адреса

Я создаю приложение для использования малины в качестве брокера и клиента MQTT и получаю сообщение от ESP32, который является еще одним клиентом MQTT. Мне нужен ESP32 для подключения брокера без предварительной настройки IP-адреса вручную. Кто-нибудь знает, как разрешить raspberry делиться IP-адресом без проводов и безопасно? Или Raspberry Pi может получить статический IP-адрес независимо от того, какую конфигурацию сети изменил пользователь? Спасибо за любую помощь или обсуждение.


person user10417959    schedule 08.01.2020    source источник
comment
Учитывая теги, которые вы уже добавили (mdns / avahi), у вас уже есть свой ответ   -  person hardillb    schedule 08.01.2020
comment
помимо статической конфигурации, вы также можете настроить маршрутизатор или то, что находится перед ESP, для выделения одного и того же IP-адреса для своих MAC-адресов, если вы хотите использовать DHCP   -  person idan    schedule 08.01.2020
comment
Я пробовал статический IP-адрес, он не будет работать, если пользователь изменит Wi-Fi. Конструкция требует непрерывного режима, от малины, которая действует как брокер и клиент, и от ESP32 / raspberry, выступающей в качестве клиента. и клиентское устройство, и устройство брокера будут настраивать свой Wi-Fi конечными клиентами в пользовательском интерфейсе, а IP-адреса будут неизвестны, тогда ~~ Мой альтернативный способ - позволить ESP32 получить IP-адрес через Bluetooth из пользовательского приложения, а затем подключиться к брокеру. Но мы все же ожидаем более прямого пути.   -  person user10417959    schedule 08.01.2020
comment
Ответ - мднс   -  person hardillb    schedule 08.01.2020
comment
Я пометил его, потому что видел на нем какие-то следы. groups.google.com/forum/#!topic/mqtt/QL6Qrqx- Y24 Но я не нашел четких инструкций или примеров, чтобы применить его на ESP32 или Rapsberry Pi.   -  person user10417959    schedule 08.01.2020


Ответы (1)


Эти две инструкции дали некоторую помощь: построить поиск mDNS в raspberry и mDNS-клиенте для получения строкового ввода. Для определения принципа «слепого поиска» требовалось больше логики, но, учитывая соображения безопасности, мы предпочли передавать строковое имя хоста с помощью BLE со стороны приложения.

клиент mDNS в ESP32 для получения строкового ввода Как ESP32 (DOIT DevKit) находит другой хост в той же локальной сети через mDNS?

для создания запросов mDNS в raspberry:

http://root42.blogspot.com/2015/02/how-to-setup-mdns-lookups-on-raspberry.html

person user10417959    schedule 09.01.2020