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

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

pvvx

Активный участник сообщества
Самый простой способ - в некоторых пределах ширину сделать "резиновой",
например если в style.css поменять

width:530px;

на

min-width:530px;
max-width:800px;
На экране Samsung Note 4 (в примере выше) 1440x2560 точек, я развернул, а то всё в углу :( У следующих в два раза больше точек, а у предыдущих на много меньше. Есть какое-то стандартное решение, чтобы сразу вписать в экран?
 

JustACat

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

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

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

pvvx

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

Andy Korg

Moderator
Команда форума
народу нужна одна большая кнопка с рисунком лампочки на весь экран и вкл/выкл её.
фиг его знает. У меня пока расширение проектов по принципу МК+esp. Ваша "свалка" как раз в тему - большое спасибо!
ПЫСЫ: Вот только смена разделителя с точки на подчеркивание сбило с панталыку немного.
 

wifimifi

New member
Всё гораздо проще - народу нужна одна большая кнопка с рисунком лампочки на весь экран и вкл/выкл её. Этим проектом заканчивается 90% использования ESP8266 :)
Прошили такой программой, помигали светодиодиком с мобилы и положи модуль "на полку"... :)
Спасибо PVVX и CHERTS, великолепная работа заслуживающая поощрения. Пока мало кто может это оценить, но это временно. PVVX, Вы сдержали слово не делать деньги на народных поделках и отдали все даром. Но лишний чип ведь не навредит, чтобы для развития проекта счет не открыть.
Насчет надстроек согласен, но незначительные настройки не помешают, кто-то часы демонстрировал. Думаю проекту они бы не помешали, настройка времени - синхронизации по интернет, определение пина, времени включения и отключения. Ну, а если еще и небольшую базу задействовать с периодической записью переменной и выводом графика, например, датчика температуры.
Такой небольшой функционал выведет WebBase за рамки прикладной программы исследования модуля, возможно понадобится ссылка на обновление прошивки.
 
Последнее редактирование:

pvvx

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

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

pvvx

Активный участник сообщества
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... Переключение со скоростью сети...
 
Последнее редактирование:

JustACat

Moderator
Команда форума
На рисунок чипа с графиками сигналов у каждого вывода в adobe flash не претендую
Для данных целей можно использовать SVG-графику, имхо, в векторе что-то накидать проще, чем заморачиваться с flash.
Вот тут есть статья на тему: http://habrahabr.ru/post/127994/ с примером интерактивной карты на SVG (демо).
Там хочется указать ещё дополнительные столбцы, но css
А что 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 - просто в них проще тыкать будет...
возможно расписать названия функций (столбец Fun в таблице)
Все таки лучше "Func" - понимаю, экономия пространства, но Fun - это забава, веселье :)
Описание можно сделать во всплывашке: title="текст" - но тогда его не видно будет на мобильных устройствах, что не катит конечно...
Можно сделать сами цифирьки в этом столбике ссылками куда-то, где как раз будет расписано, что это за функция такая (причем можно на стороннем вообще ресурсе, чтобы не тратит место на ESP).
В идеале, наверное, разработать мелкие иконки, которые будут наглядно отображать функцию. Но это обычно трудоемко, если только где-то готовые свистнуть...

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

pvvx

Активный участник сообщества
Описание можно сделать во всплывашке: title="текст" - но тогда его не видно будет на мобильных устройствах, что не катит конечно...
Это не для мобилок, а для теста и демо. И для 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 Ом.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
Ну не охота делать HTML... Просто не интересно.
Понимаю, и ни в коем разе не настаиваю, просто привел кое-какие ссылки, если вдруг нужно будет, что мог...
то возможна реакция на мелкие ЭМИ
Оооо, даааа.... Реакция в виде рестарта по любому поводу - это то, чего я не раз хватал. Даже при подтянутом reset. Я где-то писал уже, просто подключаешь любой незаземленный кусок провода к общей с ESP земле, например, и тут же рестарт... В общем, очень ESP к этому делу чувствительны...
 

pvvx

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

shaman1010

Member
Подскажите, плз, почему при компиляции последней версии малого 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
 

Вложения

  • 156.1 KB Просмотры: 8

pvvx

Активный участник сообщества
Подскажите, плз, почему при компиляции последней версии малого 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
По тому, что библиотеки из 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 меняется только пару мест...
 
Последнее редактирование:

shaman1010

Member
По тому, что библиотеки из 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 меняется только пару мест...
Понятно, спасибо.
 

shaman1010

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

pvvx

Активный участник сообщества
Там тоже все плохо? (исходники на делфях к нему тоже прилагаются)
Ответ написан тут http://esp8266.ru/forum/threads/raz...logo-webservera-na-esp8266.56/page-3#post-754
Именно что "написанный программистами для программистов" без знаний оборудования.
Китайский анализатор на 24Mhz и 8 каналов (CY7C68013A) ныне стоит 600 рупь
IMG_4928sm.jpg
 
Последнее редактирование:

Igor Kovba

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

shaman1010

Member
Ответ написан тут http://esp8266.ru/forum/threads/raz...logo-webservera-na-esp8266.56/page-3#post-754
Именно что "написанный программистами для программистов" без знаний оборудования.
Китайский анализатор на 24Mhz и 8 каналов (CY7C68013A) ныне стоит 600 рупь
Посмотреть вложение 318
Есть именно такой, вытащил из закромов.
Честно, до общения с Вами, не предполагал, что с терминалами настолько все уныло...
Ну что ж - век живи, как говорится.
На вышеуказанном терминале удается стабильно переслать файл (пока пробовал несколько до 100кб) в режиме raw. Но скорость... :(
На Вашей тестовой программе у меня тоже не все ровно. Особенно в направлении узкого горлышка (TCP->UART) даже на 115200. Уже на CP2104 думать начинаю :)
 

pvvx

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