Страница 5 из 8
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 13 июл 2018, 09:32
ivanpost
Здравствуйте! Вы не смогли исправить блок для версии Esp-Link 3.014 ? Интересует публикация. Примеры из ElClient в ней работают нормально.
Огромный сорри! На второй странице указано, что 2.2.3 - стабильная версия. С ней - работает.
Блок для ESP8266, Связь с миром по MQTT.
Добавлено: 08 авг 2018, 22:13
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!
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 09 авг 2018, 16:52
starshoy81
[ref]ivanpost[/ref], подробнее напишите - что вы делаете и что из этого получается
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 09 авг 2018, 19:41
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 делать после загрузки? (не ножкой).
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 09 авг 2018, 20:04
Sancho
[ref]ivanpost[/ref],
Часть кода из секции setup, приведённая Вами - это задержка для перехода к основной части программы, loop, только после получения сообщения о синхронизации, наверно с сервером. Вещь нужная.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 09 авг 2018, 20:58
starshoy81
[ref]ivanpost[/ref], судя по странице гитхаба, версия 2.2.3 до сих пор основная, более новые это беты, поэтому поручиться за их работу нельзя. Вопрос прошивки через есп, у меня не был на первом месте, хотя я и пробовал так делать - прошивалось не каждый раз. У меня устройство на этой прошивке в аптайме 24/7 с марта 2018, был один раз когда батарея разрядилась и всё выключилось (и роутер с брокером и есп), после подачи питания всё восстановилось без ресетов и продолжает работать дальше.
Попробуйте этот кусок кода вставить в setup своего кода - может получиться синхронизация с ардуиной.
REST запросы только исходящие.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 09 авг 2018, 21:32
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.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 10 авг 2018, 11:15
starshoy81
[ref]ivanpost[/ref], по идее это служебные rest, зашитые в прошивке есплинк, для сброса загрузчика optiboot ардуины и приведение его в состояние ожидания загрузки прошивки.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 18 авг 2018, 20:29
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 не нужно переносить команды на подписку на топик! Вставляешь блоки и сразу все работает!
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 18 авг 2018, 22:05
ivanpost
Итак, успех достгнут!
Галка с дебагом наверно залипла!
Закомментировал куски кода про
непосредственно в файле ELClient.cpp
Всё работает, в консоли только то что надо.
"Исправленный" файл - прилагаю.
Итого: Esp-link 3.2.47 + ELClient 3.0. Альфа0
1. MQTT работает на прием и передачу без перетаскивания функций. Правда я не фильтровал подписки (#) - нет необходимости.
2. Можно осуществить TCP запрос к серверу (если он его понимает) и получить пакет данных в ответ.
3. Можно передать TCP серверу свои данные (опять же, если ждет их).
4. Отображение всех ошибок подключения, передачи и приема.
5. OTA или cURL прошивка Atmega "по воздуху" с автоматическим подбором скорости.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 18 авг 2018, 22:18
ivanpost
Кому нужны TCP запросы - имейте в виду, что отправляете их из одного блока TCP_Client_Response, а ответ получаете в ELClient_Setup.
Пока так работает.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 18 авг 2018, 22:38
User8
Пора уже переходить на esp8266 12, если нужно mqtt. Начал проект делать, но данных отсылать нужно много, не хватило памяти ардуины, да и тормознутая она, только для малых проектов без использования сети.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 18 авг 2018, 23:41
ivanpost
[ref]User8[/ref], Пора уже... Или на 32.
Не очень лестно отзываются о них в плане стабильности. Якобы ошибки в кристалле. Мало выходов, еще меньше аналоговых. Городить расширения.
Другая схемотехника плат. Другая инфраструктура.
Как сделать чтобы сразу был клиент и сервер?
Затормозить можно что угодно. Быстродействие мало отличается. Память - да.
А может я просто не умею их готовить.

Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 14:07
ivanpost
Обновил блок Setup. Добавлен выход оповещающий об ответе TCP сервера.
Добавил блок получения Unix Time. Очень удобно отсчитывать интервалы. Получает время с роутера по переднему фронту соответствующего входа. Можно пересчитать в реальное время, кому надо.
Блок TCP Client Response получил вход с текстом запроса (мой сервер понимает разные).
Обновил библиотеку.
Остальные работающие блоки из связки - за компанию.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 14:10
ivanpost
Библиотека ELClient.cpp с закоментированными строками.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 15:53
User8
ivanpost писал(а): 19 авг 2018, 14:10Итого: Esp-link 3.2.47 + ELClient 3.0. Альфа0
как обновить прошивку до 3.2.47? На гитхабе нет user2.bin для этой версии.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 16:16
ivanpost
[ref]User8[/ref], user1 переименовать но важно чтобы ваша прошивка была 3.0.14, 2.2.3 - не обновит. Прошивать заново. ( у меня - не заработало) вероятно потому что нету файла с настройками.
Отправлено спустя 7 минут :
Поразбирался с блоком Subscribe. Предлагаю свою версию. Подразумевается подписка на все топики, а эти блоки просто ждут данных в своем топике.
Если блоков несколько, то желательно чтобы переменные на выходе были уникальны, потому что транслятор их сливает в одну сам. Ну или использовать данные сразу после блока.
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 17:09
User8
ivanpost писал(а): 19 авг 2018, 16:16user1 переименовать но важно чтобы ваша прошивка была 3.0.14
я вообще не вижу там файлов для прошивки на версию 3.2.47, где их взять?
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 21:23
ivanpost
https://github.com/jeelabs/esp-link/releases
Гитхаб - страшная сила! Надо смотреть релизы! Они их не всегда на главную выносят.
К вопросу о нехватке памяти. Вставил это все в свой прокет. Конечно сразу не взлетело. Эти обмены, особенно TCP критичны к текущей загрузке и остановам. Поэтому в тяжелых процессах (как водосчетчики), требующих ожиданий надо делать паузы.
После добавления пары триггеров и && все полетело как надо. В свою очередь и запросы рекомендуется начинать когда уже что-то важное свершилось. Думаю для Esp это тоже актуально. Я это прошел еще на Симатиках в 90-е годы
Отправлено спустя 51 минуту 48 секунд:
ЕЩЕ ВАЖНО!
Друг-друга эти запросы тоже не больно жалуют. Очевидно, "быстрая" Esp не справляется. Нужно разносить по времени. Иначе:
ELC: Invalid CRC
Ардуино - WiFi мост на ESP8266 : ESP-LINK
Добавлено: 19 авг 2018, 22:02
User8
ivanpost писал(а): 19 авг 2018, 21:23Гитхаб - страшная сила!
Там в архиве в последней версии нет файлов для прошивки.
ivanpost писал(а): 19 авг 2018, 21:23Очевидно, "быстрая" Esp не справляется
Это не esp, я на nodemcu esp 12e написал большой проект, с отправкой множества длинных строк на mqtt, все отрабатывает как часы, без всяких триггеров.