Задать вопрос
@sdfasd

Как из любой точки мира передать сообщение на ESP32 или любую ардуинку без установления подключения?

Как из любой точки мира передать сообщение на ESP32 или любую ардуинку без установления подключения?

Я знаю что такое HIVEMQ с MQTT, прекрасная вещь, но там нужно чтобы два девайса установили подключение.

А мне необходимо всю информацию передавать через ссылку, а при любом запросе на ссылку(открытие, предварительный просмотр в мессенджерах) сообщения в ссылке передавалось на ESP32, есть ли какой то такой же брокер подклчючений, или нужно сайт писать и уже там устанавливать коннект с HIVEMQ?
  • Вопрос задан
  • 551 просмотр
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 7
mayton2019
@mayton2019
Bigdata Engineer
За 40 лет существования протокола TCP/IP ничего не изменилось. Чтобы один хост соединился
с другим - ты должен знать dest_addr, dest_port.
Ответ написан
Комментировать
Как из любой точки мира передать сообщение на ESP32 или любую ардуинку без установления подключения?

Без установления соединения можно использовать UDP, но тогда ты не сможешь реализовать свою задумку.

1. Ссылка - это просто текст. Невозможно через неё передать данные
2. Предпросмотр в мессенджерах, обычно, происходит на стороне серверов мессенджера, чтобы не компрометировать.
3. При открытии ссылки твой браузер отправляет HTTP-запрос. Чтобы ESP32 могла обработать запрос тебе нужно:

1. Иметь доменное имя (надо будет прописать туда публичный ip, по которому можно будет до веб-сервера достучаться)
2. Иметь HTTPS-сертификат (можно бесплатный от letsencrypt)
3. Иметь где-то веб-сервер (чтобы обработать http-запрос)

Веб-сервер лучше сделать отдельно от esp32 (на отдельной машине), тк у неё не так уж много ресурсов, да и с https она вроде работать не умеет (поправьте, если не прав).
Ответ написан
nava2002
@nava2002
Инженер
Учитывая все вышесказанное:
Думаю что данную задачу удобнее можно решить на Raspberry Рi (или аналогов).
Raspberry Рi имеет достаточные возможности для запуска Вэб сервера ( на Linux ) для организации внешнего доступа через интернет, а также имеет аппаратные выходы (по типу ESP32) для управления любыми устройствами низкого уровня.
Дополнительно появится возможность не только "отправлять" сообщения, а и получать "ответы" о текущем состоянии оборудования.
Ответ написан
Комментировать
@rPman
в чем заключается вопрос то? указанной информации не хватит для ответа.

Либо ты устанавливаешь посредника между твоим устройством и интернетом, чтобы физически между ними было какое то подключение (например компьютер, к которому устройство подключается например по usb/com/lpt/ir), либо снабжаешь свое устройство модулем ethernet/wifi/мобильные сети и, в зависимости от выбранного стандарта, реализуешь в прошивке необходимый фунукционал.

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

p.s. напоминаю, что выпускать в интернет порты, обслуживаемые слабым оборудованием, не способным противостоять минимальным ddos, глупо.
Ответ написан
Комментировать
@evgeniy_lm
Че то все лезут в какие-то дебри. Зачем здесь HTTPS не понятно.
Ответ написан
Комментировать
@kalapanga
sdfasd, а Вы вообще смотрели, какие-нибудь готовые проекты на ESP? Ведь там большинство именно про Ваш вопрос! Бери любой и повторяй, модифицируй на свой вкус.
Проблемы только "организационного" плана - как выставить устройство в интернет. Но здесь ESP ничем не отличается от обычного компьютера. Покупаете белый IP или используете какой-нибудь DynDNS или ещё что-то...
Ответ написан
@semen-pro
Можно через телеграм бота
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы