Разработка ‘библиотеки’ малого 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

New 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

New 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

New 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

New 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 так лучше...
 
Последнее редактирование:
Сверху Снизу