Разработка WEB-интерфейса для ESP8266. Часть 1: Подготовка скетча в Arduino IDE
Vložit
- čas přidán 4. 07. 2019
- В первой части практического курса по разработке веб интерфейсов для IoT разбираем функции, необходимые в скетче Arduino IDE для разбора запросов, поступающих на модуль ESP8266 через WEB и FTP.
Вторая часть: • Разработка WEB-интерфе...
Присоединяйтесь ВКонтакте: im_pub
Скетч из видео: iomoio.ru/static/iomoio_relay_...
Библиотека ESP8266FtpServer: iomoio.ru/static/esp8266FTPSer...
WinSCP (FTP-клиент): winscp.net/eng/download.php
NotePad++ (редактор HTML, CSS, JS): notepad-plus-plus.org/download/
Необходимое на 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 #вебинтерфейс #интерфейс - Věda a technologie
Wow! Как чётко и лаконично. Почти как старые видео Soraxa по javascript. Спасибо огромное.
Это просто офигенно! Крутой материал, супер подача, все ясно и понятно
Респект! Это самые толковые видео ролики! Все доступно и понятно рассказано.
Ясная подача материала, годный контент. Однозначно подписка и лайк!
Мне понравилось.
Хочу научиться этому.
СПАСИБО!!!
Хочу побольше таких полезных видео.
Даже рекламу посмотрел и перешёл по ссылке.
Благодарю.
С меня ЛАЙК.
Спасибо. Жду следующих уроков.
Долго искал подобный материал, всё отлично и доходчиво !!
Боже мой, насколько же ваши видео крутые! Все просто и понятно!
Спасибо. совсем другой подход нежели в примерах идущих с IDE. сразу без костылей можно простые запросы делать.
благодарю за видео, крепкого вам здоровья , продолжайте в том же духе!!!
Очень классная подача без воды!
Отличное видео. Жду с нетерпением продолжение.
отличная подача материала чотко коротко ясно без лишней трепни.
ВоотОнооо, наконец то человек правильно объяснил, прям зашло!
Супер доходчиво и понятно. Спасибо.
11:11 Без разяснений" / " и того как читать какой файл, для меня после ip\ начиналась магия! Спасибо что развернули тему поробно.
И обозначение те места кода , которые встречаете,! с декларацией и/ или созданием класса , шаблона, интерфейса мы не маги...мы только учемся!
Хорошая подача материала.
Очень актуально. Большое спасибо
Круто! спасибо, коротко и ясно!)
Спасибо! Очень полезное видео!
Спасибо материал отлично подан!!!
Кажется , я нашел годный контент по ESP! Подписываюсь!
Я тоже только начал смотреть ПОДПИСАЛСЯ!
Друг ,спасибо тебе большое!
Отличное видео.
да продолжай , тема интересная !
Спасибо!
Хорошее толкование программы
полезно посмотреть ролик пару раз
Круто!
класс, особенно после правки не нужно перепрошивать, ftp, залил, готово +++++++++++++++
Ммм какой приятный голос)). Надо почаще тебя слушать....
Лайк, подписка, колокол.
Здорово
Сколько же @мна нужно перелопатить на ютубе что бы найти что то годное/доступное/понятное да еще и без всякого этого типичного поведения блогеров, подписка!
Согласен респект
Здравствуйте!Какие курсы нужно пройти что бы управлять нагрузками через компьютер?Спасибо
спасибо
Даже не пытайтесь повторить это в 2к23 ) Огромное кол-во ошибок и переделок обеспечено, возможно если бы исходник был загружен на git, а не на репозиторий неработающего сайта, то оживить это Франкенштейна и получилось бы, но увы, с учетом новых версий библиотек, очень хрупкого и местами усложненного кода - это невозможно, потратил 2 дня на исправления, забил, разобрался с библиотеками и написал своими реализации, писал под nodeMCU, всем удачи !
Поделитесь информацией, интересует web сервер с простой страницей
хорошо
Добрый день!Я хотел бы узнать, а как вывести на экран показания температуры и влажности на сайт!Буду очень благодарен
Здравствуйте, хочу открывать электромеханический замок на калитке в зоне действия сети Wi-Fi дистанционно с помощью Wi-Fi модуля ESP8266 и Web-страницы для управления.
Подскажите пожалуйста, как это можно реализовать с минимальными затратами?
Вроде все понятно... Но если нужно управлять 10-ю реле, то конструкцию из строк 27,28 нужно повторить 10 раз с разными строковыми параметрами?
Добрый день есть ли какое нибудь приложение по сборке веб интерфейса?
Добрый день, спасибо за такую подачу и видео!!! Это Шикарно! Можете ОБНОВИТЬ ссылки на Алик!
Благодарю, понравилось. С передачей слеша, не очень понял, ping на 80 порт (в запросе вроде нет слешей) не начнет "клацать" реле? Ну а если. Запрс из браузера или используя, curl со слешем - будут "клацать" пином реле?
10:50 клацать не будет... 10:57.
Номер пина надо писать через дефайн. Тогда ещё больше места экономится
Здравствуйте. Ссилки на материал не работают. Если можно залейте куда-то скетч. Спасибо, материал супер, все без соплей и нудотины, лайк и подписка)
Класс, а ссылку на библиотеку WiFi не оставили?
Толково! А для ESP32 это можно применить?
Вы смеетесь что ли... долго и нудно?
Да именно так нам и нужно.
Подольше и понуднее, так понятнее, тем более начинающим, и тем кто хочет научиться.
Лайк!👍
Есть вопрос, при инициации пина, в моем случае 8-го цифрового, в монитор порта пишется ошибка: ets Jan 8 2013,rst cause:4, boot mode:(1,7) wdt reset. Как я понял, это связано с переполнением микропроцессора информацией, он не может выйти из setup функции, и переходит в режим программирования(снова). Подскажите что делать. У меня в планах подключить еще 4 модуля, неужели это такая проблема?
Полезное видео. И подход к повествованию очень грамотный!
Пользуясь случаем, задам вопрос: если я хочу, чтобы телефон выполнил какую-нибудь команду (завибрировал или издал звук) в ответ на пришедшую с ESP информацию, то это нужно разрабатывать приложения для телефона или можно обойтись Web?
Страница должна быть открыта в браузере, чтобы можно было издать звук. Приложение в этом отношении выигрывает, поскольку более интегрировано в операционную систему телефона.
@@iomoio3897, спасибо за быстрый ответ! Тогда приступлю к изучению создания приложений)
Крутяк) пошел делать ДЗ, жаль что канал забросили((((
Жаль что я не нашел этот канал год назад!
Судя по вашему сообщению... Жаль если канал забросили!
Большинство авторов ДЕКЛАРИРУЮТ,или ОБЯСНЯЮТ СЕБЕ!
А!
Тут как раз для нас стартёров!
Привет! Очень хорошие и полезные видео! Есть вопрос, почему-то моя "ардуино иде" не видит функции объявленные и описанные в конце скетча, приходится их перемещать перед "ситап()", не в курсе в чем может быть проблема? А то приходится все скетчи переделывать - перетаскивать функции вверх...
Потому, что в языке Си функция должна быть декларирована перед её первым вызовом в коде.
Нужно продолжение
Жаль если мы остановимся в этой точке, мы с таким трудом сюда дошли!
Давайте ПОДСКАЗЫВАТЬ, ОбъЯСНЯТЬ ,поддерживать друг друга!
Да, действительно прикольно. А как всё это работает через инет, а не в локалке? Есть видео?
Тоже интересен этот вопрос
Всё это конечно офигенно... но КАК ПОДКЛЮЧИТЬСЯ К ЭТОЙ ТОЧКЕ ДОСТУПА???
А реально ли сделать тоже, но не точкой доступа, а подключившись к домашней точке доступа?
Если кто знает скиньте код пожалуйста.
МОжно загружать WEB при помощи телеграмм бота?
Как на этот прибор: ru.aliexpress.com/item/32918067016.html можно переписать веб-интерфейс и сменить стандартные IP и порт ?
Как всегда в самопальном iot: схема на проводах, работающая только в вакууме или в лучшем случае на столе, и принцип "накручиваем фишки по пути"
У меня странности возникают с одновременной работой веб сервера и фтп сервера.
Если подключены оба обработчика, то ни тот ни другой не работает. Если отключить фтп хендлер, то веб сервер работает нормально.
10:55 в первой строке указан вызов метода HTTP.on который на вход получает атрибуты метода("текст_для_парсинга" , [пустой_масив](функций)¿','? и дальше без*операции запятая(,)* выполняем блок действий...{ HTTP.send(...','...','...});
?
1)почему блок стоит без запятой и как его трактовать?
2) экземпляра http создан где-то в недрах библиотеки а здесь происходят только заполнение его полей методами on. Но эти же методы одни и те же, по идее они должны заполнять одно и то же поле.
Продолжения уже не будет как я понимаю?
Здравствуйте. Очень интересно, но к сожалению ссылка на скетч не работает.
Возник вопрос - в этой программе нет подключения к какой-либо локальной сети - мы ведь не задаем ни имени WiFi подключения (а вокруг, кроме моей, у моих соседей с десяток разных WiFi точек доступа ), ни пароля для доступа к этой WiFi сети (все сети защищены паролем). И вот локальный IP адрес 192.168.4.1 в какой сети это устройство получает причем без пароля? Я могу к нему доступиться из любой WiFi сети что ли? По локальному адресу 192.168.x.x ? Вроде как и нет. И как же я доступаюсь? Или я просто раньше подключался этим устройством к своему роутеру и мой роутер его помнит и автоматически в свою сеть подключает и мы это неявно используем? И что надо делать если мы хотим подключиться через другой роутер?
Всё хорошо, но негде в уроках не видел триггерного включения реле, ( чтоб при нажатии на кнопку посходило ON/OFF реле, а не ON) как это реализовать на примере 6 кнопок.?
DigitalWrite(pin,!DigitalRead(pin));
ссылки на файлы проекта и библиотеку - не рабочие
Вот решил написать программу по мотивам этого урока. Сначала у меня устройство получало адрес 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 не использовать для пина?
Подскажите, пожалуйста, где взять ESP8266WiFi.h, ESP8266WebServer, FS.h? Компилятор ругается, не находит этих файлов. Я перерыл весь интернет, но не смог найти внятного ответа на свой вопрос. То есть это же библиотеки какие-то, их надо скачать откуда-то. Есть сайты, где написано, как ими пользоваться, но ссылок на скачивание нет. Такое чувство, что это только у меня такая проблема. Тишина в интернете.
Это стандартные библиотеки. Они устанавливаются в среду вместе с пакетом поддержки ESP8266 в Arduino IDE. Поищите, на канале есть видео о том, как настроить Arduino IDE для работы с ESP8266.
@@iomoio3897 спасибо. Да вот в том и дело, что пакет поддержки я поставил, платы с esp есть в среде, а библиотек этих нет. Ну попробую переустановить.
@@user-rn9is7hy1q Может плата в среде не та выбрана при компиляции?
@@iomoio3897 да, именно так и было. Не учел этой особенности. Сейчас все скомпилировалось, спасибо за подсказку
Подскажите плиз, возможно ли подружить esp8266 с php + mysql???
Установить php и mysql на esp8266 нельзя, поскольку туда нельзя запихать linux. Максимум - туда можно запихать интерпретатор micropython с sqllite. А меняться пакетами esp может с любой платформой, в том числе с облачными сервисами, которые часто реализуются на php.
@@iomoio3897 , и да, хотелось бы поподробнее узнать про обработку get запросов. Спасибо.
@@iomoio3897 , ещё вопрос, как вставлять данные, например с датчиков, в веб интерфейс? Т.е. если запихнуть веб в скетч, то там всё понятно, а если брать html с файла, то как в нужном месте поставить свои данные?
Имеет ли смысл сервер поднимать на есп32 а исполнительные устройства 8266. ?
Нет
Имеет смысл
1 большой интерфейс , ОЗУ, флешку позволят без тормозов обработки передать тяжёлый веб, с фотографиями фона
2 ядра позволят разделить задачи...вызвав демона фриртос (паркинг сообщений в очередь) обернутого по двойной тулуп ЛуП!
3 своевременная отдача. Команд не замысловатым 8266.
Ссылки мертвые у вас, обновите пожалуйста
У меня не получается прошить модуль. Не знаете в чём дело?
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
Здравствуйте, ссылка на скетч 404(
Регистрация приостановлена на DNS
Не получается скачать скетч из видео. Залейте , плиз на Google диск.
Переложил ;)
А я не понял почему у esp будет адрес 192.168.4.1, если он будет в локалке? Роутер же раздаст ему адрес из пула 192.168.1.xxx
А Вы уверены, что он в локалке и через роутер подключается ? Вы где-то задаете к какой локальной WiFi сети подключиться и пароль для подключения?
я применил данный подход в своем "простом умном доме" home.1vp.ru
Ссылка на скетч нерабочая. Откаректируй пожалусто
ссылки стухли
А зачем из номера пина делать константу, если можно #define использовать?
Никакого умысла. Просто сделал так. )
Использование #define считается дурным стилем программирования по массе причин.
Александр, может сразу на 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 и т.п. в раз отведенный буфер достаточной длины.
Вот честно я просто беру и использую юнити вместо браузера и на есп ничего лишнего и так быстрей гораздо)))
Вы имеете ввиду, что написать приложение на Unity быстрее, чем написать интерфейс в браузере? Ну... Вероятно, каждому своё... ) Я более 10 лет занимаюсь веб-разработками и мне быстрее написать веб-интерфейс, чем приложение на движке, с которым у меня нет опыта работы... ;)
Ну верстать я тоже умею, просто больше возможностей + частицы и 3d модели и взаимодействие с бесчисленным количеством всего плоть до дополненной реальности, в игры ушёл с сайтов в 14году
@@iomoio3897 юнити умеет высылать запросы)))
Теперь я знаю, кто нам напишет приложение, когда мы разберёмся со всей конструкцией! Да? ;)))))
Хорошее начинание
НУЖНО ПРОДОЛЖИТЬ.
А можно видосики по чаще? Мне конечно данные контроллеры ещё не приехали, но всё же :)
WinSCP (или как его там) фигня полная, лучше уж из бесплатного пользовать FileZilla.
NotePad++ тоже такое себе решение, но сходу для винды лучше него в голову ничего не приходит. Врооооде как есть порт редактора Atom для винды, если так то это наверное лучшее решение (пользую его на маке).
Виталий, никто не может лишить Вас права выбирать то ПО, которое Вам по душе. Как и каждого, включая меня. ;) Мы всё можем обсудить в группе ВКонтакте. :)
Но Atom крутой, базару нет. )
Вы конечно меня извините,
но если так будете объяснять и далее,
тогда буду вынужден вам задонатить!
пошел делать домашку)
Я тоже наверное впервые после таких уроков начну что-то зарабатывать!
Что-то смогу!
80 порт использует http протокол
Блин жалко что материалы больше не доступны. Если кому надо пишите, я часть сохранил.
го скинешь ?
String relay_switch(){
digitalWrite(relay, !digitalRead(relay));
return String(digitalRead(relay));
}
так проще, не?
relay_status - аналогично, зачем тут блок if и лишняя переменная (state)?
Автор, вероятно, использовал более длинную запись в угоду лучшей читаемости для новичков
Да, но 2 раза считывать значение с пина не по феншую.
А то, что функции чтения и записи в ардуино иде занимают на несколько порядков времени больше, чем работа с регистрами, никого не удивляет?
Функция сможет отработать в 10 или 100 раз быстрее
@@Omiroshin можно подробнее !
И где об этом почитать?
опять Arduino IDE. Есть нормальные уроки по использованию ESP8266 NONOS SDK?
Разжевал так, что и глотать не надо. я вообще хз какие в принципе тут могут возникнуть вопросы?
11:16 "при обращении к порно сайту" Я не ослышался?-)
у кого что болит... четко и ясно слышно к корню
@@chessalkin9939 а у тебя похоже душа болит, за отсутствующее напрочь чувство юмора...
Четко услышал.... Анекдот в тему!
Летит фея...
Видит мужики гусеницу чинят.
-Мужики , что делаете??
-Ибомся!
-а хотите по настоящему!?
-КОНЕЧНО 9месяцев с матрасом спать!
Бах, и у танка отвалилась башня.
Мораль сей басни такова.... "Пилите Шура" и поддерживайте других в их продвижениях, если они идут...
Не работают ссылки на Скетч и остальные тоже((
Вот вырезал испорченные Ютубой ссылки (Надо копировать и вставлять):
Скетч: iomoio.ru/static/iomoio_relay_button_ui_1.zip
ESP8266FtpServer: iomoio.ru/static/esp8266FTPServer.zip
Помог, спасибо большое
Ну и знаток! Вообще то байт занимает в 4 раза меньше места в памяти чем int. На собеседовании после такого ляпа кандидата пошлют на...
трындец всему,как это всё понимать-запоминать..
byte и char - это одно и то же
Скетча уже нет!