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

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

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

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

Быстрый старт без установки брокера используя сайт beebotte.com:
https://youtu.be/XVnY4za6-uU
viewtopic.php?f=71&t=6293
Брокер от пользователя форума:
viewtopic.php?f=151&t=6474&sid=dc2ead44 ... =20#p91410

Настройка и использование 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

Управление с помощью Яндекс Алисы и mqtt:
viewtopic.php?f=187&t=7602

Группы в Telegram:
https://t.me/joinchat/6CFnBYY5BUM0ZmZi
https://t.me/joinchat/BRr4VVHiIr1B3pMJNvlzEg

Описание блока 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.
- Используйте qos 1 и 2 только для очень важных сообщений, не нужно использовать qos для отправки например показаний температуры или других показаний с датчиков.
Retain - если true, последнее отправленное сообщение сохраняется на mqtt брокере. Это сообщение будет получать подписчик при подключении к брокеру.
Выход qosDelivered - нужен для контроля доставки сообщений с QoS 1 и 2 до брокера. При подаче и удерживании единицы на входе Send, на выходе qosDelivered будет единица, если сообщение доставлено на брокер. Единица будет держаться на данном выходе пока на входе Send не пропадет единица.

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

Библиотека: viewtopic.php?p=61491#p61491
Последняя версия библиотеки: https://github.com/marvinroger/async-mqtt-client

Новая версия блоков:
viewtopic.php?p=113908#p113908

Блоки для Ethernet Arduino: viewtopic.php?p=61490#p61486
Main блок для ESP32: viewtopic.php?p=61490#p61490
Копии блоков для ESP8266 и ESP32, для подключения к двум брокерам одновременно: viewtopic.php?p=61489#p61489
Блоки для ESP8266:
Вложения
MQTT_ESP_Main_6_8_(CODE).ubi
(521.53 КБ) 2752 скачивания
MQTT_ESP_Sub_6_8_(CODE).ubi
(38.95 КБ) 2572 скачивания
MQTT_ESP_Pub_6_8_(CODE).ubi
(44.63 КБ) 2665 скачиваний
Последний раз редактировалось User8 28.01.2023{, 01:57}, всего редактировалось 175 раз.

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

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

#501

Сообщение costy1957 » 08.04.2022{, 20:51}

Всем хороши блоки, но габариты угнетают. Убраны вспомогательные входы и выходы(по умолчанию), при необходимости режим по умолчанию отключается и блоки Pub и Sub в проекте со вспомогательными входами и выходами.
В главном блоке убраны входа настроек MQTT брокера, все перенесено в меню главного блока, также введены настройки по умолчанию, при необходимости режим по умолчанию отключается и пользователь может установить свои параметры в дополнительных настройках.
Габариты блоков уменьшились.
Вложения
MQTT_ESP_Main_v6.82.22_(Code_-_Professional).ubi
автовыбор esp8266 или esp32
(702.57 КБ) 302 скачивания
MQTT_ESP_Main_v6.82.2_(Code_-_Professional).ubi
esp8266,esp32
(708.67 КБ) 218 скачиваний
MQTT_ESP_Main_v6.82_(Code_-_Professional).ubi
только esp8266
(522.95 КБ) 431 скачивание
MQTT_ESP_Pub_v6.82_(Code_-_Professional).ubi
(245.98 КБ) 485 скачиваний
MQTT_ESP_Sub_v6.82_(Code_-_Professional).ubi
(215.36 КБ) 533 скачивания
Последний раз редактировалось costy1957 01.02.2023{, 19:59}, всего редактировалось 3 раза.

YANKEES
Рядовой
Сообщения: 4
Зарегистрирован: 29.12.2018{, 18:02}
Репутация: 0
Имя: Andrey

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

#502

Сообщение YANKEES » 11.04.2022{, 19:34}

Всем привет, кто в курсе почему MQTT отваливается
Изображение
кто то сталкивался с таким, как победить?

SerOv
Лейтенант
Сообщения: 569
Зарегистрирован: 06.01.2018{, 19:50}
Репутация: 26

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

#503

Сообщение SerOv » 11.04.2022{, 20:22}

YANKEES писал(а):
11.04.2022{, 19:34}
Всем привет, кто в курсе почему MQTT отваливается
кто то сталкивался с таким, как победить?
В какой проограмме Flprog прошивали? Попробуйте в 735.

YANKEES
Рядовой
Сообщения: 4
Зарегистрирован: 29.12.2018{, 18:02}
Репутация: 0
Имя: Andrey

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

#504

Сообщение YANKEES » 11.04.2022{, 20:41}

SerOv писал(а):
11.04.2022{, 20:22}
YANKEES писал(а):
11.04.2022{, 19:34}
Всем привет, кто в курсе почему MQTT отваливается
кто то сталкивался с таким, как победить?
В какой проограмме Flprog прошивали? Попробуйте в 735.
Версия 738 не пошло , 750 тоже не пошло, щас скачиваю как Вы сказали 735, спасибо отпишусь

Отправлено спустя 1 час 4 минуты :
Изображение

Даже немного обрадовался, но все в итоге постарому Mqtt так же оваливается :smile453:

Centopk
Рядовой
Сообщения: 1
Зарегистрирован: 12.05.2022{, 20:50}
Репутация: 0
Имя: Николай

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

#505

Сообщение Centopk » 15.05.2022{, 23:31}

Использую блоки MQTT для Ардуино мега+w5100, все работает, подключается. Как только добавляю блок датчика DS18b20, MQTT перестает работать, не подключается к серверу. В чем может быть проблема?

UPD: В старой версии Flprog 5.3 работает нормально.

sspilberg
Рядовой
Сообщения: 5
Зарегистрирован: 13.04.2020{, 21:11}
Репутация: 0
Имя: Алексей

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

#506

Сообщение sspilberg » 25.05.2022{, 18:10}

costy1957 писал(а):
08.04.2022{, 20:51}
Всем хороши блоки, но габариты угнетают. Убраны вспомогательные входы и выходы(по умолчанию), при необходимости режим по умолчанию отключается и блоки Pub и Sub в проекте со вспомогательными входами и выходами.
В главном блоке убраны входа настроек MQTT брокера, все перенесено в меню главного блока, также введены настройки по умолчанию, при необходимости режим по умолчанию отключается и пользователь может установить свои параметры в дополнительных настройках.
Габариты блоков уменьшились.
В версии 7.3.8 для esp32 блоки не работают ?

costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05.08.2018{, 08:37}
Репутация: 44
Имя: Константин

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

#507

Сообщение costy1957 » 25.05.2022{, 20:49}

работают с 7.3.8

SunnyFin
Рядовой
Сообщения: 2
Зарегистрирован: 18.05.2022{, 04:18}
Репутация: 0
Имя: Дмитрий

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

#508

Сообщение SunnyFin » 31.05.2022{, 23:36}

Всем доброго времени суток!
Собрал на блоках 6.82 и NodeMCU v3 управление LED-подсветкой на WS2812b. Брокер WQTT с Алисой. Голосом и с панели устройств Алиса включает, выключает, меняет яркость и цвет подсветки. Библиотеку Async MQTT client for ESP8266 and ESP32 забыл поставить, но без неё всё заработало нормально (FLProg 738). Но только заметил, что иногда, пару раз в сутки ESP теряет связь с роутером на примерно от получаса до 2 часов, потом снова подключается. Вот я и думаю, может это из-за того, что я эту библиотеку не подключил? Может как раз в ней механизм стабильности связи или принудительного переподключения при отваливании связи с роутером (ну и с брокером соответственно). Или на разрывы связи ESP с роутером она не влияет?
Кстати к вопросу про неправильную работу индикатора статуса подключения к Брокеру: подключенный к выходу mqttConnected Главного блока светодиод работает правильно: при соединении светодиод отключен (инвертирован), при потере соединения включается , т.е. сигнал статуса подключения к Брокеру Главный блок 6.82 выдает правильно.

zakhar81
Рядовой
Сообщения: 35
Зарегистрирован: 25.05.2021{, 08:47}
Репутация: 3
Имя: Захар

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

#509

Сообщение zakhar81 » 07.06.2022{, 07:31}

SunnyFin писал(а):
31.05.2022{, 23:36}
Брокер WQTT с Алисой
Дмитрий подскажите пожалуйста если не секрет а какой брокер используете и как к нему алиса привязана?

дрон
Рядовой
Сообщения: 94
Зарегистрирован: 09.11.2017{, 19:25}
Репутация: 2
Откуда: Москва
Имя: Андрей

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

#510

Сообщение дрон » 07.06.2022{, 07:41}

WQTT.RU

zakhar81
Рядовой
Сообщения: 35
Зарегистрирован: 25.05.2021{, 08:47}
Репутация: 3
Имя: Захар

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

#511

Сообщение zakhar81 » 07.06.2022{, 09:57}

Раньше я этот именно не видел, респект огромный вам за инфу!
Maqiatto пользовал, он бесплатный но иногда бывает сутки нет связи, тех работы на сервере
Тут вроде тариф вменяемый 200р за год а не как у других наших брокеров в месяц, да еще и без поддержки базы исторических данных

SunnyFin
Рядовой
Сообщения: 2
Зарегистрирован: 18.05.2022{, 04:18}
Репутация: 0
Имя: Дмитрий

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

#512

Сообщение SunnyFin » 19.06.2022{, 09:42}

Да, брокер WQTT.RU. Подписался за 200 р./год, подключил к нему Gyver-лампы и RGB-подсветку на WS2812b.
WQTT.RU_device.jpg
И вот с Gyver-лампами проблем вообще нет - постоянно в сети, никаких зависаний или потерь сети, то с собранными 2 устройствами RGB-подсветки в FLprog проблема - оба часто в течение суток теряют связь с роутером (и соответственно, с интернетом и брокером).
Сделал контроль подключения к сети и к брокеру с перезагрузкой при пропадании соединений (с задержкой 15 сек.) - так теперь при потере связи ESP8266 (NodeMCU v3) перезагружается и восстанавливает связь, но при этом, если подсветка включена, она мигает (отключается и включается снова). Не скажу, что это прям критично, но всё же немного бесит...
Думаю уже на 2 контроллерах переделать - на Nano (Atmega 328) управление WS2812b, а на ESP8266 связь с брокером. Тогда при перезагрузке ESP8266 хоть подсветка мигать не будет.

stt149
Рядовой
Сообщения: 1
Зарегистрирован: 18.10.2022{, 23:48}
Репутация: 0
Имя: Иван

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

#513

Сообщение stt149 » 18.10.2022{, 23:54}

Всем привет!

Перепробовал все, что нашел на форуме, но никак не получается скомпилировать скетч - выдает ошибки. Подскажите в чем может быть дело???
СпойлерПоказать
Arduino: 1.8.19 (Windows 10), Плата:"ESP32 Dev Module, Disabled, Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

pr13:468:26: error: 'WiFiEventStationModeGotIP' does not name a type

void onWifiConnect(const WiFiEventStationModeGotIP& event)

^

pr13:472:29: error: 'WiFiEventStationModeDisconnected' does not name a type

void onWifiDisconnect(const WiFiEventStationModeDisconnected& event)

^

pr13:49:8: error: redefinition of 'String mqttServer'

String mqttServer;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:15:8: note: 'String mqttServer' previously declared here

String mqttServer;

^

pr13:50:5: error: redefinition of 'int mqttPort'

int mqttPort;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:16:5: note: 'int mqttPort' previously declared here

int mqttPort;

^

pr13:51:8: error: redefinition of 'String mqttUser'

String mqttUser;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:17:8: note: 'String mqttUser' previously declared here

String mqttUser;

^

pr13:52:8: error: redefinition of 'String mqttPassword'

String mqttPassword;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:18:8: note: 'String mqttPassword' previously declared here

String mqttPassword;

^

pr13:53:8: error: redefinition of 'String mqttClientId'

String mqttClientId;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:19:8: note: 'String mqttClientId' previously declared here

String mqttClientId;

^

pr13:54:6: error: redefinition of 'bool mqttConnected'

bool mqttConnected;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:20:6: note: 'bool mqttConnected' previously declared here

bool mqttConnected;

^

pr13:55:21: error: redefinition of 'std::vector<String> inputTopic'

std::vector<String> inputTopic;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:21:21: note: 'std::vector<String> inputTopic' previously declared here

std::vector<String> inputTopic;

^

pr13:56:21: error: redefinition of 'std::vector<String> inputMessage'

std::vector<String> inputMessage;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:22:21: note: 'std::vector<String> inputMessage' previously declared here

std::vector<String> inputMessage;

^

pr13:57:17: error: redefinition of 'AsyncMqttClient mqttClient'

AsyncMqttClient mqttClient;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:23:17: note: 'AsyncMqttClient mqttClient' previously declared here

AsyncMqttClient mqttClient;

^

pr13:58:8: error: redefinition of 'Ticker mqttReconnectTimer'

Ticker mqttReconnectTimer;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:24:8: note: 'Ticker mqttReconnectTimer' previously declared here

Ticker mqttReconnectTimer;

^

pr13:59:1: error: 'WiFiEventHandler' does not name a type

WiFiEventHandler wifiConnectHandler;

^

pr13:60:1: error: 'WiFiEventHandler' does not name a type

WiFiEventHandler wifiDisconnectHandler;

^

pr13:61:10: error: redefinition of 'uint16_t pubPacketId'

uint16_t pubPacketId;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:25:10: note: 'uint16_t pubPacketId' previously declared here

uint16_t pubPacketId;

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void setup()':

pr13:80:5: error: 'wifiConnectHandler' was not declared in this scope

wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect);

^

pr13:80:31: error: 'class WiFiClass' has no member named 'onStationModeGotIP'

wifiConnectHandler = WiFi.onStationModeGotIP(onWifiConnect);

^

pr13:81:5: error: 'wifiDisconnectHandler' was not declared in this scope

wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect);

^

pr13:81:34: error: 'class WiFiClass' has no member named 'onStationModeDisconnected'

wifiDisconnectHandler = WiFi.onStationModeDisconnected(onWifiDisconnect);

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void onMqttMessage(char*, char*, AsyncMqttClientMessageProperties, size_t, size_t, size_t)':

pr13:457:6: error: redefinition of 'void onMqttMessage(char*, char*, AsyncMqttClientMessageProperties, size_t, size_t, size_t)'

void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:183:6: note: 'void onMqttMessage(char*, char*, AsyncMqttClientMessageProperties, size_t, size_t, size_t)' previously defined here

void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: At global scope:

pr13:468:26: error: 'WiFiEventStationModeGotIP' does not name a type

void onWifiConnect(const WiFiEventStationModeGotIP& event)

^

pr13:472:29: error: 'WiFiEventStationModeDisconnected' does not name a type

void onWifiDisconnect(const WiFiEventStationModeDisconnected& event)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void connectToMqtt()':

pr13:476:6: error: redefinition of 'void connectToMqtt()'

void connectToMqtt()

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:194:6: note: 'void connectToMqtt()' previously defined here

void connectToMqtt()

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void onMqttDisconnect(AsyncMqttClientDisconnectReason)':

pr13:491:6: error: redefinition of 'void onMqttDisconnect(AsyncMqttClientDisconnectReason)'

void onMqttDisconnect(AsyncMqttClientDisconnectReason reason)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:209:6: note: 'void onMqttDisconnect(AsyncMqttClientDisconnectReason)' previously defined here

void onMqttDisconnect(AsyncMqttClientDisconnectReason reason)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void onMqttConnect(bool)':

pr13:501:6: error: redefinition of 'void onMqttConnect(bool)'

void onMqttConnect(bool sessionPresent)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:217:6: note: 'void onMqttConnect(bool)' previously defined here

void onMqttConnect(bool sessionPresent)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void onMqttPublish(uint16_t)':

pr13:514:6: error: redefinition of 'void onMqttPublish(uint16_t)'

void onMqttPublish(uint16_t packetId)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:229:6: note: 'void onMqttPublish(uint16_t)' previously defined here

void onMqttPublish(uint16_t packetId)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void sub(const String&, String&, const byte&, bool&, bool&, const bool&, bool&)':

pr13:518:6: error: redefinition of 'void sub(const String&, String&, const byte&, bool&, bool&, const bool&, bool&)'

void sub(const String &topic, String &message, const byte &qos, bool &received, bool &subscribed, const bool &unsubscribe, bool &rTrig)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:233:6: note: 'void sub(const String&, String&, const byte&, bool&, bool&, const bool&, bool&)' previously defined here

void sub(const String &topic, String &message, const byte &qos, bool &received, bool &subscribed, const bool &unsubscribe, bool &rTrig)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino: In function 'void pub(const bool&, const String&, const String&, const byte&, const bool&, bool&, uint16_t&, bool&)':

pr13:594:6: error: redefinition of 'void pub(const bool&, const String&, const String&, const byte&, const bool&, bool&, uint16_t&, bool&)'

void pub(const bool &send, const String &topic, const String &message, const byte &qos, const bool &retain, bool &qosDelivered, uint16_t &packetId, bool &rTrig)

^

C:\Users\El'pachunibrey\AppData\Local\Temp\flprog\pr13\pr13.ino:309:6: note: 'void pub(const bool&, const String&, const String&, const byte&, const bool&, bool&, uint16_t&, bool&)' previously defined here

void pub(const bool &send, const String &topic, const String &message, const byte &qos, const bool &retain, bool &qosDelivered, uint16_t &packetId, bool &rTrig)

^

Несколько библиотек найдено для "WiFi.h"

Используется: D:\Program Files\PortableFLProg_7-5-2_Win64\ideV8\portable\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi

Не используется: d:\Program Files\PortableFLProg_7-5-2_Win64\ideV8\libraries\WiFi

exit status 1

'WiFiEventStationModeGotIP' does not name a type



Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#514

Сообщение Phazz » 19.10.2022{, 06:02}

stt149, где-то у вас блоки повторяются

elver
Рядовой
Сообщения: 2
Зарегистрирован: 20.10.2022{, 19:10}
Репутация: 0
Имя: Alex

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

#515

Сообщение elver » 23.10.2022{, 14:27}

доброго времени всем.
Прошу помочь с компиляцией кода MQTT_ESP_Main_v6.8. Выбор пал на него поскольку есть возможность вносить изменения через WEB-интерфейс ESP. При компиляции ругается на отсутствие библиотеки "AsyncMqttClient". Пробовал разные версии. Последнюю брал тут. Следующее сообщение говорит об отсутствии библиотеки "Ticker". Подключаю. Ну и в завершении выводит ошибку "'onMqttMessage' was not declared in this scope". Тут я уже ничего не смог найти.
СпойлерПоказать
C:\Users\Alex\AppData\Local\Temp\flprog\pr2\pr2.ino: In function 'void setup()':
pr2:205:27: error: 'onMqttMessage' was not declared in this scope
205 | mqttClient2.onMessage(onMqttMessage);
| ^~~~~~~~~~~~~
pr2:208:27: error: 'onMqttPublish' was not declared in this scope
208 | mqttClient2.onPublish(onMqttPublish);
| ^~~~~~~~~~~~~
C:\Users\Alex\AppData\Local\Temp\flprog\pr2\pr2.ino: In function 'void sub2(const String&, String&, const byte&, bool&, bool&, const bool&, bool&)':
pr2:1179:44: error: 'inputTopic' was not declared in this scope
1179 | for (uint8_t i = 0; i < inputTopic.size(); i++)
| ^~~~~~~~~~
pr2:1184:30: error: 'inputMessage' was not declared in this scope
1184 | inputMessage.erase(inputMessage.begin() + i);
| ^~~~~~~~~~~~
pr2:1203:34: error: 'inputTopic' was not declared in this scope
1203 | for (uint8_t i = 0; i < inputTopic.size(); i++)
| ^~~~~~~~~~
pr2:1208:30: error: 'inputMessage' was not declared in this scope
1208 | message = inputMessage;
| ^~~~~~~~~~~~
pr2:1222:14: error: 'mqttClient' was not declared in this scope; did you mean 'mqttClient2'?
1222 | if (mqttClient.connected())
| ^~~~~~~~~~
| mqttClient2
C:\Users\Alex\AppData\Local\Temp\flprog\pr2\pr2.ino: In function 'void pub2(const bool&, const String&, const String&, const byte&, const bool&, bool&, uint16_t&, bool&)':
pr2:1263:37: error: 'pubPacketId' was not declared in this scope; did you mean 'packetId'?
1263 | if (packetId > 1 && packetId == pubPacketId)
| ^~~~~~~~~~~
| packetId
Несколько библиотек найдено для "EEPROM.h"
Используется: D:\Install\FLProg_7.5.1\PortableFLProg_7-5-1_Win64\ideV8\portable\packages\esp8266\hardware\esp8266\3.0.2\libraries\EEPROM
Не используется: d:\Install\FLProg_7.5.1\PortableFLProg_7-5-1_Win64\ideV8\portable\sketchbook\libraries\E2PROM
exit status 1
'onMqttMessage' was not declared in this scope

Притом что, блок MQTT_ESP_Main_v6.82 работает без проблем. Но иногда надо на ходу менять адрес MQTT-брокера.
Работаю в системе: Windows 10 x64
FLProg 7.5.1
Заранее благодарю.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#516

Сообщение Phazz » 23.10.2022{, 15:27}

elver, viewtopic.php?p=61491#p61491 тут есть библиотека

elver
Рядовой
Сообщения: 2
Зарегистрирован: 20.10.2022{, 19:10}
Репутация: 0
Имя: Alex

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

#517

Сообщение elver » 23.10.2022{, 19:48}

Phazz писал(а):
23.10.2022{, 15:27}
elver, viewtopic.php?p=61491#p61491 тут есть библиотека
Спасибо, разобрался. Дело было не в библиотеке, а в модуле MQTT_ESP_Main_v6.8 который я скачал в другом месте. Перезалив отсюда, все заработало.

atomstep
Рядовой
Сообщения: 8
Зарегистрирован: 29.05.2021{, 15:15}
Репутация: 0
Имя: Анатолий

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

#518

Сообщение atomstep » 27.10.2022{, 19:06}

Всем привет. Esp32+sim800 прописываю логин пароль от wifi прошиваю esp32, sim800 или отваливается или перестает передавать команды через смс и через dtmf, что может быть?

Agat
Рядовой
Сообщения: 40
Зарегистрирован: 07.01.2023{, 12:29}
Репутация: 2
Имя: Дмитрий

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

#519

Сообщение Agat » 07.01.2023{, 12:49}

С Рождеством друзья! Использую Блок MQTT_ESP_Main_v6.82, теряется связь с брокером, если в программе есть блок DS1820. Несколькими постами выше встречал уже такую проблему. Может есть решение?

slsl
Рядовой
Сообщения: 69
Зарегистрирован: 08.12.2021{, 22:41}
Репутация: 8
Имя: Вячеслав

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

#520

Сообщение slsl » 07.01.2023{, 14:23}

Agat писал(а):
07.01.2023{, 12:49}
есть блок DS1820
Попробуйте блок от Эконис.
На нем работает несколько месяцев - никакких проблем. Правда, версия MQTT 6.8
(ЕСР32)

Ответить

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