ESP32 можно программировать разными способами, что очень удобно и для разработчиков с разным уровнем знаний. Если хочется быстрого старта, то подойдет Arduino IDE.
Несмотря на тот факт, что ESP32 не входит в экосистему плат Arduino, используя библиотеку ESP32 Core for Arduino можно адаптировать команды под знакомый стиль программирования на Arduino. Более того, это позволяет легко работать с цифровыми и аналоговыми портами, Wi-Fi, Bluetooth и другими модулями.
Для более глубокой настройки и оптимизации можно использовать ESP-IDF (Espressif IoT Development Framework) — официальную среду разработки от компании-разработчика ESP32 - Espressif. Она обеспечивает полный контроль над железом, поддержку многозадачности через FreeRTOS, возможность обновления прошивки по воздуху (OTA) и работу с периферийными устройствами на низком уровне.
ESP32 также поддерживает MicroPython и CircuitPython. Это очень удобное решение для тех, кто предпочитает программировать на Python, а для работы с IoT-облаками и веб-приложениями можно использовать JavaScript (Espruino) или Lua (NodeMCU).
Прошивка выполняется через USB или, как было сказано раннее, через OTA (по воздуху). Для загрузки используется загрузчик (bootloader), который передает код в флэш-память.
Давайте попробуем запрограммировать ESP32 так, чтобы он моргал светодиодом раз в секунду. Для этого мы будем использовать Arduino IDE и официальную библиотеку ESP32 by Espressif Systems для работы с микроконтроллерами ESP32 в среде Arduino.
Запустите Arduino IDE, перейдите в Файл – Настройки. В поле Дополнительные ссылки для Менеджера плат добавьте строку:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.jsonДалее перейдите в Инструменты – Плата – Менеджер плат, найдите ESP32 by Espressif Systems и установите.
Теперь подключите свою ESP32 к компьютеру (через USB Type-C или Micro-USB), выберите порт и плату в меню Инструменты – Плата (к примеру, это может быть ESP32 Dev Module).
Все готово? Давайте программировать! Пропишите следующий код в рабочую область Arduino IDE:
__
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
______#define LED_PIN 2 // Встроенный светодиод на большинстве плат ESP32void setup() { pinMode(LED_PIN, OUTPUT); // Настроить пин как выход}void loop() { digitalWrite(LED_PIN, HIGH); // Включить светодиод delay(1000); // Подождать 1 секунду digitalWrite(LED_PIN, LOW); // Выключить светодиод delay(1000); // Подождать 1 секунду} __
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
___
_______
Важно! Обратите внимание на комментарии (предложения, начинающиеся с двойного слэша), они могут помочь понять, что делает каждая команда!
Когда код написан, настало время его запустить и попробовать в действии. Нажмите Скетч – Загрузить или зажмите на клавиатуре сочетание Ctrl + U. Если появляется ошибка загрузки, нажмите на кнопку Boot на ESP32 и попробуйте снова.
После загрузки светодиод на микроконтроллере начнет мигать!