Wi-Fi модуль ESP-32
WiFi модули ESP8266 за время своего существования стали поистине народными и получили широкое распространение в любительской разработке устройств Интернета вещей.
Содержание
Обзор беспроводного Wi-Fi модуля ESP-32
WiFi модули ESP8266 за время своего существования стали поистине народными и получили широкое распространение в любительской разработке устройств Интернета вещей. Но жизнь не стоит на месте и компания-разработчик Espressif выпускает новый микроконтроллер – ESP32. ESP32 получил значительный прирост в производительности, по сравнению c ESP8266. Вычислительная мощность возросла в четыре раза. У ESP32 есть два ядра, каждый из которых работает на частоте 160 МГц (ESP8266 имеет 1 ядро, работающее на частоте 80 МГц). Контроллер имеет 520 Кб оперативной памяти, 448 Кб flash-памяти. Поддерживает не только Wi-Fi (802.11n с максимальной скоростью 150 Мбит в секунду), но и Bluetooth 4.2 BR/EDR и Low Energy.
Основным недостатком плат ESP8266 было очень малое количество контактов, в ESP32 этот недостаток устранен, выводов гораздо больше и они многофункциональные, блок ввода-вывода имеет специальный мультиплексор, который позволяет назначать различные функции на один вывод микроконтроллера. Значительно увеличено количество аналоговых входов (18 АЦП (12-бит) и 2 ЦАП (8-бит)), поддержка PWM на всех контактах, 10 портов в режиме сенсорных кнопок. ESP32 имеет три UART, два I2C, четыре SPI, два I2S. Также имеется инфракрасный контроллер (прием-передача), шина CAN 2.0. Еще есть датчик температуры и датчик Холла. Для шифрования при передаче данных по WiFi в ESP32 имеются криптографические модули AES и SHA.
Рисунок 1. Блок-схема периферии ESP32
Для удобной работы с микроконтроллером ESP32 был выпущен модуль WROOM-32 (рис. 2, 3), и теперь появилось множество отладочных плат на этом модуле, например FireBeetle от DFRobot (см. рис. 4, 5).
Рисунок 2,3. Модуль ESP-WROOM32
Рисунок 4,5. Отладочная плата FireBeetle от DFRobot на ESP-WROOM32
Установка программного обеспечения
Изначально модули ESP32, как и ESP8266, поставляется с прошивкой, позволяющей работать с этим микроконтроллером с помощью AT-команд. Но данный метод нас не устраивает. Будем программировать нашу плату в Arduino IDE. Для этого скачиваем ESP32 CORE для Arduino IDE с сайта https://github.com/espressif/arduino-esp32 (zip-архив) и распаковываем его в папку C:\Program Files\Arduino\hardware\espressif. Заходим в Arduino IDE и видим, что в панели инструментов появились платы ESP32 (рис. 6).
Рисунок 6. Плата ESP32 в списке плат в Arduino IDE
Но в списке портов платы нет. Необходимо установить драйвер. Заходим по ссылке https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/FireBeetle-ESP32.inf и копируем содержимое страницы в файл FireBeetle-ESP32.inf. Затем в Диспетчере устройств (Прочие устройства) правой кнопкой выбираем плату FireBeetle-ESP32 и нажимаем Обновить драйверы à Выполнить поиск драйверов на этом компьютере и указываем папку, где сохранен файл FireBeetle-ESP32.inf. Подтверждаем установку и плата FireBeetle-ESP32 появляется в списке COM-портов (рис. 7).
Рисунок 7. Плата FireBeetle-ESP32 в Диспетчере устройств (драйвер установлен).
Теперь и в Arduino IDE появляется данный порт. Плата готова к загрузке скетчей.
И список библиотек, поддерживаемых на данный момент (рис. 8).
Рисунок 8. Список библиотек для ESP32 в Arduino IDE
Пример использования wifi модуля ESP8266
Попробуем подключить плату ESP32 к WiFi точке доступа. Загружаем на плату скетч из листинга 1.
Листинг 1
#include // выставите свои данные для точки доступа const char* passwifi = "************"; const char* ssidwifi = "*********"; void setup() { Serial.begin(115200); delay(10); // Коннект к точке доступа Serial.print("Connecting to "); Serial.println(ssidwifi); WiFi.begin(ssidwifi, passwifi); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(1000); } Serial.print("WiFi connect ok!"); Serial.print("Your IP address is "); Serial.println(WiFi.localIP()); } void loop(){ ; }
Но компиляция не проходит (см. рис. 9)!!! Не находит xtensa-esp32elf.
Рисунок 9. Ошибка компиляции скетча для ESP32
Заходим в папку Files\Arduino\hardware\espressif\esp32\tools и запускаем файл get.exe(рис. 10).
Рисунок 10. Загрузка и установка xtensa-esp32-elf
Теперь компиляция и загрузка скетча на плату проходит успешно (рис. 11).
Рисунок 11. Компиляция и загрузка скетча на плату ESP32
Открываем монитор последовательного порта и видим, что подключение платы ESP32 к сети WiFi успешно (рис. 12).
Рисунок 12. Работа скетча подключения платы ESP32 к WiFi
Часто задаваемые вопросы FAQ
1. В Arduino IDE не видна плата ESP32
- Установите ESP32 CORE для Arduino IDE согласно инструкции
- Установите драйвер для вашей платы ESP32
- Запустите файл get.exe в папке Files\Arduino\hardware\espressif\esp32\tools для скачивания и установки необходимого программного обеспечения.