КАК ПОСТРОИТЬ WEB SERVER НА ESP32

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ต.ค. 2022
  • Как открыть входную дверь вашего дома пришедшему родственнику, если вы уехали в командировку?...
    В этом видео я покажу, как построить такого электронного помощника, чтобы он удаленно слушал мои команды и правильно реагировал на них.
    ТАЙМ КОДЫ
    0:04 Рассуждения о том, зачем нужен сервер IoT
    0:41 Кратко о технологии Client-Server
    1:24 Как использовать компонент HTTP Server из IDF
    3:28 Пример реализации сервера на живом проекте
    5:54 Добавляю в код сервера обработку элемента управления UI
    8:58 Тестирую добавленный элемент сервера и UI на железе
    МАТЕРИАЛЫ ИЗ ЭТОГО ВИДЕО
    ------------------------------------------------------------------------
    ► Видео о том, как построить сервер с доступом по WiFi + Ethernet на ESP32 • Как скрестить WiFi и E...
    ПОДДЕРЖИ МОЮ РАБОТУ НА СТРАНИЧКЕ BOOSTY
    ------------------------------------------------------------------------
    Поддержи мою работу и получи доступ к проектам лаборатории полезных гаджетов:
    boosty.to/useful-gadgets-lab
    РАЗРАБОТАЮ ПРОТОТИП УСТРОЙСТВА ДЛЯ ВАШЕГО ПРОЕКТА
    ------------------------------------------------------------------------
    Хотите, чтобы я создал рабочий прототип электронного управляющего устройства для Вашего проекта?
    Если интересно, то записывайтесь на разовую БЕСПЛАТНУЮ консультацию здесь:
    kirill.ivanychev.tilda.ws/#con...
    ПОМОГУ ПОЛУЧИТЬ БАЗОВЫЙ ОПЫТ РАЗРАБОТКИ НА МИКРОКОНТРОЛЛЕРАХ
    ------------------------------------------------------------------------
    Если Вы уже имеете опыт разработки электроники и хотите освоить создание устройств на базе микроконтроллеров Atmega или ESP32, то я могу Вам в этом помочь.
    Если интересно, то записывайтесь на разовую БЕСПЛАТНУЮ консультацию, заполнив форму заявки:
    kirill.ivanychev.tilda.ws/requ...
    #ОтИдеиДоЖелеза #РазработкаЭлектроники #arduino #PCB #печатныеплаты #отпроектадожелеза #easyeda

ความคิดเห็น • 18

  • @user-sc3ix7lc5g
    @user-sc3ix7lc5g ปีที่แล้ว +2

    Отличный урок .. давно искал что то подобное а здесь все и сразу)). Спасибо!!!

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว +1

      Пожалуйста, уже готовлю к нему дополнение,

  • @kardanium
    @kardanium ปีที่แล้ว +4

    Поднимал WEB на ESP8266 (с фреймворком Arduino). WEB станицы разрабатывал сам, подняв виртуальный хост на сервере Apache. Бэкэнд на сервере писал на PHP (писал чисто обслуживание команд клиента и выдачу примеров данных). Шаблонизация страниц выполняется на стороне клиента с помощью JavaScript. Многие данные приходят в виде JSON, например такие, как пункты меню, подписи к кнопкам, текущие данные о статусе и прочее. А JS, имея шаблон HTML страницы, сам наполняет страницу контентом. Потом, после разработки комплекта скриптов и html шаблонов, был написан бэкэнд для сервера на МК, а файлы WEB страниц, скриптов и стилей были закинуты на "диск" в микроконтроллере (SPIFFS, она же LittleFS) Такой подход был выбран из тех соображений, чтобы не грузить МК лишними действиями. И процесс разработки WEB страницы перестал отличаться от такового для "взрослых" систем.

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว

      Отлично! Главное, что вы нашли удобный для себя способ построения веб.

  • @aleksandrkozlov9286
    @aleksandrkozlov9286 ปีที่แล้ว +2

    Спасибо, было интересно

  • @3dprinterdoma
    @3dprinterdoma ปีที่แล้ว +1

    Круто, но пока не понятно можете выложить скетч. Я в нем подпишу что для чего и буду знакомиться с кодом.

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว

      Этот код по структуре отличается от Arduino-скетчей.
      Вы можете взять для ознакомления пример реализации сервера точно по той же структуре, что и в моем видео.
      Пример можно взять вот здесь:
      github.com/espressif/esp-idf/blob/master/examples/protocols/http_server/simple/main/main.c

  • @sergc9068
    @sergc9068 ปีที่แล้ว +2

    Насколько я понимаю, этот сервер может обрабатывать одну сессию одного пользователя одновременно.

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว +2

      Я тестировал параллельное подключение от мобильника, планшета и через ethernet контроллер. Работает со всеми девайсами хорошо

    • @sergc9068
      @sergc9068 ปีที่แล้ว +1

      @@kirill-ivanychev Я наверное не правильно задал вопрос.
      Если например сделать страницу для того чтобы пользователи оставляли отзывы на сервере, то несколько одновременно пользователей, будут конкурировать и перезаписывать данные в полях на странице. После нажатия сохранить, наверное останется в полях каша от всех пользователей, которые одновременно набирали?

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว +1

      @@sergc9068 Я вижу решение такой задачи следующим образом. В сервере пишу обработчик запроса в котором выгребаю данные отзыва, которые прислал отдельный пользователь: имя, электронная почта, текст отзывы. Этот обработчик сохраняет полученные данные в виде записи отзыва. Следующий пользователь также напишет свои данные отзыва и по нажатию на кнопку отправки сформируется запрос с данными отзыва по той же структуре. Сервер обработает этот запрос и сохранит ещё одну запись. И так далее...
      В такой реализации каши получится не должно.
      Ну а вообще серверы на esp32 всё-таки предназначены для управления железом умной электроники, для датчиков, измерительной и контролирующей аппаратуры

    • @sergc9068
      @sergc9068 ปีที่แล้ว +1

      @@kirill-ivanychev Усложняю задачу. На сервере стоит проверка правильности маски например электронной почты. И пользователям пришло уведомление что нужно исправить почту. К тому же бывает что пользователи могут нажать все кнопку отправки одновременно.
      Это я потихоньку подвожу к варианту с асинхронным вебсервером.
      Насколько я знаю именно представленный в видео Вами сервер - он однопользовательский на одну сессию одновременно. К тому же не плохо там включить авторизацию. И тогда можно более спокойно пользоваться управлением своего умного дома. Однопользовательского интерфейса вполне хватает для таких целей.

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว

      @@sergc9068 всё верно, этот сервер предназначен для задач устройств умного дома

  • @OpenFrimeTVcom
    @OpenFrimeTVcom ปีที่แล้ว +1

    почему так мало просмотров? контент на уровне

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว

      Спасибо. Просмотров, по всей видимости мало потому, что я не пользуюсь способами накрутки просмотров. Видео смотрят только те, кому тема действительно интересно

    • @OpenFrimeTVcom
      @OpenFrimeTVcom ปีที่แล้ว +1

      @@kirill-ivanychev ну нужно ж еще и доход получать с ютуба. любая работа должна быть оплачиваемой

    • @kirill-ivanychev
      @kirill-ivanychev  ปีที่แล้ว +1

      Если вы хотите мне предложить гонорар, то я только за! :-)