Логотип ЛАФВИНБазовый стартер ESP32
Набор

Товарная накладная

LAFVIN ESP32 Базовый стартовый комплект - Упаковочный лист

Введение в ESP32

Впервые знакомитесь с ESP32? Начните здесь! ESP32 — это серия недорогих и маломощных микроконтроллеров System on a Chip (SoC), разработанных Espressif, которые включают беспроводные возможности Wi-Fi и Bluetooth и двухъядерный процессор. Если вы знакомы с ESP8266, ESP32 — его преемник, оснащенный множеством новых функций.Базовый стартовый комплект LAFVIN ESP32 - Введение в ESP32Технические характеристики ESP32
Если вы хотите получить более техническую и конкретную информацию, вы можете взглянуть на следующие подробные характеристики ESP32 (источник: http://esp32.net/) — для более подробной информации, проверьте технический паспорт):

  • Беспроводное подключение WiFi: скорость передачи данных 150.0 Мбит/с с HT40
  • Bluetooth: BLE (Bluetooth с низким энергопотреблением) и Bluetooth Classic
  • Процессор: микропроцессор Tensilica Xtensa Dual-Core 32-бит LX6, работающий на частоте 160 или 240 МГц
  • Память:
  • ПЗУ: 448 КБ (для загрузки и основных функций)
  • SRAM: 520 КБ (для данных и инструкций)
  • RTC fas SRAM: 8 КБ (для хранения данных и основного ЦП во время загрузки RTC из режима глубокого сна)
  • RTC slow SRAM: 8 КБ (для доступа сопроцессора в режиме глубокого сна) eFuse: 1 Кбит (из которых 256 бит используются для системы (MAC-адрес и конфигурация чипа), а оставшиеся 768 бит зарезервированы для пользовательских приложений, включая Flash-шифрование и Chip-ID)

Встроенная флэш-память: флэш-память, подключенная внутренне через IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 и SD_DATA_1 на ESP32-D2WD и ESP32-PICO-D4.

  • 0 МБ (чипы ESP32-D0WDQ6, ESP32-D0WD и ESP32-S0WD)
  • 2 МБ (чип ESP32-D2WD)
  • 4 МБ (модуль SiP ESP32-PICO-D4)

Низкое энергопотребление: гарантирует, что вы по-прежнему сможете использовать преобразования АЦП, напримерampле, во время глубокого сна.
Периферийный ввод/вывод:

  • периферийный интерфейс с DMA, включающий емкостный сенсорный экран
  • АЦП (аналого-цифровой преобразователь)
  • ЦАП (цифро-аналоговый преобразователь)
  • I²C (межинтегральная схема)
  • UART (универсальный асинхронный приемник/передатчик)
  • SPI (последовательный периферийный интерфейс)
  • I²S (интегрированный межчиповый звук)
  • RMII (уменьшенный медиа-независимый интерфейс)
  • ШИМ (широтно-импульсная модуляция)

Безопасность: аппаратные ускорители для AES и SSL/TLS

Платы разработки ESP32

ESP32 относится к чистому чипу ESP32. Однако термин «ESP32» также используется для обозначения плат разработки ESP32. Использование чистых чипов ESP32 нелегко и непрактично, особенно при обучении, тестировании и создании прототипов. В большинстве случаев вам понадобится плата разработки ESP32.
В качестве образца мы будем использовать плату ESP32 DEVKIT V1. На рисунке ниже показана плата ESP32 DEVKIT V1, версия с 30 контактами GPIO.Базовый стартовый комплект LAFVIN ESP32 - Платы разработки ESP32Технические характеристики – ESP32 DEVKIT V1
В следующей таблице приведены сводные характеристики и характеристики платы ESP32 DEVKIT V1 DOIT:

Количество ядер 2 (двухъядерный)
Wi-Fi 2.4 ГГц до 150 Мбит/с
Bluetooth BLE (Bluetooth с низким энергопотреблением) и устаревший Bluetooth
Архитектура 32 бит
Тактовая частота До 240 МГц
БАРАН 512 КБ
Булавки 30(в зависимости от модели)
Периферийные устройства Емкостный сенсор, АЦП (аналого-цифровой преобразователь), ЦАП (цифро-аналоговый преобразователь), 12C (межинтегральная интегральная схема), UART (универсальный асинхронный приемник/передатчик), CAN 2.0 (сеть контроллера), SPI (последовательный периферийный интерфейс), 12S (интегрированная межинтегральная схема)
Звук), RMII (уменьшенный медиа-независимый интерфейс), ШИМ (широтно-импульсная модуляция) и многое другое.
Встроенные кнопки Кнопки RESET и BOOT
Встроенные светодиоды встроенный синий светодиод, подключенный к GPIO2; встроенный красный светодиод, показывающий, что плата получает питание
USB к UART
мост
CP2102

LAFVIN ESP32 Базовый стартовый комплект - ESP32 DEVKITПлата оснащена интерфейсом microUSB, который можно использовать для подключения платы к компьютеру для загрузки кода или подачи питания.
Он использует чип CP2102 (USB в UART) для связи с вашим компьютером через COM-порт с использованием последовательного интерфейса. Другой популярный чип — CH340. Проверьте, какой преобразователь USB в UART установлен на вашей плате, поскольку вам нужно будет установить необходимые драйверы, чтобы ваш компьютер мог взаимодействовать с платой (подробнее об этом далее в этом руководстве).
Эта плата также оснащена кнопкой RESET (может быть обозначена как EN) для перезапуска платы и кнопкой BOOT для перевода платы в режим прошивки (доступен для получения кода). Обратите внимание, что на некоторых платах может отсутствовать кнопка BOOT.
Он также оснащен встроенным синим светодиодом, который внутренне подключен к GPIO 2. Этот светодиод полезен для отладки, чтобы обеспечить некий визуальный физический вывод. Также есть красный светодиод, который загорается, когда вы подаете питание на плату.LAFVIN ESP32 Базовый стартовый комплект - платаРаспиновка ESP32
Периферийные устройства ESP32 включают в себя:

  • 18 каналов аналого-цифрового преобразователя (АЦП)
  • 3 интерфейса SPI
  • 3 интерфейса UART
  • 2 интерфейса I2C
  • 16 выходных канала ШИМ
  • 2 цифро-аналоговых преобразователя (ЦАП)
  • 2 интерфейса I2S
  • 10 емкостных сенсорных GPIO

Функции АЦП (аналого-цифровой преобразователь) и ЦАП (цифро-аналоговый преобразователь) назначены на определенные статические контакты. Однако вы можете решить, какие контакты будут UART, I2C, SPI, PWM и т. д. — вам просто нужно назначить их в коде. Это возможно благодаря функции мультиплексирования чипа ESP32.
Хотя вы можете определить свойства выводов в программном обеспечении, существуют выводы, назначенные по умолчанию, как показано на следующем рисунке.Базовый стартовый комплект LAFVIN ESP32 - Распиновка ESP32Кроме того, существуют пины с определенными характеристиками, которые делают их подходящими или неподходящими для конкретного проекта. В следующей таблице показано, какие пины лучше всего использовать в качестве входов, выходов, а с какими нужно быть осторожными.
Выводы, выделенные зеленым, можно использовать. Выводы, выделенные желтым, можно использовать, но нужно быть внимательным, поскольку они могут вести себя непредсказуемо, в основном при загрузке. Выводы, выделенные красным, не рекомендуется использовать в качестве входов или выходов.

ГП ИО Вход Выход Примечания
0 подтянулся OK выводит сигнал ШИМ при загрузке, должен быть НИЗКИМ для входа в режим прошивки
1 контакт TX OK отладочный вывод при загрузке
2 OK OK подключен к встроенному светодиоду, должен быть оставлен плавающим или находиться в состоянии LOW для перехода в режим мигания
3 OK Контакт RX ВЫСОКИЙ при загрузке
4 OK OK
5 OK OK выводит ШИМ-сигнал при загрузке, обвязочный штифт
12 OK OK ботинок выходит из строя, если его высоко потянуть, фиксирующий штифт
13 OK OK
14 OK OK выводит ШИМ-сигнал при загрузке
15 OK OK выводит ШИМ-сигнал при загрузке, обвязочный штифт
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK только ввод
35 OK только ввод
36 OK только ввод
39 OK только ввод

Продолжайте читать для более подробного и глубокого анализа GPIO ESP32 и его функций.
Только входные контакты
GPIO 34–39 — это GPI — только входные контакты. Эти контакты не имеют внутренних подтягивающих или подтягивающих резисторов. Их нельзя использовать как выходы, поэтому используйте эти контакты только как входы:

  • ГПИО 34
  • ГПИО 35
  • ГПИО 36
  • ГПИО 39

SPI flash интегрирован в ESP-WROOM-32
GPIO 6 - GPIO 11 доступны на некоторых платах разработки ESP32. Однако эти контакты подключены к интегрированной флэш-памяти SPI на чипе ESP-WROOM-32 и не рекомендуются для других целей. Поэтому не используйте эти контакты в своих проектах:

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

Емкостные сенсорные GPIO
ESP32 имеет 10 внутренних емкостных сенсорных датчиков. Они могут определять изменения во всем, что несет электрический заряд, например, в коже человека. Поэтому они могут определять изменения, возникающие при прикосновении пальцем к GPIO. Эти контакты можно легко интегрировать в емкостные площадки и заменить механические кнопки. Емкостные сенсорные контакты также можно использовать для пробуждения ESP32 из глубокого сна. Эти внутренние сенсорные датчики подключены к этим GPIO:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Аналого-цифровой преобразователь (АЦП)
ESP32 имеет 18 x 12-битных входных каналов АЦП (тогда как ESP8266 имеет только 1x 10-битный АЦП). Это GPIO, которые можно использовать в качестве АЦП, и соответствующие каналы:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

Примечание: Контакты ADC2 не могут использоваться при использовании Wi-Fi. Поэтому, если вы используете Wi-Fi и у вас возникают проблемы с получением значения от ADC2 GPIO, вы можете рассмотреть возможность использования вместо этого ADC1 GPIO. Это должно решить вашу проблему.
Входные каналы АЦП имеют 12-битное разрешение. Это означает, что вы можете получить аналоговые показания в диапазоне от 0 до 4095, где 0 соответствует 0 В, а 4095 — 3.3 В. Вы также можете установить разрешение ваших каналов по коду и диапазону АЦП.
Контакты АЦП ESP32 не имеют линейного поведения. Вы, вероятно, не сможете отличить 0 от 0.1 В или от 3.2 до 3.3 В. Вам нужно помнить об этом при использовании контактов АЦП. Вы получите поведение, похожее на то, что показано на следующем рисунке.LAFVIN ESP32 Базовый стартовый комплект - поведениеЦифро-аналоговый преобразователь (ЦАП)
На ESP2 имеется 8 канала ЦАП по 32 бит для преобразования цифровых сигналов в аналоговые.tagВыходы сигнала e. Это каналы ЦАП:

  • ЦАП1 (GPIO25)
  • ЦАП2 (GPIO26)

RTC GPIO
Поддержка RTC GPIO на ESP32. GPIO, направленные на подсистему RTC с низким энергопотреблением, могут использоваться, когда ESP32 находится в состоянии глубокого сна. Эти RTC GPIO могут использоваться для пробуждения ESP32 из глубокого сна, когда Ultra Low
Сопроцессор питания (ULP) работает. Следующие GPIO могут использоваться в качестве внешнего источника пробуждения.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

ШИМ
Контроллер ESP32 LED PWM имеет 16 независимых каналов, которые можно настроить для генерации сигналов PWM с различными свойствами. Все контакты, которые могут действовать как выходы, можно использовать как контакты PWM (GPIO 34–39 не могут генерировать PWM).
Для установки ШИМ-сигнала необходимо определить следующие параметры в коде:

  • Частота сигнала;
  • Рабочий цикл;
  • ШИМ-канал;
  • GPIO, куда вы хотите вывести сигнал.

I2C
ESP32 имеет два канала I2C, и любой вывод может быть установлен как SDA или SCL. При использовании ESP32 с Arduino IDE выводы I2C по умолчанию следующие:

  • GPIO 21 (ПДД)
  • GPIO 22 (СКЛ)

Если вы хотите использовать другие контакты при использовании библиотеки проводов, вам просто нужно вызвать:
Провод.begin(SDA, SCL);
СПИ
По умолчанию назначение выводов для SPI следующее:

СПИ MOSI МИСО КЛК CS
ВСПИ ГПИО 23 ГПИО 19 ГПИО 18 ГПИО 5
HSPI ГПИО 13 ГПИО 12 ГПИО 14 ГПИО 15

Прерывания
Все GPIO можно настроить как прерывания.
Обвязочные булавки
Чип ESP32 имеет следующие контакты для подключения:

  • GPIO 0 (должен быть НИЗКИМ для входа в режим загрузки)
  • GPIO 2 (должен быть плавающим или иметь НИЗКИЙ уровень во время загрузки)
  • ГПИО 4
  • GPIO 5 (должен быть HIGH во время загрузки)
  • GPIO 12 (должен быть НИЗКИМ во время загрузки)
  • GPIO 15 (должен быть HIGH во время загрузки)

Они используются для перевода ESP32 в режим загрузчика или прошивки. На большинстве плат разработки со встроенным USB/Serial вам не нужно беспокоиться о состоянии этих контактов. Плата переводит контакты в правильное состояние для прошивки или режима загрузки. Более подробную информацию о выборе режима загрузки ESP32 можно найти здесь.
Однако если к этим контактам подключены периферийные устройства, у вас могут возникнуть проблемы с загрузкой нового кода, прошивкой ESP32 новой прошивкой или сбросом платы. Если к обвязочным контактам подключены периферийные устройства и у вас возникают проблемы с загрузкой кода или прошивкой ESP32, это может быть связано с тем, что эти периферийные устройства не позволяют ESP32 войти в нужный режим. Прочтите документацию по выбору режима загрузки, чтобы узнать, как действовать в правильном направлении. После сброса, прошивки или загрузки эти контакты работают так, как и ожидалось.
Контакты HIGH при загрузке
Некоторые GPIO изменяют свое состояние на HIGH или выводят сигналы ШИМ при загрузке или сбросе.
Это означает, что если у вас есть выходы, подключенные к этим GPIO, вы можете получить неожиданные результаты при сбросе или загрузке ESP32.

  • ГПИО 1
  • ГПИО 3
  • ГПИО 5
  • GPIO 6 - GPIO 11 (подключены к интегрированной флэш-памяти SPI ESP32 — не рекомендуется использовать).
  • ГПИО 14
  • ГПИО 15

Включить (EN)
Enable (EN) — это штырь включения регулятора 3.3 В. Он подтянут, поэтому подключите его к земле, чтобы отключить регулятор 3.3 В. Это означает, что вы можете использовать этот штырь, подключенный к кнопке, для перезапуска ESP32, напримерampле.
Потребляемый ток GPIO
Абсолютный максимальный ток, потребляемый каждым GPIO, составляет 40 мА в соответствии с разделом «Рекомендуемые условия эксплуатации» в техническом описании ESP32.
Встроенный датчик Холла ESP32
ESP32 также оснащен встроенным датчиком Холла, который обнаруживает изменения магнитного поля в окружающей среде.
ESP32 Arduino IDE
Существует дополнение для Arduino IDE, которое позволяет вам программировать ESP32 с помощью Arduino IDE и его языка программирования. В этом руководстве мы покажем вам, как установить плату ESP32 в Arduino IDE, независимо от того, используете ли вы Windows, Mac OS X или Linux.
Предварительные условия: установленная среда Arduino IDE
Перед началом этой процедуры установки вам необходимо установить Arduino IDE на вашем компьютере. Существует две версии Arduino IDE, которые вы можете установить: версия 1 и версия 2.
Вы можете загрузить и установить Arduino IDE, перейдя по следующей ссылке: arduino.cc/en/Главная/Программное обеспечение
Какую версию Arduino IDE мы рекомендуем? На данный момент есть несколько plugins для ESP32 (например, SPIFFS Filesystem Uploader Plugin), которые пока не поддерживаются в Arduino 2. Поэтому, если вы собираетесь использовать плагин SPIFFS в будущем, мы рекомендуем установить устаревшую версию 1.8.X. Вам просто нужно прокрутить страницу программного обеспечения Arduino вниз, чтобы найти ее.
Установка дополнения ESP32 в Arduino IDE
Чтобы установить плату ESP32 в Arduino IDE, следуйте следующим инструкциям:

  1. В Arduino IDE перейдите в File> ПредпочтенияLAFVIN ESP32 Базовый стартовый комплект - Настройки
  2. Введите следующее в поле «Дополнительный менеджер платы» URLполе «с»:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Затем нажмите кнопку «ОК»:Базовый стартовый комплект LAFVIN ESP32 — кнопка «ОК»Примечание: если у вас уже есть платы ESP8266 URL, вы можете отделить URLs с запятой следующим образом:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Откройте Boards Manager. Перейдите в Tools > Board > Boards Manager…LAFVIN ESP32 Базовый стартовый комплект - EspressifИскать ESP32 и нажмите кнопку установки для «ESP32 by Espressif Systems»:LAFVIN ESP32 Базовый стартовый комплект - EspressifВот и все. Он должен установиться через несколько секунд.Базовый стартовый комплект LAFVIN ESP32 - установлен

Загрузить тестовый код

Подключите плату ESP32 к компьютеру. Открыв Arduino IDE, выполните следующие действия:

  1. Выберите свою плату в меню «Инструменты» > «Плата» (в моем случае это модуль ESP32 DEV)LAFVIN ESP32 Базовый стартовый комплект - Панель инструментов
  2. Выберите порт (если вы не видите COM-порт в Arduino IDE, вам необходимо установить драйверы VCP моста USB-UART CP210x):Базовый стартовый комплект LAFVIN ESP32 - мост UART
  3. Откройте следующий примерampле под File > Бывшийampле > WiFi
    (ESP32) > WiFiScanБазовый стартовый комплект LAFVIN ESP32 - WiFiScanБазовый стартовый комплект LAFVIN ESP32 - WiFiScan 1
  4. В среде Arduino IDE откроется новый скетч:Базовый стартовый комплект LAFVIN ESP32 — Arduino IDE
  5. Нажмите кнопку Upload в Arduino IDE. Подождите несколько секунд, пока код скомпилируется и загрузится на вашу плату.LAFVIN ESP32 Базовый стартовый комплект - плата
  6. Если все прошло так, как ожидалось, вы должны увидеть сообщение «Загрузка завершена».Базовый стартовый комплект LAFVIN ESP32 — загрузка завершена
  7. Откройте последовательный монитор Arduino IDE со скоростью передачи данных 115200 бод:LAFVIN ESP32 Базовый стартовый комплект - Монитор
  8. Нажмите кнопку включения ESP32 на плате, и вы увидите сети, доступные рядом с вашим ESP32:Базовый стартовый комплект LAFVIN ESP32 — кнопка включения

Поиск неисправностей

Если вы пытаетесь загрузить новый скетч на свой ESP32 и получаете сообщение об ошибке «Произошла фатальная ошибка: Не удалось подключиться к ESP32: Превышено время ожидания… Подключение…». Это означает, что ваш ESP32 не находится в режиме прошивки/загрузки.
Выбрав правильное имя платы и COM-порт, выполните следующие действия:
Нажмите и удерживайте кнопку «BOOT» на плате ESP32.Базовый стартовый комплект LAFVIN ESP32 - «BOOT»

  • Нажмите кнопку «Загрузить» в Arduino IDE, чтобы загрузить свой скетч:Базовый стартовый комплект LAFVIN ESP32 - ICON 6
  • После того, как вы увидите сообщение «Подключение…» в Arduino IDE, уберите палец с кнопки «BOOT»:Базовый стартовый комплект LAFVIN ESP32 — «Загрузка завершена
  • После этого вы должны увидеть сообщение «Загрузка завершена».
    Вот и все. Ваш ESP32 должен запустить новый скетч. Нажмите кнопку «ENABLE», чтобы перезапустить ESP32 и запустить новый загруженный скетч.
    Вам также придется повторять эту последовательность кнопок каждый раз, когда вы захотите загрузить новый эскиз.

Проект 1 ESP32 Входы Выходы

В этом руководстве по началу работы вы узнаете, как считывать цифровые входы, например кнопочный переключатель, и управлять цифровыми выходами, например светодиодом, с помощью ESP32 и Arduino IDE.
Предпосылки
Мы будем программировать ESP32 с помощью Arduino IDE. Поэтому убедитесь, что у вас установлены надстройки ESP32 boards, прежде чем продолжить:

  • Установка дополнения ESP32 в Arduino IDE

Управление цифровыми выходами ESP32
Сначала вам нужно установить GPIO, которым вы хотите управлять, как ВЫХОД. Используйте функцию pinMode() следующим образом:
pinMode(GPIO, ВЫХОД);
Для управления цифровым выходом вам просто нужно использовать функцию digitalWrite(), которая принимает в качестве аргументов GPIO (целое число), на которое вы ссылаетесь, и состояние: HIGH (ВЫСОКИЙ) или LOW (НИЗКИЙ).
digitalWrite(GPIO, СОСТОЯНИЕ);
Все GPIO могут использоваться как выходы, за исключением GPIO 6–11 (подключенных к интегрированной флэш-памяти SPI) и GPIO 34, 35, 36 и 39 (GPIO только для входа);
Узнайте больше о ESP32 GPIO: Справочное руководство по ESP32 GPIO
ESP32 Чтение цифровых входов
Сначала установите GPIO, который вы хотите считать как ВХОД, используя функцию pinMode() следующим образом:
pinMode(GPIO, ВХОД);
Чтобы прочитать цифровой вход, например кнопку, вы используете функцию digitalRead(), которая принимает в качестве аргумента GPIO (целое число), на которое вы ссылаетесь.
цифровое чтение (GPIO);
Все GPIO ESP32 могут использоваться в качестве входов, за исключением GPIO 6–11 (подключенных к интегрированной флэш-памяти SPI).
Узнайте больше о ESP32 GPIO: Справочное руководство по ESP32 GPIO
Проект Эксample
Чтобы показать вам, как использовать цифровые входы и цифровые выходы, мы создадим простой проект example с кнопкой и светодиодом. Мы будем считывать состояние кнопки и зажигать светодиод соответственно, как показано на следующем рисунке.LAFVIN ESP32 Базовый стартовый комплект - Project Example

Требуемые детали
Вот список деталей, которые вам понадобятся для сборки схемы:

  • ESP32 DEVKIT V1
  • 5 мм светодиод
  • Резистор 220 Ом
  • Нажать кнопку
  • Резистор 10кОм
  • Макетная плата
  • Провода-перемычки

Принципиальная схема
Прежде чем продолжить, вам необходимо собрать схему со светодиодом и кнопкой.
Подключим светодиод к GPIO 5, а кнопку — к GPIO. 4.Базовый стартовый комплект LAFVIN ESP32 - принципиальная схемаКод
Откройте код Project_1_ESP32_Inputs_Outputs.ino в arduino IDEБазовый стартовый комплект LAFVIN ESP32 - КодБазовый стартовый комплект LAFVIN ESP32 - Код 1Как работает код
В следующих двух строках вы создаете переменные для назначения контактов:

LAFVIN ESP32 Базовый стартовый комплект - Code WorksКнопка подключена к GPIO 4, а светодиод — к GPIO 5. При использовании Arduino IDE с ESP32 4 соответствует GPIO 4, а 5 — GPIO 5.
Далее вы создаете переменную для хранения состояния кнопки. По умолчанию это 0 (не нажата).
int buttonState = 0;
В setup() вы инициализируете кнопку как ВХОД, а светодиод как ВЫХОД.
Для этого используется функция pinMode(), которая принимает указанный пин и режим: INPUT или OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
В цикле loop() вы считываете состояние кнопки и соответствующим образом настраиваете светодиод.
В следующей строке вы считываете состояние кнопки и сохраняете его в переменной buttonState.
Как мы уже видели ранее, вы используете функцию digitalRead().
buttonState = digitalRead(buttonPin);
Следующий оператор if проверяет, является ли состояние кнопки HIGH. Если это так, он включает светодиод с помощью функции digitalWrite(), которая принимает в качестве аргумента ledPin и состояние HIGH.
если (buttonState == HIGH)LAFVIN ESP32 Базовый стартовый комплект - Code Works 1Если состояние кнопки не HIGH, вы отключаете светодиод. Просто установите LOW в качестве второго аргумента в функции digitalWrite().Базовый стартовый комплект LAFVIN ESP32 - digitalWriteЗагрузка кода
Прежде чем нажать кнопку загрузки, перейдите в Инструменты > Плата и выберите плату: DOIT ESP32 DEVKIT V1.
Перейдите в Tools > Port и выберите COM-порт, к которому подключен ESP32. Затем нажмите кнопку загрузки и дождитесь сообщения «Done uploading».Базовый стартовый комплект LAFVIN ESP32 - ICON 7Примечание: Если вы видите много точек (подключение…__…__) в окне отладки и сообщение «Не удалось подключиться к ESP32: истекло время ожидания заголовка пакета», это означает, что вам нужно нажать кнопку BOOT на плате ESP32 после точек.
начинают появляться.Устранение неполадок

Демонстрация

После загрузки кода проверьте вашу схему. Ваш светодиод должен загореться при нажатии кнопки:Базовый стартовый комплект LAFVIN ESP32 — демонстрацияИ выключите, когда отпустите его:LAFVIN ESP32 Базовый стартовый комплект - поворот

Проект 2 ESP32 Аналоговые входы

В этом проекте показано, как считывать аналоговые входы с помощью ESP32, используя Arduino IDE.
Аналоговое считывание полезно для считывания значений с переменных резисторов, таких как потенциометры или аналоговые датчики.
Аналоговые входы (АЦП)
Считывание аналогового значения с помощью ESP32 означает, что вы можете измерять изменяющийся объемtagуровни от 0 В до 3.3 В.
ОбъемtagЗатем измеренному значению присваивается значение от 0 до 4095, где 0 В соответствует 0, а 3.3 В соответствует 4095. Любой объемtagе между 0 В и 3.3 В будет присвоено соответствующее промежуточное значение.Базовый стартовый комплект LAFVIN ESP32 — аналоговые входыАЦП нелинейный
В идеале можно ожидать линейного поведения при использовании выводов АЦП ESP32.
Однако этого не происходит. Вы получите поведение, показанное в следующей таблице:LAFVIN ESP32 Базовый стартовый комплект - НелинейныйТакое поведение означает, что ваш ESP32 не способен отличить 3.3 В от 3.2 В.
Вы получите одинаковое значение для обоих объемов.tagэс: 4095.
То же самое происходит при очень низком уровне громкости.tagзначения e: для 0 В и 0.1 В вы получите одно и то же значение: 0. Это необходимо учитывать при использовании выводов АЦП ESP32.
Функция analogRead()
Чтение аналогового входа с помощью ESP32 с использованием Arduino IDE так же просто, как использование функции analogRead(). Она принимает в качестве аргумента GPIO, который вы хотите прочитать:
аналоговое чтение (GPIO);
В плате DEVKIT V15 (версия с 1 GPIO) доступно только 30 из них.
Возьмите распиновку платы ESP32 и найдите контакты АЦП. Они выделены красной рамкой на рисунке ниже.LAFVIN ESP32 Базовый стартовый комплект - бордюрЭти аналоговые входные пины имеют 12-битное разрешение. Это означает, что при считывании аналогового входа его диапазон может варьироваться от 0 до 4095.
Примечание: контакты ADC2 не могут использоваться при использовании Wi-Fi. Поэтому, если вы используете Wi-Fi и у вас возникают проблемы с получением значения от ADC2 GPIO, вы можете рассмотреть возможность использования вместо этого ADC1 GPIO, это должно решить вашу проблему.
Чтобы увидеть, как все связано, мы сделаем простой пример.ample для считывания аналогового значения с потенциометра.
Требуемые детали
Для этого бывшегоample, вам понадобятся следующие детали:

  • Плата ESP32 DEVKIT V1
  • Потенциометр
  • Макетная плата
  • Провода-перемычки

Схема
Подключите потенциометр к ESP32. Средний контакт потенциометра должен быть подключен к GPIO 4. Вы можете использовать следующую принципиальную схему в качестве справочного материала.Базовый стартовый комплект LAFVIN ESP32 - СхемаКод
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
Откройте код Project_2_ESP32_Inputs_Outputs.ino в arduino IDEБазовый стартовый комплект LAFVIN ESP32 - Код 2Этот код просто считывает значения с потенциометра и выводит эти значения в последовательный монитор.
В коде вы начинаете с определения GPIO, к которому подключен потенциометр. В этом примереampле, GPIO 4.LAFVIN ESP32 Базовый стартовый комплект - бывш.ampleВ setup() инициализируйте последовательную связь со скоростью передачи данных 115200 бод.LAFVIN ESP32 Базовый стартовый комплект - бывш.ampле 1В цикле loop() используйте функцию analogRead() для считывания аналогового входа с potPin.LAFVIN ESP32 Базовый стартовый комплект - бывш.ampле 2Наконец, распечатайте значения, считанные с потенциометра, на последовательном мониторе.LAFVIN ESP32 Базовый стартовый комплект - бывш.ampле 3Загрузите предоставленный код в ваш ESP32. Убедитесь, что в меню «Инструменты» выбраны правильная плата и COM-порт.
Тестирование Example
После загрузки кода и нажатия кнопки сброса ESP32 откройте последовательный монитор на скорости передачи данных 115200 бод. Вращайте потенциометр и наблюдайте за изменением значений.Максимальное значение, которое вы получите, — 4095, а минимальное — 0.Базовый стартовый комплект LAFVIN ESP32 — максимальная стоимость

Подведение итогов

В этой статье вы узнали, как считывать аналоговые входы с помощью ESP32 с Arduino IDE. Вкратце:

  • Плата ESP32 DEVKIT V1 DOIT (версия с 30 контактами) имеет 15 контактов АЦП, которые можно использовать для считывания аналоговых входов.
  • Эти выводы имеют разрешение 12 бит, что означает, что вы можете получить значения от 0 до 4095.
  • Чтобы прочитать значение в Arduino IDE, просто используйте функцию analogRead().
  • Контакты АЦП ESP32 не имеют линейного поведения. Вы, вероятно, не сможете отличить 0 от 0.1 В или 3.2 от 3.3 В. Вам нужно помнить об этом при использовании контактов АЦП.

Проект 3 ESP32 PWM (аналоговый выход)

В этом уроке мы покажем вам, как генерировать сигналы ШИМ с помощью ESP32, используя Arduino IDE. В качестве примераampТеперь мы построим простую схему, которая будет регулировать яркость светодиода с помощью ШИМ-контроллера светодиода ESP32.LAFVIN ESP32 Базовый стартовый комплект - Аналоговый выходКонтроллер светодиодной ШИМ ESP32
ESP32 имеет светодиодный ШИМ-контроллер с 16 независимыми каналами, которые можно настроить для генерации ШИМ-сигналов с различными свойствами.
Вот шаги, которые вам нужно будет выполнить, чтобы регулировать яркость светодиода с помощью ШИМ с помощью Arduino IDE:

  1. Сначала вам нужно выбрать канал ШИМ. Всего есть 16 каналов от 0 до 15.
  2. Затем вам нужно установить частоту сигнала ШИМ. Для светодиода подойдет частота 5000 Гц.
  3. Вам также необходимо установить разрешение рабочего цикла сигнала: у вас есть разрешения от 1 до 16 бит. Мы будем использовать 8-битное разрешение, что означает, что вы можете управлять яркостью светодиода, используя значение от 0 до 255.
  4.  Далее вам нужно указать, на каком GPIO или GPIO будет появляться сигнал. Для этого вы будете использовать следующую функцию:
    ledcAttachPin(GPIO, канал)
    Эта функция принимает два аргумента. Первый — GPIO, который будет выводить сигнал, а второй — канал, который будет генерировать сигнал.
  5. Наконец, для управления яркостью светодиода с помощью ШИМ используется следующая функция:

ledcWrite(канал, рабочий цикл)
Эта функция принимает в качестве аргументов канал, генерирующий ШИМ-сигнал, и рабочий цикл.
Требуемые детали
Для выполнения этого руководства вам понадобятся следующие детали:

  • Плата ESP32 DEVKIT V1
  • Светодиод 5mm
  • Резистор 220 Ом
  •  Макетная плата
  • Провода-перемычки

Схема
Подключите светодиод к ESP32, как показано на следующей схеме. Светодиод должен быть подключен к GPIO 4.Базовый стартовый комплект LAFVIN ESP32 - СхемаПримечание: вы можете использовать любой пин, который хотите, пока он может работать как выход. Все пины, которые могут работать как выходы, могут использоваться как контакты ШИМ. Для получения дополнительной информации о ESP32 GPIO, прочитайте: Справочник по распиновке ESP32: Какие пины GPIO следует использовать?
Код
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
Откройте код Project_3_ESP32_PWM.ino в arduino IDEБазовый стартовый комплект LAFVIN ESP32 - Код 3Базовый стартовый комплект LAFVIN ESP32 - Код 4Вы начинаете с определения пина, к которому подключен светодиод. В этом случае светодиод подключен к GPIO 4.Базовый стартовый комплект LAFVIN ESP32 - Код 5Затем вы устанавливаете свойства сигнала ШИМ. Вы определяете частоту 5000 Гц, выбираете канал 0 для генерации сигнала и устанавливаете разрешение 8 бит. Вы можете выбрать другие свойства, отличные от этих, для генерации других сигналов ШИМ.Базовый стартовый комплект LAFVIN ESP32 - Код 6В setup() вам необходимо настроить светодиодный ШИМ со свойствами, которые вы определили ранее, используя функцию ledcSetup(), которая принимает в качестве аргументов ledChannel, частоту и разрешение, как показано ниже:Базовый стартовый комплект LAFVIN ESP32 - Код 8Далее вам нужно выбрать GPIO, с которого вы будете получать сигнал. Для этого используйте функцию ledcAttachPin(), которая принимает в качестве аргументов GPIO, с которого вы хотите получить сигнал, и канал, который генерирует сигнал. В этом примереampИтак, мы получим сигнал в ledPin GPIO, который соответствует GPIO 4. Канал, который генерирует сигнал, — это ledChannel, который соответствует каналу 0.Базовый стартовый комплект LAFVIN ESP32 - Код 9В цикле вы будете изменять коэффициент заполнения от 0 до 255, чтобы увеличить яркость светодиода.LAFVIN ESP32 Базовый стартовый комплект - яркостьА затем — от 255 до 0, чтобы уменьшить яркость.LAFVIN ESP32 Базовый стартовый комплект - яркость 1Чтобы установить яркость светодиода, вам просто нужно использовать функцию ledcWrite(), которая принимает в качестве аргументов канал, генерирующий сигнал, и коэффициент заполнения.LAFVIN ESP32 Базовый стартовый комплект - яркость 2Поскольку мы используем 8-битное разрешение, рабочий цикл будет контролироваться с использованием значения от 0 до 255. Обратите внимание, что в функции ledcWrite() мы используем канал, генерирующий сигнал, а не GPIO.

Тестирование Example

Загрузите код в ваш ESP32. Убедитесь, что вы выбрали правильную плату и COM-порт. Посмотрите на свою схему. У вас должен быть светодиод-диммер, который увеличивает и уменьшает яркость.LAFVIN ESP32 Базовый стартовый комплект — Тестирование Example

Проект 4 ESP32 PIR датчик движения

В этом проекте показано, как обнаружить движение с помощью ESP32, используя датчик движения PIR. Зуммер подаст звуковой сигнал при обнаружении движения и отключит сигнал тревоги, если в течение заданного времени (например, 4 секунды) движение не будет обнаружено.
Как работает датчик движения HC-SR501
.LAFVIN ESP32 Базовый стартовый комплект - Датчик движения работаетПринцип работы датчика HC-SR501 основан на изменении инфракрасного излучения на движущемся объекте. Чтобы датчик HC-SR501 обнаружил объект, он должен соответствовать двум требованиям:

  • Объект излучает инфракрасное излучение.
  • Объект движется или трясется

Так:
Если объект излучает инфракрасный луч, но не движется (например, человек стоит на месте, не двигаясь), то датчик его не обнаруживает.
Если объект движется, но НЕ излучает инфракрасный луч (например, робот или транспортное средство), он НЕ обнаруживается датчиком.
Представляем таймеры
В этом бывшемample мы также представим таймеры. Мы хотим, чтобы светодиод оставался включенным в течение предопределенного количества секунд после обнаружения движения. Вместо использования функции delay(), которая блокирует ваш код и не позволяет вам делать что-либо еще в течение определенного количества секунд, мы должны использовать таймер.Базовый стартовый комплект LAFVIN ESP32 — Знакомство с таймерамиФункция delay()
Вы должны быть знакомы с функцией delay(), поскольку она широко используется. Эта функция довольно проста в использовании. Она принимает одно целое число в качестве аргумента.
Это число представляет собой время в миллисекундах, которое программе приходится ждать, прежде чем перейти к следующей строке кода.Базовый стартовый комплект LAFVIN ESP32 - кодКогда вы делаете delay(1000), ваша программа останавливается на этой строке на 1 секунду.
delay() — это блокирующая функция. Блокирующие функции не позволяют программе делать что-либо еще, пока не будет завершена данная конкретная задача. Если вам нужно, чтобы несколько задач выполнялись одновременно, вы не можете использовать delay().
Для большинства проектов следует избегать использования задержек и вместо этого использовать таймеры.
Функция millis()
Используя функцию millis(), вы можете вернуть количество миллисекунд, прошедших с момента первого запуска программы.LAFVIN ESP32 Basic Starter Kit — программа запущена впервыеПочему эта функция полезна? Потому что, используя немного математики, вы можете легко проверить, сколько времени прошло, не блокируя свой код.
Требуемые детали
Для выполнения этого руководства вам понадобятся следующие детали:

  • Плата ESP32 DEVKIT V1
  • Датчик движения PIR (HC-SR501)
  • Активный зуммер
  • Провода-перемычки
  • Макетная плата

СхемаБазовый стартовый комплект LAFVIN ESP32 — Схема 1Примечание: Рабочий томtage HC-SR501 составляет 5 В. Для питания используйте вывод Vin.
Код
Прежде чем продолжить этот урок, вам следует установить дополнение ESP32 в Arduino IDE. Следуйте одному из следующих уроков, чтобы установить ESP32 в Arduino IDE, если вы еще этого не сделали. (Если вы уже сделали этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
Откройте код Project_4_ESP32_PIR_Motion_Sensor.ino в среде разработки Arduino.
Демонстрация
Загрузите код на плату ESP32. Убедитесь, что выбраны правильная плата и COM-порт.Справочные шаги по загрузке кода.
Откройте последовательный монитор со скоростью передачи данных 115200 бод.Базовый стартовый комплект LAFVIN ESP32 — Демонстрация 1Проведите рукой перед датчиком PIR. Зуммер должен включиться, а на последовательном мониторе должно появиться сообщение «Обнаружено движение! Сигнализация зуммера».
Через 4 секунды зуммер должен выключиться.LAFVIN ESP32 Базовый стартовый комплект - зуммер

Проект 5 коммутатор ESP32 Web Сервер

В этом проекте вы создадите автономный web сервер с ESP32, который управляет выходами (два светодиода) с помощью среды программирования Arduino IDE. web сервер мобилен и доступен с любого устройства, как браузер в локальной сети. Мы покажем вам, как создать web сервер и как работает код шаг за шагом.
Проект оконченview
Прежде чем перейти непосредственно к проекту, важно обрисовать в общих чертах, что мы web сервер подойдет, чтобы было легче выполнять дальнейшие шаги.

  • The web Сервер, который вы создадите, управляет двумя светодиодами, подключенными к ESP32 GPIO 26 и GPIO 27;
  • Вы можете получить доступ к ESP32 web серверу, введя IP-адрес ESP32 в браузере в локальной сети;
  • Нажимая кнопки на вашем web сервер вы можете мгновенно изменить состояние каждого светодиода.

Требуемые детали
Для этого урока вам понадобятся следующие детали:

  • Плата ESP32 DEVKIT V1
  • 2x 5 мм светодиода
  • 2x резистор 200 Ом
  • Макетная плата
  • Провода-перемычки

Схема
Начните со сборки схемы. Подключите два светодиода к ESP32, как показано на следующей принципиальной схеме – один светодиод подключен к GPIO 26, а другой к GPIO 27.
Примечание: Мы используем плату ESP32 DEVKIT DOIT с 36 контактами. Перед сборкой схемы обязательно проверьте распиновку используемой платы.Базовый стартовый комплект LAFVIN ESP32 - СхемаКод
Здесь мы приводим код, который создает ESP32 web сервер. Откройте код Project_5_ESP32_Switch _Web_Server.ino в arduino IDE, но пока не загружайте его. Вам нужно внести некоторые изменения, чтобы он заработал у вас.
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
Настройка сетевых учетных данных
Вам необходимо изменить следующие строки с вашими сетевыми учетными данными: SSID и пароль. Код хорошо прокомментирован, где вы должны внести изменения.Базовый стартовый комплект LAFVIN ESP32 — сетевые учетные данныеЗагрузка кода
Теперь вы можете загрузить код и web сервер заработает сразу же.
Чтобы загрузить код в ESP32, выполните следующие действия:

  1. Подключите плату ESP32 к компьютеру;
  2. В Arduino IDE выберите свою плату в меню Инструменты > Плата (в нашем случае мы используем плату ESP32 DEVKIT DOIT);Базовый стартовый комплект LAFVIN ESP32 — загрузка кода
  3. Выберите COM-порт в меню Инструменты > Порт.LAFVIN ESP32 Базовый стартовый комплект - Порт инструментов
  4. Нажмите кнопку «Загрузить» в среде Arduino IDE и подождите несколько секунд, пока код скомпилируется и загрузится на вашу плату.Базовый стартовый комплект LAFVIN ESP32 - ICON 7
  5. Дождитесь сообщения «Загрузка завершена».Базовый стартовый комплект LAFVIN ESP32 — загрузка завершена 1

Поиск IP-адреса ESP
После загрузки кода откройте последовательный монитор на скорости передачи данных 115200 бод.Базовый стартовый комплект LAFVIN ESP32 — IP-адрес ESPНажмите кнопку ESP32 EN (сброс). ESP32 подключается к Wi-Fi и выводит IP-адрес ESP на Serial Monitor. Скопируйте этот IP-адрес, так как он вам понадобится для доступа к ESP32 web сервер.Базовый стартовый комплект LAFVIN ESP32 - web серверДоступ к Web Сервер
Чтобы получить доступ к web сервер, откройте браузер, вставьте IP-адрес ESP32, и вы увидите следующую страницу.
Примечание: Ваш браузер и ESP32 должны быть подключены к одной и той же локальной сети.Базовый стартовый комплект LAFVIN ESP32 — Доступ к Web СерверЕсли вы посмотрите на Serial Monitor, вы увидите, что происходит на заднем плане. ESP получает HTTP-запрос от нового клиента (в данном случае, вашего браузера).Базовый стартовый комплект LAFVIN ESP32 — HTTP-запросВы также можете увидеть другую информацию о HTTP-запросе.
Демонстрация
Теперь вы можете проверить, если ваш web Сервер работает нормально. Нажмите кнопки для управления светодиодами.LAFVIN ESP32 Базовый стартовый комплект - фонВ то же время вы можете взглянуть на Serial Monitor, чтобы увидеть, что происходит в фоновом режиме. Напримерample, когда вы нажимаете кнопку, чтобы включить GPIO 26, ESP32 получает запрос на /26/on URL.Базовый стартовый комплект LAFVIN ESP32 - URLКогда ESP32 получает этот запрос, он включает светодиод, подключенный к GPIO 26, и обновляет свое состояние на web страница.Базовый стартовый комплект LAFVIN ESP32 - web страницаАналогичным образом работает кнопка для GPIO 27. Проверьте, что она работает правильно.Базовый стартовый комплект LAFVIN ESP32 — работает исправно

Как работает код

В этом разделе мы более подробно рассмотрим код и увидим, как он работает.
Первое, что вам нужно сделать, это включить библиотеку WiFi.LAFVIN ESP32 Базовый стартовый комплект - Библиотека WiFiКак упоминалось ранее, вам необходимо вставить свой ssid и пароль в следующие строки внутри двойных кавычек.Базовый стартовый комплект LAFVIN ESP32 — двойные кавычкиЗатем вы устанавливаете свой web сервер к порту 80.Базовый стартовый комплект LAFVIN ESP32 - web серверСледующая строка создает переменную для хранения заголовка HTTP-запроса:Базовый стартовый комплект LAFVIN ESP32 - HTTPrequestДалее вы создаете вспомогательные переменные для хранения текущего состояния ваших выходов. Если вы хотите добавить больше выходов и сохранить их состояние, вам нужно создать больше переменных.Базовый стартовый комплект LAFVIN ESP32 — переменныеВам также необходимо назначить GPIO каждому из ваших выходов. Здесь мы используем GPIO 26 и GPIO 27. Вы можете использовать любые другие подходящие GPIO.LAFVIN ESP32 Базовый стартовый комплект - другие подходящиенастраивать()
Теперь перейдем к настройке(). Сначала мы запускаем последовательную связь со скоростью 115200 бод для целей отладки.LAFVIN ESP32 Базовый стартовый комплект - назначениеВы также определяете свои GPIO как ВЫХОДЫ и устанавливаете их на НИЗКИЙ уровень.Базовый стартовый комплект LAFVIN ESP32 — GPIO в качестве ВЫХОДОВСледующие строки начинают соединение Wi-Fi с помощью WiFi.begin(ssid, password), ждут успешного соединения и выводят IP-адрес ESP в Serial Monitor.LAFVIN ESP32 Базовый стартовый комплект - СерийныйLAFVIN ESP32 Базовый стартовый комплект - Серийный 1петля()
В цикле loop() мы программируем, что происходит, когда новый клиент устанавливает соединение с web сервер.
ESP32 всегда прослушивает входящие клиенты с помощью следующей строки:LAFVIN ESP32 Базовый стартовый комплект - петляПри получении запроса от клиента мы сохраним входящие данные. Следующий цикл while будет работать до тех пор, пока клиент остается подключенным. Мы не рекомендуем изменять следующую часть кода, если вы точно не знаете, что делаете.LAFVIN ESP32 Базовый стартовый комплект - именно то, что нужноБазовый стартовый комплект LAFVIN ESP32 - ровно 1Базовый стартовый комплект LAFVIN ESP32 - ровно 2Следующий раздел операторов if и else проверяет, какая кнопка была нажата в вашем web странице, и управляет выходами соответственно. Как мы видели ранее, мы делаем запрос на разных URLв зависимости от нажатой кнопки.Базовый стартовый комплект LAFVIN ESP32 — кнопка нажатаLAFVIN ESP32 Базовый стартовый комплект - нажата кнопка 1Напримерample, если вы нажали кнопку GPIO 26 ON, ESP32 получает запрос на /26/ON URL (мы можем видеть эту информацию в заголовке HTTP на Serial Monitor). Итак, мы можем проверить, содержит ли заголовок выражение GET /26/on. Если он содержит, мы меняем переменную output26state на ON, и ESP32 включает светодиод.
Это работает аналогично для других кнопок. Так что, если вы хотите добавить больше выходов, вам следует изменить эту часть кода, чтобы включить их.
Отображение HTML web страница
Следующее, что вам нужно сделать, это создать web страница. ESP32 отправит ответ вашему браузеру с некоторым HTML-кодом для построения web страница.
The web страница отправляется клиенту с помощью этого выражения client.println(). Вам следует ввести то, что вы хотите отправить клиенту, в качестве аргумента.
Первое, что мы должны отправить, — это всегда следующая строка, которая указывает, что мы отправляем HTML.Базовый стартовый комплект LAFVIN ESP32 — отправка HTMLЗатем следующая строка делает web страница адаптивна в любом web браузер.Базовый стартовый комплект LAFVIN ESP32 - web браузерА следующее используется для предотвращения запросов на фавикон. – Вам не нужно беспокоиться об этой строке.Базовый стартовый комплект LAFVIN ESP32 - client.println

Укладка Web Страница

Далее у нас есть текст CSS для оформления кнопок и web внешний вид страницы.
Мы выбираем шрифт Helvetica, определяем, какой контент будет отображаться в виде блока и выравниваться по центру.LAFVIN ESP32 Базовый стартовый комплект - Стайлинг Web СтраницаМы стилизуем наши кнопки цветом #4CAF50, без рамки, текстом белого цвета и с этим отступом: 16px 40px. Мы также устанавливаем text-decoration на none, определяем размер шрифта, поле и курсор на указатель.LAFVIN ESP32 Базовый стартовый комплект - указательМы также определяем стиль для второй кнопки, со всеми свойствами кнопки, которую мы определили ранее, но с другим цветом. Это будет стиль для кнопки выключения.LAFVIN ESP32 Базовый стартовый комплект - client.println 1

Установка Web Заголовок первой страницы
В следующей строке вы можете задать первый заголовок вашего web страница. Здесь у нас есть «ESP32 Web Сервер», но вы можете изменить этот текст на любой другой по вашему желанию.Базовый стартовый комплект LAFVIN ESP32 - Web Заголовок страницыОтображение кнопок и соответствующего состояния
Затем вы пишете абзац для отображения текущего состояния GPIO 26. Как видите, мы используем переменную output26State, чтобы состояние обновлялось мгновенно при изменении этой переменной.Базовый стартовый комплект LAFVIN ESP32 — переменные измененияЗатем мы отображаем кнопку включения или выключения в зависимости от текущего состояния GPIO. Если текущее состояние GPIO выключено, мы отображаем кнопку ВКЛ, если нет, мы отображаем кнопку ВЫКЛ.LAFVIN ESP32 Базовый стартовый комплект - отображение кнопки ВЫКЛ.Мы используем ту же процедуру для GPIO 27.
Закрытие соединения
Наконец, когда ответ заканчивается, мы очищаем переменную заголовка и останавливаем соединение с клиентом с помощью client.stop().Базовый стартовый комплект LAFVIN ESP32 — Закрытие соединения

Подведение итогов

В этом уроке мы показали вам, как построить web сервер с ESP32. Мы показали вам простой примерampфайл, который управляет двумя светодиодами, но идея состоит в том, чтобы заменить эти светодиоды реле или любым другим выходом, которым вы хотите управлять.

Проект 6 RGB светодиодов Web Сервер

В этом проекте мы покажем вам, как удаленно управлять RGB-светодиодом с помощью платы ESP32, используя web сервер с палитрой цветов.
Проект оконченview
Прежде чем начать, давайте посмотрим, как работает этот проект:LAFVIN ESP32 Базовый стартовый комплект - Проект оконченview

  • ESP32 web сервер отображает палитру цветов.
  • Когда вы выбираете цвет, ваш браузер делает запрос на URL содержащий параметры R, G и B выбранного цвета.
  • Ваш ESP32 получает запрос и разделяет значение для каждого параметра цвета.
  • Затем он отправляет ШИМ-сигнал с соответствующим значением на GPIO, которые управляют RGB-светодиодом.

Как работают RGB-светодиоды?
В светодиоде RGB с общим катодом все три светодиода имеют общее отрицательное соединение (катод). Все светодиоды, входящие в комплект, являются светодиодами RGB с общим катодом.Базовый стартовый комплект LAFVIN ESP32 — светодиоды RGB работаютКак создать разные цвета?
С помощью RGB-светодиода вы, конечно, можете создавать красный, зеленый и синий свет, а настраивая интенсивность каждого светодиода, вы можете создавать и другие цвета.
Напримерample, чтобы получить чисто синий свет, вы бы установили синий светодиод на максимальную интенсивность, а зеленый и красный светодиоды на минимальную интенсивность. Для белого света вы бы установили все три светодиода на максимальную интенсивность.
Смешивание цветов
Для получения других цветов можно комбинировать три цвета с разной интенсивностью. Для регулировки интенсивности каждого светодиода можно использовать сигнал ШИМ.
Поскольку светодиоды расположены очень близко друг к другу, наши глаза видят результат сочетания цветов, а не три цвета по отдельности.
Чтобы получить представление о том, как комбинировать цвета, взгляните на следующую таблицу.
Это самая простая таблица смешивания цветов, но она дает вам представление о том, как она работает и как получать разные цвета.Базовый стартовый комплект LAFVIN ESP32 — разные цветаТребуемые детали
Для этого проекта вам понадобятся следующие детали:

  • Плата ESP32 DEVKIT V1
  • RGB-светодиод
  • 3x резистора по 220 Ом
  • Провода-перемычки
  • Макетная плата

СхемаБазовый стартовый комплект LAFVIN ESP32 - СхемаКод
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)

  • Установка дополнения ESP32 в Arduino IDE

После сборки схемы откройте код
Проект_6_RGB_LED_Web_Server.ino в среде разработки Arduino.
Перед загрузкой кода не забудьте указать свои сетевые учетные данные, чтобы ESP мог подключиться к вашей локальной сети.LAFVIN ESP32 Базовый стартовый комплект - локальная сетьКак работает код
Эскиз ESP32 использует библиотеку WiFi.h.Базовый стартовый комплект LAFVIN ESP32 — библиотека WiFi.hВ следующих строках определяются строковые переменные для хранения параметров R, G и B из запроса.LAFVIN ESP32 Базовый стартовый комплект - String redStringСледующие четыре переменные впоследствии используются для декодирования HTTP-запроса.Базовый стартовый комплект LAFVIN ESP32 — HTTP-запросСоздайте три переменные для GPIO, которые будут управлять параметрами полосы R, G и B. В этом случае мы используем GPIO 13, GPIO 12 и GPIO 14.Базовый стартовый комплект LAFVIN ESP32 — необходимы GPIOЭти GPIO должны выводить сигналы PWM, поэтому нам нужно сначала настроить свойства PWM. Установите частоту сигнала PWM на 5000 Гц. Затем свяжите канал PWM для каждого цветаБазовый стартовый комплект LAFVIN ESP32 — каждый цветИ наконец, установите разрешение каналов ШИМ на 8 бит.Базовый стартовый комплект LAFVIN ESP32 - каналы ШИМВ setup() назначьте свойства ШИМ каналам ШИМБазовый стартовый комплект LAFVIN ESP32 - каналы ШИМПодключите каналы ШИМ к соответствующим GPIOБазовый стартовый комплект LAFVIN ESP32 — соответствующие GPIOСледующий фрагмент кода отображает палитру цветов в вашем web страницу и делает запрос на основе выбранного вами цвета.LAFVIN ESP32 Базовый стартовый комплект - выбранныйБазовый стартовый комплект LAFVIN ESP32 - client.printlnLAFVIN ESP32 Базовый стартовый комплект - client.println 1При выборе цвета вы получаете запрос следующего формата.Базовый стартовый комплект LAFVIN ESP32 — следующий формат

Итак, нам нужно разделить эту строку, чтобы получить параметры R, G и B. Параметры сохраняются в переменных redString, greenString и blueString и могут иметь значения от 0 до 255.LAFVIN ESP32 Базовый стартовый комплект - заголовокLAFVIN ESP32 Базовый стартовый комплект - заголовок 1Для управления полосой с помощью ESP32 используйте функцию ledcWrite() для генерации сигналов ШИМ со значениями, декодированными из HTTP запрос.Базовый стартовый комплект LAFVIN ESP32 - HTTP-запрос 1Примечание: узнайте больше о ШИМ с ESP32: Проект 3 ESP32 ШИМ (аналоговый выход)
Для управления полосой с помощью ESP8266 нам просто нужно использовать
функция analogWrite() для генерации ШИМ-сигналов со значениями, декодированными из запроса HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Поскольку мы получаем значения в строковой переменной, нам необходимо преобразовать их в целые числа с помощью метода toInt().
Демонстрация
После ввода сетевых учетных данных выберите правильную плату и COM-порт и загрузите код на ESP32. Шаги по загрузке кода.
После загрузки откройте Serial Monitor на скорости 115200 бод и нажмите кнопку ESP Enable/Reset. Вы должны получить IP-адрес платы.Базовый стартовый комплект LAFVIN ESP32 — та же локальная сетьОткройте браузер и введите IP-адрес ESP. Теперь используйте палитру цветов, чтобы выбрать цвет для RGB-светодиода.
Затем вам нужно нажать кнопку «Изменить цвет», чтобы цвет вступил в силу.Базовый стартовый комплект LAFVIN ESP32 - RGB LEDЧтобы выключить RGB-светодиод, выберите черный цвет.
Самые яркие цвета (в верхней части палитры цветов) дадут наилучшие результаты.Базовый стартовый комплект LAFVIN ESP32 — лучшие результаты

Проект 7 Реле ESP32 Web Сервер

Использование реле с ESP32 — отличный способ удаленного управления бытовыми приборами переменного тока. В этом руководстве объясняется, как управлять релейным модулем с помощью ESP32.
Мы рассмотрим, как работает релейный модуль, как подключить реле к ESP32 и построить web сервер для удаленного управления реле.
Знакомство с реле
Реле — это электрически управляемый переключатель, и как любой другой переключатель, его можно включать и выключать, пропуская ток или нет. Им можно управлять с помощью низкого уровня громкости.tages, как 3.3 В, обеспечиваемые ESP32 GPIO, и позволяет нам контролировать высокую громкостьtagнапример 12 В, 24 В или напряжение сетиtage (230 В в Европе и 120 В в США).Базовый стартовый комплект LAFVIN ESP32 — Знакомство с релеС левой стороны расположены два комплекта по три розетки для подключения высоковольтныхtages, а штырьки на правой стороне (низкий уровень громкости)tagд) подключиться к GPIO ESP32.
Объем сетиtage ПодключенияLAFVIN ESP32 Базовый стартовый комплект - Основной объемtage ПодключенияРелейный модуль, показанный на предыдущей фотографии, имеет два разъема, каждый с тремя гнездами: общий (COM), нормально замкнутый (NC) и нормально разомкнутый (NO).

  • COM: подключите ток, которым вы хотите управлять (громкость сети)tagд).
  • NC (нормально замкнутый): нормально замкнутая конфигурация используется, когда вы хотите, чтобы реле было замкнуто по умолчанию. NC — это контакты COM, которые подключены, что означает, что ток течет, пока вы не отправите сигнал с ESP32 на модуль реле, чтобы разомкнуть цепь и остановить ток.
  • NO (нормально разомкнутый): нормально разомкнутая конфигурация работает наоборот: между контактами NO и COM нет соединения, поэтому цепь разорвана, если вы не отправите сигнал с ESP32 на замыкание цепи.

Контрольные контактыLAFVIN ESP32 Базовый стартовый комплект - Управляющие штифтыНизкий уровень громкостиtagСторона e имеет набор из четырех контактов и набор из трех контактов. Первый набор состоит из VCC и GND для питания модуля, а также входа 1 (IN1) и входа 2 (IN2) для управления нижним и верхним реле соответственно.
Если у вашего релейного модуля только один канал, у вас будет только один входной контакт. Если у вас четыре канала, у вас будет четыре входных контакта и т. д.
Сигнал, который вы посылаете на контакты IN, определяет, активно реле или нет. Реле срабатывает, когда входной сигнал опускается ниже примерно 2 В. Это означает, что у вас будут следующие сценарии:

  • Нормально закрытая конфигурация (NC):
  • ВЫСОКИЙ сигнал – ток течет
  • НИЗКИЙ сигнал – ток не течет
  • Нормально открытая конфигурация (НО):
  • ВЫСОКИЙ сигнал – ток не течет
  • НИЗКИЙ сигнал – ток течет

Нормально замкнутую конфигурацию следует использовать, когда ток должен течь большую часть времени, и вы хотите останавливать его только изредка.
Используйте нормально открытую конфигурацию, когда вы хотите, чтобы ток протекал время от времени (например,ampле, включи всеamp изредка).
Выбор источника питанияБазовый стартовый комплект LAFVIN ESP32 — выбор блока питанияВторой набор контактов состоит из контактов GND, VCC и JD-VCC.
Вывод JD-VCC питает электромагнит реле. Обратите внимание, что модуль имеет перемычку, соединяющую выводы VCC и JD-VCC; показанный здесь желтый, но ваш может быть другого цвета.
При установленном колпачке перемычки контакты VCC и JD-VCC соединены. Это означает, что электромагнит реле напрямую питается от контакта питания ESP32, поэтому модуль реле и цепи ESP32 физически не изолированы друг от друга.
Без перемычки вам необходимо обеспечить независимый источник питания для питания электромагнита реле через контакт JD-VCC. Такая конфигурация физически изолирует реле от ESP32 с помощью встроенной оптопары модуля, что предотвращает повреждение ESP32 в случае электрических скачков.
СхемаБазовый стартовый комплект LAFVIN ESP32 - СхемаПредупреждение: Использование большого объемаtagЭлектропитание может привести к серьезным травмам.
Поэтому вместо светодиодов с высоким напряжением питания используются светодиоды диаметром 5 мм.tage лампочки в эксперименте. Если вы не знакомы с сетевым voltage попросите кого-нибудь помочь вам. При программировании ESP или подключении вашей схемы убедитесь, что все отключено от сети voltage.LAFVIN ESP32 Базовый стартовый комплект - основной объемtageУстановка библиотеки для ESP32
Чтобы построить это web сервер, мы используем ESPAsyncWebСерверная библиотека и библиотека AsyncTCP.
Установка ESPAsyncWebБиблиотека сервера
Выполните следующие шаги для установки ESPAsyncWebСервер библиотека:

  1. Нажмите здесь, чтобы загрузить ESPAsyncWebБиблиотека сервера. У вас должно быть
    .zip-папка в папке «Загрузки»
  2. Распакуйте папку .zip и вы должны получить ESPAsync.WebПапка Server-master
  3. Переименуйте вашу папку из ESPAsyncWebСервер-мастер для ESPAsyncWebСервер
  4. Переместить ESPAsyncWebПапку Server в папку с библиотеками установки Arduino IDE.

Кроме того, в среде разработки Arduino вы можете перейти в меню Sketch > Include.
Библиотека > Добавить библиотеку .ZIP… и выберите библиотеку, которую вы только что скачали.
Установка библиотеки AsyncTCP для ESP32
The ESPAsyncWebСервер библиотека требует АсинхронныйTCP библиотека для работы. Следуйте
следующие шаги по установке этой библиотеки:

  1. Нажмите здесь, чтобы загрузить библиотеку AsyncTCP. У вас должна быть папка .zip в папке Downloads
  2. Распакуйте папку .zip и вы должны получить папку AsyncTCP-master.
    1. Переименуйте папку из AsyncTCP-master в AsyncTCP
    3. Переместите папку AsyncTCP в папку с библиотеками установки Arduino IDE.
    4. Наконец, снова откройте Arduino IDE.

Кроме того, в среде разработки Arduino вы можете перейти в меню Sketch > Include.
Библиотека > Добавить библиотеку .ZIP… и выберите библиотеку, которую вы только что скачали.
Код
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
После установки необходимых библиотек, открываем код Project_7_ESP32_Relay_Web_Server.ino в среде разработки Arduino.
Перед загрузкой кода не забудьте указать свои сетевые учетные данные, чтобы ESP мог подключиться к вашей локальной сети.LAFVIN ESP32 Базовый стартовый комплект - локальная сетьДемонстрация
После внесения необходимых изменений загрузите код в ESP32. Шаги по загрузке кода.
Откройте последовательный монитор на скорости передачи данных 115200 бод и нажмите кнопку ESP32 EN, чтобы получить его IP-адрес. Затем откройте браузер в локальной сети и введите IP-адрес ESP32, чтобы получить доступ к web сервер.
Откройте последовательный монитор на скорости передачи данных 115200 бод и нажмите кнопку ESP32 EN, чтобы получить его IP-адрес. Затем откройте браузер в локальной сети и введите IP-адрес ESP32, чтобы получить доступ к web сервер.Базовый стартовый комплект LAFVIN ESP32 - web серверПримечание: Ваш браузер и ESP32 должны быть подключены к одной и той же локальной сети.
У вас должно получиться что-то вроде этого, имея столько же кнопок, сколько реле вы определили в своем коде.LAFVIN ESP32 Базовый стартовый комплект - смартфонТеперь вы можете использовать кнопки для управления реле с помощью смартфона.LAFVIN ESP32 Базовый стартовый комплект - смартфон 1

Project_8_Output_State_Synchronization_ Web_Сервер

В этом проекте показано, как управлять выходами ESP32 или ESP8266 с помощью web сервер и физическая кнопка одновременно. Состояние выхода обновляется на web страница, изменяется ли она с помощью физической кнопки или web сервер.
Проект оконченview
Давайте кратко рассмотрим, как работает проект.LAFVIN ESP32 Базовый стартовый комплект - Проект оконченviewESP32 или ESP8266 размещает web сервер, позволяющий контролировать состояние вывода;

  • Текущее состояние выхода отображается на web сервер;
  • ESP также подключен к физической кнопке, которая управляет тем же выходом;
  • Если вы измените состояние выхода с помощью физической кнопки, его текущее состояние также обновится на web сервер.

Подводя итог, можно сказать, что этот проект позволяет вам управлять тем же самым выходом с помощью web сервер и кнопка одновременно. Всякий раз, когда выходное состояние изменяется, web сервер обновлен.
Требуемые детали
Вот список деталей, которые вам понадобятся для сборки схемы:

  • Плата ESP32 DEVKIT V1
  • 5 мм светодиод
  • Резистор 220 Ом
  • Нажать кнопку
  • Резистор 10кОм
  • Макетная плата
  • Провода-перемычки

СхемаБазовый стартовый комплект LAFVIN ESP32 — Схема 1Установка библиотеки для ESP32
Чтобы построить это web сервер, мы используем ESPAsyncWebБиблиотека сервера и библиотека AsyncTCP. (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка ESPAsyncWebБиблиотека сервера
Выполните следующие шаги для установки ESPAsync.WebБиблиотека сервера:

  1. Нажмите здесь, чтобы загрузить ESPAsyncWebБиблиотека сервера. У вас должно быть
    .zip-папка в папке «Загрузки»
  2. Распакуйте папку .zip и вы должны получить ESPAsync.WebПапка Server-master
  3. Переименуйте вашу папку из ESPAsyncWebСервер-мастер для ESPAsyncWebСервер
  4. Переместить ESPAsyncWebПапку Server в папку с библиотеками установки Arduino IDE.
    Кроме того, в среде разработки Arduino вы можете перейти в меню Sketch > Include.
    Библиотека > Добавить библиотеку .ZIP… и выберите библиотеку, которую вы только что скачали.

Установка библиотеки AsyncTCP для ESP32
ESPAsyncWebБиблиотека сервера требует для работы библиотеки AsyncTCP. Выполните следующие шаги для установки этой библиотеки:

  1. Нажмите здесь, чтобы загрузить библиотеку AsyncTCP. У вас должна быть папка .zip в папке Downloads
  2. Распакуйте папку .zip и вы должны получить папку AsyncTCP-master.
  3. Переименуйте папку из AsyncTCP-master в AsyncTCP.
  4. Переместите папку AsyncTCP в папку с библиотеками установки Arduino IDE.
  5. Наконец, снова откройте Arduino IDE.
    Кроме того, в среде разработки Arduino вы можете перейти в меню Sketch > Include.
    Библиотека > Добавить библиотеку .ZIP… и выберите библиотеку, которую вы только что скачали.

Код
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
После установки необходимых библиотек, откройте код
Project_8_Output_State_Synchronization_Web_Server.ino в среде разработки Arduino.
Перед загрузкой кода не забудьте указать свои сетевые учетные данные, чтобы ESP мог подключиться к вашей локальной сети.Базовый стартовый комплект LAFVIN ESP32 - Код

Как работает код

Состояние кнопки и состояние выхода
Переменная ledState хранит состояние выходного светодиода. По умолчанию, когда web сервер запускается, он НИЗКИЙ.LAFVIN ESP32 Базовый стартовый комплект - Code Works

Параметры buttonState и lastButtonState используются для определения того, была ли нажата кнопка или нет.LAFVIN ESP32 Базовый стартовый комплект - был нажатКнопка (web сервер)
Мы не включили HTML для создания кнопки в переменную index_html.
Это потому, что мы хотим иметь возможность изменять его в зависимости от текущего состояния светодиода, которое также можно изменить с помощью кнопки.
Итак, мы создали заполнитель для кнопки %BUTTONPLACEHOLDER%, который будет заменен HTML-текстом для создания кнопки позже в коде (это делается в функции processor()).LAFVIN ESP32 Базовый стартовый комплект - был нажат 1процессор()
Функция процессора() заменяет любые заполнители в тексте HTML фактическими значениями. Сначала она проверяет, содержит ли текст HTML какие-либо
заполнители %BUTTONPLACEHOLDER%.LAFVIN ESP32 Базовый стартовый комплект - процессорЗатем вызываем функцию outputState(), которая возвращает текущее состояние вывода. Сохраняем его в переменной outputStateValue.Базовый стартовый комплект LAFVIN ESP32 - outputStateПосле этого используйте это значение для создания HTML-текста для отображения кнопки с правильным состоянием:Базовый стартовый комплект LAFVIN ESP32 - код 4HTTP GET-запрос на изменение состояния вывода (JavaScript)
При нажатии кнопки вызывается функция toggleCheckbox(). Эта функция сделает запрос на разные URLs для включения или выключения светодиода.Базовый стартовый комплект LAFVIN ESP32 - JavaScriptЧтобы включить светодиод, он делает запрос на /update?state=1 URL:LAFVIN ESP32 Базовый стартовый комплект - element.checkedВ противном случае он делает запрос на /update?state=0 URL.
HTTP GET-запрос на обновление состояния (JavaScript)
Чтобы поддерживать состояние выходных данных в актуальном состоянии web сервер, мы вызываем следующую функцию, которая делает новый запрос на /state URL каждую секунду.Базовый стартовый комплект LAFVIN ESP32 — обновление состоянияБазовый стартовый комплект LAFVIN ESP32 — Обновление состояния 1Обработка запросов
Затем нам нужно обработать то, что происходит, когда ESP32 или ESP8266 получает запросы на эти URLs.
При получении запроса на корневом сервере /URL, мы отправляем HTML-страницу, а также процессор.Базовый стартовый комплект LAFVIN ESP32 — обработка запросовLAFVIN ESP32 Базовый стартовый комплект - Обработка запросов 1Следующие строки проверяют, получили ли вы запрос на /update?state=1 или /update?state=0 URL и соответствующим образом изменяет ledState.Базовый стартовый комплект LAFVIN ESP32 - ledStateLAFVIN ESP32 Базовый стартовый комплект - inputParamПри получении запроса на /state URL, мы отправляем текущее состояние выхода:Базовый стартовый комплект LAFVIN ESP32 — состояние выходапетля()
В цикле loop() мы устраняем дребезг кнопки и включаем или выключаем светодиод в зависимости от значения ledState. переменная.LAFVIN ESP32 Базовый стартовый комплект - контур 1Демонстрация
Загрузите код на плату ESP32. Шаги по загрузке кода.
Затем откройте последовательный монитор со скоростью передачи данных 115200 бод. Нажмите кнопку EN/RST на плате, чтобы получить его IP-адрес.Базовый стартовый комплект LAFVIN ESP32 — демонстрацияОткройте браузер в локальной сети и введите IP-адрес ESP. У вас должен быть доступ к web сервер, как показано ниже.
Примечание: Ваш браузер и ESP32 должны быть подключены к одной и той же локальной сети.LAFVIN ESP32 Базовый стартовый комплект - браузерВы можете переключить кнопку на web сервер для включения светодиода.Базовый стартовый комплект LAFVIN ESP32 - web сервер 1Вы также можете управлять этим же светодиодом с помощью физической кнопки. Его состояние всегда будет автоматически обновляться на web сервер.

Проект 9 ESP32 DHT11 Web Сервер

В этом проекте вы узнаете, как создать асинхронный ESP32 web сервер с DHT11, отображающий температуру и влажность с помощью Arduino IDE.
Предпосылки
The web Сервер, который мы построим, автоматически обновляет показания без необходимости обновления web страница.
В этом проекте вы узнаете:

  • Как считывать показания температуры и влажности с датчиков DHT;
  • Построить асинхронный web сервер с использованием ESPAsyncWebБиблиотека сервера;
  • Автоматическое обновление показаний датчика без необходимости обновления web страница.

Асинхронный Web Сервер
Чтобы построить web сервер мы будем использовать ESPAsyncWebБиблиотека сервера который обеспечивает простой способ создания асинхронного web Сервер. Создание асинхронного web сервер имеет несколько преимуществtagкак указано на странице библиотеки GitHub, например:

  • «Обрабатывать более одного соединения одновременно»;
  • «Когда вы отправляете ответ, вы немедленно готовы обрабатывать другие соединения, в то время как сервер занимается отправкой ответа в фоновом режиме»;
  • «Простой механизм обработки шаблонов для работы с шаблонами»;

Требуемые детали
Для выполнения этого урока вам понадобятся следующие детали:

  • Плата разработки ESP32
  • Модуль DHT11
  • Макетная плата
  • Провода-перемычки

СхемаБазовый стартовый комплект LAFVIN ESP32 — Схема 2Установка библиотек
Для этого проекта вам необходимо установить несколько библиотек:

Установка библиотеки датчиков DHT
Для считывания данных с датчика DHT с помощью Arduino IDE необходимо установить Библиотека датчиков DHT. Для установки библиотеки выполните следующие шаги.

  1. Нажмите здесь, чтобы загрузить библиотеку DHT Sensor. У вас должна быть папка .zip в папке Downloads
  2. Распакуйте папку .zip, и вы должны получить папку DHT-sensor-library-master.
  3. Переименуйте папку из DHT-sensor-library-master в DHT_sensor
  4. Переместите папку DHT_sensor в папку с библиотеками установки Arduino IDE.
  5. Наконец, снова откройте Arduino IDE.

Установка унифицированного драйвера датчика Adafruit
Вам также необходимо установить Библиотека драйверов унифицированных датчиков Adafruit для работы с датчиком DHT. Выполните следующие шаги для установки библиотеки.

  1. Нажмите здесь, чтобы загрузить библиотеку Adafruit Unified Sensor. У вас должна быть папка .zip в папке Downloads
  2. Распакуйте папку .zip, и вы должны получить папку Adafruit_sensor-master.
  3. Переименуйте вашу папку из Adafruit_sensor-master в Adafruit_sensor
  4. Переместите папку Adafruit_sensor в папку с библиотеками установки Arduino IDE.
  5. Наконец, снова откройте Arduino IDE.

Установка ESPAsyncWebБиблиотека сервера

Выполните следующие шаги для установки ESPAsyncWebСервер библиотека:

  1. Нажмите здесь, чтобы загрузить ESPAsyncWebБиблиотека сервера. У вас должно быть
    .zip-папка в папке «Загрузки»
  2. Распакуйте .zip-папку, и вы должны
    получить ESPAsyncWebПапка Server-master
  3. Переименуйте вашу папку из ESPAsyncWebСервер-мастер для ESPAsyncWebСервер
  4. Переместить ESPAsyncWebПапку Server в папку с библиотеками установки Arduino IDE.

Установка библиотеки Async TCP для ESP32
The ESPAsyncWebСервер библиотека требует АсинхронныйTCP Библиотека для работы. Выполните следующие шаги для установки этой библиотеки:

  1. Нажмите здесь, чтобы загрузить библиотеку AsyncTCP. У вас должна быть папка .zip в папке Downloads
  2. Распакуйте папку .zip и вы должны получить папку AsyncTCP-master.
  3. Переименуйте папку из AsyncTCP-master в AsyncTCP.
  4. Переместите папку AsyncTCP в папку с библиотеками установки Arduino IDE.
  5. Наконец, снова откройте Arduino IDE.

Код
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDE
После установки необходимых библиотек, откройте код
Проект_9_ESP32_DHT11_Web_Server.ino в среде разработки Arduino.
Перед загрузкой кода не забудьте указать свои сетевые учетные данные, чтобы ESP мог подключиться к вашей локальной сети.Базовый стартовый комплект LAFVIN ESP32 - КодКак работает код
В следующих параграфах мы объясним, как работает код. Продолжайте читать, если хотите узнать больше, или перейдите в раздел Демонстрация, чтобы увидеть конечный результат.
Импорт библиотек
Сначала импортируйте необходимые библиотеки. WiFi, ESPAsyncWebДля построения необходимы сервер и ESPAsyncTCP. web сервер. Библиотеки Adafruit_Sensor и DHT необходимы для чтения с датчиков DHT11 или DHT22.Базовый стартовый комплект LAFVIN ESP32 — Импорт библиотекБазовый стартовый комплект LAFVIN ESP32 — как работает кодОпределение переменных
Определите GPIO, к которому подключен вывод данных DHT. В этом случае он подключен к GPIO 4.Базовый стартовый комплект LAFVIN ESP32 — Определение переменныхЗатем выберите тип датчика DHT, который вы используете. В нашем example, мы используем DHT22. Если вы используете другой тип, вам просто нужно раскомментировать ваш датчик и закомментировать все остальные.Базовый стартовый комплект LAFVIN ESP32 - Определение переменных 1

Создайте объект DHT с типом и контактом, которые мы определили ранее.Базовый стартовый комплект LAFVIN ESP32 - Определение переменных 2Создать асинхронныйWebОбъект сервера на порту 80.Базовый стартовый комплект LAFVIN ESP32 - Определение переменных 3Функции считывания температуры и влажности
Мы создали две функции: одну для считывания температуры Мы создали две функции: одну для считывания температуры (readDHTTemperature()) и другую для считывания влажности (readDHTHumidity()).LAFVIN ESP32 Базовый стартовый комплект - readDHTHumidityLAFVIN ESP32 Базовый стартовый комплект - показания датчиковПолучить показания датчика так же просто, как использовать методы readTemperature() и readHumidity() для объекта dht.LAFVIN ESP32 Базовый стартовый комплект - объектУ нас также есть условие, которое возвращает два тире (–) в случае, если датчик не получает показания.LAFVIN ESP32 Базовый стартовый комплект - показанияПоказания возвращаются как строковый тип. Чтобы преобразовать float в строку, используйте функцию String()LAFVIN ESP32 Базовый стартовый комплект - StringПо умолчанию мы считываем температуру в градусах Цельсия. Чтобы получить температуру в градусах Фаренгейта, закомментируйте температуру в градусах Цельсия и раскомментируйте температуру в градусах Фаренгейта, чтобы получить следующее:LAFVIN ESP32 Базовый стартовый комплект - ФаренгейтLAFVIN ESP32 Базовый стартовый комплект - 1 градус по ФаренгейтуЗагрузить код
Теперь загрузите код в ваш ESP32. Убедитесь, что вы выбрали правильную плату и COM-порт.Справочные шаги по загрузке кода.
После загрузки откройте Serial Monitor на скорости 115200 бод. Нажмите кнопку сброса ESP32. IP-адрес ESP32 должен быть напечатан в последовательном порту. монитор.Базовый стартовый комплект LAFVIN ESP32 — загрузите кодДемонстрация
Откройте браузер и введите IP-адрес ESP32. Ваш web сервер должен отображать последние показания датчиков.
Примечание: Ваш браузер и ESP32 должны быть подключены к одной и той же локальной сети.
Обратите внимание, что показания температуры и влажности обновляются автоматически без необходимости обновления web страница.Базовый стартовый комплект LAFVIN ESP32 — Демонстрация 1

Project_10_ESP32_OLED_дисплей

В этом проекте показано, как использовать 0.96-дюймовый OLED-дисплей SSD1306 с ESP32 с помощью Arduino IDE.
Представляем 0.96-дюймовый OLED-дисплей
The OLED-дисплей В этом руководстве мы будем использовать модель SSD1306: одноцветный дисплей размером 0.96 дюйма и разрешением 128×64 пикселя, как показано на следующем рисунке.Базовый стартовый комплект LAFVIN ESP32 - OLEDDisplayДисплей OLED не требует подсветки, что обеспечивает очень хорошую контрастность в темных условиях. Кроме того, его пиксели потребляют энергию только тогда, когда они включены, поэтому дисплей OLED потребляет меньше энергии по сравнению с другими дисплеями.
Поскольку OLED-дисплей использует протокол связи I2C, подключение очень простое. Вы можете использовать следующую таблицу в качестве справки.

OLED-контакт ESP32
Вин 3.3В
Земля Земля
СКЛ ГПИО 22
ПДД ГПИО 21

СхемаБазовый стартовый комплект LAFVIN ESP32 - СхемаУстановка библиотеки SSD1306 OLED – ESP32
Для управления OLED-дисплеем с помощью ESP32 доступно несколько библиотек.
В этом уроке мы будем использовать две библиотеки Adafruit: Библиотека Adafruit_SSD1306 и Библиотека Adafruit_GFX.
Для установки этих библиотек выполните следующие шаги.

  1. Откройте Arduino IDE и перейдите в Sketch > Include Library > Manage Libraries. Должен открыться менеджер библиотек.
  2. Введите «SSD1306» в поле поиска и установите библиотеку SSD1306 от Adafruit.Базовый стартовый комплект LAFVIN ESP32 - OLEDLibrary–
  3. После установки библиотеки SSD1306 от Adafruit введите «GFX» в поле поиска и установите библиотеку.LAFVIN ESP32 Базовый стартовый комплект - библиотека
  4. После установки библиотек перезапустите Arduino IDE.

Код
После установки необходимых библиотек откройте Project_10_ESP32_OLED_Display.ino в arduino IDE. код
Мы будем программировать ESP32 с помощью Arduino IDE, поэтому перед продолжением убедитесь, что у вас установлено дополнение ESP32: (Если вы уже выполнили этот шаг, вы можете перейти к следующему шагу.)
Установка дополнения ESP32 в Arduino IDEБазовый стартовый комплект LAFVIN ESP32 - Код 1Базовый стартовый комплект LAFVIN ESP32 - Код 2Базовый стартовый комплект LAFVIN ESP32 - Код 3Как работает код
Импорт библиотек
Сначала вам нужно импортировать необходимые библиотеки. Библиотеку Wire для использования I2C и библиотеки Adafruit для записи на дисплей: Adafruit_GFX и Adafruit_SSD1306.LAFVIN ESP32 Базовый стартовый комплект - Code Works 1LAFVIN ESP32 Базовый стартовый комплект - Code Works 2Инициализируйте OLED-дисплей
Затем вы определяете ширину и высоту OLED. В этом примереample, мы используем OLED-дисплей 128×64. Если вы используете другие размеры, вы можете изменить это в переменных SCREEN_WIDTH и SCREEN_HEIGHT.Базовый стартовый комплект LAFVIN ESP32 - OLED-дисплейЗатем инициализируйте объект отображения с шириной и высотой, определенными ранее с помощью протокола связи I2C (&Wire).Базовый стартовый комплект LAFVIN ESP32 - протокол связиПараметр (-1) означает, что у вашего OLED-дисплея нет контакта RESET. Если у вашего OLED-дисплея есть контакт RESET, его следует подключить к GPIO. В этом случае следует передать номер GPIO в качестве параметра.
В setup() инициализируйте последовательный монитор на скорости 115200 бод для целей отладки.LAFVIN ESP32 Базовый стартовый комплект - назначениеИнициализируйте OLED-дисплей с помощью метода begin() следующим образом:Базовый стартовый комплект LAFVIN ESP32 - display.beginLAFVIN ESP32 Базовый стартовый комплект - Serial.printlnЭтот фрагмент также выводит сообщение на последовательный монитор на случай, если мы не сможем подключиться к дисплею.

LAFVIN ESP32 Базовый стартовый комплект - Serial.println 1Если вы используете другой OLED-дисплей, вам может потребоваться изменить адрес OLED. В нашем случае адрес — 0x3C.LAFVIN ESP32 Базовый стартовый комплект - адресПосле инициализации дисплея добавьте двухсекундную задержку, чтобы у OLED было достаточно времени для инициализации перед выводом текста:LAFVIN ESP32 Базовый стартовый комплект - задержкаОчистить дисплей, установить размер шрифта, цвет и написать текст
После инициализации дисплея очистите буфер дисплея с помощью метода clearDisplay():LAFVIN ESP32 Базовый стартовый комплект - дисплей

Перед вводом текста необходимо задать размер текста, цвет и место его отображения на OLED-дисплее.
Установите размер шрифта с помощью метода setTextSize():LAFVIN ESP32 Базовый стартовый комплект - дисплей 1Установите цвет шрифта с помощью метода setTextColor():
WHITE устанавливает белый шрифт и черный фон.
Определите позицию, где начинается текст, используя метод setCursor(x,y). В этом случае мы устанавливаем текст так, чтобы он начинался с координат (0,0) – в верхнем левом углу.Базовый стартовый комплект LAFVIN ESP32 - setTextColor 1Наконец, вы можете отправить текст на дисплей с помощью метода println(), как показано ниже:Базовый стартовый комплект LAFVIN ESP32 - код 5Затем вам необходимо вызвать метод display(), чтобы отобразить текст на экране.LAFVIN ESP32 Базовый стартовый комплект - дисплей

Библиотека Adafruit OLED предоставляет полезные методы для легкой прокрутки текста.

  • startscrollright(0x00, 0x0F): прокрутка текста слева направо
  • startscrollleft(0x00, 0x0F): прокрутка текста справа налево
  • startscrolldiagright(0x00, 0x07): прокрутка текста из левого нижнего угла в правый верхний угол startscrolldiagleft(0x00, 0x07): прокрутка текста из правого нижнего угла в левый верхний угол

Загрузить код
Теперь загрузите код в ESP32. Шаги по загрузке кода.
После загрузки кода на OLED-дисплее отобразится бегущая строка.LAFVIN ESP32 Базовый стартовый комплект - бегущая строкаЛоготип ЛАФВИН

Документы/Ресурсы

Базовый стартовый комплект LAFVIN ESP32 [pdf] Руководство по эксплуатации
ESP32 Базовый стартовый комплект, ESP32, Базовый стартовый комплект, Стартовый комплект

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *