• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

День добрый!
скачал и установил UDK. установил python27.
а вот проект собрать не смог - просит pyserial.
вот только загвоздка - у меня сеть за файрволом и пип заблокирован. пусериал не установить.
как отвязать сборку прошивки от пусериала или как установиь пусериал в обход pip?
 

Andy Korg

Moderator
Команда форума
.. как установиь пусериал в обход pip?
отсюда:
Если нужно скачать пакет из альтернативного источника, вы можете задать URL или локальный адрес на компьютере:

easy_install http://адрес_репозитория.ру/директория/пакет-1.1.2.zip
 
Самуил Германович Арканум:
почитал. понял что на работе это принциапиально не получится и сделал на ноуте.
короч мои косяки я поправил:
1) установил всё по инструкции + питон 27 + пу сериал
2) скачал два проекта: ваш и pvvx. распаковал и убрал -master из имени папок.
3) каждому сделал свой воркспейс.
4) попробовал скомпилить. pvvx скомпилился. ваш проект - нет. жалуется что webbin нету а он есть.
манипуляции прям вот только что.

mingw32-make.exe: *** [D:/projects/eclipse/andy_korg/esp8266web/Makefile:256: .subdirs] Error 1
 
выбрал user_config.h #define PROGECT_NUMBER 2
и словил вот такие ошибки:

------------------------------------------------------------------------------
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE837C| 892
rodata| ReadOnly Data (RAM)| 3FFE837C| 3FFE89AC| 1584
bss| Uninitialized Data (RAM)| 3FFE89B0| 3FFEE8C8| 24344
lit4| Uninitialized Data (IRAM)| 40105110| 40105CF0| 3040
text| Uncached Code (IRAM)| 40100000| 40105110| 20752
irom0_text| Cached Code (SPI)| 40207000| 4023C089| 217225
------------------------------------------------------------------------------
Entry Point : 4010013C call_user_start()
Total Used RAM : 50612
Free IRam : 8976 or 25360 (option 48k IRAM)
Free Heap : 55100
Total Free RAM : 80460
------------------------------------------------------------------------------
Add rapid_loader...
0+1 records in
0+1 records out
176 bytes (176 B) copied, 0 seconds, Infinity B/s
45+1 records in
45+1 records out
23264 bytes (23 kB) copied, 0.001 seconds, 23 MB/s
C:/Python27/python.exe D:/projects/eclipse/pvvx/esp8266web/ovls.py .output/eagle/image/eagle.app.v6.out ../ld/labels.ld
mingw32-make[1]: Leaving directory 'D:/projects/eclipse/pvvx/esp8266web/app'
mingw32-make[1]: Entering directory 'D:/projects/eclipse/pvvx/esp8266web/ovls'
mingw32-make[2]: Entering directory 'D:/projects/eclipse/pvvx/esp8266web/ovls/10dof'
mingw32-make[3]: Entering directory 'D:/projects/eclipse/pvvx/esp8266web/ovls/10dof/main'
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Os -Wall -Wno-pointer-sign -fno-tree-ccp -mno-target-align -mno-serialize-volatile -foptimize-register-move -Wundef -Wall -Wstrict-aliasing -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -I ./include -I ../include -I ../../include -I D:/projects/eclipse/pvvx/esp8266web/include -I D:/projects/eclipse/pvvx/esp8266web/app/include -o .output/eagle/obj/mpu9250.o -c mpu9250.c
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Os -Wall -Wno-pointer-sign -fno-tree-ccp -mno-target-align -mno-serialize-volatile -foptimize-register-move -Wundef -Wall -Wstrict-aliasing -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -I ./include -I ../include -I ../../include -I D:/projects/eclipse/pvvx/esp8266web/include -I D:/projects/eclipse/pvvx/esp8266web/app/include -o .output/eagle/obj/hspi_master.o -c hspi_master.c
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Os -Wall -Wno-pointer-sign -fno-tree-ccp -mno-target-align -mno-serialize-volatile -foptimize-register-move -Wundef -Wall -Wstrict-aliasing -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -I ./include -I ../include -I ../../include -I D:/projects/eclipse/pvvx/esp8266web/include -I D:/projects/eclipse/pvvx/esp8266web/app/include -o .output/eagle/obj/main.o -c main.c
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -Os -Wall -Wno-pointer-sign -fno-tree-ccp -mno-target-align -mno-serialize-volatile -foptimize-register-move -Wundef -Wall -Wstrict-aliasing -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -I ./include -I ../include -I ../../include -I D:/projects/eclipse/pvvx/esp8266web/include -I D:/projects/eclipse/pvvx/esp8266web/app/include -o .output/eagle/obj/bmp280.o -c bmp280.c
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar ru .output/eagle/lib/libmain.a .output/eagle/obj/mpu9250.o .output/eagle/obj/hspi_master.o .output/eagle/obj/main.o .output/eagle/obj/bmp280.o

Самуил Германович Арканум, [06.10.19 18:05]
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-ar: creating .output/eagle/lib/libmain.a
mingw32-make[3]: Leaving directory 'D:/projects/eclipse/pvvx/esp8266web/ovls/10dof/main'
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -nostartfiles -nodefaultlibs -nostdlib -LD:/projects/eclipse/pvvx/esp8266web//lib -TD:/projects/eclipse/pvvx/esp8266web//ld/overlay.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,-Map -Wl,.output/eagle/image/eagle.app.v6.map -Wl,--start-group -lmgcc main/.output/eagle/lib/libmain.a -Wl,--end-group -o .output/eagle/image/eagle.app.v6.out
main/.output/eagle/lib/libmain.a(main.o):(.text+0x4): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(main.o): In function `drv_recv':
main.c:(.text+0x174): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(hspi_master.o):(.text+0x24): undefined reference to `copy_s1d4'
main/.output/eagle/lib/libmain.a(hspi_master.o): In function `hspi_cmd_write':
hspi_master.c:(.text+0x82): undefined reference to `copy_s1d4'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: Leaving directory 'D:/projects/eclipse/pvvx/esp8266web/ovls/10dof'
mingw32-make[2]: *** [../Makefile:181: .output/eagle/image/eagle.app.v6.out] Error 1
mingw32-make[1]: *** [Makefile:128: .subdirs] Error 2
mingw32-make[1]: Leaving directory 'D:/projects/eclipse/pvvx/esp8266web/ovls'
mingw32-make.exe: *** [D:/projects/eclipse/pvvx/esp8266web/Makefile:276: .subdirs] Error 2

17:58:35 Build Finished (took 53s.9ms)


то есть что-то есть но с ошибками

если выбрать user_config.h #define PROGECT_NUMBER 0
то собирается всё без ошибок
 

pvvx

Активный участник сообщества
выбрал user_config.h #define PROGECT_NUMBER 2
и словил вот такие ошибки:
PROGECT_NUMBER 2 - это была опция проекта для собственной проработки. Там ручками надо исключать и включать необходимые компоненты. Для игры "сборка по кнопке" она не предназначена. Это просто как заготовка для дальнейшего собственного проекта.
 
PROGECT_NUMBER 2 - это была опция проекта для собственной проработки. Там ручками надо исключать и включать необходимые компоненты. Для игры "сборка по кнопке" она не предназначена. Это просто как заготовка для дальнейшего собственного проекта.
разобрался. над было тупо удалять всё что связано с ovl из makefile
скомпилилось, прошилось, запустилось.
ну, теперь могу своё что-то бодяжить с вебформой.
з.ы. знаю что есп8266 устарела. но их меня 8 штук. не солить же
 

Alexander

Member
Столкнулся вот с какой проблемой. Начал монитрить аптайм и увидел, что более 1,5 часов не работает без перезагрузки. Был очень удивлен, т.к. даже с прошивкой ESPeasy, при прочих равных, перезагружается гораздо реже - от раза в несколько ней до нескольких раз в деь. Наблюдал пару недель. Только у меня такая проблема?
 

pvvx

Активный участник сообщества
Столкнулся вот с какой проблемой. Начал монитрить аптайм и увидел, что более 1,5 часов не работает без перезагрузки. Был очень удивлен, т.к. даже с прошивкой ESPeasy, при прочих равных, перезагружается гораздо реже - от раза в несколько ней до нескольких раз в деь. Наблюдал пару недель. Только у меня такая проблема?
Когда-то, годы назад, когда этот проект ещё ковырял, тесты показывали время работы без перезагрузок более месяца... Только ручное.
На главной странице web-а отображается время последнего старта.

Но, когда начал заниматься другими модулями WiFi, был обнаружен глюк у ESP8266 связанный с перезагрузкой или выходом в режим аппаратного зависания с глушением всей WiFi сети, происходящий от сильных сигналов других модулей. Уточнение было в сторону "автоматической подстройки частоты" - где то там в закрытых дровах ESP8266 сносит голову... Какая прошивка или версия SDK - безразлично.
На том работать с ESP8266 перестал - количество глюков чипа и его закрытого ПО превзошло все пределы...
 

pvvx

Активный участник сообщества
Создайте идеальные условия для ESP8266 - проработает без завсисов и прочего долго.
Смотрите питание и внешние импульсы, т.к. чип очень боится импульсной помехи и не проходит никакие тесты по этому делу.
В web-свалке много кривого кода и ошибок, найденных позже, но они не критические и к перезагрузке не приводят. А так-же много опций и без описания как и что там у вас никто вам не поможет разобраться в перезагрузках...
 
был обнаружен глюк у ESP8266
Может не все так плохо. Ребята работают, правят баги. На их сайте написано про поддержку Supporting China Mobile’s And-link Platform, Supporting China Telecom’s IoT Platform и тд. Те чипы работают. Новый SDK ESP8266_RTOS_SDK-3.1.1. В DS масса обновлений (прилагаю).
 

Вложения

Alexander

Member
Может не все так плохо. Ребята работают, правят баги. На их сайте написано про поддержку Supporting China Mobile’s And-link Platform, Supporting China Telecom’s IoT Platform и тд. Те чипы работают. Новый SDK ESP8266_RTOS_SDK-3.1.1. В DS масса обновлений (прилагаю).
Возможно, но к сожалению данный проект заброшен. У меня uptime более нескольких часов не получается, в то время как espeasy может работать неделями без перезагрузки в абсолютно той же аппаратной конфигурации. Но там с http сервером какие-то беды - периодически зависает наглухо и помогает только передергивание питания. При этом на пинги модуль отвечает, хоть и с задержкой.
Впрочем, я не знаю в чем проблема. Сбрасывается только переменная с аптаймом, иных проблем не замечено. Нужно разбираться.
 

Alexander

Member
Проверил различные варианты:
работа в режиме STATIONAP_MODE;
работа в режиме STATION_MODE;
работа в режиме SOFTAP_MODE;
B, G и N режимы.
Uptime не достигает и 2 часов.
Проверял добавив в footer.inc строку
Код:
Время работы: <span id='uptime'></span><br><br>
Либо реально периодическая перезагрузка, либо что-то не так с переменной uptime.
Ну, или я что-то неправильно делаю.

PS я уж думал, может неправильно что-то собираю. Для чистоты эксперимента загрузил готовый бинарник и потом по воздуху только webfiles.bin заменил.
 

pvvx

Активный участник сообщества
Может не все так плохо. Ребята работают, правят баги. На их сайте написано про поддержку Supporting China Mobile’s And-link Platform, Supporting China Telecom’s IoT Platform и тд. Те чипы работают. Новый SDK ESP8266_RTOS_SDK-3.1.1. В DS масса обновлений (прилагаю).
Пока они там рабботают, чип уже морально и технически устарел.
Что ещё не сделает Espressif, чтобы втюхать свой глюкодром, который никому не нужен, кроме первых опытов с WiFi для детей? Другого то рынка сбыта их "продукции" нет.
 

aloika

Active member
Либо реально периодическая перезагрузка, либо что-то не так с переменной uptime.
Ну, или я что-то неправильно делаю.
Проект этот рабочий, и аптайм при благоприятных условиях годами сохраняется.
Нужно смотреть:

1) схему
2) питание

Также при некоторых внешних условиях (наличие рядом некоторых других модулей/точек доступа) может наблюдаться нестабильная работа. Из таких роутеров - Tenda (как минимум модель MW3).

Лучше берите проект на RTL8710, он в этом плане стабильнее.
 

Alexander

Member
Лучше берите проект на RTL8710, он в этом плане стабильнее.
В смысле перейти на RTL8710?
Я пока решил вот как поступить. Сделаю всё критичное на старой доброй ATmega 32, там и с портами нет напряга, а на ESP8266 только связь с внешним миром.
Были мысли вообще отказаться от ESP8266 в пользу NRF24L01+, но пока не решился по 2 причинам:
1. лень городить огород с адресацией, когда устройств более 6;
2. для датчиков хорошо, для устройства, которое может оказаться автономно работающим - плохо.
По п.2 я вот что имею в виду. Как пример, у меня есть тестер аккумуляторов. Сейчас решил собрать новую версию. Работает устройство длительно - проведение КТЦ и возможно не 1 раз. Нужно настроить программу испытаний, присматривать иногда за процессом и логировать данные. Сейчас это сделано при помощи кнопок, LCD от Nokia 1100 и USB<->UART. Вот это все стоит заметно дороже TSP8266, я по старости лет ничерта не вижу на LCD от Nokia 1100 даже в очках, пользуюсь лупой. Да еще провода нужно тягать и для посмотреть идти к устройству. Вот и решил для таких целей использовать ESP8266. Хотел сначала и логику на ней сделать, да ну его ... с такой стабильностью.
Что касается схемы и питания... Ну, не знаю. Сейчас кроме подтяжки на RESET, CH_PD, GPIO0, GPIO2 и GPIO15, поставил емкости на RESET, CH_PD и ADC. Посмотрю, как будет себя вести.
О! пока писал сообщение, модуль снова ресетнулся после примерно 1:08:00 работы. Не знаю сколько точно.
 

Alexander

Member
На главной странице web-а отображается время последнего старта.
oops. вот этот момент я упустил. Сейчас не трогая само устройство перезагрузил стандартный webfiles.bin и увидел "PowerStartTime: 07.01.2020 19:23:13" Получается, что переменная uptime сбрасывается по непонятной причине. Надо будет посмотреть.
 

Alexander

Member
Да, вот еще. Может кто подскажет, как организовать запись и чтение web переменных по uart?
 

aloika

Active member
Что касается схемы и питания... Ну, не знаю. Сейчас кроме подтяжки на RESET, CH_PD, GPIO0, GPIO2 и GPIO15, поставил емкости на RESET, CH_PD и ADC. Посмотрю, как будет себя вести.
upload_2020-1-7_22-55-43.png
Вот примерно такая схема должна быть в плане подтяжек и обвязки... это кусок моей схемы, вниз пошло на uart к другому МК.
 

aloika

Active member
В смысле перейти на RTL8710?
ESP8266 устарело и вроде как там есть проблемы со стабильностью. RTL8710 более новый и главное, к нему у pvvx тоже есть аналогичная "свалка". "Свалка" вполне рабочая и стабильная. Кроме того, "свалка" для RTL сделана на основе SDK на RTOS (в отличие от "свалки" для ESP8266). Опять же обвязки для RTL нужно гораздо меньше. Также там в SDK есть элементарные примеры, в том числе и по работе с UART.

Да, вот еще. Может кто подскажет, как организовать запись и чтение web переменных по uart?
Читайте, понимайте web_int_vars.c и web_int_callbacks.c . Далее, разбирайтесь, как принимать/отправлять данные UART. Принимаете определенную последовательность в UART - изменяете нужную переменную. Изменили переменную в веб - отправляете какую-нибудь последовательность в UART.

Но опять же, не мучайтесь с ESP, берите RTL сразу. Там проще и логичнее это всё, в свалке для ESP полно какой-то магии, которую только pvvx понимает.
 
Сверху Снизу