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

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

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

  1. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    Это надо ждать, а хОтчЕтся щАс. По этому взял дремель и "выпилил" за полчаса макетки-переходники для тестов:
    ESP_01_and_12_sm.jpg
     
  2. elAlex

    elAlex Новичок

    Сообщения:
    6
    Симпатии:
    3
    Я подобное себе на макетке сваял. Была мысль развести плату, сделать по местному да пересадить комплектуху с родного модуля. Пока не до того. Подбираю скаду что-бы собирать данные с модулей.
     
  3. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    С готовой платой не сделать тестов. Я вот припаял туда резисторы на подтяжки и ко входу ADC на корпус - теперь не измерить входные токи утечки входов и встроенных подтяжек к VCC или GND... А иногда это надо, для определения, что там напрограммировали китайцы (вход это или OK, или ...) ...
     
  4. elAlex

    elAlex Новичок

    Сообщения:
    6
    Симпатии:
    3
    Я пока так глубоко не копал ( вообще если для Вас подобное - хобби, то у меня комплекс неполноценности думая что у Вас работа ). Да и интереснее рассматривать не один модуль но систему сбора и управления.
     
  5. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    А SDK-ашная функция, выводящая "periodic_cal" не мешает? Она там многое творит...
    И, в принципе, нехорошо держать постоянно открытое соединение на TCP. Надо делать периодические реконекты для стабильности всей цепочки соединения.
    Работа у меня другая, но частично пересекается. Пока данный модуль использовать "в работе" невозможно. Когда будут все исходники, тогда и будет возможно начать обсуждать возможности его использования для реальных проектов. А так - это игрушка.
     
    Последнее редактирование: 9 фев 2015
  6. Algis

    Algis Читатель

    Сообщения:
    36
    Симпатии:
    7
    Что-то мешает... примерно раз через 100 - 200 запросов ответа нет.
    Соединение открытым не поддерживается, программа на PHP в сервере открывает сокет, шлет запрос, до секунды ждет ответа, закрывает сокет. Так каждые 3 секунды.
     
  7. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    Сляпал на основе "свалки" часы на esp-12. Правда при сбросе чипа прошивка как бы стартует, а потом замирает на некоторое время. Чего там такое происходит разбираться пока не буду, но другим будет наверно интересно.
     
  8. folny

    folny Новичок

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

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    Используйте исходные коды. Запретов на их использование кем либо нет. Создайте свои собственные HTML файлы и почистите ненужные процедуры...
    Настройки Wi-Fi описаны в Web_base\app\web\wifi.c.
    Use the source code Web-server. There are no restrictions on use. Create your own html files and clean unnecessary funtions/procedures...
    Settings WiFi described in Web_base\app\web\wifi.c
     
  10. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    По-моему это очень напоминает проблему с которой столкнулся я. Единственное у меня при равномерном использовании (когда ESP'шка успевает отрабатывать входящие запросы) все вроде стабильно работает, а так те же симптомы.
     
  11. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    Посмотрите лог Wireshark


    Проскакивающие "красные сообщения" - это эксплорер скипнул прием, по причине нового запроса с обновлением...
    RST_ACK.gif
    Большинство эксплореров, при обращении к серверу HTTP по порту 80 сразу открывают более 5-ти соединений и надеются получить “Connection: keep-alive”. Ели обращение идет не по 80 порту, то они стесняются и открывают всего одно соединение. На ESP8266 держать десятки открытых соединений невозможно, тем более “стеков запросов” от експлореров, по тому сервер их закрывает через установленные в конфиге web_srv 5 сек. Эксплореры этому сильно сопротивляются и обычно начинается бардак с закрытием/открытием пустых соединений :) Держат они их, похоже, для того чтобы узнать, что ничего не сменилось на сервере и он активен и подобное...
    При возможности держать всего 4-ре соединения очень смешно выглядит espconn. Эксплорер на открытое 5-ое соединение получает “досвидание” и по этому ответу часто считает, что запрашиваемого ресурса вообще нет :) Но это уже отдельная тема... про бедный Espressif... AT и Lua... :)
     
    Последнее редактирование: 11 фев 2015
  12. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    anakod - в примерах к web есть TestHeap. Он через установленное ползунком время в ms запрашивает файл с web-а. Работает часами, без warning в Wireshark до её переполнения.
    При остановке на какое-то время (десятки сек) коммуникаций с ESP8266, следующий, первый, запрос получает тайм-ауты в десятки секунд. C LwIP это не связано - это фича от Espressif, "зеленых" сетевых коммуникаций, роутеров, route и ... :)
    Ещё у нас LwIP v1.4.0, а не v1.4.1. и исходники вложены в "свалку".
    Добавил пример Debug Functions->Upload Bin->Deep Sleep. Когда модуль у вас будет восстанавливаться после разных режимов Deep Sleep, то считайте, что всё Ok.
    Но пока этого нет. После выхода из некоторых режимов Deep Sleep соединение работает первые несколько секунд, а потом всё. AP отваливается навсегда и только пляски с бубном с ногами сброса и т.д. и питанием модулей возвращают её к жизни....
    В SDK 0.9.5 есть ещё фича от Espressif - если назначить режим wifi_set_opmode(0), то при следующей перезагрузке будет вечный "протектед". Список ошибок SDK уже давно переполнен. А сообщать их Espressif-цам уже никто не будет - они тогда всё закроют.
     
    Последнее редактирование: 11 фев 2015
  13. folny

    folny Новичок

    Сообщения:
    15
    Симпатии:
    0
    Thank you for your reply I tried pasting the code but I could not do it properly please can you show in detail how do I do thank you.
     
  14. folny

    folny Новичок

    Сообщения:
    15
    Симпатии:
    0
    Hi

    Today I have long been trying to compile the code but I did not succeed in compiling I still displays some error please you can try to compile yourself ? Here is my error message.

    08:23:55 **** Build of configuration Default for project Web_base ****
    mingw32-make.exe -f C:/Espressif/examples/Web_base/Makefile all
    mingw32-make[1]: Entering directory 'C:/Espressif/examples/Web_base/app'
    mingw32-make[2]: Entering directory 'C:/Espressif/examples/Web_base/app/user'
    DEPEND: c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -M -Os -g -O2 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -DLWIP_OPEN_SRC -DPBUF_RSV_FOR_WLAN -DEBUF_LWIP -I include -I ./include -I ../include -I ./ -I ../../include -I ../../include/eagle user_main.c
    mingw32-make[2]: Leaving directory 'C:/Espressif/examples/Web_base/app/user'
    mingw32-make[2]: Entering directory 'C:/Espressif/examples/Web_base/app/user'
    c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Os -g -O2 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -DLWIP_OPEN_SRC -DPBUF_RSV_FOR_WLAN -DEBUF_LWIP -I include -I ./include -I ../include -I ./ -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_main.o -c user_main.c
    c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar ru .output/eagle/debug/lib/libuser.a .output/eagle/debug/obj/user_main.o
    mingw32-make[2]: Leaving directory 'C:/Espressif/examples/Web_base/app/user'
    mingw32-make[2]: Entering directory 'C:/Espressif/examples/Web_base/app/driver'
    mingw32-make[2]: Leaving directory 'C:/Espressif/examples/Web_base/app/driver'
    mingw32-make[2]: Entering directory 'C:/Espressif/examples/Web_base/app/web'
    mingw32-make[2]: Leaving directory 'C:/Espressif/examples/Web_base/app/web'
    mingw32-make[2]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip'
    mingw32-make[3]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip/api'
    mingw32-make[3]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip/api'
    mingw32-make[3]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip/app'
    mingw32-make[3]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip/app'
    mingw32-make[3]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip/core'
    mingw32-make[4]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip/core/ipv4'
    mingw32-make[4]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip/core/ipv4'
    mingw32-make[3]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip/core'
    mingw32-make[3]: Entering directory 'C:/Espressif/examples/Web_base/app/lwip/netif'
    mingw32-make[3]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip/netif'
    mingw32-make[2]: Leaving directory 'C:/Espressif/examples/Web_base/app/lwip'
    c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Lc:/Espressif/ESP8266_SDK/lib -nostdlib -T../ld/eagle.app.v6.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,--start-group -lc -lgcc -lhal -lphy -lpp -lnet80211 -lwpa -lmain lwip/.output/eagle/debug/lib/liblwip.a driver/.output/eagle/debug/lib/libdriver.a web/.output/eagle/debug/lib/libweb.a user/.output/eagle/debug/lib/libuser.a -Wl,--end-group -o .output/eagle/debug/image/eagle.app.v6.out
    user/.output/eagle/debug/lib/libuser.a(tpm2net.o): In function `tpm2net_recv':
    tpm2net.c:(.irom0.text+0x5c): undefined reference to `espconn_regist_recvcb'
    tpm2net.c:(.irom0.text+0x60): undefined reference to `espconn_create'
    user/.output/eagle/debug/lib/libuser.a(tpm2net.o): In function `tpm2net_init':
    C:\Espressif\examples\Web_base\app\user/tpm2net.c:36: undefined reference to `espconn_regist_recvcb'
    C:\Espressif\examples\Web_base\app\user/tpm2net.c:37: undefined reference to `espconn_create'
    collect2.exe: error: ld returned 1 exit status
    ../Makefile:200: recipe for target '.output/eagle/debug/image/eagle.app.v6.out' failed
    mingw32-make[1]: Leaving directory 'C:/Espressif/examples/Web_base/app'
    mingw32-make[1]: *** [.output/eagle/debug/image/eagle.app.v6.out] Error 1
    C:/Espressif/examples/Web_base/Makefile:148: recipe for target '.subdirs' failed
    mingw32-make.exe: *** [.subdirs] Error 2

    08:23:58 Build Finished (took 3s.686ms)
     
  15. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    Web_base\app\include\user_config.h: #define USE_ESPCONN 1
     
  16. Algis

    Algis Читатель

    Сообщения:
    36
    Симпатии:
    7
    Может кто знает что в esp8266 там намудрено с выводом перевода в режим программирования GPIO0 ?
    Программирование почти всегда не получается с первого раза, полез смотреть с осцыллографом.... обычно там из-за подтяжки болтается 3.3в, при программировании и замыкании на землю получается 0в но через ~250 ms вывод превращается в выход и начинает выдавать импульсы с частотой около 4,8MHz и вывод DTR конвертера USB2UART на CP2102 его не может удержать в низком положении, запись срывается.... имульсы через некоторое время пропадает... иногда нет, иногда появляется даже сразу после ресета. Иногда помогает длительное лежание в выключенном состоянии...
     

    Вложения:

    • GPIO0.PNG
      GPIO0.PNG
      Размер файла:
      14,5 КБ
      Просмотров:
      53
  17. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    То же помучился с CP2102, в конец концов перешел полностью на FT232, сразу глюки пропали
     
  18. pvvx

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

    Сообщения:
    9.410
    Симпатии:
    1.320
    Это выход CLK_OUT. Активен всё время когда работает ROM (поле любого сброса до инициализации SDK, всё время в режиме программирования). Дублирует частоту "кварца" - 26MHz:
    GPIO0.gif
    При включении хоть через 10к к DTR FT модуля однозначно переключает режимы загрузки (программирование/работа). Для уверенного включения модуля, кроме резисторов на RESET и CH_PD к +3.3V необходимо подключить GPIO15 на корпус через резистор 1..10к, а GPIO16 (в китай-доке) замкнуть с RESET (я их соединил резистором вроде на 470Ом, а RTS с FT-шки через диод на RESET) .
    Другое дело, что глючит SDK и особенно после deep_sleep...
     
    Последнее редактирование: 11 фев 2015
    Algis и TRO нравится это.
  19. Algis

    Algis Читатель

    Сообщения:
    36
    Симпатии:
    7
    Точно, в Module Application Design Guide написано что "GPIO0 output is flipped (output clk signal with the same
    frequency as Crystal clk ).", тогда все понятно.

    После соединения GPIO0 и DTR не напрямую а через 1ком, а RST с RTS через диод, прошиватся стал гораздо стабильнее.
    Спасибо.
     
  20. folny

    folny Новичок

    Сообщения:
    15
    Симпатии:
    0
    Hi pvvx

    Thank you for your help code no longer works properly I would still ask whether it is possible to upload the firmware ? so that the pass VEBFiles thanks.
     

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