Начало работы с модулем ESP32-Bit и платформой для разработки ESP32-T используя ядро Arduino для ESP32


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):

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:

cd~
tar xvf arduino-1.8.2-linux64.tar.xz

 

Следующие команды устанавливают поддержку и зависимости Arduino ESP32:

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:

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 чипа:

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 шлюзу.

Нажмите чтобы увеличить

Вот вывод из последовательного терминала.

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.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

1 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
cpcat
cpcat
3 лет назад

WiFi ESP32_eBox пароль 123456789