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

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

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

  1. pvvx

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

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Проверка подачи запроса web-серверу разбитого на 12 кусков :)
     
  3. Andy Korg

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

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    За не стыковку объявления - const char.
    Там вообще бардак с объявлениями отсутствующих в *.h SDK функциях. Всё раскидано в разных файлах...
    "espmissingincludes.h" - это выдрано из какого-то чужого проекта. А мне лень всё самому описывать.
     
    Последнее редактирование: 5 мар 2015
  5. CHERTS

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

    Сообщения:
    483
    Симпатии:
    108
    pvvx поясни пожалуйста по русски как считается хэш в в PVFS, а то другу не понятно как это делается
     
  6. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    В коде workspace\Web_base\app\web\WEBFS1.c
    Код (Text):
    1.  
    2.     uint16 nameHash = 0;
    3.     uint8 *ptr; // указатель на имя файла
    4.     // Calculate the name hash to speed up searching
    5.     for(nameHash = 0, ptr = cFile; *ptr != '\0'; ptr++)
    6.     {
    7.         nameHash += *ptr;
    8.         nameHash <<= 1;
    9.         len++;
    10.     }
    11.  
    В Visual Studio:
    Код (Text):
    1.  
    2.         public UInt16 nameHash;
    3.  
    4.         public String FileName
    5.         {
    6.             get { return this.fileName; }
    7.             set
    8.             {
    9.                 this.fileName = value;
    10.                 if(value == "")
    11.                     this.nameHash = 0xffff;
    12.                 else
    13.                 {
    14.                     this.nameHash = 0;
    15.                     foreach (byte b in value)
    16.                     {
    17.                         nameHash += b;
    18.                         nameHash <<= 1;
    19.                     }
    20.                 }
    21.             }
    22.         }
    23.  
    JAVA:
    Код (Text):
    1.  
    2.     public int nameHash;
    3.     public void SetFileName(String value)
    4.     {
    5.         this.fileName = value;
    6.         if(value.compareTo("")==0)
    7.             this.nameHash = 0xffff;
    8.         else
    9.         {
    10.             this.nameHash = 0;
    11.             for(byte b : value.getBytes())
    12.             {
    13.                 nameHash += b;
    14.                 nameHash <<= 1;
    15.             }
    16.         }
    17.         //System.out.println ("Vlaue : " + value + "nameHash  "+String.format("%x",nameHash));
    18.     }
    19.  
    Есть исходники в 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 вообще сжатия и т.д. не используют.
     
    Последнее редактирование: 5 мар 2015
  7. Serjkruch

    Serjkruch Новичок

    Сообщения:
    18
    Симпатии:
    0
    Добрый день.
    Подскажите пожалуйста, я скачал с первой странице 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
     
    Последнее редактирование: 12 мар 2015
  8. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    esptool с ошибкой, а esptool.py у меня переписанный, по тому так. Всё сказано в теме про UDK.
     
  9. pvvx

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

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

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

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

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Плохо думаете: 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
     
    Последнее редактирование: 15 мар 2015
  12. JustACat

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

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

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

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

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

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Возьмите и проверьте. Если это не работает, то весь 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.
     
    Последнее редактирование: 15 мар 2015
  16. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    Не прошло и года, как никто не проверял :)

    Припаял провод к ножке 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 ? :)
     
    Последнее редактирование: 21 апр 2015
    Makc1806, Andy Korg, windalser и ещё 1-му нравится это.
  17. windalser

    windalser Новичок

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

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    2 опторазвязанных синхронизированных AD7793 (24 бита НЧ ADC) показывающих напряжение и ток (напряжение на резисторе :) ) с БП с одинаковыми аналоговыми фильтрами и временной цепочкой. Калиброванных на ГОСТ-овском приборе в 4 знака по абсолюту (остальное - дифференциальное).
    А нафиг она, если там стоят электролиты по питанию + стабилизатор напряжения 3.3V (кушающий до 10uA) ?
    Об этом можно было догадаться по графику - там при низком токе видны огибающие...
    Обычно интересен средний ток, а не пиковый.
    Я не верю Espressif - ни одно сказанное ими ни разу не было правдой.
    В последней выложенной версии есть дцать ошибок в 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... Напишу и сменю прошивку, как найду методу...
     
    Последнее редактирование: 16 мар 2015
  19. pvvx

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

    Сообщения:
    10.162
    Симпатии:
    1.347
    windalser - Всё починено и перезалито.
     
    windalser нравится это.
  20. windalser

    windalser Новичок

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

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

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