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

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

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

  1. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    На экране Samsung Note 4 (в примере выше) 1440x2560 точек, я развернул, а то всё в углу :( У следующих в два раза больше точек, а у предыдущих на много меньше. Есть какое-то стандартное решение, чтобы сразу вписать в экран?
     
  2. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Есть, указывать относительные размеры в % либо в em. (а не абсолютные).
    ... но я сюда не лезу, пусть профи занимаются....
     
  3. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Ну: width: 100% (для html, body и таблиц)
    Еще можно размеры шрифтов в % опять же задать.
    И еще... (раскрыть)
    К слову сказать, на мобильных устройствах многое от браузера зависит, и даже от настроек браузера (в Chrome, например, галочка есть: Полная версия - которая типа переключает вид с мобильной версии на десктопную). Одно точно скажу: разрешение экрана мобильник напрямую с разрешением viewport'а в браузере на мобильнике далеко не всегда связано.
    Если бы это было так, то представьте, какими бы вы видели сайты на разрешении в 2560 пикселей, если большинство из них сейчас даже под 1920-то не оптимизированы...

    Вообще делать верстку, которая под любые разрешения катит - это то еще занятие :)
    Обычно формируют несколько css файлов стилей, которые подключаются в зависимости от того, какой у клиента браузер/разрешение/ориентация, ну и в этих стилях уже меняется все, вплоть до расположения блоков относительно друг друга (если кончено верстка блочная, а не табличная).
    У такого подхода один плюс большой: в портретной ориентации, например, размещаем блок настроек 1 над блоком настроек 2, а в ландшафтной размещаем эти же 2 блока в одну строку, по пол экрана - это я так, приблизительно. А то если просто размеры менять - это не всегда адекватно в итоге смотрится...

    Но как вариант - все делать через %. И картинки, и размеры блоков, и размеры шрифтов. Так можно добиться почти одинакового отображения сайта на любых разрешениях. Сейчас как раз один такой проект делаем, масштабируется там практически все. Но при этом приходится все задавать в %, все размеры. И все это дело высчитывать, чтобы смотрелось как надо.
     
  4. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Всё гораздо проще - народу нужна одна большая кнопка с рисунком лампочки на весь экран и вкл/выкл её. Этим проектом заканчивается 90% использования ESP8266 :)
    Прошили такой программой, помигали светодиодиком с мобилы и положи модуль "на полку"... :)
     
  5. Andy Korg

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

    Сообщения:
    416
    Симпатии:
    76
    фиг его знает. У меня пока расширение проектов по принципу МК+esp. Ваша "свалка" как раз в тему - большое спасибо!
    ПЫСЫ: Вот только смена разделителя с точки на подчеркивание сбило с панталыку немного.
     
  6. wifimifi

    wifimifi Новичок

    Сообщения:
    5
    Симпатии:
    0
    Спасибо PVVX и CHERTS, великолепная работа заслуживающая поощрения. Пока мало кто может это оценить, но это временно. PVVX, Вы сдержали слово не делать деньги на народных поделках и отдали все даром. Но лишний чип ведь не навредит, чтобы для развития проекта счет не открыть.
    Насчет надстроек согласен, но незначительные настройки не помешают, кто-то часы демонстрировал. Думаю проекту они бы не помешали, настройка времени - синхронизации по интернет, определение пина, времени включения и отключения. Ну, а если еще и небольшую базу задействовать с периодической записью переменной и выводом графика, например, датчика температуры.
    Такой небольшой функционал выведет WebBase за рамки прикладной программы исследования модуля, возможно понадобится ссылка на обновление прошивки.
     
    Последнее редактирование: 22 мар 2015
  7. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Цели были в другом. Чтобы показать, что более менее WEB может работать на ESP8266 и продемонстрировать это. В итоге все начальные цели выполнены, а я не программист - не умею писать красивые исходки и многое другое... и не хочу :)
    И уже устал повторять - каждый специализированный проект имеет свои задачи и под него как-то можно рассчитать использование памяти. А тут просто WEB сервер, который использует память по минимуму и никаких статических буферов не держит и годится для расширения под другие проекты. Для реализации того, что вы описываете, необходимы статические буфера и распределение памяти под нужды каждой задачи, что в других проектах не требуется. На этом и находится вилка и ограничения данной "свалки" как библиотеки. Проект для датчиков намечен и возможно будет позже, но он сюда не вписывается и является специализированным проектом с конкретной темой.
    Проект переходника TCP2UART уже выделен в отдельную тему и в скором будет отличаться от данной "свалки" именно по тому, что он будет использовать малую память ESP8266 только в своих нуждах. Одновременно запихать всё в малую память чипа невозможно. Или это будет убогая реализация. Используйте Lua :)
    Перечитайте первое сообщение темы - там всё указано :)

    ------
    В текущей версии 0.1.5 есть фича-бага - после смены SDK на 1.0.0 просмотрел - в данном SDK есть изменения с UART и плюс мои недоделки, сделанные для работы страницы GPIO. От всего этого начальные сообщения инициализации выводятся на неверной скорости и криво (первая половина). Но на дальнейшую работу это не влияет. Починю в следующей версии :)
     
    Последнее редактирование: 22 мар 2015
  8. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Algis - требуется ваша помощь в освоении странички CPIOx :)
    GPIO.gif
    На рисунок чипа с графиками сигналов у каждого вывода в adobe flash не претендую, но можно :)
    Там хочется указать ещё дополнительные столбцы, но css....
    Надо ещё добавить столбцы кнопок для притяжек PULLDOWN, PULLUP и возможно расписать названия функций (столбец Fun в таблице) с нормальными названиями функций, типа TX1, MISO,...
    Сейчас пользоваться этой таблицей не удобно. Кнопки сделал как было проще, в виде цветных точек :).
    Если вывод не используется в других задачах, тогда кнопочки хотя и переключают режим порта i/o, но в матрице чипа ESP8266 они включены к другим источникам.
    Чтобы заработал GPIO2 надо отключить вывод отладки в UART1 (debug) на другой странице.
    Чтобы заработали GPIO1,3,13,15 надо отключить TCP-UART на другой странице.
    Опрос и перерисовка состояния вывода назначена в 500 ms... Переключение со скоростью сети...
     
    Последнее редактирование: 23 мар 2015
  9. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Для данных целей можно использовать SVG-графику, имхо, в векторе что-то накидать проще, чем заморачиваться с flash.
    Вот тут есть статья на тему: http://habrahabr.ru/post/127994/ с примером интерактивной карты на SVG (демо).
    А что css?

    Я бы еще выровнял по центру значения в столбиках таблицы (это в css):
    td { text-align:center; }
    А может и не у всех (у столбца Pin выравнивание по левому краю - логично).
    td:first-child { text-align:left; }
    http://htmlbook.ru/css/cat/pseudoclass

    Вместо точек, имхо, лучше вставить чекбоксы: http://htmlbook.ru/html/input/type и http://htmlbook.ru/samhtml5/formy/flazhki - просто в них проще тыкать будет...
    Все таки лучше "Func" - понимаю, экономия пространства, но Fun - это забава, веселье :)
    Описание можно сделать во всплывашке: title="текст" - но тогда его не видно будет на мобильных устройствах, что не катит конечно...
    Можно сделать сами цифирьки в этом столбике ссылками куда-то, где как раз будет расписано, что это за функция такая (причем можно на стороннем вообще ресурсе, чтобы не тратит место на ESP).
    В идеале, наверное, разработать мелкие иконки, которые будут наглядно отображать функцию. Но это обычно трудоемко, если только где-то готовые свистнуть...

    Вооот, это я просто мыслями поделился, если не в тему - проигнорируйте :)
     
  10. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Это не для мобилок, а для теста и демо. И для fun :) Если бы вы знали, как это всё лепил задней ногой... Ну не охота делать HTML... Просто не интересно.
    Мне более интересно работает или нет PULLDOWN. Поиски ни к чему не привели. Тем буржуи по данному поводу наплодили, но ответов нет.

    Пока только смотрел скорость реакции ножки RESET по просыпанию от ноги GPIO16, управляемой RTC. Да и тема такая есть на http://www.esp8266.com/
    Но продублирую свои замеры для инфы, т.к. если на ней, на ноге reset, висит провод, то возможна реакция на мелкие ЭМИ, приводящая к сбросу чипа:
    deep_sleep_300Ohm.gif deep_sleep_300Ohm100nf.gif
    Это сигнал выхода чипа из режима deep_sleep, путем самосброса по таймеру из RTC ногой GPIO16. Т.е. скорость срабатывания reset менее пары наносекунд и любой импульс может приводить к пересбросу. На осцилле сигнал длиннее, т.к. щуп имеет емкость (16пФ + монтаж разъемов) и идет с GPIO16 через 300 Ом.
     
    Последнее редактирование: 23 мар 2015
  11. JustACat

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

    Сообщения:
    568
    Симпатии:
    121
    Понимаю, и ни в коем разе не настаиваю, просто привел кое-какие ссылки, если вдруг нужно будет, что мог...
    Оооо, даааа.... Реакция в виде рестарта по любому поводу - это то, чего я не раз хватал. Даже при подтянутом reset. Я где-то писал уже, просто подключаешь любой незаземленный кусок провода к общей с ESP земле, например, и тут же рестарт... В общем, очень ESP к этому делу чувствительны...
     
  12. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Это только хорошо.
    С ногой RESET это решается путем установки на неё малой емкости.
    Но есть ещё нога чип-селекта "CH_PD". В последних версиях SDK, включая 1.0.0, с ней происходят странные вещи. Т.е. задействовать её не выходит. После активации "CH_PD" модуль в больших случаях не работает и не запускается. Она стирает содержимое RTC, т.к. питание RTC на модулях идет в никуда и SDK не всегда стартует, а виснет (можете получить $200 у Espressif и ещё уменьшить объем памяти heap для приложений всем, от вставки ими очередного бездарного патча :)).
    До конкретной локализации и исправления этого бага ещё не докопался.
     
  13. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Подскажите, плз, почему при компиляции последней версии малого webсервера (0.1.5 от 22(23).03.15 на SDK version: 1.0.0) неофициальным китом (1.0.12 от 18.03.15 на SDK 0.9.5) под виндой, я получаю абсолютно идентичные бинарники тем, что вложены в архиве первого сообщения данной темы. Предварительно я их из папок удалил, после компиляции сравнил WinMerge. Вложил те, что скомпилировались у меня.
    bin.zip
     

    Вложения:

    • bin.zip
      Размер файла:
      156,1 КБ
      Просмотров:
      8
  14. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    По тому, что библиотеки из UDK не используются. Всё необходимое от SDK 1.0.0 вложено в проект. Если требуется странслировать на другой версии SDK - измените или данные в каталогах include, ld, lib или пути в Makefile. А так-же в workspace\Web_Base3\app\include\user_config.h номер у #define SDK_VERSION - там в коменте даны примеры, что добавляется ещё число, указывающее на номер beta (число до 9, 9 = релиз). Но большинство патчей в исходниках для версий мне 0.9.5 снято :) , от номера SDK меняется только пару мест...
     
    Последнее редактирование: 25 мар 2015
    shaman1010 нравится это.
  15. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Понятно, спасибо.
     
  16. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Кстати, нашел еще один интересный "глючный терминал" :)
    Из плюсов:
    1) Наглядно видно момент поднятия каждой сигнальной линии.
    2) Может работать с i2c-шиной
    3) Winsock-етом может отправлять RAW/Telnet
    Похож на написанный программистами для программистов (с изерфрендли интерфейсом туго, зато переключить можно много чего)
    Там тоже все плохо? (исходники на делфях к нему прилагаются)
     
    Последнее редактирование: 25 мар 2015
  17. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Ответ написан тут http://esp8266.ru/forum/threads/raz...logo-webservera-na-esp8266.56/page-3#post-754
    Именно что "написанный программистами для программистов" без знаний оборудования.
    Китайский анализатор на 24Mhz и 8 каналов (CY7C68013A) ныне стоит 600 рупь
    IMG_4928sm.jpg
     
    Последнее редактирование: 25 мар 2015
  18. Igor Kovba

    Igor Kovba Новичок

    Сообщения:
    1
    Симпатии:
    0
    Всем привет.
    во первых огромное спасибо за открытую библиотеку. Только начал разбираться. Хочу поделиться несколькими мыслями о возможных проектах...
    Назовём Универсальный нотификатор....компактное автономное устройство с фоторезистором, для считывания состояния светодиода некоторого устройства (стиральной машины, газового котла, охранки,мультиварки.....) . При изменении статуса(change, rise,fall) посылаем на мобилку сообщение (все простиралось или авария котла). Пори цене в $10 будут продаваться сотнями!
     
    Последнее редактирование: 25 мар 2015
  19. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Есть именно такой, вытащил из закромов.
    Честно, до общения с Вами, не предполагал, что с терминалами настолько все уныло...
    Ну что ж - век живи, как говорится.
    На вышеуказанном терминале удается стабильно переслать файл (пока пробовал несколько до 100кб) в режиме raw. Но скорость... :(
    На Вашей тестовой программе у меня тоже не все ровно. Особенно в направлении узкого горлышка (TCP->UART) даже на 115200. Уже на CP2104 думать начинаю :)
     
  20. pvvx

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

    Сообщения:
    10.251
    Симпатии:
    1.349
    Я проверял на FT2232C. Драйвера у CP2104 часто не ставят скорости отличные от прописанного в них табличного значения, но есть исправленные... потерял где-то, но у тех другие беды :)
    А со скоростью что? 115200 Baud - это до 10 килобайт в секунду.
    Да и как-то нужды нету для передачи по UART в комп :) К внешнему контролеру - да. Только для теста.
    Про дуплекс уже писал - синхронизить пакеты надо, но всё равно скорость падает из-за самой ESP8266... Проще передавать пачками побольше - WiFi в ESP так лучше...
     
    Последнее редактирование: 25 мар 2015

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