Страница 3 из 33

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 09 дек 2018, 20:35
pipapsix
User8 писал(а): 09 дек 2018, 18:01Нужно проверить работает или нет...
чет не соображу как через веб этим управлять, если чек боксом, то он и останется все время включеным вроде, или я не прав?
или убрать сохранение в память?

Отправлено спустя 17 минут 11 секунд:
Работает.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 09 дек 2018, 23:48
Stepa
User8 писал(а): 09 дек 2018, 18:01чтобы после установки новых данных
Я чет не понял, каких данных?

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 01:05
User8
[ref]pipapsix[/ref], я веб интерфейсом не пользовался, но думаю можно придумать как этого добиться.

[ref=#404040]Stepa[/ref], чтобы каждый раз не прошивать для изменения данных, например сервер брокера поменялся, можно задать новый с помощью веб интерфейса, который можно настроить в flprog.

Отправлено спустя 6 минут 8 секунд:
Я тут подумал, новые данные можно задавать с помощью того же mqtt, чтобы на всех esp сразу менялись. Например при изменении адреса сервера брокера не лазить на каждую esp и менять руками, а отправить имя сервера в топик и esp уже сами установят новый адрес сервера. Только не нужно забывать что main блок должен первее выполняться, поэтому sub блок выше блока main размещать нельзя, поэтому нужно sub блок размещать ниже и уже через переменные выше устанавливать.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 07:20
pipapsix
Я изменил данные через веб, нажал сохранить, и все само подключилось, без последней фичи. Она как бы не нужна получается.
ЕСП я не перегружал.

Отправлено спустя 1 минуту :
User8 писал(а): 10 дек 2018, 01:05новые данные можно задавать с помощью того же mqtt
Все нужное в этом блоке уже есть) новичек может не разобраться, как я когдато.

Отправлено спустя 3 минуты 27 секунд:
Stepa писал(а): 09 дек 2018, 23:48Я чет не понял, каких данных?
Адрес сервера, логин, пароль.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 07:44
dekorator
User8 писал(а): 10 дек 2018, 01:05Например при изменении адреса сервера брокера не лазить на каждую esp и менять руками, а отправить имя сервера в топик
Это в какой топик отправить? Адрес же изменился :shok:

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 07:45
pipapsix
dekorator писал(а): 10 дек 2018, 07:44Это в какой топик отправить? Адрес же изменился
Я тоже об этом подумал, но можно же и заранее поменять.Если знаешь, что поменяется,.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 07:56
dekorator
Так писать же правильно не запрещено! Тут же новичков полно.
Вопрос к автору, можно сделать выход типа -"доступность сервера "? чтобы не городить доп. обвязку к блоку. Тогда можно организовать например автоматический переход на альтернативный (запасной) брокер или индикацию какую к этому выходу подцепить.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 08:13
User8
dekorator писал(а): 10 дек 2018, 07:44Это в какой топик отправить? Адрес же изменился
Адрес изменится после отключения от брокера, поэтому можно задать новый сервер, но если не правильно укажешь, то esp уже не подключится и нужно будет прошивать с актуальными данными.
dekorator писал(а): 10 дек 2018, 07:56можно сделать выход типа -"доступность сервера "? чтобы не городить доп. обвязку к блоку.
Так есть же выход mqttConnected, когда на нем 0, значит сервер недоступен, я надеюсь инверсией пользоваться умеете.

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 08:24
dekorator
User8 писал(а): 10 дек 2018, 08:13Так есть же выход mqttConnected
Есть правда. Там появляется - 0 если сервер вдруг резко "пропал"?

MQTT для Arduino, ESP8266, ESP32.

Добавлено: 10 дек 2018, 08:26
User8
[ref]dekorator[/ref], сразу или через 15 секунд, можно в настройках keepalive указать меньше, но не рекомендую ставить меньше 5 секунд.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 19:34
Авиакот
При компиляции блока со входами, созданного в версии 4.2.0, возникает ошибка:

[spoiler]Arduino: 1.8.1 (Windows 10), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

pr2:151: error: 'MQTT' does not name a type

void callback(const MQTT::Publish& pub)

^

pr2:151: error: expected unqualified-id before '&' token

void callback(const MQTT::Publish& pub)

^

pr2:151: error: expected ')' before '&' token

pr2:151: error: expected initializer before 'pub'

void callback(const MQTT::Publish& pub)

^

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

pr2:98: error: 'class PubSubClient' has no member named 'set_server'

client.set_server(mqttServer, mqttPort);

^

pr2:112: error: 'MQTT' has not been declared

client.subscribe(MQTT::Subscribe()

^

pr2:135: error: 'MQTT' has not been declared

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

^

C:\Users\admin\AppData\Local\Temp\flprog\pr2\pr2.ino: At global scope:

pr2:151: error: 'MQTT' does not name a type

void callback(const MQTT::Publish& pub)

^

pr2:151: error: expected unqualified-id before '&' token

void callback(const MQTT::Publish& pub)

^

pr2:151: error: expected ')' before '&' token

pr2:151: error: expected initializer before 'pub'

void callback(const MQTT::Publish& pub)

^

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

pr2:161: error: 'MQTT' has not been declared

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

^

pr2:166: error: 'class PubSubClient' has no member named 'set_callback'

client.set_callback(callback);

^

pr2:166: error: 'callback' was not declared in this scope

client.set_callback(callback);

^

pr2:167: error: 'MQTT' has not been declared

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

^

exit status 1
'MQTT' does not name a type

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

Компиляция версией 4.0.0 заканчивается успешно.

Кроме того, блок без входов, ранее успешно проверенный, при компиляции версией 4.2.0 выдает ошибку, удаление двойной библиотеки не помогает.
Вопрос: как бороться?

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 19:44
Golan
4.2.0 глючный получился.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 19:48
User8
[ref]Авиакот[/ref], он не видит библиотеку улучшенную и пытается скомпилировать со стандартной библиотекой pubsubclient, значит где-то она есть, ищите.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 20:14
Авиакот
User8 писал(а): 14 дек 2018, 19:48[ref]Авиакот[/ref], он не видит библиотеку улучшенную и пытается скомпилировать со стандартной библиотекой pubsubclient, значит где-то она есть, ищите.
Улучшенная тоже pubsubclient называется? Удалил все, теперь ругается на отсутствие библиотеки [spoiler]Arduino: 1.8.1 (Windows 10), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

C:\Users\admin\AppData\Local\Temp\flprog\pr3\pr3.ino:2:26: fatal error: PubSubClient.h: No such file or directory

#include <PubSubClient.h>

^

compilation terminated.

exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).

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

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 20:18
User8
[ref]Авиакот[/ref], папка называлась pubsubclient-Imroy, скачайте из первого поста и положите в папку с библиотеками.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 20:37
Авиакот
User8 писал(а): 14 дек 2018, 20:18[ref]Авиакот[/ref], папка называлась pubsubclient-Imroy, скачайте из первого поста и положите в папку с библиотеками.
Установил, ошибка та же. Что в этой строке кода не правильно: void callback(const MQTT::Publish& pub) ? Ругается на нее. Версия 4.0.0 компилирует точно такой же код (строку).

Отправлено спустя 2 минуты 19 секунд:
Если дело в библиотеке, почему тогда 4.0.0 все нормально компилирует? Может кто подскажет, как код подправить?

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 21:03
User8
[ref]Авиакот[/ref], в коде все в порядке, вы единственный у кого не работает, у меня на 4.2 компилируется.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 21:27
Dev1
Вас не смущает ошибка:

Код: Выделить всё

pr2:151: error: expected unqualified-id before '&' token
:senile:

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 21:33
User8
[ref]Dev1[/ref], он сыпет эти ошибки т.к. пытается скомпилировать со стандартной библиотекой, постоянно автоматом тянет ее из репозитория библиотек. С той библиотекой что в первом посте по ссылке на гитхаб, все компилируется.

MQTT для Arduino, ESP8266, ESP32

Добавлено: 14 дек 2018, 21:42
Авиакот
User8 писал(а): 14 дек 2018, 21:03[ref]Авиакот[/ref], в коде все в порядке, вы единственный у кого не работает, у меня на 4.2 компилируется.
Пробовал на разных компах, на одном ХР, на другом десятка, результат одинаковый: на 4.0 все хорошо, на 4.2 ошибка. Вот я и хочу понять, почему у меня одного так.