Блок для ESP8266, Связь с миром по MQTT.
Блок для ESP8266, Связь с миром по MQTT.
Блок для связи ESP8266 с внешним миром по протоколу MQTT.
Позволяет публиковать сообщения и подписываться на топики.
Это первая версия, тестируем!
Для работы необходим MQTT брокер, можно зарегистрироваться на бесплатном тарифе http://cloudmqtt.com
или установить свой брокер например на одноплатном компьютере или даже роутере.
В случае брокера в локальной сети необходимо в роутере пробросить порт брокера.
В настройках блока необходимо заполнить все поля.
inTopic - Имя топика, в который будут приходить все входящие сообщения
При публикации сообщений в топик указанный в настройках - на выходе блока будет пришедшая в топик строка.
ssid - имя вашего роутера (AP Name)
password - пароль на вашу сеть.
mqtt_server - IP адрес или доменное имя вашего брокера.
cluser, clpass - соответственно имя и пароль учетной записи на вашем брокере
OutTopic1, 2, 3 - названия топиков, в которые будут публиковаться данные с трех входов, при подаче лог. 1 на соответствующий вход.
После прошивки контроллера в мониторе порта должно появится :
[scroll]
..
WiFi connected
IP address:
192.168.0.101
Attempting MQTT connection...connected
Message arrived [Vhod_cmc] Lampa Gorit
Message arrived [Vhod_cmc] Kuxna_svet_on
Message arrived [Vhod_cmc] Temperatura 29.48
[/scroll]
Последние три строки - это ESP получил данные от брокера
Первый пост буду дополнять и редактировать....
Добавлена настройка порта для брокера.
Некоторые сервера (как и cloudmqtt.com) используют не стандартный порт. На всякий случай библиотека используемая в проекте Update: Сделал новую версию блоков.
В комплекте три блока - Основной со всеми настройками, публикация и подписка.
Основной должен быть всегда.
Блоков публикация и подписка - может быть несколько в проекте.
Настройки этих блоков выведены на входы блока.
Публикация:
En - При положительном импульсе происходит отправка сообщения (используйте RTrig)
msg - текст сообщения
outTopic - имя топика в который будет публиковаться сообщение
Подписка:
NameTopic - имя топика который программа будет "прослушивать"
OutData - Данные которые пришли в этот топик
Заметьте, Программа слушает абсолютно все входящие сообщения, не стоит перегружать количеством.
Все входящие сообщения для проверки отправляются в COM порт.
Пример проекта для проверки коннекта на FLProg: Блоки версии 2_1 Версия 2_2
Убран вывод данных в СОМ порт, если нужно будет - сделаю в виде отдельного блока. Update 29.07.18
Небольшая доработка блока Main.
Добавлено автоматическое переподключение к сети WiFi при потери связи. Update 30.07.18
Изменил способ переподключения к сети WiFi - так вроде правильнее)))
Проверил, после отключения роутера - модуль сам переподключается к сети и к брокеру.
Убрал автогенерацию ID - например сервис народмон требует МАС адрес в ID - теперь ID вынесен в настройки.
Позволяет публиковать сообщения и подписываться на топики.
Это первая версия, тестируем!
Для работы необходим MQTT брокер, можно зарегистрироваться на бесплатном тарифе http://cloudmqtt.com
или установить свой брокер например на одноплатном компьютере или даже роутере.
В случае брокера в локальной сети необходимо в роутере пробросить порт брокера.
В настройках блока необходимо заполнить все поля.
inTopic - Имя топика, в который будут приходить все входящие сообщения
При публикации сообщений в топик указанный в настройках - на выходе блока будет пришедшая в топик строка.
ssid - имя вашего роутера (AP Name)
password - пароль на вашу сеть.
mqtt_server - IP адрес или доменное имя вашего брокера.
cluser, clpass - соответственно имя и пароль учетной записи на вашем брокере
OutTopic1, 2, 3 - названия топиков, в которые будут публиковаться данные с трех входов, при подаче лог. 1 на соответствующий вход.
После прошивки контроллера в мониторе порта должно появится :
[scroll]
..
WiFi connected
IP address:
192.168.0.101
Attempting MQTT connection...connected
Message arrived [Vhod_cmc] Lampa Gorit
Message arrived [Vhod_cmc] Kuxna_svet_on
Message arrived [Vhod_cmc] Temperatura 29.48
[/scroll]
Последние три строки - это ESP получил данные от брокера
Первый пост буду дополнять и редактировать....
Добавлена настройка порта для брокера.
Некоторые сервера (как и cloudmqtt.com) используют не стандартный порт. На всякий случай библиотека используемая в проекте Update: Сделал новую версию блоков.
В комплекте три блока - Основной со всеми настройками, публикация и подписка.
Основной должен быть всегда.
Блоков публикация и подписка - может быть несколько в проекте.
Настройки этих блоков выведены на входы блока.
Публикация:
En - При положительном импульсе происходит отправка сообщения (используйте RTrig)
msg - текст сообщения
outTopic - имя топика в который будет публиковаться сообщение
Подписка:
NameTopic - имя топика который программа будет "прослушивать"
OutData - Данные которые пришли в этот топик
Заметьте, Программа слушает абсолютно все входящие сообщения, не стоит перегружать количеством.
Все входящие сообщения для проверки отправляются в COM порт.
Пример проекта для проверки коннекта на FLProg: Блоки версии 2_1 Версия 2_2
Убран вывод данных в СОМ порт, если нужно будет - сделаю в виде отдельного блока. Update 29.07.18
Небольшая доработка блока Main.
Добавлено автоматическое переподключение к сети WiFi при потери связи. Update 30.07.18
Изменил способ переподключения к сети WiFi - так вроде правильнее)))
Проверил, после отключения роутера - модуль сам переподключается к сети и к брокеру.
Убрал автогенерацию ID - например сервис народмон требует МАС адрес в ID - теперь ID вынесен в настройки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Капитан
- Сообщения: 860
- Зарегистрирован: 17 ноя 2015, 20:36
- Имя: Сергей
- Благодарил (а): 40 раз
- Поблагодарили: 8 раз
Блок для ESP8266, MQTT.
Спасибо за блок, Переделать бы только настройки блока в виде входов, или в виде отдельного блока с входами, чтоб можно было их через веб сервер вводить, или через uart а не перешивать каждый раз контроллер. Ну и чтоб топиков можно было добавлять сколько хочешь.
Блок для ESP8266, MQTT.
В общем я так и планирую сделать, разделить блок на части - основной, подписка, публикация. Сделать версию для корректной работы со штатным блоком WEB сервера.
-
- Сержант
- Сообщения: 129
- Зарегистрирован: 26 сен 2015, 19:57
- Golan
- Капитан
- Сообщения: 827
- Зарегистрирован: 26 ноя 2017, 23:18
- Откуда: Деревня, 98 домов в Мордовии
- Имя: Владимир
- Контактная информация:
Блок для ESP8266, MQTT.
Андрей, вопрос.
inTopic - Имя топика, в который будут приходить все входящие сообщения - входящие ОТКУДА?
.......
.......
OutTopic1, 2, 3 - названия топиков, в которые будут публиковаться данные с трех входов, при подаче лог. 1 на соответствующий вход.
При публикации сообщений - КТО публикует - в топик указанный в настройках - на выходе блока будет пришедшая в топик строка.
Если у меня в приложении идет публикация например svet, то как MCU понимает, если смотреть в программу, что эта публикация для него или он всегда на подписке?
inTopic - Имя топика, в который будут приходить все входящие сообщения - входящие ОТКУДА?
.......
.......
OutTopic1, 2, 3 - названия топиков, в которые будут публиковаться данные с трех входов, при подаче лог. 1 на соответствующий вход.
При публикации сообщений - КТО публикует - в топик указанный в настройках - на выходе блока будет пришедшая в топик строка.
Если у меня в приложении идет публикация например svet, то как MCU понимает, если смотреть в программу, что эта публикация для него или он всегда на подписке?
Добро не ценится в современном мире, люди от него наглеют!
Блок для ESP8266, MQTT.
InTopic == название топика на который подписывается ESP на брокере.Golan писал(а): 16 июл 2018, 05:33inTopic - Имя топика, в который будут приходить все входящие сообщения - входящие ОТКУДА?
Все сообщения, приходящие в этот топик брокер перенаправляет в ESP.
В блоке пока реализована подписка только на один топик и реализуется при подключении к брокеру.
Публикует сама ESP ту строку, которую подадите на вход.
ESP всегда на подписке на топик указанный в настройках (InTopic), и любые данные которые придут в этот топик - они появятся на выходе блока.Golan писал(а): 16 июл 2018, 05:33Если у меня в приложении идет публикация например svet, то как MCU понимает, если смотреть в программу, что эта публикация для него или он всегда на подписке?
-
- Лейтенант
- Сообщения: 674
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Блок для ESP8266, Связь с миром по MQTT.
За чем ето делать? На esp-link работает без этого.Anydy писал(а): 14 июл 2018, 19:42В случае брокера в локальной сети необходимо в роутере пробросить порт
Фильтрацию данных можно позаимствовать здесь:
http://www.iobroker.net/docu/?page_id=4643&lang=ru
Блок для ESP8266, Связь с миром по MQTT.
Как зачем? Если например у вас внутри локальной сети сервер на линуксе с брокером mosquitto, то из вне через роутер не достучаться до вашего брокера. Например с мобильного телефона не подключитесь без проброса портов на роутере.
А ESP-LINK это отдельная тема, кроме этой прошивки вы на ESP свой код не зальете.
Блок для ESP8266, Связь с миром по MQTT.
Сделал новую версию блоков, теперь их три.
Можно создавать несколько блоков публикаций и подписок.
Смотрите обновления в первом посте.
И конечно же тестируйте на ошибки....советы, пожелания?
Можно создавать несколько блоков публикаций и подписок.
Смотрите обновления в первом посте.
И конечно же тестируйте на ошибки....советы, пожелания?
- Golan
- Капитан
- Сообщения: 827
- Зарегистрирован: 26 ноя 2017, 23:18
- Откуда: Деревня, 98 домов в Мордовии
- Имя: Владимир
- Контактная информация:
Блок для ESP8266, Связь с миром по MQTT.
Спасибо Андрей.
Все подключил, все проходит нормально в СОМ порту и в брокере, не пойму почему дисплей не показывает.
[spoiler] [/spoiler]
Вопрос, это так задумано у тебя?
{
Serial.begin(9600);
Serial.begin(115200);
setup_wifi();
client.setServer("m11.cloudmqtt.com", 14568);
client.setCallback(callback);
Забыл в СОМ сменить 9600 на 115200 с иероглифами полчаса шаманил
Все подключил, все проходит нормально в СОМ порту и в брокере, не пойму почему дисплей не показывает.
[spoiler] [/spoiler]
Вопрос, это так задумано у тебя?
{
Serial.begin(9600);
Serial.begin(115200);
setup_wifi();
client.setServer("m11.cloudmqtt.com", 14568);
client.setCallback(callback);
Забыл в СОМ сменить 9600 на 115200 с иероглифами полчаса шаманил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Добро не ценится в современном мире, люди от него наглеют!
Блок для ESP8266, Связь с миром по MQTT.
В блоке уже прописан вывод в СОМ порт для отладки, потом уберу, так что если еще добавить в программе вывод в UART то они будут дублироваться...
Теперь надо все это дело подружить с веб сервером для изменения настроек через сеть...
Теперь надо все это дело подружить с веб сервером для изменения настроек через сеть...
- Golan
- Капитан
- Сообщения: 827
- Зарегистрирован: 26 ноя 2017, 23:18
- Откуда: Деревня, 98 домов в Мордовии
- Имя: Владимир
- Контактная информация:
Блок для ESP8266, Связь с миром по MQTT.
Понял.
Индикатором помигать получилось с мобилы
, НО. имей ввиду если в проект куда нибудь влепить дисплей 44780, все летит к чертям, в СОМе иероглифы (на приеме), на отправке чуть позже гляну
Индикатором помигать получилось с мобилы

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Добро не ценится в современном мире, люди от него наглеют!
-
- Лейтенант
- Сообщения: 674
- Зарегистрирован: 10 сен 2015, 21:51
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Блок для ESP8266, Связь с миром по MQTT.
С этим согласен. Поправте тогда первый пост. Что порты пробрасивать нужно в случае если есп находится за локальной сетью. А то я подумал что в локальной сети нужно пробрасивать порты.
А в esp-link надобность отпадает. Если не нужно большой надежности в работе мк. Если например использовать сам есп то при потере wi-fi соединения основная программа останавливается, до тех пор пока не востановится соединение. Для какого нибуть датчика ето допустимо. Но а если идет управление хлеборезкой тогда все остановится.В таком случае лучше использовать esp-link в паре с ардуиной.
Отправлено спустя 25 минут 2 секунды:
P/S
Пожелание: добавить возможность отображение уровня rssi сигнала в dB. Конечно если возможно. Но скорее всего, наверное вопрос нужно адресовать Сергею.
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Блок для ESP8266, Связь с миром по MQTT.
Уважаемые, помогите.
Прошил версией 1,2, конектится, но в подключениях не вижу, данных нет, где я косячу??
Прошил версией 1,2, конектится, но в подключениях не вижу, данных нет, где я косячу??
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок для ESP8266, Связь с миром по MQTT.
Вы не показали проект, какие там у вас настройки блока непонятно....
Проверить входящие данные можно открыв монитор порта.
Пробуйте последнюю версию блока - 2_1 ....там все должно работать!
Проверить входящие данные можно открыв монитор порта.
Пробуйте последнюю версию блока - 2_1 ....там все должно работать!
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Блок для ESP8266, Связь с миром по MQTT.
Проверил и последнюю. В мониоторе порта список данных много.
А вот на сайте в списке устройств нет. А где название можно установить??
Отправлено спустя 5 минут 43 секунды:
АГА. заработало с cloudmqtt.com.
А с флайхабом не хочет
А вот на сайте в списке устройств нет. А где название можно установить??
Отправлено спустя 5 минут 43 секунды:
АГА. заработало с cloudmqtt.com.
А с флайхабом не хочет
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок для ESP8266, Связь с миром по MQTT.
Читайте внимательно первый пост.
В вашем проекте нет основного блока.
Для получения данных нужен блок ....Sub....
В вашем проекте нет основного блока.
Для получения данных нужен блок ....Sub....
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Блок для ESP8266, Связь с миром по MQTT.
НЕт , нет, это я понял, я на сайте флай хаб данных не вижу, и самого устройства тоже.
При подключении к флайхабу вот что порт выдает.
[spoiler]WiFi connected
IP address:
192.168.10.102
Attempting MQTT connection...connected
Message arrived [sonin_e@mail.ru/ESP008EFEEC/mac] 5CCF7F8EFEEC
Message arrived [sonin_e@mail.ru/ESP008EFEEC/wanip] 192.168.0.171
Message arrived [sonin_e@mail.ru/ESP008EFEEC/ver] 0.1.1_18:25:32_22.04.2018
Message arrived [sonin_e@mail.ru/ESP008EFEEC/dhtt1] 20.8
Message arrived [sonin_e@mail.ru/ESP008EFEEC/dhth1] 98.3
Message arrived [sonin_e@mail.ru/ESP008EFEEC/rssi] -70
Message arrived [sonin_e@mail.ru/ESP008EFEEC/freemem] 35960
Message arrived [sonin_e@mail.ru/ESP008EFEEC/uptime] 68940
Message arrived [sonin_e@mail.ru/ESP008EFEEC/timestamp] 1531907821
Message arrived [sonin_e@mail.ru/ESP0040E3AB/mac] 60019440E3AB
Message arrived [sonin_e@mail.ru/ESP0040E3AB/wanip] 172.16.2.172
Message arrived [sonin_e@mail.ru/ESP0040E3AB/ver] 0.1.1_11:10:30_25.04.2018
Message arrived [sonin_e@mail.ru/ESP0040E3AB/rssi] -79
Message arrived [sonin_e@mail.ru/ESP0040E3AB/freemem] 33288
Message arrived [sonin_e@mail.ru/ESP0040E3AB/uptime] 49800
Message arrived [sonin_e@mail.ru/ESP0040E3AB/timestamp] 1526294882
Message arrived [sonin_e@mail.ru/OtradaPogr/dhtt1] 19.7
Message arrived [sonin_e@mail.ru/OtradaPogr/dhth1] 47.3
Message arrived [sonin_e@mail.ru/OtradaPogr/rssi] -65
Exception (28):
epc1=0x4020326a epc2=0x00000000 epc3=0x00000000 excvaddr=0x1aff1516 depc=0x00000000
ctx: sys
sp: 3ffef4e0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3ffef680: d43fffda d8000039 f83ffee4 01402031
3ffef690: 0e3ffee6 0e000001 0c000001 04401002
3ffef6a0: db000000 353ffee4 8c000000 3c401006
[/spoiler]
Отправлено спустя 4 минуты 38 секунд:
или я туплю? щас проверю.
При подключении к флайхабу вот что порт выдает.
[spoiler]WiFi connected
IP address:
192.168.10.102
Attempting MQTT connection...connected
Message arrived [sonin_e@mail.ru/ESP008EFEEC/mac] 5CCF7F8EFEEC
Message arrived [sonin_e@mail.ru/ESP008EFEEC/wanip] 192.168.0.171
Message arrived [sonin_e@mail.ru/ESP008EFEEC/ver] 0.1.1_18:25:32_22.04.2018
Message arrived [sonin_e@mail.ru/ESP008EFEEC/dhtt1] 20.8
Message arrived [sonin_e@mail.ru/ESP008EFEEC/dhth1] 98.3
Message arrived [sonin_e@mail.ru/ESP008EFEEC/rssi] -70
Message arrived [sonin_e@mail.ru/ESP008EFEEC/freemem] 35960
Message arrived [sonin_e@mail.ru/ESP008EFEEC/uptime] 68940
Message arrived [sonin_e@mail.ru/ESP008EFEEC/timestamp] 1531907821
Message arrived [sonin_e@mail.ru/ESP0040E3AB/mac] 60019440E3AB
Message arrived [sonin_e@mail.ru/ESP0040E3AB/wanip] 172.16.2.172
Message arrived [sonin_e@mail.ru/ESP0040E3AB/ver] 0.1.1_11:10:30_25.04.2018
Message arrived [sonin_e@mail.ru/ESP0040E3AB/rssi] -79
Message arrived [sonin_e@mail.ru/ESP0040E3AB/freemem] 33288
Message arrived [sonin_e@mail.ru/ESP0040E3AB/uptime] 49800
Message arrived [sonin_e@mail.ru/ESP0040E3AB/timestamp] 1526294882
Message arrived [sonin_e@mail.ru/OtradaPogr/dhtt1] 19.7
Message arrived [sonin_e@mail.ru/OtradaPogr/dhth1] 47.3
Message arrived [sonin_e@mail.ru/OtradaPogr/rssi] -65
Exception (28):
epc1=0x4020326a epc2=0x00000000 epc3=0x00000000 excvaddr=0x1aff1516 depc=0x00000000
ctx: sys
sp: 3ffef4e0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3ffef680: d43fffda d8000039 f83ffee4 01402031
3ffef690: 0e3ffee6 0e000001 0c000001 04401002
3ffef6a0: db000000 353ffee4 8c000000 3c401006
[/spoiler]
Отправлено спустя 4 минуты 38 секунд:
или я туплю? щас проверю.
Блок для ESP8266, Связь с миром по MQTT.
Я с Флайхаб не проверял, у меня свой брокер...но не важно какой брокер...
Message arrived [sonin_e@mail.ru/OtradaPogr/rssi] -65
Значит контроллер получил это сообщение
Попрбуйте имя топика сделать попроще, и не понятно откуда у вас эти строки?
[spoiler]
Exception (28):
epc1=0x4020326a epc2=0x00000000 epc3=0x00000000 excvaddr=0x1aff1516 depc=0x00000000
ctx: sys
sp: 3ffef4e0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3ffef680: d43fffda d8000039 f83ffee4 01402031
3ffef690: 0e3ffee6 0e000001 0c000001 04401002
3ffef6a0: db000000 353ffee4 8c000000 3c401006
[/spoiler]
Message arrived [sonin_e@mail.ru/OtradaPogr/rssi] -65
Значит контроллер получил это сообщение
Попрбуйте имя топика сделать попроще, и не понятно откуда у вас эти строки?
[spoiler]
Exception (28):
epc1=0x4020326a epc2=0x00000000 epc3=0x00000000 excvaddr=0x1aff1516 depc=0x00000000
ctx: sys
sp: 3ffef4e0 end: 3fffffb0 offset: 01a0
>>>stack>>>
3ffef680: d43fffda d8000039 f83ffee4 01402031
3ffef690: 0e3ffee6 0e000001 0c000001 04401002
3ffef6a0: db000000 353ffee4 8c000000 3c401006
[/spoiler]
-
- Лейтенант
- Сообщения: 438
- Зарегистрирован: 25 окт 2016, 21:26
- Откуда: Волгоградская обл.
- Имя: СашкаСаняАлександр
- Благодарил (а): 1 раз
- Поблагодарили: 4 раза
Блок для ESP8266, Связь с миром по MQTT.
Вот и мне не ясно, как буд то он их тупо с брокера собирает, много разных топиков и мне шлет, только каким образом??
там их еще много, я не все скопировал и в конце тоже много адресов дописывает.
Ну это можно решить уходом с флай хаба.
А вот есть возможность как то отключить ком порт? что бы рх тх не были заняты, а то НЕКСТИОН экран не работает. Просто плата уже вытравлена. Спасибо заранее.
там их еще много, я не все скопировал и в конце тоже много адресов дописывает.
Ну это можно решить уходом с флай хаба.
А вот есть возможность как то отключить ком порт? что бы рх тх не были заняты, а то НЕКСТИОН экран не работает. Просто плата уже вытравлена. Спасибо заранее.
Кто сейчас на конференции
Сейчас этот форум просматривают: spy и 4 гостя