Разработка WEB-интерфейса для ESP8266. Часть 1: Подготовка скетча в Arduino IDE
Вставка
- Опубліковано 12 лис 2024
- В первой части практического курса по разработке веб интерфейсов для IoT разбираем функции, необходимые в скетче Arduino IDE для разбора запросов, поступающих на модуль ESP8266 через WEB и FTP.
Вторая часть: • Разработка WEB-интерфе...
Присоединяйтесь ВКонтакте: im_pub
Скетч из видео: iomoio.ru/stati...
Библиотека ESP8266FtpServer: iomoio.ru/stati...
WinSCP (FTP-клиент): winscp.net/eng...
NotePad++ (редактор HTML, CSS, JS): notepad-plus-p...
Необходимое на AliExpress:
NodeMCU: ali.pub/3icprs
ESP-12F: ali.pub/3icprs
Реле 4 pin 16A 250В (маленькое, нормально открытое): ali.pub/3icoel
Реле 5 pin 10A 250В: ali.pub/3icpb2
Транзисторы NPN SS8050: ali.pub/3icqx0
Диоды 1N4007 (1A 1000В): ali.pub/3icr1v
Резисторы: ali.pub/399hw1
Блок питания 220 в 5В Hi Link: ali.pub/3icqog
LM1117 3.3В: ali.pub/3hs3q1
#esp8266 #IoT #ардуино #arduino #реле #esp32 #esp12f #esp12 #esp #вебинтерфейс #интерфейс
Респект! Это самые толковые видео ролики! Все доступно и понятно рассказано.
Wow! Как чётко и лаконично. Почти как старые видео Soraxa по javascript. Спасибо огромное.
Это просто офигенно! Крутой материал, супер подача, все ясно и понятно
Ясная подача материала, годный контент. Однозначно подписка и лайк!
Мне понравилось.
Хочу научиться этому.
СПАСИБО!!!
Хочу побольше таких полезных видео.
Даже рекламу посмотрел и перешёл по ссылке.
Благодарю.
С меня ЛАЙК.
Боже мой, насколько же ваши видео крутые! Все просто и понятно!
Спасибо. совсем другой подход нежели в примерах идущих с IDE. сразу без костылей можно простые запросы делать.
ВоотОнооо, наконец то человек правильно объяснил, прям зашло!
11:11 Без разяснений" / " и того как читать какой файл, для меня после ip\ начиналась магия! Спасибо что развернули тему поробно.
И обозначение те места кода , которые встречаете,! с декларацией и/ или созданием класса , шаблона, интерфейса мы не маги...мы только учемся!
благодарю за видео, крепкого вам здоровья , продолжайте в том же духе!!!
Очень классная подача без воды!
Даже не пытайтесь повторить это в 2к23 ) Огромное кол-во ошибок и переделок обеспечено, возможно если бы исходник был загружен на git, а не на репозиторий неработающего сайта, то оживить это Франкенштейна и получилось бы, но увы, с учетом новых версий библиотек, очень хрупкого и местами усложненного кода - это невозможно, потратил 2 дня на исправления, забил, разобрался с библиотеками и написал своими реализации, писал под nodeMCU, всем удачи !
Поделитесь информацией, интересует web сервер с простой страницей
Долго искал подобный материал, всё отлично и доходчиво !!
Кажется , я нашел годный контент по ESP! Подписываюсь!
Я тоже только начал смотреть ПОДПИСАЛСЯ!
отличная подача материала чотко коротко ясно без лишней трепни.
Сколько же @мна нужно перелопатить на ютубе что бы найти что то годное/доступное/понятное да еще и без всякого этого типичного поведения блогеров, подписка!
класс, особенно после правки не нужно перепрошивать, ftp, залил, готово +++++++++++++++
Отличное видео. Жду с нетерпением продолжение.
Благодарю, понравилось. С передачей слеша, не очень понял, ping на 80 порт (в запросе вроде нет слешей) не начнет "клацать" реле? Ну а если. Запрс из браузера или используя, curl со слешем - будут "клацать" пином реле?
10:50 клацать не будет... 10:57.
Очень актуально. Большое спасибо
Супер доходчиво и понятно. Спасибо.
Здравствуйте. Ссилки на материал не работают. Если можно залейте куда-то скетч. Спасибо, материал супер, все без соплей и нудотины, лайк и подписка)
Номер пина надо писать через дефайн. Тогда ещё больше места экономится
ссылки на файлы проекта и библиотеку - не рабочие
Добрый день!Я хотел бы узнать, а как вывести на экран показания температуры и влажности на сайт!Буду очень благодарен
полезно посмотреть ролик пару раз
Хорошая подача материала.
Круто! спасибо, коротко и ясно!)
Вы смеетесь что ли... долго и нудно?
Да именно так нам и нужно.
Подольше и понуднее, так понятнее, тем более начинающим, и тем кто хочет научиться.
Лайк!👍
10:55 в первой строке указан вызов метода HTTP.on который на вход получает атрибуты метода("текст_для_парсинга" , [пустой_масив](функций)¿','? и дальше без*операции запятая(,)* выполняем блок действий...{ HTTP.send(...','...','...});
?
1)почему блок стоит без запятой и как его трактовать?
2) экземпляра http создан где-то в недрах библиотеки а здесь происходят только заполнение его полей методами on. Но эти же методы одни и те же, по идее они должны заполнять одно и то же поле.
Спасибо! Очень полезное видео!
Ммм какой приятный голос)). Надо почаще тебя слушать....
Вот решил написать программу по мотивам этого урока. Сначала у меня устройство получало адрес 192.168.4.1, но работать не хотело. Затем я написал программки, которые использовали функцию WiFi.begin() и подключались к моей локальной сети (я задавал имя сети и пароль). Когда же я снова вернулся к этому примеру, то обнаружил, что поведение программы изменилось - она в окно терминала сначала пишет, что у нее адрес 192.168.4.1
, а затем пишет "dhcp client start...
", а затем "ip:192.168.1.59,mask:255.255.255.0,gw:192.168.1.1", т. е. почему-то подключается в мою локальную сеть и получает другой адрес из локального пула адресов, хотя я же в этой программе не указываю ни имя WiFi-сети ни пароль доступа. Просто чудеса - видимо, мой роутер запомнил это устройство и теперь при обнаружении выдает ему другой IP адрес.
byte (8 bit) занимает в 4 раза меньше, чем int, поскольку esp8266 имеет 32 битную архитектуру, компилятор автоматически присвоит переменной типа int 4 байта(32 бита).
Да, спасибо. С Arduino перепутал.
а почему DEFINE не использовать для пина?
Друг ,спасибо тебе большое!
Здравствуйте!Какие курсы нужно пройти что бы управлять нагрузками через компьютер?Спасибо
да продолжай , тема интересная !
Добрый день есть ли какое нибудь приложение по сборке веб интерфейса?
Хорошее толкование программы
Вроде все понятно... Но если нужно управлять 10-ю реле, то конструкцию из строк 27,28 нужно повторить 10 раз с разными строковыми параметрами?
Отличное видео.
Да, действительно прикольно. А как всё это работает через инет, а не в локалке? Есть видео?
Тоже интересен этот вопрос
Круто!
Здравствуйте. Очень интересно, но к сожалению ссылка на скетч не работает.
Класс, а ссылку на библиотеку WiFi не оставили?
Добрый день, спасибо за такую подачу и видео!!! Это Шикарно! Можете ОБНОВИТЬ ссылки на Алик!
Крутяк) пошел делать ДЗ, жаль что канал забросили((((
Жаль что я не нашел этот канал год назад!
Судя по вашему сообщению... Жаль если канал забросили!
Большинство авторов ДЕКЛАРИРУЮТ,или ОБЯСНЯЮТ СЕБЕ!
А!
Тут как раз для нас стартёров!
Спасибо!
Продолжения уже не будет как я понимаю?
Здравствуйте, хочу открывать электромеханический замок на калитке в зоне действия сети Wi-Fi дистанционно с помощью Wi-Fi модуля ESP8266 и Web-страницы для управления.
Подскажите пожалуйста, как это можно реализовать с минимальными затратами?
Как всегда в самопальном iot: схема на проводах, работающая только в вакууме или в лучшем случае на столе, и принцип "накручиваем фишки по пути"
Толково! А для ESP32 это можно применить?
Полезное видео. И подход к повествованию очень грамотный!
Пользуясь случаем, задам вопрос: если я хочу, чтобы телефон выполнил какую-нибудь команду (завибрировал или издал звук) в ответ на пришедшую с ESP информацию, то это нужно разрабатывать приложения для телефона или можно обойтись Web?
Страница должна быть открыта в браузере, чтобы можно было издать звук. Приложение в этом отношении выигрывает, поскольку более интегрировано в операционную систему телефона.
@@iomoio3897, спасибо за быстрый ответ! Тогда приступлю к изучению создания приложений)
Есть вопрос, при инициации пина, в моем случае 8-го цифрового, в монитор порта пишется ошибка: ets Jan 8 2013,rst cause:4, boot mode:(1,7) wdt reset. Как я понял, это связано с переполнением микропроцессора информацией, он не может выйти из setup функции, и переходит в режим программирования(снова). Подскажите что делать. У меня в планах подключить еще 4 модуля, неужели это такая проблема?
Всё это конечно офигенно... но КАК ПОДКЛЮЧИТЬСЯ К ЭТОЙ ТОЧКЕ ДОСТУПА???
МОжно загружать WEB при помощи телеграмм бота?
Привет! Очень хорошие и полезные видео! Есть вопрос, почему-то моя "ардуино иде" не видит функции объявленные и описанные в конце скетча, приходится их перемещать перед "ситап()", не в курсе в чем может быть проблема? А то приходится все скетчи переделывать - перетаскивать функции вверх...
Потому, что в языке Си функция должна быть декларирована перед её первым вызовом в коде.
Ссылки мертвые у вас, обновите пожалуйста
У меня странности возникают с одновременной работой веб сервера и фтп сервера.
Если подключены оба обработчика, то ни тот ни другой не работает. Если отключить фтп хендлер, то веб сервер работает нормально.
Здорово
Согласен респект
Возник вопрос - в этой программе нет подключения к какой-либо локальной сети - мы ведь не задаем ни имени WiFi подключения (а вокруг, кроме моей, у моих соседей с десяток разных WiFi точек доступа ), ни пароля для доступа к этой WiFi сети (все сети защищены паролем). И вот локальный IP адрес 192.168.4.1 в какой сети это устройство получает причем без пароля? Я могу к нему доступиться из любой WiFi сети что ли? По локальному адресу 192.168.x.x ? Вроде как и нет. И как же я доступаюсь? Или я просто раньше подключался этим устройством к своему роутеру и мой роутер его помнит и автоматически в свою сеть подключает и мы это неявно используем? И что надо делать если мы хотим подключиться через другой роутер?
Лайк, подписка, колокол.
Регистрация приостановлена на DNS
спасибо
А реально ли сделать тоже, но не точкой доступа, а подключившись к домашней точке доступа?
Если кто знает скиньте код пожалуйста.
Всё хорошо, но негде в уроках не видел триггерного включения реле, ( чтоб при нажатии на кнопку посходило ON/OFF реле, а не ON) как это реализовать на примере 6 кнопок.?
DigitalWrite(pin,!DigitalRead(pin));
У меня не получается прошить модуль. Не знаете в чём дело?
Arduino Nano (китайская) и ESP8266 ESP-01.
Arduino: 1.8.9 (Windows 10), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), ck, 26 MHz, 40MHz, DIO, 4M (2M SPIFFS), 2, nonos-sdk 2.2.1 (legacy), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
Скетч использует 328420 байт (31%) памяти устройства. Всего доступно 1044464 байт.
Глобальные переменные используют 32632 байт (39%) динамической памяти, оставляя 49288 байт для локальных переменных. Максимум: 81920 байт.
esptool.py v2.6
Serial port COM3
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "C:\Users\PC\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/upload.py", line 25, in
esptool.main(fakeargs)
File "C:/Users/PC/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2653, in main
esp.connect(args.before)
File "C:/Users/PC/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 468, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Подскажите, пожалуйста, где взять ESP8266WiFi.h, ESP8266WebServer, FS.h? Компилятор ругается, не находит этих файлов. Я перерыл весь интернет, но не смог найти внятного ответа на свой вопрос. То есть это же библиотеки какие-то, их надо скачать откуда-то. Есть сайты, где написано, как ими пользоваться, но ссылок на скачивание нет. Такое чувство, что это только у меня такая проблема. Тишина в интернете.
Это стандартные библиотеки. Они устанавливаются в среду вместе с пакетом поддержки ESP8266 в Arduino IDE. Поищите, на канале есть видео о том, как настроить Arduino IDE для работы с ESP8266.
@@iomoio3897 спасибо. Да вот в том и дело, что пакет поддержки я поставил, платы с esp есть в среде, а библиотек этих нет. Ну попробую переустановить.
@@МаркЪЪЪ Может плата в среде не та выбрана при компиляции?
@@iomoio3897 да, именно так и было. Не учел этой особенности. Сейчас все скомпилировалось, спасибо за подсказку
Здравствуйте, ссылка на скетч 404(
Александр, может сразу на ESP32?? Возможностей в разы больше. Да и пользователи на неё пересаживаются. Спасибо за контент!!!
Возможностей в разы меньше, поскольку в разы меньше оптимизированных под esp32 библиотек. ;) Под проект ресурсов esp8266 больше нужного. Задумайтесь, почему, например Sonoff, Tuya или многие другие производители конвейерных решений не переходят на esp32? Потому что для IoT у esp8266 ресурсов более чем достаточно, а стоимость ниже. Не подумайте, я сам юзаю esp32 и мне нравится работа с этим контроллером. Вы можете портировать решения, которые я предлагаю, на эту платформу - это не проблема. Но думаю, что для данного курса esp8266 подходит больше, поскольку доступнее в плане цены и проще работать с периферией (из-за большого объёма наработок комьюнити).
@@iomoio3897, Спасибо за ответ! Я честно хорошо понимаю конъюнктурные минусы пилить контент по ESP32 просто решил попробовать, вдруг прокатит...)) Когда я узнал, что ESP32 может проиграть потоковое аудио и аудио-файлы - я задвинул ESP8266 на задний план. У Sonoff продукты незамысловатые - потому ресурсов 8266 им действительно хватает))) Надеюсь в следующем уроке - мы узнаем, как хранить конфиги в JSON) Еще раз спасибо!
Не в следующем, но это будет. ;)
А вообще возможно пример из этого видео перенести на ESP32? Или потребуется переписывать все от и до?
@@asmodey1605 У esp32 библиотека для работы с файловой системой другая, библиотека для ftp подходит, по веб-серверу не помню есть различия или нет.
Нужно продолжение
Жаль если мы остановимся в этой точке, мы с таким трудом сюда дошли!
Давайте ПОДСКАЗЫВАТЬ, ОбъЯСНЯТЬ ,поддерживать друг друга!
Вы конечно меня извините,
но если так будете объяснять и далее,
тогда буду вынужден вам задонатить!
пошел делать домашку)
Я тоже наверное впервые после таких уроков начну что-то зарабатывать!
Что-то смогу!
хорошо
Интересно, кто нибудь пробывал заливать этот скетч себе на ESPшку? Обычно веб сервер и веб интерфейс на плате работает с глюками и быстро падает. Надежной работы не жди
Питайте пожирнее espшку и все будет ок. Не используйте по возможности String - фрагментирует память, пользуйтесь strcopy strcat и т.п. в раз отведенный буфер достаточной длины.
Имеет ли смысл сервер поднимать на есп32 а исполнительные устройства 8266. ?
Нет
Имеет смысл
1 большой интерфейс , ОЗУ, флешку позволят без тормозов обработки передать тяжёлый веб, с фотографиями фона
2 ядра позволят разделить задачи...вызвав демона фриртос (паркинг сообщений в очередь) обернутого по двойной тулуп ЛуП!
3 своевременная отдача. Команд не замысловатым 8266.
Как на этот прибор: ru.aliexpress.com/item/32918067016.html можно переписать веб-интерфейс и сменить стандартные IP и порт ?
Подскажите плиз, возможно ли подружить esp8266 с php + mysql???
Установить php и mysql на esp8266 нельзя, поскольку туда нельзя запихать linux. Максимум - туда можно запихать интерпретатор micropython с sqllite. А меняться пакетами esp может с любой платформой, в том числе с облачными сервисами, которые часто реализуются на php.
@@iomoio3897 , и да, хотелось бы поподробнее узнать про обработку get запросов. Спасибо.
@@iomoio3897 , ещё вопрос, как вставлять данные, например с датчиков, в веб интерфейс? Т.е. если запихнуть веб в скетч, то там всё понятно, а если брать html с файла, то как в нужном месте поставить свои данные?
String relay_switch(){
digitalWrite(relay, !digitalRead(relay));
return String(digitalRead(relay));
}
так проще, не?
relay_status - аналогично, зачем тут блок if и лишняя переменная (state)?
Автор, вероятно, использовал более длинную запись в угоду лучшей читаемости для новичков
Да, но 2 раза считывать значение с пина не по феншую.
А то, что функции чтения и записи в ардуино иде занимают на несколько порядков времени больше, чем работа с регистрами, никого не удивляет?
Функция сможет отработать в 10 или 100 раз быстрее
@@Omiroshin можно подробнее !
И где об этом почитать?
А я не понял почему у esp будет адрес 192.168.4.1, если он будет в локалке? Роутер же раздаст ему адрес из пула 192.168.1.xxx
А Вы уверены, что он в локалке и через роутер подключается ? Вы где-то задаете к какой локальной WiFi сети подключиться и пароль для подключения?
скетч не найден, скачать не возможно
Не получается скачать скетч из видео. Залейте , плиз на Google диск.
Переложил ;)
Ссылка на скетч нерабочая. Откаректируй пожалусто
ссылки стухли
Вот честно я просто беру и использую юнити вместо браузера и на есп ничего лишнего и так быстрей гораздо)))
Вы имеете ввиду, что написать приложение на Unity быстрее, чем написать интерфейс в браузере? Ну... Вероятно, каждому своё... ) Я более 10 лет занимаюсь веб-разработками и мне быстрее написать веб-интерфейс, чем приложение на движке, с которым у меня нет опыта работы... ;)
Ну верстать я тоже умею, просто больше возможностей + частицы и 3d модели и взаимодействие с бесчисленным количеством всего плоть до дополненной реальности, в игры ушёл с сайтов в 14году
@@iomoio3897 юнити умеет высылать запросы)))
Теперь я знаю, кто нам напишет приложение, когда мы разберёмся со всей конструкцией! Да? ;)))))
Хорошее начинание
НУЖНО ПРОДОЛЖИТЬ.
А можно видосики по чаще? Мне конечно данные контроллеры ещё не приехали, но всё же :)
WinSCP (или как его там) фигня полная, лучше уж из бесплатного пользовать FileZilla.
NotePad++ тоже такое себе решение, но сходу для винды лучше него в голову ничего не приходит. Врооооде как есть порт редактора Atom для винды, если так то это наверное лучшее решение (пользую его на маке).
Виталий, никто не может лишить Вас права выбирать то ПО, которое Вам по душе. Как и каждого, включая меня. ;) Мы всё можем обсудить в группе ВКонтакте. :)
Но Atom крутой, базару нет. )
Блин жалко что материалы больше не доступны. Если кому надо пишите, я часть сохранил.
го скинешь ?
А зачем из номера пина делать константу, если можно #define использовать?
Никакого умысла. Просто сделал так. )
Использование #define считается дурным стилем программирования по массе причин.
80 порт использует http протокол
Не работают ссылки на Скетч и остальные тоже((
Вот вырезал испорченные Ютубой ссылки (Надо копировать и вставлять):
Скетч: iomoio.ru/static/iomoio_relay_button_ui_1.zip
ESP8266FtpServer: iomoio.ru/static/esp8266FTPServer.zip
Помог, спасибо большое
Разжевал так, что и глотать не надо. я вообще хз какие в принципе тут могут возникнуть вопросы?
я применил данный подход в своем "простом умном доме" home.1vp.ru
опять Arduino IDE. Есть нормальные уроки по использованию ESP8266 NONOS SDK?
11:16 "при обращении к порно сайту" Я не ослышался?-)
у кого что болит... четко и ясно слышно к корню
@@chessalkin9939 а у тебя похоже душа болит, за отсутствующее напрочь чувство юмора...
Четко услышал.... Анекдот в тему!
Летит фея...
Видит мужики гусеницу чинят.
-Мужики , что делаете??
-Ибомся!
-а хотите по настоящему!?
-КОНЕЧНО 9месяцев с матрасом спать!
Бах, и у танка отвалилась башня.
Мораль сей басни такова.... "Пилите Шура" и поддерживайте других в их продвижениях, если они идут...
трындец всему,как это всё понимать-запоминать..
byte и char - это одно и то же
Ну и знаток! Вообще то байт занимает в 4 раза меньше места в памяти чем int. На собеседовании после такого ляпа кандидата пошлют на...
Скетча уже нет!
Спасибо материал отлично подан!!!
Спасибо!