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

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

pvvx

Активный участник сообщества
Все, теперь все ясно стало. Спасибо.
webpages.espfs = 41376 байт
Эти же кошки в WEBFiles.bin = 41472 байта и никаких тормозов и тяжелых "сжимателей", без возможности дальнейшего изменения файловой системы.
Элементарный расчет говорит - программа распаковщика в esphttpd займет в малой flash больше, чем отъест увеличение диска без сжатия. В итоге в esphttpd места под диск с flash в 512к меньше. Мы тут "фичи" не делаем - это свойственно амерам и западенцам... :) У нас лень - матушка, а если рак свистнет - то сожмем на полную :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Проверка подачи запроса web-серверу разбитого на 12 кусков :)
 

Andy Korg

Moderator
Команда форума
Уважаемый pvvx подскажите пожалуйста за какие грехи функция int atoi(const char *nptr); попала в "espmissingincludes.h"? Лучше свое что-то использовать?
 

pvvx

Активный участник сообщества
Уважаемый pvvx подскажите пожалуйста за какие грехи функция int atoi(const char *nptr); попала в "espmissingincludes.h"? Лучше свое что-то использовать?
За не стыковку объявления - const char.
Там вообще бардак с объявлениями отсутствующих в *.h SDK функциях. Всё раскидано в разных файлах...
"espmissingincludes.h" - это выдрано из какого-то чужого проекта. А мне лень всё самому описывать.
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
pvvx поясни пожалуйста по русски как считается хэш в в PVFS, а то другу не понятно как это делается
 

pvvx

Активный участник сообщества
pvvx поясни пожалуйста по русски как считается хэш в в PVFS, а то другу не понятно как это делается
В коде workspace\Web_base\app\web\WEBFS1.c
Код:
    uint16 nameHash = 0;
    uint8 *ptr; // указатель на имя файла
    // Calculate the name hash to speed up searching
    for(nameHash = 0, ptr = cFile; *ptr != '\0'; ptr++)
    {
        nameHash += *ptr;
        nameHash <<= 1;
        len++;
    }
В Visual Studio:
Код:
        public UInt16 nameHash;

        public String FileName
        {
            get { return this.fileName; }
            set
            {
                this.fileName = value;
                if(value == "")
                    this.nameHash = 0xffff;
                else
                {
                    this.nameHash = 0;
                    foreach (byte b in value)
                    {
                        nameHash += b;
                        nameHash <<= 1;
                    }
                }
            }
        }
JAVA:
Код:
    public int nameHash;
    public void SetFileName(String value)
    {
        this.fileName = value;
        if(value.compareTo("")==0)
            this.nameHash = 0xffff;
        else
        {
            this.nameHash = 0;
            for(byte b : value.getBytes())
            {
                nameHash += b;
                nameHash <<= 1;
            }
        }
        //System.out.println ("Vlaue : " + value + "nameHash  "+String.format("%x",nameHash));
    }
Есть исходники в Microchip\mla\v2014_07_22\framework\tcpip\utilities\mpfs2 на Java. Их надо немного покоцать :)
http://www.microchip.com/pagehandler/en-us/devtools/mla/home.html
Тут http://www.usriot.com/Product/84.html -> Customzied Webpage - WIFI Module Low Power вообще сжатия и т.д. не используют.
 
Последнее редактирование:

Serjkruch

New member
Добрый день.
Подскажите пожалуйста, я скачал с первой странице Web_base но при загрузке в ESP возникает ошибка:

mingw32-make.exe -f C:/Espressif/examples/Web_base/Makefile FlashAll
C:/Python27/python.exe c:/Espressif/utils/esptool.py -p COM4 -b 115200 write_flash -ff 80m -fm qio -fs 4m 0x00000 ./bin/0x00000.bin 0x0A000 ./webbin/WEBFiles.bin 0x40000 ./bin/0x40000.bin 0x79000 ./bin/clear_eep.bin 0x7C000 ./bin/esp_init_data_default.bin 0x7E000 ./bin/blank.bin
C:/Espressif/examples/Web_base/Makefile:135: recipe for target 'FlashAll' failed
process_begin: CreateProcess(NULL, C:/Python27/python.exe c:/Espressif/utils/esptool.py -p COM4 -b 115200 write_flash -ff 80m -fm qio -fs 4m 0x00000 ./bin/0x00000.bin 0x0A000 ./webbin/WEBFiles.bin 0x40000 ./bin/0x40000.bin 0x79000 ./bin/clear_eep.bin 0x7C000 ./bin/esp_init_data_default.bin 0x7E000 ./bin/blank.bin, ...) failed.
make (e=2): Не удается найти указанный файл.

mingw32-make.exe: *** [FlashAll] Error 2

Оказывается это иправляется в Makefile
ESPTOOL ?= $(SDK_TOOLS)/esptool
#ESPTOOL ?= C:/Python27/python.exe $(SDK_TOOLS)/esptool.py
 
Последнее редактирование:

pvvx

Активный участник сообщества
Исходники (указание на первой странице) обновлены. Теперь они совместимы с
Прошивка TCP2UART переходника с настройкой по Web
Основные отличия:
1) Символ разделителя у переменных. Была точка, стало подчеркивание.
2) Дополнено вызовом функций по концу передачи страницы. Необходимо для настроек использующих перезагрузку или смену параметров соединения. Иначе при отработке таких функций передача страницы прерывается и эксплорер вечно ожидает...

Текущие проблемс на всех стандартных модулях:
CH_PD выключает встроенный стабилизатор питания (1В) потрохов чипа и все настройки в RTC RAM улетают - нога питания RTC не выведена. Это не дает возможности правильно использовать многие режимы малого потребления.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
нога питания RTC не выведена
А кто-нибудь вообще проверял эту ногу? Да, я знаю, что она нигде пока толком не выведена из доступных модулей. Но подпаяться ведь можно, как народ подпаивался для увеличения кол-ва пинов. У кого глаз зоркий и рука верная? :)
Просто меня терзают смутные сомнения, что оно вообще работает. В доках видел, что на этом пине значится NC - Not Connect... Потому его и не выводят, думаю...
 

pvvx

Активный участник сообщества
А кто-нибудь вообще проверял эту ногу? Да, я знаю, что она нигде пока толком не выведена из доступных модулей. Но подпаяться ведь можно, как народ подпаивался для увеличения кол-ва пинов. У кого глаз зоркий и рука верная? :)
Просто меня терзают смутные сомнения, что оно вообще работает. В доках видел, что на этом пине значится NC - Not Connect... Потому его и не выводят, думаю...
Плохо думаете: http://wiki.in-circuit.de/images/e/eb/610000292A_handout.pdf , уже указывал в http://esp8266.ru/forum/threads/arduino-5v-i-pravilnoe-podkljuchenie.88/page-5#post-2541
----------
И вернемся к потреблению при соединении модуля к AP (ASUS RT-N56U), модуль в режиме STATION и никаких обращений к модулю не производится (обстановка вокруг - десятки станций WiFi и устройств :) ).
SDK 0.9.6b1, ESP-01 cо светодиодом в питании, Flash W25Q128FV, QSPI 80MHz (2 такта CS, вместо 7 в стандарте), CPU 160MHz:
Power_ST_CPU160MHz.gif
Частичные объяснения http://bbs.espressif.com/viewtopic.php?f=7&t=171
 
Последнее редактирование:

JustACat

Moderator
Команда форума
pvvx, да, я это видел и читал, стараюсь ваши сообщения все читать по возможности :)
Но я спрашивал именно: проверял ли кто-нибудь это реально. Подтверждения есть, что оно работает?
А то так: ну вывели на каком-то сферическом модуле в вакууме, а оно может и без толку...
Я бы проверил, но у меня: а) модули под шилдами все, но даже если я отковыряю один: б) я тупо не смогу со своим зрением такое запаять :( Просто испорчу модуль и все...
 

pvvx

Активный участник сообщества
pvvx, да, я это видел и читал, стараюсь ваши сообщения все читать по возможности :)
Но я спрашивал именно: проверял ли кто-нибудь это реально. Подтверждения есть, что оно работает?
А то так: ну вывели на каком-то сферическом модуле в вакууме, а оно может и без толку...
Я бы проверил, но у меня: а) модули под шилдами все, но даже если я отковыряю один: б) я тупо не смогу со своим зрением такое запаять :( Просто испорчу модуль и все...
Конкретно же написал - при активации ноги CH_PD питание в модуле вырубается и соответственно выключается RTC (часики то-биш), а в них настройки как и что делать после просыпания, а так-же и таймер, который перезапускает модуль после deep-sleep.
В других модулях эта нога не выведена и причина указана тоже - это китай-маркетинг, чтобы продать старые партии кривых чипов. Купив первый модуль, с выведенными 4-мя ногами, вы поймете сто нужен другой - с больше выведенных ног и купите его. Так окупают свою разработку чипа китайцы. А указанный модуль - это от немцев. Они такой маркетинг не строят и делают сразу полноценно :p. А вышел он недавно - по причине, что сертификацию они прошли своих модулей менее месяца назад.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
pvvx, я может вас в чем-то не понимаю, согласен. Но я что имею ввиду: а если мы на ногу VDD-RTC подадим питание (с батарейки, например, часовой), тогда RTC продолжит работать (независимо от CH_PD и вообще общего питания)? Вот это конкретно кто-нибудь проверил физически, не теоретически?
 

pvvx

Активный участник сообщества
pvvx, я может вас в чем-то не понимаю, согласен. Но я что имею ввиду: а если мы на ногу VDD-RTC подадим питание (с батарейки, например, часовой), тогда RTC продолжит работать (независимо от CH_PD и вообще общего питания)? Вот это конкретно кто-нибудь проверил физически, не теоретически?
Возьмите и проверьте. Если это не работает, то весь SDK на свалку, т.к. там именно так задействовано RTC и его память. Есть только условие, что чипы данной ревизии имеют ошибку или недоработку с этим выводом... Иначе бы данные из RTC RAM в SDK писали бы в Flash.
----
Продолжение про режимы WiFi-sleep:
Свежевынутый из пакетика ESP-01:
Power_ST_CPU160MHz_GD.gif
Все условия как описано ранее, кроме flash: SDK 0.9.6b1, ESP-01 cо светодиодом в питании, Flash GD25Q40, QSPI 80MHz (2 такта CS, вместо 7 в стандарте), CPU 160MHz
Выбирал наименьшие по показаниям куски. В режимах включенного sleep всё зависит от обстановки в эфире.

Тест со стандартным конфигом: SDK 0.9.6b1, ESP-01 cо светодиодом в питании, Flash GD25Q40, QSPI 80MHz (7 тактов CS), CPU 80MHz:
Power_ST_standard_GD.gif
Снято позже - народ угомонился и WiFi обстановка стала чище :)
Итого - 80/160MHz на потребление в режиме ожидания не влияет. Влияет только тип flash.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Но я что имею ввиду: а если мы на ногу VDD-RTC подадим питание (с батарейки, например, часовой), тогда RTC продолжит работать (независимо от CH_PD и вообще общего питания)? Вот это конкретно кто-нибудь проверил физически, не теоретически?
Не прошло и года, как никто не проверял :)

Припаял провод к ножке 5 чипа ESP8266EX на модуле ESP-01.
Cделал такие замеры:

Ток и напряжение на VCC_RTC при отключенном питании у модуля:

5 uA при 850mV
7 uA при 950mV
15 uA при 1.2V


Ток на VCC_RTC при включенном питании на модуле:

32 uA при 1.2V (!)

Далее взял севшую батарейку AG13 (LR44) выдающую 1.25V на сопротивление тестера и сделал такие замеры:

Через диод КД521A, при выключенном питании модуля, от этой батарейки, на ноге VCC_RTC выходит ~0.9V, ток ~6 uA. При включенном питании модуля на VCC_RTC 1.09 V, ток от дохлой батарейки менее 0.005 nA (прибор показывает 0000.00 uA), напряжение на ножке ~1.08..1.09 V (скачет от помех на проводки).

Пробная запись в память RTC с последующими отключениями/включениями питания не стирается - всё Ok.

Элемент AG13 (LR44) рассчитан на 3 года предельного хранения. В начале имеет емкость 100..150 мА/ч - выходит, что он проработает на выключенном ESP8266 через диод именно эти 3 года.
Любимые в народе RTC PCF8583 (самые 'жручие' из известных мне) жрут аналогично - 2..10 uA при 1В ('даташит'). Но я паял провод к выводу VCC_RTC очень грязно и не мыл - может будет меньше, если всё сделать аккуратно...

ЗЫ: Когда кто что сам проверит на этом ESP 8266 ? :)
 
Последнее редактирование:

windalser

New member
Интересно, что за прибор позволяет снимать графики потребления?
По поводу потребления - в режиме light sleep mode средний ток великоват получается. Согласно http://bbs.espressif.com/viewtopic.php?f=7&t=171 он должен бы быть на порядок меньше..
Интересен был бы более детальный график - с разверткой не более 1 секунды.
---------------
По поводу самого сервера - никак не удается сконфигурировать SoftAP в режиме Auth Mode - любом не OPEN.
Захожу браузером с планшета.
 

pvvx

Активный участник сообщества
Интересно, что за прибор позволяет снимать графики потребления?
2 опторазвязанных синхронизированных AD7793 (24 бита НЧ ADC) показывающих напряжение и ток (напряжение на резисторе :) ) с БП с одинаковыми аналоговыми фильтрами и временной цепочкой. Калиброванных на ГОСТ-овском приборе в 4 знака по абсолюту (остальное - дифференциальное).
По поводу потребления - в режиме light sleep mode средний ток великоват получается. Согласно http://bbs.espressif.com/viewtopic.php?f=7&t=171 он должен бы быть на порядок меньше..
Интересен был бы более детальный график - с разверткой не более 1 секунды.
А нафиг она, если там стоят электролиты по питанию + стабилизатор напряжения 3.3V (кушающий до 10uA) ?
Об этом можно было догадаться по графику - там при низком токе видны огибающие...
Обычно интересен средний ток, а не пиковый.
Я не верю Espressif - ни одно сказанное ими ни разу не было правдой.
По поводу самого сервера - никак не удается сконфигурировать SoftAP в режиме Auth Mode - любом не OPEN.
Захожу браузером с планшета.
В последней выложенной версии есть дцать ошибок в HTML :) В версии для TCP2UART их меньше.
Слишком невнимательно переправлял базовый вариант на новый лад и это не обсуждается, т.к:
1) Исходники станиц к Web библиотеке примеров на CИ не имеют никакого отношения.
2) Это не готовый проект для игры.
3) Никто не дал другого варианта HTML и пока не хочет.
По мере собственных тестов подправлю :)
Поглядел - это прикольная ошибка не связана с HTML, а связана с SDK 0.9.6b1
SDK сообщает по каналу Station об AP:
apaut096b1.gif
Что типа всё Ok, но зайти на AP невозможно, если режим не OPEN...
Только если это первая загрузка с чиcтой flash (чистыми настройками WiFi у SDK) в самый первый раз установить режим отличный от OPEN - тогда тогда работает.
Поищу методу обхода очередного привета от Espressif... Напишу и сменю прошивку, как найду методу...
 
Последнее редактирование:

windalser

New member
спасибо pvvx - попробую :)
----
По поводу проблем с Espressif и потреблением в режиме lite sleep.
Подозреваю, что сам чип сделан на достаточно высоком уровне, его потенциал высок.
Все проблемы связаны с его программным обеспечением. Они просто не могут сделать качественно сложный продукт.
Допускаю, что они часто указывают потенциальные характеристики на сам чип, возможно они правдивы.
А вот выжать эти характеристики через прошивку нормально не могут, или пока не могут.

В режиме STATION после установки соединения с AP и включенном режиме lite sleep в случае отсутствия задач (состояние idle)
тактирование процессора и RF приемник включаются на короткое время (порядка 3 милисекунд) и затем оключаются на
DTIM beacon-интервал, задаваемый в настройках AP (100 ms, например). В таком состоянии спячки модуль должен потреблять
меньше одного милиампера (если отрезать красный светодиод).
По идее, можно было бы добиться среднего потребления менее 2 мА при DTIM3.
На практике средний ток гораздо больше по непонятной мне причине :(
 
Сверху Снизу