Espressif ESP32 был запущен в прошлом году, но цена упала до привлекательного уровня совсем недавно. Espressif недавно представили ESP-IDF 2.0 SDK с различными улучшениями, так что платформа стала гораздо интереснее. ICStation прислали платформу для разработки ESP32-T с модулем ESP32-bit, так что прежде чем пробовать установить Arduino для ESP32 на платформа, необходимо проверить что внутри пакетов.
Платформа для разработки ESP32-T с модулем ESP-bit – распаковываем & паяем
Внутри пакетов оказался комплект для самостоятельной сборки, так что его придется паять. В одном пакете находится модуль ESP32-bit, во втором плата ESP32-T с разъемами.
Модуль размером 21.5 x 15 мм базируется на процессоре ESP32-DOWNQ6 с 32 Мбит (4 Мб) флэш, чип антенны и u.FL коннектор.
Модуль по видимому произведен eBox и судя по информации доступной на сайте eboxmaker.com при участии Widora, но об этом немного позже.
Плата ESP32-T имеет порт micro USB для подключения питания и программирования/отладки через Silabs CP2102 USB to TTL мост, светодиод питания, пользовательский светодиод (LED1), кнопка сброса и пользовательская кнопка под названием “KEY”. Она имеет два ряда 19-контактных разъемов и посадочное место для модуля ESP32-Bit.
На обратной стороне платы расположено посадочное место для ESP-32S и модуля ESP-WROOM-32, которое делает плату более гибкой и позволяет использовать ее с различными модулями ESP32.
Пришло время спаять комплект. Разместив модуль ESP32-Bit на плате ESP32-T, он был закреплен с помощью изоленты, затем были припаяны четыре контакта.
После, удалив изоленту, были пропаяны все остальные контакты модуля и разъемов.
Последним шагом были обрезаны торчащие из платы контакты разъема, теперь вы можете начать тестирование платы с использованием макетной платформы.
После подключения платы к компьютеру с помощью micro USB to USB кабеля, засветился светодиодный индикатор питания и замигал пользовательский светодиод (LED1).
Также после включения в списке WiFi сетей появился новый ESSID: ESP32_eBox, при попытке подключится к сети, она запросила пароль. Поэтому пришлось посетить страницу платы ESP32, там все на китайском и очень мало информации о программном обеспечении и оборудовании. Это было бесполезно, так как там пароль найти не удалось. ICStation приславшие образец тоже не смогли ответить на вопрос относительно пароля.
В системе компьютера (Ubuntu 16.04) появился новый последовательный выход через /dev/ttyUSB0 (115200 8N1):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3ffc0008,len:0 load:0x3ffc0008,len:1964 load:0x40078000,len:3668 load:0x40080000,len:260 entry 0x40080034 I (569) heap_alloc_caps: Initializing heap allocator: I (569) heap_alloc_caps: Region 19: 3FFC173C len 0001E8C4 tag 0 I (570) heap_alloc_caps: Region 25: 3FFE8000 len 00018000 tag 1 I (580) cpu_start: Pro cpu up. I (586) cpu_start: Starting app cpu, entry point is 0x40080be0 I (0) cpu_start: App cpu up. I (601) cpu_start: Pro cpu start user code I (625) rtc: rtc v160 Nov 22 2016 19:00:05 I (636) rtc: XTAL 40M I (842) phy: phy_version: 258, Nov 29 2016, 15:51:07, 0, 0 I (1862) cpu_start: Starting scheduler on PRO CPU. I (1269) cpu_start: Starting scheduler on APP CPU. tcpip_task_hdlxxx : 3ffc6028, prio:18,stack:2048 I (1269) wifi: frc2_timer_task_hdl:3ffc7abc, prio:22, stack:2048 I (1279) wifi: pp_task_hdl : 3ffca31c, prio:23, stack:8192 I (1929) wifi: mode : softAP (24:0a:c4:01:a4:25) dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1) hms=000:00:01 hms=000:00:02 |
Ядро Arduino для ESP32 на ESP32-T (и прочие ESP32 платы)
Поскольку на сайте упоминается Arduino, было скачано ядро Arduino для чипа ESP32 представленное Espressif, там же находится документация объясняющая, как пользоваться IDE Arduino или PlatformIO. Первым делом необходимо скачать и установить последнюю версию Arduino IDE.
Для компьютера под управлением Ubuntu была скачана и установлена версия для Linux 64-bit:
1 2 |
cd~ tar xvf arduino-1.8.2-linux64.tar.xz |
Следующие команды устанавливают поддержку и зависимости Arduino ESP32:
1 2 3 4 5 6 7 8 9 10 |
sudo usermod -a -G dialout $USER && \ sudo apt-get install git && \ wget https://bootstrap.pypa.io/get-pip.py && \ sudo python get-pip.py && \ sudo pip install pyserial && \ mkdir -p ~/Arduino/hardware/espressif && \ cd ~/Arduino/hardware/espressif && \ git clone https://github.com/espressif/arduino-esp32.git esp32 && \ cd esp32/tools/ && \ python get.py |
Теперь мы можем запустить Arduino IDE:
1 2 |
cd ~/arduino-1.8.2-linux64.tar.xz ./arduino |
На выбор есть несколько вариантов ESP32, но нет ничего о ESP32-T, ESP32-Bit или Widora. Однако распиновка платы выглядит точно также, как у платы ESP32Dev показанной ни же.
Поэтому был выбран ESP32 Dev Module, а на /dev/ttyUSB0 установлена скорость 115200.
Следующим шагом стоит найти простой пример, чтобы проверить все ли работает. Есть куча примеров на выбор в File->Examples, Examples for ESP32 Dev Module section.
Выбранный образец, GetCHIPID, показывает только ID чипа платы и как мы узнаем позже ID чипа это на самом деле его MAC адрес. После отправки кода плата вернула ID чипа:
1 |
ESP32 Chip ID = 24A401C40A24 |
Следующий выбранный образец – WiFi->SimpleWiFiServer – позволит вам проверить WiFi подключение и GPIO контакты. Пришлось немного изменить код чтобы использовать контакт 2 вместо контакта 5 для управления светодиодом LED1 встроенным в плату и подключенным к GPIO2. Вам также понадобится настроить SSID и пароль для подключения к вашей WiFi сети. После того, как вы изменили и загрузили код на плату, вам понадобится найти IP адрес платы. Вы можете найти его в DHCP списке вашего маршрутизатора по имени “espressif” (по умолчанию), или по MAC адресу который совпадает с ID чипа, 24-0A-C4-01-A4-24. Теперь вы можете открыть веб интерфейс в браузере для включения и отключения светодиода LED1, он будет светиться зеленым цветом.
Вы также можете использовать непосредственно адрес http://IP_ADDRESS/H или http://IP_ADDRESS/L чтобы подать напряжение на контакт, высокое или низкое. Все это работает прекрасно, но до сих пор не было проделано ничего, что нельзя сделать на более дешевых платах ESP8266. Для ESP32 есть один образец кода Bluetooth LE под названием simpleBLEDevice в Arduino IDE, давайте попробуем его. Он будет просто выводить имя устройства и менять его при нажатии кнопки, что может быть использовано для трансляции сообщения BLE шлюзу.
Вот вывод из последовательного терминала.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ESP32 SDK: v2.0-rc1-443-g3cad00f-dirty BTDM CONTROLLER VERSION: 010101 btip start copy .data from 4000d890 to 3ffae6e0, len 00001830 set .bss 0x0 from 3ffb8000 to 3ffbff70, len 00007f70 BTDM ROM VERSION 0101 BD_ADDR: 24:0A:C4:01:A4:26 NVDS MAGIC FAILED RF Init OK with coex Enable Classic BT Enable Low Energy Press the button to change the device name BLE32 at: 102 BLE32 at: 316 BLE32 at: 317 |
Первоначальное имя ESP32 SimpleBLE и при нажатии кнопки KEY на плате имя изменится на “BLE32 at: xxx”. С помощью смартфона можно обнаружить Bluetooth устройства ESP32 с различными именами.
Поскольку код только транслирует имя, нет возможности сопряжения. Но это только начало. Для большего понимания Bluetooth, вам нужно также проверить образец WiFiBlueToothSwitch.ino который показывает использование различных режимов, таких как только Bluetooth, Bluetooth + WiFi, WiFi STA и т.д… Для боле практического использования Bluetooth на ESP32 вам возможно стоит прочитать статью “Эксперименты с Bluetooth и IBM Watson”. Но более быстрый двухъядерный процессор и поддержка Bluetooth не единственные дополнительные функции ESP32 по сравнению с ESP8266, также вы получите больше контактов GPIO, аппаратный PWM, лучший ADC, сенсорный интерфейс, шина CAN, Ethernet и т.д…, так что здесь больше возможностей для исследования, но возможно не все функции поддерживаются в ESP-IDF SDK и Arduino.
Заключительные слова о ESP32-T и ESP32-Bit
После некоторых первоначальных трудностей и путаницы, все таки удалось заставить комплект разработчика ESP32-T работать, но трудно рекомендовать его. Во-первых, на данный момент документация действительно плохая и пока удалось найти только инструкции для платы ESP32Devand, которые вы можете использовать. Во-вторых, плата продается, как комплект который нужно паять, что может быть проблемой для многих и возможно веселым обучением ждя некоторых. Наконец, ESP32-T + ESP32-Bit продаются по цене от $15 до $20 на различных вебсайтах, где они сравниваются в полностью собранном виде с конкурентами – такими как Wemos LoLin32.
Хотелось бы поблагодарить ICStation за предоставленную возможность протестировать плату. Они сейчас продают ее за $14.99. Вы также можете найти плату ESP32-T на Aliexpress, но будьте внимательны если планируете покупать ее там, так как она может продаваться без модуля ESP32-Bit. Как правило без модуля цены на $10 ниже.
Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.
WiFi ESP32_eBox пароль 123456789