Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Разработка ‘библиотеки’ малого webсервера на esp8266.

Тема в разделе "SDK и создание собственных прошивок", создана пользователем pvvx, 3 янв 2015.

  1. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    А нет никакого смысла чистить и читать старое. Надо FAQ. Всё равно у каждого свои вопросы и когда одна страница и всё строго, то многие стесняются их задавать. А тут именно "Web-свалка" ...
     
    Alexander нравится это.
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Один из путей для вас: Скопировать esptool.py в c:/Espressif/utils и странслировать c помощью py2exe_esptool.cmd. Затем раскомментировать строку
    [HASHTAG]#ESPTOOL[/HASHTAG] ?= $(SDK_TOOLS)/esptool
    а следующую
    ESPTOOL ?= C:/Python27/python.exe $(CWD)esptool.py
    закомментировать.
    Но у меня C:/Python27/python.exe $(CWD)esptool.py работает во всех проектах и в разных версиях Eclipse и UDK.
    Вложеный в проект esptool.py работает со всем другими проектами UDK, что не сказать о имеющемся в UDK (тот содержит массу ошибок)
     
  3. Perfer

    Perfer Новичок

    Сообщения:
    27
    Симпатии:
    3
    Поддерживаю идею pvvx создания FAQ по по коду/структуре проектов https://github.com/pvvx/MinEspSDKLib и https://github.com/pvvx/esp8266web. Привожу здесь свой список вопросов и ответов от pvvx (из лички)
    Вопрос: ROM-BIOS - почему так называется? по факту ведь обычный планировщик!
    Ответ (pvvx): ROM - это не flash, ReadOnlyMemory. BIOS - это базовая система ввода вывода. В чипе ESP8266 находится 64к ROM, в ней записана базовая система загрузки и обработки всякого, т.е. BIOS
    Вопрос: call_user_start кто ее вызывает? Bootloader ? или хто?
    Ответ (pvvx): call_user_start вызывает загрузчик в ROM-BIOS, адрес старта записан в заголовке FLASH. call_user_start - название, даваемое программе формирования заголовка flash для прошивки.
    Вопрос: коды из папки info в прошивку не входят?
    Ответ (pvvx): Нет. Это только в качестве информации и может быть не совсем корректно для трансляции. Беглый ревеср

    Вопрос: кто обеспечивает запись структуры g_ic в flash? где-нибудь есть полное описание это структуры кроме libmain.h?
    Вопрос: почему инициализация протоколов проводиться в user_init() а не в lwip_init(), где все функции инициализации заменены пустышками? :)
     
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Есть у Espressif. Это закрытая информация, а данный файл получен путем "реверса" их бинарных библиотек из SDK. 'Запись', т.е. инициализацию структуры g_ic в bss обеспечивает закрытый код в SDK.
    Подпишите NDA, запросите у Espressif исходники, да опубликуйте нам :)
    А какое отношение имеет LwIP к массе другого функционала ?
    Да и в user_init() LwIP ещё не работает. Таймеры и 'таски' начинают работать только в ets_run() и только когда она исполняется. Т.е. только после исполнения init_done_cb(), назначенной в system_init_done_cb(init_done_cb).
    Чем больше назначено таймеров и мал их период, тем больше жрет ESP8266ex. В режиме ожидания прерывания в процедуре ets_run() потребление модулем до пары mA (если в данный момент выключен блок WiFi)... и десяток mA при включенном WiFi на прием (ожидание приема пакета)
     
    Последнее редактирование: 7 авг 2015
  5. Perfer

    Perfer Новичок

    Сообщения:
    27
    Симпатии:
    3
    Хорошо, но тогда назначение вот таких вызовов в init.c (LwIP):
    Код (Text):
    1. tcp_init();  
    2. udp_init();
    3. raw_init();  
    когда объявлено что:
    Код (Text):
    1. #define raw_init()
    2. #define udp_init()
    3. #define tcp_init()
    не очень понятно
     
  6. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Обратитесь к разработчику LwIP :)
    И там описано [HASHTAG]#define[/HASHTAG] tcp_init() /* Compatibility define, no init needed. */
    А чаго там Compatibility хотел автор - я не знаю.
     
  7. Perfer

    Perfer Новичок

    Сообщения:
    27
    Симпатии:
    3
  8. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    10
    Хотелось бы написать ещё и простого клиента, который отсылает данные на сервер. Подключается к сторонней точке доступа, отправляет GET запрос на сервер. pvvx, где-то недавно вы писали, что в "tcp_srv_conn.с" теперь заработал клиент, он справится с поставленной задачей?) Как я понял, этот файл управляет lwip'ом. Следовательно, предварительно надо ещё соединиться с точкой. В сторону каких функций и си-файлов в проекте следует смотреть? И через какой буфер будет происходить передача?
     
  9. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Клиент работает для TCP2UART. Вводите ip и он соединяется... При указании 127.0.0.1 или 'none' или пустой строки - TCP2UART переходит в режим сервера. Url пока не отрабатывается - слишком много условий и так.

    Клиент/сервер TCP2UART включается по событию WiFi event EVENT_STAMODE_GOT_IP и EVENT_SOFTAPMODE_STACONNECTED. Далее клиент TCP2UART пытается соединиться каждые 5 секунд. Для клиента желательно установить таймауты соединения...
    Сделал и отключение TCP2UART по WiFi events...
    Да, и увеличилось место для Web диска на 512 k Flash до 256 килобайт.

    PS: в примере SNTP делается запрос на получение ip из строки url через dns... SNTP тоже стартует по WiFi events...
     
    Последнее редактирование: 7 авг 2015
    Tomahawk нравится это.
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Web-свалка переехала на SDK 1.3.0, точнее на meSDK 1.3.0.
    Реал heap 43480 (во время HTTP запроса, с открытыми буферами).
     
  11. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    В свалку добавлено:
    1) В режиме теста с примером обработка NMI вектора ([HASHTAG]#define[/HASHTAG] USE_NMI_VECTOR).
    2) Добавлена опция задания паузы между подключением ST к внешней AP (пока через патч, т.к. в китай-SDK сплошные баги с событиями и вокруг этого - обещают исправить).
    wifi_st_rect=0..8192 в сек...
     
    Последнее редактирование: 17 авг 2015
  12. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Переезд на китай-SDK ver: 1.3.0 compiled: Aug 19 2015 17:50:07 (версия 2, с поправками от китайцев - типа будущая 1.4.0...).
    Реконнект ST по событиям заработал. AP вроде не отваливается... Патч SDK для событий отключен.
     
  13. Артемий

    Артемий Читатель

    Сообщения:
    165
    Симпатии:
    8
    Доброй ночи pvvx ! Давно сюда не заходил. Снова интересует вопрос :
    Появилась ли возможность через веб интерфейс достучаться к юарту ?
    Очень нужен этот функционал.....
    Веб страницы чтоб хранить в модуле и вебсервером выступал модуль, а данные ( не большие объёмы ) 3-24 Байта чтобы можно было отдавать/принимать в/из юарт.
     
  14. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Этого скорее всего не будет. Web многопользовательский, UART - нет. Если 10 клиентов посылают 3-24 Байта, то как их и куда? Да кому из них и что отвечать?
    Такую задачу я не в состоянии решить - используйте Arduino :)
    Что-то подобное готовиться, но ещё далеко. Вам думаю не подойдет, т.к. это будет Modbus сервер на RS-485, а Web будет отображать/запрашивать значения у устройств на Modbus, но по типу через ОПС-сервер...
     
    Последнее редактирование: 21 авг 2015
  15. Артемий

    Артемий Читатель

    Сообщения:
    165
    Симпатии:
    8
    Нужно только получать и передавать данные с одного клиента .
    Если такого нет , то подскажите какая есть прошивка чтобы работала хорошо ? Нужна либо АТ прошивка , либо любая похожая , чтобы веб сервер сделать силами внешнего АRM микроконтроллера.
    Заранее спасибо.
     
  16. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    10
    Если проект называется TCP2UART, то как думаете это возможно? :) Передать переменные из веб-интерфейса в МК возможно, отправить пакет данных в uart тоже. Осталось только разобраться и сделать.
     
  17. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    Артемий, pvvx шутит :) Видите, там смайлик. Конечно, это сделать можно, более того, это уже сделано.
    А именно: посмотрите проект от Andy Korg про часы, и/или мою микро-разработку тут. У Andy Korg много всего наворочено, у меня всего несколько команд реализовано. Но принцип тот же.
     
    Последнее редактирование: 21 авг 2015
  18. AlexeyGR

    AlexeyGR Новичок

    Сообщения:
    67
    Симпатии:
    0
  19. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.395
    Симпатии:
    1.271
    Не осталось, но по вашему вопросу (из лички) с адресом загрузкой WEBFiles.bin описание на первой странице темы исправлено.
    Диск проще загрузить после прошивки кодами по HTTP или PVFS2.exe, т.к. адрес загрузки диска будет вычислен автоматически.
     
  20. Артемий

    Артемий Читатель

    Сообщения:
    165
    Симпатии:
    8
    Спасибо ))) прикола не понял ) домой приеду - буду разбираться ) Спасибо!
     
    Последнее редактирование: 22 авг 2015

Поделиться этой страницей