О новых чипах производства Espressif заговорили чуть ли не в 2015 году. Дескать, они будут куда быстрее, тоньше, лучше, чем хит того времени ESP8266. А куда быстрее или лучше, чем ESP8266? На мой взгляд, для подавляющего большинства проектов, реализуемых на ESP8266, его мощности более чем достаточно. Единственное, что аналоговых линий можно было бы и добавить. А так — всего вдоволь.
Но прогресс — неумолим и на моем дубовом столе оказалось аж две платы с новым «чипом» ESP32, а точнее ESPWROOM32. Производитель плат, как не трудно догадаться из названия — небезызвестный WeMos. Одна из плат попроще. У нее разведены все доступные порты ESP32, а в качестве дополнительного бонуса в плату интегрировали зарядное устройство для Lion-батареи. Другими словами у платы появляется свой собственный источник бесперебойного питания. Рубанула электрокомпания электричество в розетке, а система все равно работает. Красота! Не нужно ничего колхозить с отдельными зарядками, все уже сделано.
На второй плате производитель пошел немного дальше. Он взял и интегрировал на плату небольшой OLED-дисплей. Не цветной, светит белым, но вполне правдоподобно работоспособный. Дисплей потребовал применения стабилизатора увеличенной мощности и его в этом попрекнуть нельзя, органические светодиоды нужно же чем-то питать. Более того, из-за дисплея пропало несколько портов ввода/вывода. Что тоже вполне логично можно объяснить потребностями экранчика. К чести производителя он сразу записал на чип скетч позволяющий проверить экран. Подаешь питание, и включается демонстрационный режим.
Но перейдем к основной теме. К тому, как же запустить WeMos Lolin на чипе Espressif ESP32 с любимой Arduino IDE. Кстати, многие ругают Arduino IDE за несовершенство и убожество, а попутно советуют перейти на что-то более «крутое», например, Visual Studio. Но, на мой взгляд, Arduino IDE хватает для подавляющего большинства проектов реализуемых дома. Да, Arduino IDE проста, в ней нет отладчика и многих прочих интересных плюшек. Но именно в ее простоте и кроется вся мощь Arduino IDE. В среде есть все, что требуется для разработки. А при грамотной настройке интерфейса средой можно вполне удобно пользоваться, не опасаясь, что вытекут глаза от ядовитой расцветки.
Итак, дано Windows 10 Pro x64 + Arduino IDE 1.8.0 (не самой распоследней версии, но тоже ничего) + установленный пакет для работы с ESP8266. Задача — добавить к системе поддержку ESP32 так, чтобы ничего другого не отвалилось. Как подключить к Arduino IDE ESP8266 я подробно описал в этой статье. И я настоятельно рекомендую с ней ознакомиться, так как там описана установка Git, который потребуется нам для установки поддержки ESP32.
1. Запускаем командную строку с правами администратора. Для этих целей я использую FAR Manager, в нем все же удобнее добираться до нужных директорий на диск.
2. Переходим в каталог, где установлены библиотеки от ESP8266. В моем случае это C:\Program Files (x86)\Arduino\hardware\esp8266com
3. Запускаем в этой директории клонирование репозитория с GitHub командой git clone https://github.com/espressif/arduino-esp32.git esp32
Cloning into 'esp32'...
remote: Counting objects: 4661, done.
remote: Total 4661 (delta 0), reused 0 (delta 0), pack-reused 4661
Receiving objects: 100% (4661/4661), 72.37 MiB | 3.30 MiB/s, done.
Resolving deltas: 100% (2339/2339), done.
C:\Program Files (x86)\Arduino\hardware\esp8266com>
4. Проверяем, что у нас в директории esp8266com теперь две директории. Одна старая esp8266 и одна новая esp32.
5. Заходим в esp32,а там в директорию tools. Запускаем исполняемый файл get.exe. Он проверяет систему и скачивает требуемую библиотеку. Времени на скачивание может уйти несколько минут. Придется набраться терпения.
6. После завершения скачивания библиотеки подключаем плату с ESP32 к компьютеру по USB. Система опознает плату и присваивает ей COM-порт.
7. Запускаем Arduino IDE и выбираем нужную плату из списка. В моем случае — WeMos Lolin. В этом же списке обратите внимание, что все ESP8266 платы остались на своих местах и можно их использовать, как и ранее. Главное не путать одно с другим.
8. Загружаем любой вменяемый скетч из примеров, доступных при установке библиотек. Первым, мне под руку, попался скетч с выводом идентификатора чипа. Можно использовать и его.
9. Компилируем, записываем в микроконтроллер, смотрим на результат.
Итак, что же в сухом остатке? А то, что две системы, два микроконтроллера, могут сосуществовать в рамках одной IDE и одного компьютера. Более того, функции ESP32 помогут реализовывать свои проекты еще на уровень выше. Чего, например, стоит возможность использования зашифрованного внутреннего хранилища или же подключаться к самым скоростным протоколам Wi-Fi? Хотя некоторые, до сих пор, учат, как использовать чипы ESP в качестве Wi-Fi адаптеров для обычных плат Arduino. Эх!
PS. На текущий момент в Arduino пока еще поддерживаются не все функции ESP32, но время идет и уже скоро стоит ожидать полноценную реализацию всего спектра заложенных в устройство технологий и под Arduino.
PSS. Судя по различиям в логотипах устройств, какое-то из них, наверняка, подделка 🙂 Но работает.
Update. Все течет, все изменяется. WeMos переименовался в Lolin, старые платы Lolin 32 отправили в утиль, вместо них появились новые платы Lolin D32 (на ESP32) и Lolin D1 (собственно это они и есть наши любимые D1 Mini на ESP8266). А для добавления обновленных библиотек для Arduino следует использовать вот этот адрес, для регистрации в Boards Manager Arduino IDE: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Таким образом в IDE подключается последняя стабильная версия от комьюнити по поддержке продукции ESP в рамках экосистемы Arduino. Само же сообщество обитает в основном на GitHub по этому адресу: https://github.com/esp8266/Arduino
Update2. Как оказалось, официальный репозитарий для Boards Manager опять не содержит модулей EPS32. Для их подключения в Arduino IDE необходимо прописать еще один адрес https://dl.espressif.com/dl/package_esp32_index.json