Скрыть объявление
Управляйте вашими ESP8266 и другими устройствами прямо с телефона из любой точки мира, где есть интернет!
Подробности и обсуждение IoT Manager в этой теме. Официальный сайт приложения и документация IoTmanager.ru
Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

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

  1. aloika

    aloika Читатель

    Сообщения:
    290
    Симпатии:
    21
    Да. В этом дело и было. Вот я стормозил-то :)
    Спасибо :)
     
  2. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    Это нормально или нет?
    free_test_(2015-10-03_t23-13-31.713183).gif
    Синяя - время загрузки страницы
    Зеленая - Кол-во одновременных сессий (больше 25 без регистрации вроде не хочет)
    Тест Web-свалки на ESP8266 как есть в https://loadimpact.com/
    https://app.loadimpact.com/load-test/54eea43f-21d0-42be-810f-31bad61b3351

    Как в JMeter задать, чтобы он просто подсчитал максимальное кол-во открытий HTTP файлов в секунду при среднем тормозе до заданных ms?
    А то пишет какую-то фигню:
    Задал: Number of Threads: 40, Ramp-up Period: 5, Loop Count: 30, Server: aesp8266 port: 80 path: /heap.xml
    Получил:
    Jmeter38.gif Jmeter39.gif
    Говорит странную цифру - 228 в секунду.... Лог в UART на 3Mbit/s тормозит процесс, но если с ним то там:
    Код (Text):
    1.  
    2. 5:04:20.068> srv[80] 192.168.4.2:58802 [60] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    3. 5:04:20.068> srv[80] 192.168.4.2:58803 [60] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    4. 5:04:20.068> srv[80] 192.168.4.2:58744 [60] disconnect
    5. 5:04:20.068> srv[80] 192.168.4.2:58804 [60] listen
    6. 5:04:20.068> srv[80] 192.168.4.2:58804 [60] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    7. 5:04:20.068> srv[80] 192.168.4.2:58745 [60] disconnect
    8. 5:04:20.068> srv[80] 192.168.4.2:58805 [60] listen
    9. 5:04:20.068> srv[80] 192.168.4.2:58805 [60] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    10. 5:04:20.068> srv[80] 192.168.4.2:58746 [60] disconnect
    11. 5:04:20.068> srv[80] 192.168.4.2:58806 [60] listen
    12. 5:04:20.068> srv[80] 192.168.4.2:58806 [60] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    13. 5:04:20.068> srv[80] 192.168.4.2:58807 [61] listen
    14. 5:04:20.068> srv[80] 192.168.4.2:58807 [61] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    15. 5:04:20.068> srv[80] 192.168.4.2:58747 [61] disconnect
    16. 5:04:20.068> srv[80] 192.168.4.2:58808 [61] listen
    17. 5:04:20.068> srv[80] 192.168.4.2:58808 [61] read: 109 of1[heap.xml] GET f[/heap.xml] head[200]:200 send: cf1 63 dis
    доходит до 63-х одновременно открытых соединений...:eek:
    При этом 'heap' падает до 31 кило в пределе во время теста JMeter:
    Jmeter41.gif
     
    Последнее редактирование: 4 окт 2015
  3. waskez

    waskez Новичок

    Сообщения:
    18
    Симпатии:
    3
    Здравствуйте, pvvx
    Хочу на базе Вашего MinEspSDKLib сделать MQTT клиент. Никак не могу разобраться с вашим кодом (в C не силен) - как сделать tcp клиент.
    Нужен пример простейшего tcp клиента (STATION_MODE), пожалуйста ...
     
    Последнее редактирование: 9 окт 2015
  4. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    7
    waskez, если вы хотите что-то менять в проекте, это предполагает знание языка С, иначе как вы разберётесь в функциях, которые там описаны? Пример tcp-клиента есть в файле tcp2uart.c
     
  5. waskez

    waskez Новичок

    Сообщения:
    18
    Симпатии:
    3
    Спасибо. Буду разбираться…
     
  6. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    Пример работы примера Modbus TCP в Web-свалке, чтение ADC в Exel:
     
  7. FGX

    FGX Читатель

    Сообщения:
    95
    Симпатии:
    8
    Добрый день. Что-то не работает прошивка esp8266web-0.4.8c на ESP8266 12-F, пишет только Built-in Web server © на странице 192.168.1.4 Пришлось в исходнике свою станцию прописать и залить диск через WEBFS22.exe, а fullflash_web048.bin не работает.

    Ну и собственно где посмотреть сколько памяти в ESP8266 12-F чтобы не снимать железную крышку?
     
    Последнее редактирование: 10 окт 2015
  8. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    На flash более 512к диск заливается через http://192.168.4.1/fsupload или WEBFS22.exe, т.к. не все программаторы могут определить тип flash и менять адреса заливки...
     
  9. FGX

    FGX Читатель

    Сообщения:
    95
    Симпатии:
    8
    Ну я так и подумал, в принципе не проблема в исходниках прописать авто подключение в AP и свой пароль. Объем я нашел кстати, 4096 кб за туже цену + IO09, 10 что не плохо.
     
  10. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    GPIO9 и 10 плохо. Это значит, что Flash работает в DIO, в 2 раза медленнее и производительность CPU падает. А её и так не хватает на 802.11n.
     
  11. FGX

    FGX Читатель

    Сообщения:
    95
    Симпатии:
    8
    Ну то что они выведены не говорит о том что они не подключены к фешке внутренней, т.к. выведены еще и CS0, SCLK, MOSI, MISO, GPIO09, GPIO10 и все это обведено и подписано как QIO L4, скорее всего просто выведены все выходы флешки, чтобы можно было свою поставить снаруже или еще для каких то извращений.
     
  12. Zanuda

    Zanuda Новичок

    Сообщения:
    9
    Симпатии:
    1
    esp-12q разводка такая: gpio10-3flash-19esp, gpio9-7flash-18esp. флешка BergMicro 25Q32ASSIS.Значит работает в QSPI режиме?
     
  13. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    Нет никакого смысла ставить внешнюю Flash. 16 Мегабайтной хватает на большинство запросов по большой памяти для данных. Использовать эти выводы одновременно для работы с SD картой не очень хорошо - в итоге других их применений нет.
    Тем более контроллер SD не описан китайцами - область SDIO = 256 байт в 0x60000A00.
    Espressif скорее всего не имеет документации на чип (по аналогии с другими частями ESP8266), или контроллер SDIO имеет ошибки...
     
    Последнее редактирование: 11 окт 2015
  14. FGX

    FGX Читатель

    Сообщения:
    95
    Симпатии:
    8
    Ну и Бог с ним есть выводы и есть, кушать они не просят. Памяти зато сразу 4096 кб в отличии от ESP07 и просто 12, у других не знаю. Так что модуль не плохой и через прошивальщик было выставлено QDIO и он прошился так что флешка нормально там подключена.
    Я забыл и не могу найти сколько байт нужно отправить по уарту чтобы ESP не выжидал таймаут? А то есть задержки, мелкие, пакеты по 512 байт, битрейт 4 000 000, большие паузы это мои паузы а мелких быть в идеале не должно.
    https://www.dropbox.com/s/ynvl67lx0a975gx/Скриншот 2015-10-11 12.19.32.png?dl=0
     
  15. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    http://esp8266.ru/forum/threads/pro...nika-s-nastrojkoj-po-web.146/page-5#post-3355
    + При обычном соединении WiFi и передаче файлов по TCP часто идет задержка* в 120..162 us при CLK CPU на 80 MHz, что для CLK CPU на 160 Mhz соответственно в 2 раза меньше.
    http://esp8266.ru/forum/threads/modbus-rtu-rs-485.529/#post-9891
    * Задержка с запретом прерываний на обслуживание WiFi у китайцев.
     
    Последнее редактирование: 11 окт 2015
  16. FGX

    FGX Читатель

    Сообщения:
    95
    Симпатии:
    8
    Там сказано "внутренний буфер на 384 байта в FT2232С", а меня интересует предпочтение самого ESP8266 его входного буфера уарта и буфера отправки вайфая, методом научного тыка 1024 байта для него много т.к. есть затыки в процессе передачи, 256 уже реже 1-2 затыка на пакет через 2-5 пакетов, 128 байт, разницы нет. Но если известен приемный буфер ESP8266 то луше же отправлять разом как раз столько сколько в него лезет а потом давать паузу переварить.

    Итак хорошо работает, разогнал на скорости 4000000 до 320 кбайт в секунду, проходит практически без пауз между пакетами, но иногда он на 0,5 мс запинается, выставляя RTS. Данные доходят, все красиво. Скриншот 2015-10-11 14.27.07 1.png Скриншот 2015-10-11 14.26.13.png
     
    Последнее редактирование: 11 окт 2015
  17. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    Кратно TCP_MSS - это [HASHTAG]#define[/HASHTAG] TCP_MSS 1460 в lwipopts.h
    И надо успевать дать 2 шт MSS до передачи следующей партии. Иначе будет задержка у приемника отправки ACK на 200 ms.
    Буфер передачи задан в tcp_srv_conn.h
    [HASHTAG]#define[/HASHTAG] TCP_SRV_SERVER_DEF_TXBUF (TCP_MSS*3)
    Начальный буфер приема (он может увеличиваться на ходу):
    [HASHTAG]#define[/HASHTAG] TCP_SRV_SERVER_MAX_RXBUF (TCP_MSS*3)
    Т.е. размер приемного буфера даже не используется в TCP2UART, а используется ограничение у LwIP по закрытию приемного окна (размер TCP стека). Иногда достигает и более 8 килобайт (9349), но в пределе.
     
    Последнее редактирование: 11 окт 2015
  18. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    7
    Решается в итоге просто, вот пример. Работает на последних Firefox и Opera, в Chrome не хочет)
    <a href="/protect/fullflash.bin" download="~hellomsg~">Download fullflash.bin</a>
     
  19. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048
    Так всё-же как сделать чтобы имя скачиваемого файла можно было задавать в javasript? Простой пример есть?
    ----
    Кто нибудь проверял Modbus TCP в Web-свалке? Потыкался, вроде работает то что вставил в шапку темы Прошивка TCP2UART переходника с настройкой по Web :
    Для GPIO, ADC, VDD-ADC есть доступ и через Modbus TCP (порт 502). Краткое описание переменных в ReadMe.txt вложенном в архив (дубль тут)

    Для доступа из WEB к полям Modbus назначены такие переменные:
    ~mdbwuNNN~ - чтение word unsigned, NNN - номер ячейки
    ~mdbwsNNN~ - чтение word signed, NNN - номер ячейки
    ~mdbduNNN~ - чтение dword unsigned, NNN - номер ячейки
    ~mdbdsNNN~ - чтение dword signed, NNN - номер ячейки
    mdbwNNN=XXX - запись XXX word значения (dec или hex) в ячейку c номером NNN
    mdbdNNN=XXX - запись XXX dword значения (dec или hex) в ячейку c номером NNN
     
    Последнее редактирование: 14 окт 2015
  20. pvvx

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

    Сообщения:
    6.041
    Симпатии:
    1.048

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