• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Управление выходами (GPIO) с WEB странички.

SAB

New member
Всех с праздниками прошедшими и наступающими.
Скорее всего, что данный скеч уже давно кем то написан и есть в инете, только я не могу его найти.
А нужно, чтобы ESP8266 работала как точка доступу и/или подключалась к роутеру. Далее заходим на неё например по стандартному адресу 192.168.4.1 и в браузер загружается страничка с кнопками включения и выключения портов GPIO. Т.е пользователь со своего мобильника автоматом подключается к точке доступа и просто открывает созданную заранее иконку браузера сразу может управлять умным домом (воротами, светом, кондиционером, чайником, и т.д.). Т.е. минимум подготовки телефона к управлению, и максимальная скорость готовности к управлению устройствами.
Может быть такое вообще невозможно и я просто хочу невозможного, но что то мне подсказывает, что это уже давным давно реализовано. Если кто то поделится скетчем под Arduino IDE буду примного благодарен. Заранее благодарю за любую информацию по данному вопросу.
 

SAB

New member
Спасибо за отклик. Данное решение я реализовал ещё год назад и оно прекрасно работает. Тогда ещё написал и под android программу. Но это всё не то что надо. Задача стоит именно не подгружать какое то приложение на телефон или компьютер, а именно из самой еспэшки вытаскивать страничку в любой браузер и управлять с этой страницы посредствам кнопок выходами еспэшки. Сейчас я могу выводить только текст жестко прописанный в скетче набирая в браузере http://192.168.4.1/index.html
Вот примерно как
HTTP.on("/index.html", HTTP_GET, [](){
HTTP.send(200, "text/plain", "Если твоё желание не исполнилось, значит оно ещё не оплачено");
});
И этот можно видеть браузером.
Но я не силён пока в создании WEB страничек, тем более как это всё синтаксически увязать с библиотекой ESP8266WebServer. По этому и прошу совета у гуру.
 

pvvx

Активный участник сообщества
Спасибо за отклик. Данное решение я реализовал ещё год назад и оно прекрасно работает. Тогда ещё написал и под android программу.
На данное вам программа под Андроид строится в картинках, к примеру на App Inventor — Википедия
https://esp8266.ru/forum/threads/ra...go-webservera-na-esp8266.56/page-18#post-3970
Web сервер в данной вам прошивке есть, с полным доступом ко всем внутренностям ESP. Кроме работы с UART c HTML, т.к. это невозможно в базисе HTML. С UART там есть свой порт: TCP2UART.
Но это всё не то что надо. Задача стоит именно не подгружать какое то приложение на телефон или компьютер, а именно из самой еспэшки вытаскивать страничку в любой браузер и управлять с этой страницы посредствам кнопок выходами еспэшки. Сейчас я могу выводить только текст жестко прописанный в скетче набирая в браузере http://192.168.4.1/index.html
Вот примерно как
HTTP.on("/index.html", HTTP_GET, [](){
HTTP.send(200, "text/plain", "Если твоё желание не исполнилось, значит оно ещё не оплачено");
});
И этот можно видеть браузером.
А тут создаете любые странички и загружаете на web ESP. Всевозможные варианты загрузок даны в проекте. Размещаете хоть сайт с приложениями для Android, но ограничение в 250 файлов и 15MB при Flash на 16MB, что для ESP и многопользовательского web в 5..10 одновременных клиентов достаточно при трафике с данного web в 1 Мегабайт в сек и пингом к нему в местной интрасети менее 1 мс.
И не надо набирать какие-то ip для захода на web c Андроида - в Web есть включение функции переадресации на него любого обращения... Если доступ с Windows эксплорера, то работает обращение по имени и по ip.
Но я не силён пока в создании WEB страничек, тем более как это всё синтаксически увязать с библиотекой ESP8266WebServer. По этому и прошу совета у гуру.
Совет: Изучите основы HTML и javascript.
Это необходимо для построения своих страничек с нужной вам функциональностью.

80% реализованного в "web-свалке" не реализовать на Arduino по многим причинам - Это будет или полный тормоз или не будет никаких гибких возможностей для создания своих станиц с web и переключений режимов работы WiFi.
 
Последнее редактирование:

SAB

New member
TO pvvx : Спасибо за совет.
TO Юрий Ботов : Всегда придерживаюсь этого принципа, пойду оплачивать - изучать HTML дальше чем мне пока требовалось по жизни. :) Вот только на этом форуме просил поделиться опытом и хотя бы понять возможность в глобальном смысле реализации моей идеи (может кто то пытался уже такое замутить). Но к сожалению ( а может к счастью :)), пока не получил ответа. Хотя рад тому, что есть активные люди на данном форуме, и это нас двигает вперёд. Я по прежнему жду информации, но буду пробовать, хоть и памяти в еспэшке очень мало для полноценных страничек. А вдруг повезёт и кто то скинет мне реализованный скетч :) Спасибо.
 

pvvx

Активный участник сообщества
Я по прежнему жду информации, но буду пробовать, хоть и памяти в еспэшке очень мало для полноценных страничек.
Вы опять что-то недопонимаете, а уже делаете выводы. :)
При чем тут память у ESP? Вам дан web, у которого размер отдаваемого файла ограничен размером установленной Flash. Это 15 Мегабайт. Никаких проблем загрузить туда PDF с полным руководством пользователя для вашей поделки. Только вот грузится PDF на 15 Мегабайт 15 секунд, что для современности является "очень долго". Но быстрее не сделать - WiFi ESP8266 в пределе дает эти 1 МБ/сек (но не в Arduino!).
А вдруг повезёт и кто то скинет мне реализованный скетч :)
Ждите, когда рак на горе свистнет :)
Уже сказано - многое на Arduino не сделать, особенно на SPIFFS. SPIFFS не годится для web. Он ужасный тормоз при уже нескольких файлах, а сама Arduino в базе имеет задержки для распределения задач между WiFi частью, что приводит к большому и нестабильному отклику её убогих реализаций web. Так-же там нет поддержки всех вариантов передач переменных по стандартам...

Вы готовы оплатить "скетч" с двумя строчками и внешней либой web? (Там будет всего #include "WebLib.h"). Цена, к примеру у меня на это будет от 0.5 лимона (т.к. за меньшее не берусь). Время исполнения - один вечер (запихивание web-свалки в либу для Arduino :)).
 
Последнее редактирование:

=AK=

New member
Уже сказано - многое на Arduino не сделать,
Опять вы лапшу на уши новичкам вешаете. Задача топикстартера решается в Ардуино в полпинка. Может и готовое уже есть.

SAB, откройте в Ардуине пример с HTTP веб-страничкой на ESP, скажем, BasicHTTPClient.ino, и переделайте под свои нужды.
 
  • Like
Реакции: SAB

pvvx

Активный участник сообщества
Опять вы лапшу на уши новичкам вешаете. Задача топикстартера решается в Ардуино в полпинка.
Решите и выложите - сравним :)
А то пока от вас действительно одна лапша - делать ничего и никогда не пробовали, а уже советуете другим :)
Почитайте хотя-бы об глюках текущей реализации Arduino IDE на git... "Рабочими" там данные вами либы не назвать - виснут и надо пачки костылей дописывать, что для новичков сложно и всё равно не обеспечивает никакой скорости и не годиться для реальных проектов. Поиграть можно.
 
Последнее редактирование:

kab

New member
Может быть такое вообще невозможно и я просто хочу невозможного, но что то мне подсказывает, что это уже давным давно реализовано. Если кто то поделится скетчем под Arduino IDE буду примного благодарен. Заранее благодарю за любую информацию по данному вопросу.
Посмотрите видеокурсы Сергея Третьякова:

https://esp8266.ru/forum/threads/esp8266-proshivka-cherez-arduino-ide.2326/#post-33877

К видео приложены примеры скетчей. По моему - имеется практически полное решение Вашей задачи.

Успехов!
 
  • Like
Реакции: SAB

SAB

New member
Спасибо Друзья.
Именно с видео Сергея Третьякова и начинал освоение ESP
 

SAB

New member
Оплатил 3 часами обучения :)))
Спасибо всем за участие в дискуссии
Задача решена. Всё работает. Страничка с кнопками выгружается с ESP в браузер . Отклик на дерганье пинами практически мгновенный. Я сам не ожидал от этого чипа такой работы. Так и не понял зачем меня пугал комрад pvvx какими то костылями и 15 секундными ожиданиями (ну да ладно это уже не так важно). Главное, что теперь не надо какое то специальное ПО, чтобы обычный человек смог управлять своими приборами дома. Стало всё очень просто. Подключился к точке доступа (зная пароль) или подключил ESP к домашнему роутеру. Получил IP, который записал в строку любого браузера на любом (телефоне, компьютере, планшете, ноутбуке) устройстве. И на экране получил 9 кнопок ВКЛ/ВЫКЛ. Далее управляй чем хочешь. Ну просто красота. Думаю, что даже бабушка может всё подключить. Ещё раз всех благодарю за участие, и за ваши идеи. За волшебный пинок, случившийся в Рождество :)
 

AndrF

Active member
А теперь посмотрите на Blynk - можно здесь - управление интерфейс и управление с телефона реализуются вообще элементарно...
 

SAB

New member
ТО AndrF Прошу вас ещё раз внимательно перечитать мою тему. В данном случае ESP8266 выступает в роли локального дистанционного управления пинами. В вашем случае это интернет, облачный сервис, настройки, и т.д. Бабушка сама сможет это всё сделать? Вы зависимы. А в моём проекте, вы ни от кого не зависите, вы управляете всем локально. Ну а если хотите через инет, то проблем тоже нет (даёте доступ в настройках маршрутизатора и управляете). Моя идея и состояла в том, что купил человек коробочку с 8 релюхами. Подключил 220 вольт, и получил управление ни чего не настраивая в своём телефоне, а просто написал адрес в имеющемся в его устройстве браузере (опера, хром, ие, мазила). Поместил ярлычёк на рабочий стол и больше ни чего не надо делать. Тыкаешь на ерлык в любой момент, и вылезает картинка с кнопками. Пожалуста блинкуй сколько влезет. Расстояние минимум 100 метров (проверено лично).
Вот теперь можно уже думать об сигналке на авто. Ответы то я точно принимаю. Не нравятся мне все эти коммуникации через облачные сервера, потому как есть места, где нет инета, а вот моя приблуда, будет там работать. Тем более 2.4 Ггц это вам не 433 Мгц перехватывать с шифрованным трафиком. Удачи. Надеюсь мой экспереимент, кого то тоже вдохновит на дальнейшее продвижение самой платы и идей её использования для новых задач и предложений на рынке IT.
 

AndrF

Active member
ТО AndrF Прошу вас ещё раз внимательно перечитать мою тему. В данном случае ESP8266 выступает в роли локального дистанционного управления пинами. В вашем случае это интернет, облачный сервис, настройки, и т.д.
И что? Облачный сервис не я подымаю. И какие еще настройки - все что нужно делается на этапе написания программы. Бабушке отдается смартфон с уже готовым приложением. Для установки же приложения достаточно сосканировать сканкод.

Бабушка сама сможет это всё сделать?
IMHO - работать с приложением для бабушки проще чем с сайтом. Она для входа на сайт у вас url сама набирает? А тут и этого не надо.

Моя идея и состояла в том, что купил человек коробочку с 8 релюхами. Подключил 220 вольт, и получил управление ни чего не настраивая в своём телефоне, а просто написал адрес в имеющемся в его устройстве браузере (опера, хром, ие, мазила). Поместил ярлычёк на рабочий стол и больше ни чего не надо делать. Тыкаешь на ерлык в любой момент, и вылезает картинка с кнопками. Пожалуста блинкуй сколько влезет. Расстояние минимум 100 метров (проверено лично).
Расстояние - весь шарик. На 100 метров мне оно как-то вообще не нужно. Включить то же отопление в квартире мне, к примеру, нужно за несколько часов до того как я в нее приеду. А на небольшие расстояния можно было бы использовать и пультики управления на базе простых радиомодулей - на Ali таких полно. Вся прелесть ESP-шек все же в том что ими можно управлять действительно удаленно, а не только из соседней комнаты.
 

SAB

New member
AndrF не хочу с вами спорить. Вы совершенно о другом говорите. Для меня в данном случае нужно локальные задачи решать. А ваши пикалки с Ali перехватываются на ура. И если человек будет открывать ей вход в гараж или домой, то понятно, что завтра он может лишиться части своего имущества. К тому же вы , доверяя облаку, уверенны, что не попадёте в ту же яму что и с брелками.
А здесь к шифрованному протоколу Wi-Fi в целях безопасности можно жестко прописать ещё и IMEI телефона с которого будет вестись управление (можно пару тройку да сколько угодно IMEI) . Тогда, даже вскрыв WI-FI сеть, всё равно не получить доступ к управлению. А вы сможете к советуемому вами методу управления домом прикрутить IMEI телефона.? Думаю, что вряд ли. Система от вас полностью закрыта.
Так же на основе локальной дисташки, я больше доверю свой авто ей, чем облаку. Исходя из выше перечисленных причин, всё это я и затевал. Безопасность в наше время на первом месте, если не хотите, чтобы придя однажды домой, обнаружить что он сгорел. Ок!
Ещё раз повторяю, у меня клиенты просят локального управления. Глобальным я наелся уже сполна. И уже тошнить начинает от слов ..... Я могу управлять с любой точки шарика...
Удачи!
 

SAB

New member
Да, и не забывайте, что интернет не везде и не у каждого. Я например, вообще на телефон не открываю его через провайдера голосовой связи. Только через точку доступа проводной связи по Wi-FI.
 

=AK=

New member
Так и не понял зачем меня пугал комрад pvvx какими то костылями и 15 секундными ожиданиями (ну да ладно это уже не так важно).
Это он так самоутверждается: несет заведомую ахинею, но подает в такой форме, где новичкам трудно отделитиь правду от заведомого вранья. Ну и радуется, когда удается кого-то сбить с толку. Радуется, что, мол, все кругом дурачки, а он такой умный, что он может заболтать любой вопрос. Даже когда его неоднократно ловили на прямом варанье и били канделябром по лживой роже - ему как с гуся вода, срам неведом. :cool:
 

SAB

New member
В жизни разные люди встречаются, а для природы и такие (pvvx) люди тоже нужны. Бог ему помощник. Направляя меня по не правильному пути я надеюсь в будущем не пойду по нему, потому как опыт не пропьёшь и он бесценен. Успеха всем.
 
Сверху Снизу