Ардуино - WiFi мост на ESP8266 : ESP-LINK

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Здравствуйте! Вы не смогли исправить блок для версии Esp-Link 3.014 ? Интересует публикация. Примеры из ElClient в ней работают нормально.
Огромный сорри! На второй странице указано, что 2.2.3 - стабильная версия. С ней - работает.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

Блок для ESP8266, Связь с миром по MQTT.

Сообщение ivanpost »

Все таки в блоке el-client publish_0.1 чего то не хватает...
После загрузки не может найти какую то синхронизацию... требуется ресетить Esp и слегка танцевать бубном.
С библиотечным примером такого нет...

0 23:5 0
ELC: got 128 @407: A0D 4A207374 6520 61 6E 20 20 38 20 32 30 31 33 2C 72 73 74 20 63 61 75 73 65 3A 31 2C 20 62 6F 6F 74 20 6D 6F 64 65 3A 28 33 2C 37 29 D A D A 6C 6F 61 64 20 30 78 34 30 31 30 30 30 30 30 2C 20 6C 65 6E 20 32 35 39 32 2C 20 72 6F 6F 6D 20 31 36 20 D A 74 61 69 6C 20 30 D A 63 68 6B 73 75 6D 20 30 78 66 33 D A 6C 6F 61 64 20 30 78 33 66 66 65 38 30 30 30 2C 20 6C 65
ELC: Invalid CRC
ELC: got 10 @407: 1 0 0 BF 81
NEED_SYNC!
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение starshoy81 »

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Использую стандартный блок Setup и стандартные блоки el-client publish_0.1.
Север - Москито на OpenWrt. На прошивке Esp-Link - 2.2.3 - работает устойчиво. Но сама эта прошивка имеет глюк когда "пропадает" точка доступа и вместо перехода в AP бесконечно ищет пропавшую точку доступа. Ну не бесконечно, можно вклинится, но трудно.
Однако есть еще проблема - при включении питания нужно перегружать Esp, иначе MQTT тоже "висит" без синхронизации.

На прошивке Esp-Link 3.2.47 иногда зацепляется и потом работает, но в основном шлет NEED_SYNC. А в других аспектах эта прошивка лучше - она хорошо подбирает скорость при avrflash и нормально становится AP.

С библиотечным примером этих проблем нету, возможно из за блочка в Setup:

bool ok;
do {
ok = esp.Sync(); // sync up with esp-link, blocks for up to 2 seconds
if (!ok) Serial.println("EL-Client sync failed!");
} while(!ok);
Serial.println("EL-Client synced!");

Но у меня квалификация пока не достаточная, чтобы осознать зависимость.

Отправлено спустя 27 минут 27 секунд:
[ref]starshoy81[/ref], вы вообще с ESP-LINK и EL-Client нормально разобрались? Там какие REST запросы есть? Может можно ресет esp делать после загрузки? (не ножкой).
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение Sancho »

[ref]ivanpost[/ref],
Часть кода из секции setup, приведённая Вами - это задержка для перехода к основной части программы, loop, только после получения сообщения о синхронизации, наверно с сервером. Вещь нужная.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение starshoy81 »

[ref]ivanpost[/ref], судя по странице гитхаба, версия 2.2.3 до сих пор основная, более новые это беты, поэтому поручиться за их работу нельзя. Вопрос прошивки через есп, у меня не был на первом месте, хотя я и пробовал так делать - прошивалось не каждый раз. У меня устройство на этой прошивке в аптайме 24/7 с марта 2018, был один раз когда батарея разрядилась и всё выключилось (и роутер с брокером и есп), после подачи питания всё восстановилось без ресетов и продолжает работать дальше.

Попробуйте этот кусок кода вставить в setup своего кода - может получиться синхронизация с ардуиной.

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Rest входящие есть при перепрошивке через HTTP POST. В этом случае ардуина прошивается практически гарантированно и очень быстро. Так же как через arduinoOTA.
Я два месяца танцевал с бубном при прошивке через Tibbo и com-порты. Мне надо прошивать довольно далекие esp. Стабильность прошивки была неуверенная для больших прошивок.

Теперь прошивается даже через интернет, само назначает скорость порта (на 2.2.3 не очень уверенно), не трогает EEPROM и другие прелести! Всем кому нужно - настоятельно рекомендую! avrflash.cmd у меня такой:

@echo off
curl -m 10 -s -XPOST http://192.168.31.23/pgm/sync
ping -n 1 -w 1500 10.10.254.254 >nul
curl -m 10 -s http://192.168.31.23/pgm/sync
echo.
curl -m 10 -s -g -d "@mysketh.hex" "http://192.168.31.23/pgm/upload"
pause

192.168.31.23 - адрес моего Esp. Можно использовать подстановку адреса и файла в cmd.
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение starshoy81 »

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Друзья! Может все же поможет кто-то понять в чем дело?

На базе библиотеки ELClient сделал новый блок инициализации. Теперь он кроме MQTT еще и TCP клиент. Можно подключаться к серверу по ip или hostname и получать от него ответ на запрос.
Слегка изменил блок уважаемого [ref]starshoy81[/ref], el-client publish_01, чтобы можно было указывать имя топика для отправки данных (у меня много топиков).
Все работает как часы - система отлично стартует, принимаются и отправляются данные топиков, производится запрос у другого ESP и получается нужный ответ (мини-модбас :) между двумя). Есть определение всех ошибок - сети, не ответа и тп.
Проблема в одном - не могу отключить лог ESP в консоли. Не понимаю, откуда он берется, вроде бы лог на off стоит.
Вероятно, из самой библиотеки.
Версия Esp-Link 3.2.47 на 2.2.3 не коннектится, вероятно, там не все функции поддерживаются.
Помогите или посоветуйте, где покопать.
Окно консоли
Изображение

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Итак, успех достгнут!
Галка с дебагом наверно залипла! :smile171:
Закомментировал куски кода про

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

if (_debugEn)
непосредственно в файле ELClient.cpp
Всё работает, в консоли только то что надо.
"Исправленный" файл - прилагаю.
Итого: Esp-link 3.2.47 + ELClient 3.0. Альфа0
1. MQTT работает на прием и передачу без перетаскивания функций. Правда я не фильтровал подписки (#) - нет необходимости.
2. Можно осуществить TCP запрос к серверу (если он его понимает) и получить пакет данных в ответ.
3. Можно передать TCP серверу свои данные (опять же, если ждет их).
4. Отображение всех ошибок подключения, передачи и приема.
5. OTA или cURL прошивка Atmega "по воздуху" с автоматическим подбором скорости.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Кому нужны TCP запросы - имейте в виду, что отправляете их из одного блока TCP_Client_Response, а ответ получаете в ELClient_Setup.
Пока так работает.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение User8 »

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

[ref]User8[/ref], Пора уже... Или на 32.
Не очень лестно отзываются о них в плане стабильности. Якобы ошибки в кристалле. Мало выходов, еще меньше аналоговых. Городить расширения.
Другая схемотехника плат. Другая инфраструктура.
Как сделать чтобы сразу был клиент и сервер?
Затормозить можно что угодно. Быстродействие мало отличается. Память - да.
А может я просто не умею их готовить. :smile38:
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

Библиотека ELClient.cpp с закоментированными строками.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение User8 »

ivanpost писал(а): 19 авг 2018, 14:10Итого: Esp-link 3.2.47 + ELClient 3.0. Альфа0
как обновить прошивку до 3.2.47? На гитхабе нет user2.bin для этой версии.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

[ref]User8[/ref], user1 переименовать но важно чтобы ваша прошивка была 3.0.14, 2.2.3 - не обновит. Прошивать заново. ( у меня - не заработало) вероятно потому что нету файла с настройками.

Отправлено спустя 7 минут :
Поразбирался с блоком Subscribe. Предлагаю свою версию. Подразумевается подписка на все топики, а эти блоки просто ждут данных в своем топике.
Если блоков несколько, то желательно чтобы переменные на выходе были уникальны, потому что транслятор их сливает в одну сам. Ну или использовать данные сразу после блока.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение User8 »

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

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение ivanpost »

https://github.com/jeelabs/esp-link/releases
Гитхаб - страшная сила! Надо смотреть релизы! Они их не всегда на главную выносят. :smile38:

К вопросу о нехватке памяти. Вставил это все в свой прокет. Конечно сразу не взлетело. Эти обмены, особенно TCP критичны к текущей загрузке и остановам. Поэтому в тяжелых процессах (как водосчетчики), требующих ожиданий надо делать паузы.

После добавления пары триггеров и && все полетело как надо. В свою очередь и запросы рекомендуется начинать когда уже что-то важное свершилось. Думаю для Esp это тоже актуально. Я это прошел еще на Симатиках в 90-е годы :smile38:

Отправлено спустя 51 минуту 48 секунд:
ЕЩЕ ВАЖНО!
Друг-друга эти запросы тоже не больно жалуют. Очевидно, "быстрая" Esp не справляется. Нужно разносить по времени. Иначе:

ELC: Invalid CRC
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

Ардуино - WiFi мост на ESP8266 : ESP-LINK

Сообщение User8 »

ivanpost писал(а): 19 авг 2018, 21:23Гитхаб - страшная сила!
Там в архиве в последней версии нет файлов для прошивки.
ivanpost писал(а): 19 авг 2018, 21:23Очевидно, "быстрая" Esp не справляется
Это не esp, я на nodemcu esp 12e написал большой проект, с отправкой множества длинных строк на mqtt, все отрабатывает как часы, без всяких триггеров.
Ответить

Вернуться в «ESP8266»

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

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