Wi fi esp32 devkit v1

ESP32: чипы, модули, платы.

Добрый день, уважаемый читатель! В данной статье мы поговорим про усы, лапы, и хвост ; ( тьфу, крылья, ноги, хвосты, опять не то ) чипы, модули и платы ESP32 .

  • чип — собственно микроконтроллер (или core в документации espressif, он же Жора SoC < System On Crystal — система на одном кристалле >, он же Гога MCU < MicroController Unit> ); то есть собственно микросхемка без антенны, кварцевого резонатора, микросхемы FLASH-памяти и прочей обвязки
  • модуль — готовый микромодуль с напаянными внутри чипом, памятью, антенной или разъемом; чаще всего закрыт экраном с маркировкой
  • плата — как правило под этим термином я буду понимать различные отладочные платы с установленным модулем , USB-конвертором и стабилизатором

Линейки чипов Espressif

Если обратиться к сайту производителя , то можно увидеть, что компания сейчас выпускает четыре линейки продукции: ESP8266, ESP32, ESP32-S и ESP32-C.

  • ESP8266 — предшественник ESP32 на базе 32-разрядного RISC-процессора Tensilica® L106 , с максимальной тактовой частотой 160 МГц. Я пользовался модулями этой линейки несколько лет, на мой взгляд, модуль получился не очень удачным, особенно в первое время (ESP-01 и т.д.). Производитель заявляет поддержку FreeRTOS, но поддержка эта «так себе». Хотя для опытов с Arduino и WiFi вполне сгодится. Мы не будем его рассматривать.
  • ESP32 — » классический » ESP32. создан на базе двухъядерного процессора Xtensa® 32­bit LX6 (или одноядерного в некоторых случаях) с максимальной тактовой частотой 240 МГц. Работает с использованием относительно старых протоколов WiFi 2.4 MHz. Самая популярная линейка среди самодельщиков, так как его возможностей хватает «с избытком», множество предложений на Aliexpress, а цена невелика (даже по сравнению с ESP8266).
  • ESP32-S(2,3) — относительно новая линейка ESP32 базе процессора следующего поколения Xtensa® 32-bit LX7 с максимальной тактовой частотой 240 МГц. В качестве основных преимуществ по сравнению с предыдущей линейкой производитель отмечает улучшенную криптографию (шифрование FLASH памяти, безопасную загрузку прошивки, защиту от атак) и поддержку современных беспроводных протоколов связи. Имеет большее количество GPIO, чем классическая ESP32. Судя по платам, имеющимся в продаже на Aliexpress, модули имеют поддержку USB (ttyACM0) непосредственно в чипе.
  • ESP32-C(2,3,6) — недорогая линейка на базе одноядерного RISC-V процессора, предназначенная в первую очередь для встраиваемых устройств типа «умных розеток» и «умных лампочек». Это скорее не «урезанный» ESP32, а «усовершенствованный» ESP8266. В отличие от ESP8266 новый SoC имеет поддержку безопасной загрузки, флэш-шифрования и современных беспроводных стандартов связи. Имеет меньшее количество GPIO, чем классическая ESP32, (но у нее и назначение другое). Судя по платам, имеющимся в продаже на Aliexpress, модули имеют поддержку USB (ttyACM0) непосредственно в чипе (но это не точно).

В данной статье я буду рассматривать в основном чипы и модули «базовой линейки» ESP32 , так как про ESP8266 — уже не интересно, а ESP32-S и ESP32-С я лично ещё не пользовался (ну вот не было такой необходимости), поэтому поделиться опытом я не могу. А зачем писать про то, чего сам не знаешь? Если у Вас есть желание подробнее ознакомиться с новыми сериями, Вы можете сделать это самостоятельно на сайте производителя . Но судя по поиску на AliExpress, новые модули пока не сильно распространены.

Читайте также:  Принцип работы ретранслятора вай фай

Чипы ESP32

В настоящее время Espressif производит модули ESP32 на базе следующих чипов (SoC):

  • ESP32-D0WDQ6 — исторически самый первый чип, выпущенный Espressif, сейчас ESP32-D0WD — некоторое время основной SoC, на основе которого создавались модули ESP32-WROOM-32, ESP32-WROOM-32D, ESP32-WROOM-32U и серии ESP32-WROWER ( не все модели! подробности ниже ). Имел некоторые аппаратные проблемы, поэтому в конце концов был снят с производства и заменен на исправленную версиюESP32-D0WD-V3 и сейчас ESP32-D0WD-V3 — исправленная версияESP32-D0WD с маркировкой ECO V3 . Например исправлена ошибка кэша при работе с внешним ОЗУ (PSRAM), если таковое присутствует в модуле. Если есть желание, можете ознакомиться со списком изменений самостоятельно ( или на форуме ).
  • ESP32-D0WDR2-V3 — этот более продвинутый вариант ESP32-D0WD-V3, который имеет на борту 2 МБ встроенной PSRAM. Используется только в продвинутом модуле ESP32­-WROOM-­DA .
  • ESP32-S0WD — «урезанный» одноядерный вариант ESP32-D0WD. Собственно этим всё сказано. Не вижу смысла, но производителю виднее. На Aliexpress присутствует только в виде чипов и модулей, плат на основе этого чипа нет. Видимо, спроса нет.
  • ESP32-U4WDH — ещё один вариант ESP32, данные о нем весьма противоречивы: на сайте Espressif написано, что это одноядерный модуль с частотой 160 MHz и с 24 GPIO, а судя по datasheet- это вполне себе обычный ESP32 с 28 выводами GPIO. На Aliexpress отсутствует.
  • ESP32-PICO-V3-02 — в основе этого модуля лежит тот же самый чип ESP32 (ECO V3), но разработанный с использованием маломощной технологии TSMC 40 нм. На Aliexpress присутствует только в виде чипов и модулей.

Модули ESP32

На первый взгляд, во всей этой «мешанине» модулей, выпускаемых Espressif, легко запутаться. Но если разобраться, то всё оказывается просто и логично довольно (на самом деле не всегда).

Во первых — название серии модулей (после ESP32- ) определяет, есть ли в модуле дополнительная внешняя оперативная память или другие конструктивные особенности. На данный момент компания Espressif выпускает три «классических» серии модулей ESP32 (повторюсь, модули линеек ESP32-S и ESP32-С, я не буду рассматривать в рамках данной статьи):

  • Серия ESP32-WROOM — модули на базе чипа ESP32-D0WD и его модификаций со встроенной флэш-памятью. Эти модули поддерживают Wi-Fi и Bluetooth/Bluetooth LE и обеспечивают высокую двухъядерную производительность. Самая массовая и популярная серия, на Aliexpress присутствует в самых разных вариантах .
  • Серия ESP32-WROVER — по сути это тот же самый ESP32-D0WD, только дополнительно оснащенный «внешней» памятью SPIRAM ( другое название PSRAM ) * . То есть вне чипа, но внутри модуля. Из-за этого он имеет большие габариты. WROWER хорошо подходит для приложений, требующих больше памяти, например при обработке видео или ИИ.
  • Серия ESP32-MINI — основана на ESP32-U4WDH, что обеспечивает экономичное решение для простых приложений подключения на основе Wi-Fi и Bluetooth/Bluetooth LE. Стоимость модулей на Ali выше, чем обычных, а единственная отладочная плата имеет совершенно «конский» ценник.

1. Из-за того, что выводы MCU IO16 и IO17 заняты в интерфейсе QSPI для подключения SPIRAM , их нельзя использовать (да они и не выведены на контакты).

2. SPIRAM это совсем НЕ то же самое, что интегрированная в чип SRAM! Доступ к SPIRAM осуществляется MCU не непосредственно, а постранично через буферизированное «окно» в адресном пространстве. Поэтому «внешняя» память SPIRAM работает существенно медленнее обычной. В некоторых приложениях (связанных с обработкой видео, например), это может быть критичным. По умолчанию SPIRAM не доступна для malloc() и calloc(), её нужно «подключать» через sdkconfig.

Кроме того, есть подозрения (лично видел issue на github), что SPIRAM гораздо быстрее фрагментируется, чем обычная. Впрочем это может быть чисто программной проблемой, которую можно устранить.

Буква на конце маркировки (D, U, E, I и т.д.) определяет конструктивные особенности модуля:

  • Если буква на конце маркировки отсутствует , то чип внутри такого модуля может стоять какой угодно — либо новый ESP32-D0WD-V3, либо ESP32-D0WD, либо вообще доисторический ESP32-D0WDQ6 . Одно известно совершенно точно: такие модули имеют печатную антенну. На AliExpress модулей с обозначением ESP32-WROOM-32 сейчас «пруд пруди», но сайт производителя уверяет нас, что без буквы маркированы только устаревшие модули (на базе ESP32-D0WDQ6 ), давно снятые с производства. Могу предположить, что это могут быть «не совсем оригинальные» модули, но это не точно. Как правило, встречаются на платах ESP32 DevKit V1 и подобных ( на ESP32 DevKitС V4, имеющихся в моем распоряжении, стоят модули с буквами D или E ).
  • Буква D или E обозначает модули с печатной антенной. Буква D на конце маркировки модуля указывает на чип ESP32-D0WD, буква E указывает на новый чип ECO V3 ( ESP32-D0WD-V3 ). На первый взгляд, существенных отличий модулей с буквой Е по от предыдущих моделей нет. Но если взглянуть на контакты модуля, можно заметить, что часть контактов, задействованных в QSPI интерфейсе (через который может подключаться внешняя FLASH память), не подключена. Но для абсолютного большинства «любительских» применений эти контакты всё равно не имеют никакого значения, так что разницы вы не заметите.
  • Буква U (для WROOM) или I (для WROWER) на конце маркировки модуля указывает на то, что вместо печатной антенны установлен разъем U.FL / IPEX для подключения внешней антенны . Модули с печатной антенной MIFA (Meandered Inverted-F Antenna) удобно применять, когда в точке размещения модуля сигнал WiFi достаточно сильный (или вообще не требуется подключение к сети). Модули с разъемом U.FL / IPEX (имеющие букву U в названии) подойдут, если вы хотите установить ESP32 в металлическом боксе или если уровень сигнала WiFi оставляет желать лучшего (во дворе, в гараже и т.д.). Но антенну придется прикупить отдельно.

Внимание! На модуле с внешней антенной нельзя активировать WiFi, если антенна не подключена — можно спалить передатчик. Я уже это проверил и убедился — это действительно так.

В качестве иллюстрации приведу картинки с одного известного сайта наших постоянных поставщиков:

Читайте также:  Виндовс 10 отваливается wifi

Источник

ESP32 уроки. Подключение к сети Wi-Fi.

Цель этого урока — объяснить, как подключить ESP32 к сети Wi-Fi с помощью Arduino IDE. К счастью для тех, кто имеет опыт работы с библиотеками ESP8266 Arduino IDE, процедура очень похожа.

Если вы еще не установили поддержку ESP32 в среде Arduino IDE, как это сделать рассказываю здесь. Также в предыдущем уроке рассказывал, как загрузить первый скетч в DOIT ESP32 DEVKIT V1. Распиловку плату можно посмотреть тут.

В данном уроке будем использовать также плату DOIT ESP32 DEVKIT V1.

В данном уроке будем использовать также плату DOIT ESP32 DEVKIT V1.

Описание скетча подключение к сети Wi-Fi ESP32.

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

Функциональность также представлена, как внешняя переменная с именем WiFi, в данном случае это класс WiFiClass.

Чтобы наш код было легко редактировать, мы объявим две глобальные переменные для хранения имени сети Wi-Fi, к которой мы хотим подключиться, так же и ее пароля.

const char* ssid = "NetworkName"; const char* password = "NetworkPass";

Внимание , используйте учетные данные вашей сети.

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

Затем вызываем метод begin для объекта WiFi, передавая в качестве аргументов SSID (имя сети) и переменную пароля, указанные ранее. Это инициализирует подключение к сети.

Serial.begin(115200); WiFi.begin(ssid, password);

После этого выполним цикл while, пока соединение не будет установлено. Для этого можем вызвать метод status для объекта WiFi и дождаться, пока результат не совпадет с перечислением WL_CONNECTED. Между каждой итерацией мы вводим небольшую задержку, чтобы избежать постоянного опроса.

Читайте также:  Самсунг смарт хаб вай фай

while (WiFi.status() != WL_CONNECTED)

После цикла ESP32 должен успешно подключиться к сети Wi-Fi. Полный исходный скетч приведён ниже.

#include "WiFi.h" const char* ssid = "yourNetworkName"; const char* password = "yourNetworkPass"; void setup() < Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) < delay(500); Serial.println("Connecting to WiFi.."); >Serial.println("Connected to the WiFi network"); > void loop() <>

Тестирование скетча, подключение к сети Wi-Fi ESP32.

Чтобы проверить код, просто загрузите его в плату ESP32 и откройте последовательный порт. Вы должны получить результат, аналогичный показанному на рисунке ниже. Это означает, что подключение в Wi-Fi выполнено успешно.

Тестирование скетча, подключение к сети Wi-Fi ESP32.

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

#include "WiFi.h" const char* ssid = "NetworkName"; const char* password = "NetworkPass"; byte tries = 10; // Попыткок подключения к точке доступа void setup() < Serial.begin(115200); WiFi.begin(ssid, password); while (--tries && WiFi.status() != WL_CONNECTED) < delay(500); Serial.println("."); >if (WiFi.status() != WL_CONNECTED) < Serial.println("Non Connecting to WiFi.."); >else < // Иначе удалось подключиться отправляем сообщение // о подключении и выводим адрес IP Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); >> void loop() <>

В итоге должны получить вот такой результат.

Смотрите также другие уроки по программированию ESP32

Смотрите также другие уроки по программированию ESP32:

Понравился Урок ESP32: Подключение к сети Wi-Fi? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Источник

Оцените статью
Adblock
detector