Начало работы с ESP32

Начало работы с ESP32

Начало работы с ESP32

Несколько лет назад крошечный микроконтроллер под названием ESP8266 полностью изменил мир электронных проектов. Менее чем за 3 доллара каждый мог получить программируемый чип со встроенным WiFi, способный отслеживать датчики и управлять устройствами из любой точки планеты. Это был настоящий прорыв.

После грандиозного успеха ESP8266 компания-создатель, Espressif Systems, выпустила ещё более совершенную версию. Встречайте ESP32 — мощное обновление, которое берёт всё лучшее от своего предшественника и выводит на новый уровень. ESP32 имеет не только WiFi; он также включает Bluetooth 4.0 (также известный как BLE или Bluetooth Smart), что делает его отличным выбором практически для любого IoT-проекта.

И самое приятное — платы ESP32 невероятно доступны по цене. Большинство плат стоят от 6 до 12 долларов, что делает их суперпривлекательными для студентов, любителей и всех, кто хочет экспериментировать с электроникой.

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

Чтобы начать создавать проекты с ESP32, вам понадобится так называемая плата разработки (development board). Плата разработки — это, по сути, чип ESP32, установленный на печатной плате со всеми дополнительными компонентами, необходимыми для его программирования и подключения к другим устройствам, — такими как USB-порты для подключения к компьютеру, контакты для подключения датчиков и светодиодов, а также стабилизаторы напряжения для обеспечения безопасной работы.

Существует множество различных плат ESP32. Хотя все они работают схожим образом, некоторые лучше подходят для определённых проектов, чем другие. Вот несколько наиболее популярных вариантов, которые стоит рассмотреть:

ESP32 DevKit V1

ESP32 DevKit V1

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

ESP32-CAM

ESP32-CAM

Это одна из самых интересных плат ESP32, потому что она поставляется со встроенной камерой OV2640 на 2 мегапикселя, а также слотом для microSD-карты, что позволяет сохранять изображения и видео прямо на карту памяти. Эта плата идеально подходит для IoT-проектов, где нужен визуальный мониторинг, — например, камеры видеонаблюдения, станции наблюдения за дикой природой или даже проекты, использующие распознавание изображений для идентификации объектов.

Arduino Nano ESP32

Nano ESP32

Это официальная плата ESP32 от Arduino, что означает, что она разработана для бесперебойной работы с Arduino IDE. Отличительной чертой этой платы является её компактный размер. Она выполнена в том же миниатюрном форм-факторе, что и классический Arduino Nano, что делает её идеальной для проектов с ограниченным пространством.

ESP32-S3-DevKitC

ESP32-S3-DevKitC

Для тех, кто интересуется проектами с искусственным интеллектом и машинным обучением, ESP32-S3-DevKitC — это нужная плата. Она имеет аппаратное ускорение ИИ, что означает наличие специального оборудования, предназначенного для запуска моделей машинного обучения гораздо быстрее, чем обычные платы ESP32. Вы можете использовать её для создания проектов, распознающих голосовые команды, обнаруживающих определённые звуки, идентифицирующих изображения или даже делающих прогнозы на основе данных датчиков.

Обзор аппаратного обеспечения ESP32 DevKit V1

Как упоминалось ранее, ESP32 DevKit V1 — безусловно самый популярный выбор среди плат разработки ESP32. Именно эту плату мы будем использовать для всех наших экспериментов в этом руководстве. Однако если у вас есть другая плата ESP32 — не переживайте! Информация в этом разделе всё равно будет для вас очень полезной, поскольку большинство плат ESP32 имеют схожие возможности и характеристики.

Давайте подробнее рассмотрим аппаратное обеспечение платы ESP32 DevKit V1.

Модуль ESP-WROOM-32

В основе этой платы разработки лежит модуль ESP-WROOM-32. По сути, это мозг всей платы. Внутри этого модуля находится мощный процессор Tensilica Xtensa® Dual-Core 32-bit LX6. Этот процессор аналогичен тому, что используется в старом ESP8266, но имеет два ядра CPU. Эта двухъядерная архитектура значительно быстрее одноядерных микроконтроллеров (таких как Arduino Uno или ESP8266), что позволяет ему выполнять сложные задачи, например, одновременно запускать веб-сервер и обрабатывать данные с датчиков.

Скорость процессора можно регулировать от 80 МГц до 240 МГц. На максимальной скорости 240 МГц ESP32 может выполнять до 600 DMIPS (Dhrystone Million Instructions Per Second — миллионов инструкций Дрихорна в секунду), что является мерой скорости обработки данных. Это огромная вычислительная мощность, упакованная в крошечный чип!

Модуль ESP-WROOM-32

  • Xtensa® Dual-Core 32-bit LX6

  • Тактовая частота до 240 МГц

  • 520 КБ встроенной SRAM

  • 4 МБ внешней flash-памяти

Технические характеристики ESP32 — чип ESP-WROOM-32

ESP32 имеет несколько типов памяти, и каждый выполняет свою функцию. Есть 448 КБ ROM (постоянная память), которая используется для загрузки и основных функций. Далее идут 520 КБ SRAM (статическая оперативная память) — рабочая память, в которой процессор временно хранит данные во время выполнения ваших программ. И наконец, 4 МБ Flash-памяти, где ваши программы и данные сохраняются постоянно, даже когда питание выключено.

WiFi и Bluetooth

Одна из самых впечатляющих особенностей ESP32 — встроенные возможности WiFi. Чип включает приёмопередатчик WiFi стандарта 802.11b/g/n HT40. Это позволяет подключаться к существующей сети Wi-Fi (режим Station), чтобы получить доступ к интернету. Он также может создавать собственную сеть Wi-Fi (режим Soft Access Point), к которой могут подключаться телефоны или другие устройства напрямую. Кроме того, ESP32 поддерживает WiFi Direct — функцию, позволяющую двум устройствам подключаться друг к другу без необходимости в маршрутизаторе.

WiFi и Bluetooth

  • Приёмопередатчик Wi-Fi 802.11b/g/n

  • Wi-Fi Direct

  • Bluetooth Classic

  • Bluetooth 4.2 — BLE

Технические характеристики ESP32 — WiFi и Bluetooth

ESP32 также поддерживает как Bluetooth 4.2 (часто называемый BLE или Bluetooth Smart), так и Bluetooth Classic. BLE — это более новая, энергоэффективная версия Bluetooth, которая обычно используется в фитнес-трекерах и умных часах, потому что потребляет очень мало энергии. Bluetooth Classic — это более старая версия, которую вы можете использовать для беспроводных колонок или передачи файлов между устройствами. Наличие обоих вариантов в одном чипе делает ESP32 невероятно универсальным.

Питание

Чип ESP32 требует напряжение от 2,2 В до 3,6 В для корректной работы. Поэтому на плате установлен LDO-стабилизатор напряжения, который поддерживает стабильное напряжение 3,3 В. Этот стабилизатор может обеспечить ток до 600 мА, чего более чем достаточно — даже когда WiFi или Bluetooth работают на полную мощность и потребляют максимум энергии.

Питание

  • Рабочее напряжение: 2,2 В — 3,6 В

  • Встроенный стабилизатор 3,3 В 600 мА

  • 5 мкА в спящем режиме

  • 250 мА при RF-передаче

Технические характеристики ESP32 — питание

Когда речь идёт о питании вашей платы, у вас есть два основных варианта. Самый распространённый и удобный способ — через встроенный разъём MicroB USB. В качестве альтернативы, если у вас есть стабилизированный источник питания 5 В, вы можете подключить его напрямую к контакту, обозначенному VIN на плате. Это полезно для автономных проектов, которые не будут подключены к компьютеру.

Также имеется удобный контакт, обозначенный 3V3, который выдаёт стабилизированное напряжение 3,3 В. Вы можете использовать его для питания небольших внешних компонентов, таких как датчики, светодиоды или дисплеи — только убедитесь, что не потребляете больше тока, чем может обеспечить стабилизатор.

Периферия и ввод/вывод

Одно из замечательных свойств ESP32 заключается в том, что он содержит множество встроенных периферийных устройств, а это значит, что для большинства проектов вам не придётся покупать много дополнительного оборудования. Давайте рассмотрим, что предлагает ESP32:

  • 15 каналов АЦП — 15 каналов 12-битного SAR АЦП с выбираемыми диапазонами 0–1 В, 0–1,4 В, 0–2 В или 0–4 В

  • 2 интерфейса UART — 2 интерфейса последовательной связи с управлением потоком и поддержкой IrDA

  • 25 выходов ШИМ — 25 ШИМ-контактов для управления, например, скоростью двигателя или яркостью светодиодов

  • 2 канала ЦАП — два 8-битных ЦАП для генерации настоящих аналоговых напряжений

  • Интерфейсы SPI, I2C и I2S — три интерфейса SPI и один I2C для подключения различных датчиков и периферийных устройств, а также два интерфейса I2S для добавления звука в ваш проект

  • 9 сенсорных контактов — 9 GPIO с ёмкостным сенсорным обнаружением

Мультиплексированные входы/выходы

  • 15 каналов АЦП

  • 2 интерфейса UART

  • 25 выходов ШИМ

  • 2 канала ЦАП

  • Интерфейсы SPI, I2C и I2S

  • 9 сенсорных контактов

Технические характеристики ESP32 — мультиплексированные GPIO-контакты

Благодаря функции мультиплексирования контактов ESP32 один GPIO-контакт может выполнять несколько различных функций. Например, один и тот же контакт может использоваться как вход АЦП, выход ЦАП или сенсорная площадка. Конечно, он может выполнять только одну функцию одновременно, но такая гибкость означает, что вы можете настроить контакты точно под нужды вашего проекта.

Кнопки и светодиодные индикаторы

На плате расположены две кнопки. Кнопка EN (Enable) сбрасывает чип ESP32. Другая — кнопка Boot, которая используется при загрузке новых программ на плату.

Переключатели и индикаторы

  • EN — сброс чипа ESP32

  • Boot — загрузка новых программ

  • Красный светодиод — индикатор питания

  • Синий светодиод — программируемый пользователем

Технические характеристики ESP32 — кнопки сброса, загрузки и светодиодные индикаторы

На плате также расположены два светодиодных индикатора. Красный светодиод служит индикатором питания и загорается, когда плата включена. Синий светодиод программируется пользователем и подключён к контакту D2, что позволяет управлять им в собственных проектах.

USB-UART преобразователь

Для обеспечения связи с компьютером на плате установлен мост USB-UART CP2102 от Silicon Labs. Этот чип преобразует USB-сигналы с компьютера в последовательные сигналы, понятные ESP32, что упрощает загрузку программ и мониторинг вывода через последовательную консоль.

Последовательная связь

  • USB-UART преобразователь CP2102

  • Скорость связи 5 Мбит/с

  • Поддержка IrDA

Технические характеристики ESP32 — USB-TTL преобразователь

Распиновка платы разработки ESP32

ESP32 DevKit V1 имеет в общей сложности 30 контактов. Для упрощения понимания мы рассмотрим контакты со схожими функциями вместе.

Распиновка ESP32

Контакты питания. На плате есть два основных контакта питания — VIN и 3V3. Контакт VIN позволяет напрямую питать ESP32 от стабилизированного источника питания 5 В. Контакт 3V3 обеспечивает выход встроенного стабилизатора напряжения платы и может выдавать ток до 600 мА. Его можно использовать для питания небольших внешних компонентов, таких как датчики, светодиоды или дисплеи.

GND — контакт заземления.

Контакты GPIO. На плате расположены 25 контактов GPIO, и эти контакты чрезвычайно гибки, потому что вы можете назначать им различные функции программно. Они могут использоваться для цифрового ввода и вывода, АЦП для аналоговых измерений, ЦАП для генерации аналоговых сигналов, сенсорного обнаружения, ШИМ для управления двигателями или светодиодами, а также интерфейсов связи — таких как I2C, SPI, UART и I2S. Помимо этого, почти все GPIO-контакты ESP32 могут использоваться для прерываний.

Каналы АЦП. ESP32 содержит два 12-битных SAR АЦП, которые позволяют измерять аналоговые сигналы по 15 различным каналам. Некоторые из этих контактов даже могут использоваться для создания программируемого усилителя, что удобно для точного считывания очень малых аналоговых сигналов. Более того, ESP32 может выполнять эти измерения даже в спящем режиме для экономии энергии.

Каналы ЦАП. ESP32 содержит два 8-битных канала ЦАП, которые позволяют преобразовывать цифровые сигналы в настоящие аналоговые напряжения.

Сенсорные площадки. ESP32 имеет 9 ёмкостных сенсорных GPIO. Эти контакты способны обнаруживать небольшое изменение ёмкости, когда к ним приближается что-либо проводящее (например, ваш палец), что позволяет создавать сенсорные кнопки без использования дополнительных внешних датчиков.

Контакты SPI. ESP32 поддерживает три интерфейса SPI — SPI, HSPI и VSPI — которые могут работать как в режиме ведомого, так и ведущего. Эти интерфейсы поддерживают множество стандартных возможностей SPI, таких как четыре различных режима синхронизации для передачи данных, скорости до 80 МГц и даже до 64 байт FIFO-буферизации для обеспечения плавного потока данных. Имейте в виду, что свободно использовать можно только VSPI и HSPI, поскольку третья шина SPI занята встроенной flash-памятью.

Контакты I2C. ESP32 имеет два независимых контроллера I2C (I2C0 и I2C1) и поддерживает связь I2C практически на любом из своих GPIO-контактов, поскольку периферийное устройство I2C полностью настраивается программно.

Контакты UART. ESP32 имеет два интерфейса UART — UART0 и UART2, которые поддерживают стандарты связи RS232 и RS485, а также могут работать с инфракрасным портом (IrDA) на скоростях до 5 Мбит/с.

Контакты ШИМ. Практически все GPIO-контакты могут выводить сигналы ШИМ. ШИМ — это хитрый метод, при котором контакт быстро переключается между включённым и выключенным состоянием для имитации различных уровней напряжения. Это невероятно полезно для таких задач, как регулировка скорости двигателя или изменение яркости светодиода.

Контакт EN. Работает как аппаратная кнопка сброса ESP32. Когда контакт в состоянии HIGH, чип остаётся включённым и работает нормально. На плате установлен подтягивающий резистор, который по умолчанию удерживает его в состоянии HIGH. Если вы подтянете контакт EN к LOW (что происходит на мгновение при нажатии встроенной кнопки «EN»), ESP32 немедленно выключится и перезагрузится, как только контакт вернётся в состояние HIGH.

Если вы хотите более подробно разобраться, какие контакты безопасно использовать, а какие требуют особого внимания, ознакомьтесь с нашим подробным руководством по распиновке ESP32. Это поможет вам избежать распространённых ошибок при подключении ваших проектов.

Справочник по распиновке ESP32

Одно из преимуществ ESP32 — у него гораздо больше GPIO, чем у ESP8266. Вам не придётся жонглировать или мультиплексировать выводы…

/lastminuteengineers/esp32-pinout-reference/index

Платформы разработки для ESP32

Теперь, когда вы знакомы с аппаратной частью, вам наверняка интересно, как же на самом деле писать программы для этой штуки. Хорошая новость — у вас есть несколько вариантов!

Существуют платформы разработки, такие как Espruino, которая использует JavaScript; Mongoose OS — операционная система специально для IoT-устройств, рекомендованная как Espressif Systems, так и Google Cloud IoT; а также MicroPython, который привносит программирование на Python в мир микроконтроллеров. Вы также можете использовать официальный SDK от Espressif или исследовать другие платформы, перечисленные на WiKiPedia.

Однако если вы только начинаете, мы настоятельно рекомендуем использовать Arduino IDE с дополнением ESP32, которое позволяет программировать ESP32 точно так же, как плату Arduino. Это идеально для новичков, потому что «сглаживает кривую обучения» — вы используете привычную структуру кода Arduino с простыми функциями setup() и loop(), которые вы, возможно, уже знаете. Кроме того, у вас есть доступ к тысячам существующих библиотек и руководств Arduino, которые дадут мощный старт вашим проектам.

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

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

Шаг 1: Установка или обновление Arduino IDE

Первый шаг в процессе настройки — это наличие последней версии Arduino IDE на вашем компьютере. Если у вас её ещё нет, скачайте и установите её прямо сейчас с официального сайта Arduino. Наличие последней версии обеспечивает все новейшие функции и исправления ошибок.

Последняя версия Arduino IDE

Шаг 2: Установка USB-драйверов (при необходимости)

Большинство плат ESP32 поставляются с чипом-мостом USB-UART. Этот чип позволяет вашему компьютеру взаимодействовать с ESP32 через USB-кабель. Разные платы ESP32 используют разные чипы-мосты. Например, ESP32 DevKit V1 часто использует чип CP2102, тогда как WeMos ESP32 Lite использует чип CH340G.

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

Драйверы CP210x

Драйверы CH340x

Однако если у вас более новая плата ESP32 с моделями ESP32-S2, ESP32-S3 или ESP32-C3, вам повезло. Эти платы имеют встроенную поддержку USB, которую ваш компьютер распознаёт автоматически, поэтому вы можете пропустить установку драйверов и перейти к следующему шагу.

Шаг 3: Добавление платы ESP32 в Arduino IDE

Arduino IDE полагается на «определения плат» (board definitions) для связи с конкретным оборудованием. Эти определения содержат файлы конфигурации, библиотеки и настройки компилятора, которые указывают IDE, как компилировать и загружать код на конкретную плату. Поскольку ESP32 не включён по умолчанию, его необходимо добавить вручную через Менеджер плат.

Для этого откройте Arduino IDE и перейдите в File > Preferences

Меню File в Arduino IDE

Откроется окно. Найдите поле с надписью «Additional Board Manager URLs». В это поле добавьте следующий URL:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Этот URL указывает IDE на репозиторий Espressif, содержащий все файлы, необходимые для поддержки плат ESP32.

Настройки Arduino IDE

Если в этом поле уже есть другие URL, например для ESP8266, не переживайте. Просто нажмите маленький значок рядом с полем — откроется новое окно. Введите каждый URL на отдельной строке. Когда закончите, нажмите OK для сохранения и закрытия окна.

Несколько URL-адресов менеджера плат в Arduino IDE

Теперь найдите значок платы в левой части окна Arduino IDE и нажмите на него. Откроется Менеджер плат. Подождите немного, пока загрузится список доступных плат. Если вы используете более старую версию Arduino IDE, перейдите в Tools > Board > Boards Manager… .

В строке поиска введите «esp32». Вы должны увидеть запись «esp32 by Espressif Systems». Нажмите на неё, затем нажмите кнопку Install. IDE начнёт загрузку и установку определений платы esp32. Это может занять несколько минут в зависимости от скорости вашего интернет-соединения. По завершении рядом с названием пакета появится надпись «INSTALLED».

Пакет ESP32 в Arduino IDE

Шаг 4: Выбор платы и порта

Теперь, когда всё установлено, возьмите USB-кабель и подключите плату ESP32 к компьютеру.

ESP32, подключённый к компьютеру через USB-кабель

В Arduino IDE нажмите на выпадающее меню вверху и выберите пункт «Select Other Board and Port». Если вы используете более старую версию IDE, перейдите в Tools > Board .

Выпадающее меню выбора платы и порта в Arduino IDE

Появится список плат. Найдите и выберите вариант, соответствующий вашей конкретной плате ESP32. Поскольку мы используем ESP32 DevKit V1, мы выберем «DOIT ESP32 DevKit V1».

Выбор платы в Arduino IDE

Если вы не уверены, какая у вас плата, просто выберите «ESP32 Dev Module» в качестве безопасного варианта по умолчанию.

Далее выберите COM-порт, соответствующий вашему подключённому ESP32. Если вы не уверены, какой порт правильный, попробуйте такой приём: отключите ESP32 и посмотрите, какой порт исчезнет из списка. Затем подключите его обратно и выберите этот порт.

Выбор порта в Arduino IDE

Устранение неполадок

Иногда с первого раза всё работает не идеально, и это совершенно нормально. Одна из самых распространённых проблем, которую вы можете увидеть, — это сообщение об ошибке «A fatal error occurred: Failed to connect to ESP32… Timed out waiting for packet header.»

Ошибка подключения к ESP32 при загрузке скетча в Arduino IDE

Не паникуйте, если это произошло с вами. Вот что происходит. Некоторые платы ESP32 автоматически переходят в режим программирования при попытке загрузить код, и всё работает гладко. Однако другие платы требуют ручного перевода в режим программирования. Когда это происходит, вы видите сообщение об ошибке.

Чтобы решить эту проблему, выполните следующие шаги:

  1. Нажмите кнопку Upload в Arduino IDE, чтобы начать загрузку скетча.

  2. Как только вы увидите сообщение «Connecting…» в консоли внизу IDE, нажмите и удерживайте кнопку BOOT на плате ESP32.

  3. Продолжайте удерживать её, пока не увидите сообщение вроде «Writing at 0x00001000… (2%)». В этот момент вы можете отпустить кнопку BOOT.

  4. IDE продолжит загрузку вашей программы, и когда процесс завершится, вы увидите сообщение «Done uploading».

  5. После этого нажмите кнопку EN (Enable) на ESP32, чтобы перезагрузить его и запустить новую загруженную программу.

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

Дополнительные примеры ESP32

Теперь, когда вы знаете, как загружать код на ESP32, вам будет приятно узнать, что Arduino IDE поставляется с множеством примеров программ, специально разработанных для ESP32. Эти примеры показывают, как делать самые разные интересные вещи — от сканирования ближайших WiFi-сетей до создания собственного веб-сервера, к которому можно обращаться с телефона или компьютера.

Чтобы найти эти примеры, откройте Arduino IDE и перейдите в File > Examples > ESP32. Вы увидите целую коллекцию примеров программ. Не стесняйтесь нажимать на любой из них. Код загрузится в IDE, и вы сможете загрузить его на плату и посмотреть, что он делает. Это отличный способ обучения через эксперименты.

Примеры пакета ESP32 в Arduino IDE

Пример ESP32 — Сканирование WiFi

Давайте попробуем запустить один из этих примеров вместе. Мы воспользуемся примером WiFi Scan, который идеально подходит для начинающих. Эта программа заставляет ваш ESP32 искать все WiFi-сети вокруг вас и отображать информацию о них — точно так же, как когда вы ищете WiFi на телефоне.

Чтобы найти этот пример, перейдите в File > Examples > WiFi > WiFiScan.

Пример скетча сканирования WiFi на ESP32
#include "WiFi.h"

void setup() {
  Serial.begin(115200);

  // Set WiFi to station mode and disconnect from an AP if it was previously connected.
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop() {
  Serial.println("Scan start");

  // WiFi.scanNetworks will return the number of networks found.
  int n = WiFi.scanNetworks();
  Serial.println("Scan done");
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");
    Serial.println("Nr | SSID                             | RSSI | CH | Encryption");
    for (int i = 0; i < n; ++i) {
      // Print SSID and RSSI for each network found
      Serial.printf("%2d", i + 1);
      Serial.print(" | ");
      Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
      Serial.print(" | ");
      Serial.printf("%4d", WiFi.RSSI(i));
      Serial.print(" | ");
      Serial.printf("%2d", WiFi.channel(i));
      Serial.print(" | ");
      switch (WiFi.encryptionType(i)) {
        case WIFI_AUTH_OPEN:
          Serial.print("open");
          break;
        case WIFI_AUTH_WEP:
          Serial.print("WEP");
          break;
        case WIFI_AUTH_WPA_PSK:
          Serial.print("WPA");
          break;
        case WIFI_AUTH_WPA2_PSK:
          Serial.print("WPA2");
          break;
        case WIFI_AUTH_WPA_WPA2_PSK:
          Serial.print("WPA+WPA2");
          break;
        case WIFI_AUTH_WPA2_ENTERPRISE:
          Serial.print("WPA2-EAP");
          break;
        case WIFI_AUTH_WPA3_PSK:
          Serial.print("WPA3");
          break;
        case WIFI_AUTH_WPA2_WPA3_PSK:
          Serial.print("WPA2+WPA3");
          break;
        case WIFI_AUTH_WAPI_PSK:
          Serial.print("WAPI");
          break;
        default:
          Serial.print("unknown");
      }
      Serial.println();
      delay(10);
    }
  }
  Serial.println("");

  // Delete the scan result to free memory for code below.
  WiFi.scanDelete();

  // Wait a bit before scanning again.
  delay(5000);
}

Загрузите скетч на плату ESP32, используя тот же процесс, который вы изучили ранее. После успешной загрузки откройте Serial Monitor и установите скорость передачи данных на 115200. Теперь нажмите кнопку EN на плате ESP32, чтобы перезагрузить её и запустить программу. Если всё работает правильно, вы увидите список ближайших Wi-Fi-сетей в Serial Monitor. Впечатляет, правда?

Вывод скетча сканирования WiFi на ESP32

Дальнейшие шаги

Теперь, когда вы разобрались с основами ESP32, вы готовы к по-настоящему увлекательным проектам! Вот несколько отличных тем для дальнейшего изучения.

  • Ознакомьтесь с подробным справочником по распиновке ESP32, чтобы узнать, какие контакты безопасно использовать, а какие требуют особого внимания при запуске. Это поможет вам избежать типичных ошибок при подключении проектов.

Справочник по распиновке ESP32

Одно из преимуществ ESP32 — у него гораздо больше GPIO, чем у ESP8266. Вам не придётся жонглировать или мультиплексировать выводы…

/lastminuteengineers/esp32-pinout-reference/index
  • Попробуйте создать простой веб-сервер, чтобы управлять ESP32 с любого устройства, имеющего веб-браузер.

Создание простого веб-сервера на ESP32 в Arduino IDE

ESP32 стал одним из самых популярных микроконтроллеров в мире IoT — и не без причины. Он мощный, доступный и имеет встроенные…

/lastminuteengineers/creating-esp32-web-server-arduino-ide/index
  • Поэкспериментируйте с режимом глубокого сна, чтобы проекты на батарейках работали неделями или даже месяцами.

Глубокий сон ESP32 и источники пробуждения

Когда ваш IoT-проект питается от сетевого адаптера, вы не слишком беспокоитесь о потреблении энергии. Но если вы собираетесь питать ваш…

/lastminuteengineers/esp32-deep-sleep-wakeup-sources/index
  • Изучите обновления «по воздуху» (OTA), которые позволяют загружать новый код на ESP32 беспроводным способом, без подключения кабеля.

Базовое программирование ESP32 по воздуху (OTA) в Arduino IDE

Представьте, что у вас несколько модулей ESP32, разбросанных по всему дому. Необходимость вытаскивать каждый и подключать к кабелю каждый раз, когда вы хотите…

/lastminuteengineers/esp32-ota-updates-arduino-ide/index

Вы также можете просмотреть множество других проектов на ESP32, чтобы найти новые идеи и продолжать развивать свои навыки.