MQTT клиент для Arduino, ESP8266, ESP32

Обмен сообщениями между устройствами

Пользовательские блоки для коммкникации и связи GSM, GPRS, IR, Bluetooth и другие
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
User8
Сержант
Сообщения: 230
Зарегистрирован: 12.06.2017{, 14:44}
Репутация: 35
Имя: Евгений

MQTT клиент для Arduino, ESP8266, ESP32

#1

Сообщение User8 » 08.09.2018{, 14:04}

Подробнее про MQTT:
https://ipc2u.ru/articles/prostye-reshe ... akoe-mqtt/

Установка брокера:
Windows: https://youtu.be/jFUPy1q3ze8
Linux: https://youtu.be/sNSWxyO6XSk
Raspberry Pi / Orange Pi: https://youtu.be/b7NRT-RNPOU
https://robot-on.ru/articles/ystanovka- ... -orange-pi
OpenWrt: https://youtu.be/ADBct61FLsU
Брокер на ESP8266: viewtopic.php?f=133&t=4117
https://youtu.be/QFdx8bnVRHc

Быстрый старт без установки брокера используя сайт cloudmqtt.com:
https://www.youtube.com/watch?v=QGQpr_Rc8mo
https://www.youtube.com/watch?v=jwEAYTMzVME

Настройка и использование MQTT в FLProg:
https://www.youtube.com/watch?v=QGQpr_Rc8mo
https://www.youtube.com/watch?v=KVksHJS-y-A
https://www.youtube.com/playlist?list=P ... oBGySyEDaU

Группы в Telegram:
https://t.me/joinchat/G96_oxYz8SPyJIEr0onKBQ
https://t.me/joinchat/BRr4VVHiIr1f-AX_Ubg1lg

Описание блока Main: (Настройки клиента)
mqttServer - ip или домен mqtt брокера (нужно указывать без https://).
mqttPort - порт mqtt брокера (по умолчанию: 1883).
mqttUser - имя пользователя на брокере, можно использовать один логин и пароль на всех mqtt клиентах.
mqttPassword - пароль.
mqttClientId - любое уникальное название на английском, нужно для идентификации на брокере. Для всех клиентов должно быть разное.
Выход mqttConnected - на данном выходе будет единица, если есть подключение к брокеру.
Last Will сообщение - сообщение, которое будет отправлено в указанный топик, после отключения клиента от брокера.
По умолчанию Will топик равен установленному значению на входе mqttClientId.
Пример: мы указали в настройках: willMessageOnline: 1; willMessageOffline: 0; willTopic: client1;
После старта esp и подключению к брокеру, в топик client1 будет отправлено сообщение 1, а при отключении esp от брокера в топик client1 будет отправлено сообщение 0. Параметром keepAlive можно отрегулировать, через сколько секунд брокер отправит сообщение willMessageOffline после отключения esp от брокера. Не рекомендуется ставить меньше 5 секунд.

Описание блока Sub: (Прием сообщения)
Unsubscribe - при удержании единицы происходит отписка от топика, сообщения в топик перестают приходить. При пропадании единицы происходит подписка на топик снова. Данный вход может быть полезен для получения периодических сообщений, когда только нужно или один раз при старте контроллера, можно использовать для оптимизации программы.
Topic - топик для получения сообщения.
QoS - можно указать 0, 1 или 2. Если не указывать ничего, то сообщение принимается с QoS 0.
- Если вы поставили на блоке pub QoS 2, то на блоке sub вы также должны выставить QoS 2 для приема недоставленных сообщений.
- Для корректной работы QoS 1 и 2, на брокере и всех esp должен быть выставлен Clean Session = false.
Выход Received - на данном выходе будет единица в один цикл при получении любого сообщения в топик.
Выход Message - получение сообщения из указанного на входе топика.

Описание блока Pub: (Отправка сообщения)
Send - при поступлении на данный вход единицы, будет отправлено сообщение один раз. Данный вход имеет встроенный Rtrig, не используйте внешний.
Topic - топик, куда будет отправлено сообщение. (Пример: house/room1/lamp1/status)
Message - сообщение, которое будет отправлено на брокер.
QoS - можно указать 0, 1 или 2. Если не указывать ничего, то сообщение отправляется с QoS 0.
- Esp не сохраняет у себя неотправленные сообщения, вы должны сами проконтролировать, чтобы сообщение дошло до брокера с QoS 1 и 2, после чего брокер возьмет на себя ответственность по доставке сообщений с QoS 1 и 2.
Retain - если true, последнее отправленное сообщение сохраняется на mqtt брокере. Это сообщение будет получать подписчик при подключении к брокеру.
Выход qosDelivered - нужен для контроля доставки сообщений с QoS 1 и 2 до брокера. При подаче и удерживании единицы на входе Send, на выходе qosDelivered будет единица, если сообщение доставлено на брокер. Единица будет держаться на данном выходе пока на входе Send не пропадет единица.

Не забудьте включить wifi клиент в настройках контроллера и указать данные вашей wifi сети.

Блоки для Ethernet Arduino: viewtopic.php?p=61486#p61486
Копии блоков для ESP8266, для подключения к двум брокерам одновременно: viewtopic.php?p=61489#p61489
Блоки для ESP8266:
Вложения
MQTT_ESP_Main_6_8_(CODE).ubi
(521.53 КБ) 41 скачивание
MQTT_ESP_Sub_6_8_(CODE).ubi
(38.95 КБ) 40 скачиваний
MQTT_ESP_Pub_6_8_(CODE).ubi
(44.63 КБ) 82 скачивания
Последний раз редактировалось User8 12.07.2019{, 15:43}, всего редактировалось 149 раз.

User8
Сержант
Сообщения: 230
Зарегистрирован: 12.06.2017{, 14:44}
Репутация: 35
Имя: Евгений

MQTT клиент для Arduino, ESP8266, ESP32

#301

Сообщение User8 » 11.07.2019{, 11:11}

dimonsustr писал(а):
11.07.2019{, 08:50}
постоянный ребут ESP независимо от версии Flprog
Что за есп используете? Есть такая nodemcu wemos глючная: https://images.app.goo.gl/9PfWmk1TESkG8axQA на ней нужно питание на прямую 3.3v подавать для стабильной работы.
Удалите все блоки mqtt из флпрог и скачайте последние версии.
Последний раз редактировалось User8 12.07.2019{, 12:53}, всего редактировалось 1 раз.

dimonsustr
Рядовой
Сообщения: 12
Зарегистрирован: 15.03.2018{, 14:39}
Репутация: 0
Имя: Dima

MQTT клиент для Arduino, ESP8266, ESP32

#302

Сообщение dimonsustr » 11.07.2019{, 17:09}

User8 писал(а):
11.07.2019{, 11:11}
dimonsustr писал(а):
11.07.2019{, 08:50}
постоянный ребут ESP независимо от версии Flprog
Что за есп используете? Есть такая nodemcu wemos глючная: https://images.app.goo.gl/9PfWmk1TESkG8axQA на ней нужно питание на прямую 3.3v подавать для стабильной работы или delay(10); в loop(); засунуть.
Удалите все блоки mqtt из флпрог и скачайте последние версии.
У меня NODEMCU V3 LOLIN ver 0.1. Буду продолжать эксперименты, спасибо.

Vibe
Рядовой
Сообщения: 7
Зарегистрирован: 27.06.2019{, 21:28}
Репутация: 0
Имя: Стас

MQTT клиент для Arduino, ESP8266, ESP32

#303

Сообщение Vibe » 16.07.2019{, 08:38}

всем спасибо кто помог с решением моей проблемы, обновил mosquitto на своем линух сервере, все заработало. использую FLPROG блоки 6.8
User8 :smile9:
Golan :smile9:

Ответить

Вернуться в «Коммуникация и связь»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость