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

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

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]Golan[/ref], попробуйте удалить библиотеку pubsubclient из папки с библиотеками после чего скачайте библиотеку с гитхаба из первого поста и закиньте в папку с библиотеками.
Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26 ноя 2017, 23:18
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение Golan »

Жень, я вроде так и сделал, ща еще раз попробую

Отправлено спустя 5 минут 54 секунды:
Прохлопал, там была еще библиотека pubsubclient, видимо был конфликт с pubsubclient-master
Все, бульбулирует, сенькаю вери вери мач!!!!

Отправлено спустя 3 минуты 30 секунд:
Жень, гляньте настройки в Main, данные там верные, но правильно ли все указал, нет соединения

Отправлено спустя 5 минут 43 секунды:
MQTT.fx нормально соединяется по тем же данным
Добро не ценится в современном мире, люди от него наглеют!
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]Golan[/ref], зачем ставить keepalive 1000 секунд? Установите по умолчанию 15. Все должно работать если данные указаны правильно.
Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26 ноя 2017, 23:18
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение Golan »

Все, разобрался, не в этом дело было.
Спасибо большое

Отправлено спустя 13 минут 53 секунды:
Долго блок соединяется, почти минуту
Добро не ценится в современном мире, люди от него наглеют!
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]Golan[/ref], первая попытка подключения к брокеру происходит после старта esp. В настройках можно указать через какой период делать попытку подключиться к брокеру.
Последний раз редактировалось User8 19 ноя 2018, 02:11, всего редактировалось 1 раз.
Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26 ноя 2017, 23:18
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение Golan »

Я понял, спасибо.
Добро не ценится в современном мире, люди от него наглеют!
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

Привет.
Появилась нужда, вывести настройки блока майн на входы.
Чтобы через веб интерфейс настройки вбить можно было. Спасибо.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение ivanpost »

Согласен с #28.
Но надо не просто входы, а системные параметры чтобы он принимал. Что то никак не врублюсь, как это сделать... Помогайте создатели!
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

Ну да. Стринги там всякие))
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]ivanpost[/ref], [ref]pipapsix[/ref], пробуйте. Для изменения данных нужно перезагрузить esp.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось User8 09 дек 2018, 16:50, всего редактировалось 1 раз.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

ура.тестим

Отправлено спустя 36 минут 21 секунду:
Не пойму куда он меня посылает??
Библиотеки поменял.
[spoiler]pr4:31: error: no matching function for call to 'PubSubClient::PubSubClient(WiFiClient&, String&, int&)'

PubSubClient client(mqttClient, mqttServer, mqttPort);

^

C:\Users\User\AppData\Local\Temp\flprog\pr4\pr4.ino:31:53: note: candidates are:

In file included from C:\Users\User\AppData\Local\Temp\flprog\pr4\pr4.ino:7:0:

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:126:4: note: PubSubClient::PubSubClient(const char*, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&, Stream&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:126:4: note: candidate expects 5 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:125:4: note: PubSubClient::PubSubClient(const char*, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:125:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:124:4: note: PubSubClient::PubSubClient(const char*, uint16_t, Client&, Stream&)

PubSubClient(const char*, uint16_t, Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:124:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:123:4: note: PubSubClient::PubSubClient(const char*, uint16_t, Client&)

PubSubClient(const char*, uint16_t, Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:123:4: note: no known conversion for argument 1 from 'WiFiClient' to 'const char*'

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:122:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:122:4: note: candidate expects 5 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:121:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:121:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:120:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:120:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:119:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, Client&)

PubSubClient(uint8_t *, uint16_t, Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:119:4: note: no known conversion for argument 1 from 'WiFiClient' to 'uint8_t* {aka unsigned char*}'

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:118:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&, Stream&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:118:4: note: candidate expects 5 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:117:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, std::function<void(char*, unsigned char*, unsigned int)>, Client&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:117:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:116:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, Client&, Stream&)

PubSubClient(IPAddress, uint16_t, Client& client, Stream&);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:116:4: note: candidate expects 4 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:115:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, Client&)

PubSubClient(IPAddress, uint16_t, Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:115:4: note: no known conversion for argument 1 from 'WiFiClient' to 'IPAddress'

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:114:4: note: PubSubClient::PubSubClient(Client&)

PubSubClient(Client& client);

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:114:4: note: candidate expects 1 argument, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:113:4: note: PubSubClient::PubSubClient()

PubSubClient();

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:113:4: note: candidate expects 0 arguments, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:88:7: note: PubSubClient::PubSubClient(const PubSubClient&)

class PubSubClient : public Print {

^

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:88:7: note: candidate expects 1 argument, 3 provided

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:88:7: note: PubSubClient::PubSubClient(PubSubClient&&)

c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient\src/PubSubClient.h:88:7: note: candidate expects 1 argument, 3 provided

pr4:668: error: 'MQTT' does not name a type

void callback(const MQTT::Publish& pub)

^

pr4:668: error: expected unqualified-id before '&' token

void callback(const MQTT::Publish& pub)

^

pr4:668: error: expected ')' before '&' token

pr4:668: error: expected initializer before 'pub'

void callback(const MQTT::Publish& pub)

^

C:\Users\User\AppData\Local\Temp\flprog\pr4\pr4.ino: In function 'void loop()':

pr4:274: error: 'MQTT' has not been declared

client.publish(MQTT::Publish(Topic_143862172_4, Message_143862172_4)

^

pr4:300: error: 'MQTT' has not been declared

client.publish(MQTT::Publish(Topic_143862172_3, Message_143862172_3)

^

pr4:326: error: 'MQTT' has not been declared

client.publish(MQTT::Publish(Topic_143862172_2, Message_143862172_2)

^

pr4:352: error: 'MQTT' has not been declared

client.publish(MQTT::Publish(Topic_143862172_1, Message_143862172_1)

^

C:\Users\User\AppData\Local\Temp\flprog\pr4\pr4.ino: At global scope:

pr4:668: error: 'MQTT' does not name a type

void callback(const MQTT::Publish& pub)

^

pr4:668: error: expected unqualified-id before '&' token

void callback(const MQTT::Publish& pub)

^

pr4:668: error: expected ')' before '&' token

pr4:668: error: expected initializer before 'pub'

void callback(const MQTT::Publish& pub)

^

C:\Users\User\AppData\Local\Temp\flprog\pr4\pr4.ino: In function 'boolean reconnect()':

pr4:678: error: 'MQTT' has not been declared

if (client.connect(MQTT::Connect(mqttClientId)

^

pr4:683: error: 'class PubSubClient' has no member named 'set_callback'

client.set_callback(callback);

^

pr4:683: error: 'callback' was not declared in this scope

client.set_callback(callback);

^

pr4:684: error: 'MQTT' has not been declared

client.publish(MQTT::Publish("client1/status", "1")

^

Несколько библиотек найдено для "PubSubClient.h"
Используется: c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\portable\sketchbook\libraries\pubsubclient
Не используется: c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\libraries\pubsubclient-master
Не используется: c:\Users\User\Desktop\FLProgPortable_4-2\ideV2\libraries\pubsubclient-Imroy
exit status 1
no matching function for call to 'PubSubClient::PubSubClient(WiFiClient&, String&, int&)'

[/spoiler]

Отправлено спустя 4 минуты 40 секунд:
Я так понимаю блок майн 4,0 должен первым компелироваться?? или тут все равно.
А то показывает что он 10 в очереди
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]pipapsix[/ref], версия portable? Если да, нужно удалить папку pubsubclient по пути: flprog\ideV2\portable\sketchbook\libraries\
Еще я щас подумал и смена сервера и порта не будет работать мне кажется, если не будет, надо будет думать как реализовать.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

так загрузил. конфликт с блоком был WiFiManager., удалил загрузилось.

Отправлено спустя 5 минут 53 секунды:
Да. вроде не отправляет, сейчас еще попробую.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение ivanpost »

[ref]User8[/ref], Я сам хотел так сделать, но не понятно, откуда он возьмет параметры, если
PubSubClient client(mqttClient, mqttServer, mqttPort);
стоит прямо в декларации. До Setup и Loop.
А ведь надо еще считать системные параметры, которые меняются из HTTP.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]ivanpost[/ref], можно попробовать эти строки разместить между setup и loop, и в setup переменные брать из eeprom, но в flprog такого не сделаешь, поэтому если это будет работать то придется руками добавлять каждый раз.
Последний раз редактировалось User8 09 дек 2018, 15:38, всего редактировалось 1 раз.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

даже в ручную в этот блок данные забил, не работать.не хочет.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

MQTT для Arduino, ESP8266, ESP32.

Сообщение ivanpost »

[ref]User8[/ref], Я пробовал подгружать из EEPROM - не может. Нужен спец по С++, думаю для него простой вопрос, если идеологию понимать. На гитхабе есть конструкции
PubSubClient client(mqttClient);
И настройки уже в Setup (server,port) и тп
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32.

Сообщение User8 »

[ref]ivanpost[/ref], [ref]pipapsix[/ref], вроде как разобрался, обновил выше файл, пробуйте.
Сейчас по идее даже перезагрузка esp не требуется, нужно только переподключиться к брокеру, либо перезагрузить брокер.
Последний раз редактировалось User8 09 дек 2018, 17:03, всего редактировалось 1 раз.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32.

Сообщение pipapsix »

первый раз такое при загрузке. но все ништяк, работает. благодарю очень.
[spoiler]Uploading 259040 bytes from to flash at 0x00000000
.............................................................................................................................................................................................................................................................
http://downloads.arduino.cc/packages/package_index.json ошибка проверки сигнатуры файла. Файл проигнорирован.[/spoiler]

Отправлено спустя 7 минут 42 секунды:
в личку щас напишу. бблагодарность)))
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

[ref]pipapsix[/ref], [ref]ivanpost[/ref], добавил вход mqttReconnect, чтобы после установки новых данных можно было подать на него единицу, после чего esp переподключится к брокеру уже с новыми данными. Нужно проверить работает или нет...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось User8 23 дек 2018, 16:17, всего редактировалось 4 раза.
Ответить

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

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

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