Esp32 встроенный usb uart переходник как воспользоваться
Перейти к содержимому

Esp32 встроенный usb uart переходник как воспользоваться

  • автор:

Пример чтения текстовой переменной на ESP32 (ESP8266)

Подключите ESP32 (ESP8266) к ПК. Мы рекомендуем использовать Piranha ESP32, так как в ней есть встроенный USB-UART конвертер и мы тестировали библиотеку с использованием этой платы.

Скетч Arduino

Если Вы никогда не работали в среде разработки Arduino, по этой ссылке можно узнать как её установить и настроить.

Для работы в среде Arduino с платами ESP32 и ESP8266 необходимо установить их поддержку

Установка поддержки плат ESP32

Для работы с ESP32 необходимо настроить поддержку плат ESP32. Выберите пункт меню Файл -> Настройки (или на клавиатуре нажмите ctrl+, ). В поле ввода «Дополнительные ссылки для Менеджера плат» вставьте ссылку https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json . Далее необходимо выбрать пункт меню Инструменты -> Плата: -> Менеджер плат . Откроется окно Менеджера плат. В поле поиска наберите ESP32 и установите последнюю версию плат. Подробнее об установке плат можно узнать по ссылке.

Установка поддержки плат ESP8266

Выберите пункт меню Файл -> Настройки (или на клавиатуре нажмите ctrl+, ). В поле ввода «Дополнительные ссылки для Менеджера плат» вставьте ссылку https://arduino.esp8266.com/stable/package_esp8266com_index.json . Далее необходимо выбрать пункт меню Инструменты -> Плата: -> Менеджер плат . Откроется окно Менеджера плат. В поле поиска наберите ESP8266 и установите последнюю версию плат. Подробнее об установке плат можно узнать по ссылке.

Установка библиотеки

Для работы с библиотекой её необходимо установить в Arduino IDE. Для установки скачайте библиотеку и в Arduino IDE в меню выберите Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку и выберите скачанный .zip файл библиотеки. Подробнее об установке библиотек можно узнать по этой ссылке.

Работа с протоколом HTTPS

Для простоты и быстрого начала работы с сервисом скетч ниже использует протокол HTTP, который передаёт данные не шифруя. Если Вам необходимо передавать критические данные, такие как пароли или коды запуска фейерверков, или Вы просто не хотите, чтобы ваш интернет провайдер знал показания Ваших датчиков, воспользуйтесь статьёй по настойке ESP32 и ESP8266 на работу через HTTPS. (Примечание: через HTTPS могут работать только платы ESP, для плат Arduino AVR работа через HTTPS на данный момент не реализована).

В скетче ниже необходимо заменить «название_панели» на название Вашей панели и «название_переменной» на название переменной, которую мы создали ранее (например «myString» )

#include #include // Если ESP8266, вместо WiFi.h: // #include // Название панели на сайте iocontrol.ru const char* myPanelName = "название_панели"; // Название переменной с типом int на сайте iocontrol.ru const char* myVarName = "название_переменной"; const char* ssid = "ssid_точки_доступа_WiFi"; const char* password = "пароль_точки_доступа_WiFi"; // Создаём объект клиента класса WiFiClient WiFiClient client; // Создаём объект iocontrol, передавая в конструктор название панели и клиента iocontrol mypanel(myPanelName, client); // Если панель использует ключ // iocontrol mypanel(myPanelName, key, client); void setup() < Serial.begin(115200); WiFi.begin(ssid, password); // Ждём подключения while (WiFi.status() != WL_CONNECTED) < delay(500); Serial.print("."); >Serial.println(); // Вызываем функцию первого запроса к сервису mypanel.begin(); > void loop() < // Обновляем переменные в памяти и записываем // статус запроса в переменную int status = mypanel.readUpdate(); // Если статус равен константе OK. if (status == OK) < // Записываем значение в переменную String myString = mypanel.readString(myVarName); // Выводим значение в монитор последовательного порта Serial.println(myString); >>

Выберите последовательный порт к которому подключена отладочная плата нажав в меню Инструменты -> Порт -> %НОМЕР ПОРТА% , затем нажмите на кнопку загрузка или на клавиатуре ctrl+u .

Откройте монитор последовательного порта нажав левой кнопкой мыши на пункт меню Инструменты -> Монитор порта или сочетанием клавиш CTRL+SHIFT+M . В монитор последовательного порта будет выводиться значение переменной Вашей панели.

Пример записи текстовой переменной из ESP32 (ESP8266) на сайт

Подключите ESP32 (ESP8266) к ПК. Мы рекомендуем использовать Piranha ESP32, так как в ней есть встроенный USB-UART конвертер и мы тестировали библиотеку с использованием этой платы.

Скетч Arduino

Если Вы никогда не работали в среде разработки Arduino, по этой ссылке можно узнать как её установить и настроить.

Для работы в среде Arduino с платами ESP32 и ESP8266 необходимо установить их поддержку

Установка поддержки плат ESP32

Для работы с ESP32 необходимо настроить поддержку плат ESP32. Выберите пункт меню Файл -> Настройки (или на клавиатуре нажмите ctrl+, ). В поле ввода «Дополнительные ссылки для Менеджера плат» вставьте ссылку https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json . Далее необходимо выбрать пункт меню Инструменты -> Плата: -> Менеджер плат . Откроется окно Менеджера плат. В поле поиска наберите ESP32 и установите последнюю версию плат. Подробнее об установке плат можно узнать по ссылке.

Установка поддержки плат ESP8266

Выберите пункт меню Файл -> Настройки (или на клавиатуре нажмите ctrl+, ). В поле ввода «Дополнительные ссылки для Менеджера плат» вставьте ссылку https://arduino.esp8266.com/stable/package_esp8266com_index.json . Далее необходимо выбрать пункт меню Инструменты -> Плата: -> Менеджер плат . Откроется окно Менеджера плат. В поле поиска наберите ESP8266 и установите последнюю версию плат. Подробнее об установке плат можно узнать по ссылке.

Установка библиотеки

Для работы с библиотекой iocontrol её необходимо установить в Arduino IDE. Для установки скачайте библиотеку и в Arduino IDE в меню выберите Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку и выберите скачанный .zip файл библиотеки. Подробнее об установке библиотек можно узнать по этой ссылке.

Работа с протоколом HTTPS

Для простоты и быстрого начала работы с сервисом скетч ниже использует протокол HTTP, который передаёт данные не шифруя. Если Вам необходимо передавать критические данные, такие как пароли или коды запуска фейерверков, или Вы просто не хотите, чтобы ваш интернет провайдер знал показания Ваших датчиков, воспользуйтесь статьёй по настойке ESP32 и ESP8266 на работу через HTTPS. (Примечание: через HTTPS могут работать только платы ESP, для плат Arduino AVR работа через HTTPS на данный момент не реализована).

В скетче ниже необходимо заменить «название_панели» на название Вашей панели и «название_переменной» на название переменной, которую мы создали ранее (например «myString» )

#include #include // Если ESP8266, вместо WiFi.h: // #include // Название панели на сайте iocontrol.ru const char* myPanelName = "название_панели"; // Название текстовой переменной на сайте iocontrol.ru const char* myVarName = "название_переменной"; // Если панель использует ключ // const char* key = "ключ"; const char* ssid = "ssid_точки_доступа_WiFi"; const char* password = "пароль_точки_доступа_WiFi"; // Переменная, значение которой необходимо записать String myString = "this_is_a_test"; // Создаём объект клиента класса EthernetClient WiFiClient client; // Создаём объект iocontrol, передавая в конструктор название панели и клиента iocontrol mypanel(myPanelName, client); // Если панель использует ключ // iocontrol mypanel(myPanelName, key, client); void setup() < Serial.begin(115200); WiFi.begin(ssid, password); // Ждём подключения while (WiFi.status() != WL_CONNECTED) < delay(500); Serial.print("."); >Serial.println(); // Вызываем функцию первого запроса к сервису mypanel.begin(); > void loop() < // Записываем состояние переменной mypanel.write(myVarName, myString); // Обновляем переменные на сайте int status = mypanel.writeUpdate(); // Если статус равен константе OK. if (status == OK) < // Выводим текст в последовательный порт Serial.println("Updated"); >>

Теперь скетч, загруженный в микроконтроллер, будет менять переменную на сайте.

Распиновка ESP32-CAM AI-Thinker. Назначение GPIO.

ESP32-CAM — это отладочная плата с чипом ESP32-S, камерой OV2640, слотом для карт microSD и несколькими GPIO для подключения периферийных устройств. В этом руководстве мы рассмотрим GPIO ESP32-CAM и способы использования контактов платы.

Распиновка ESP32-CAM AI-Thinker.

На рисунке ниже показана распиновка ESP32-CAM AI-Thinker.

распиновка ESP32-CAM AI-Thinker

На следующем рисунке показана принципиальная схема ESP32-CAM.

принципиальная схема ESP32-CAM

Вы можете скачать принципиальную схему в PDF-формате внизу статьи, в разделе «файлы для скачивания».

Контакты питания

ESP32-CAM имеет три GND пина (окрашены серым цветом) и два контакта питания (окрашены в красный цвет): 3,3 В и 5 В .

Вы можете подключить питание ESP32-CAM к 3,3 В или 5 В. Тем не менее, возникают ошибки в работе, при подключении питания ESP32-CAM к 3.3V, поэтому советую подключать ESP32-CAM к 5V pin питания.

Вывод питания

Также на шелкографии есть обозначение VCC (окрашен желтым прямоугольником). Вы не должны использовать этот вывод для питания ESP32-CAM. Это вывод предназначен для подключения внешних потребителей. Он может выводить 5 В или 3,3 В.

В нашем случае ESP32-CAM выдает 3,3 В независимо от того, питается он от 5 В или 3,3 В. Рядом с выводом VCC есть две контактные площадки. Одна обозначена как 3,3 В, а другая — как 5 В.

Также на шелкографии есть обозначение VCC

Если присмотреться, у вас должна быть перемычка на контактных площадках 3,3 В. Если вы хотите, чтобы на выводе VCC было выходное напряжение 5 В, вам необходимо распаять это соединение и запаять контактные площадки 5 В.

Последовательный интерфейс.

GPIO 1 и GPIO 3 — это последовательный интерфейс (контакты TX и RX). Поскольку ESP32-CAM не имеет встроенного программатора, вам необходимо использовать эти контакты для загрузки кода и связи с платой.

загрузить код в ESP32-CAM, можно использовать USB-to-UART TTL конвертер на PL2303HX

Чтобы загрузить код в ESP32-CAM, можно использовать USB-to-UART TTL конвертер на PL2303HX. Как пользоваться USB-to-UART TTL конвертером рассказываю в статье: USB-to-UART PL2303HX. Установка драйверов на Linux, Windows, Mac OS.

Для загрузки кода подключим PL2303HX к ESP32-CAM по схеме.

Для загрузки кода подключим PL2303HX к ESP32-CAM по схеме.

Вы можете использовать GPIO 1 и GPIO 3 для подключения других периферийных устройств, датчиков, сенсоров и модулей, после загрузки кода. Однако вы не сможете открыть Serial Monitor и посмотреть, все ли в порядке с вашей настройкой.

GPIO 0

GPIO 0 определяет, находится ли ESP32 в режиме прошивки или нет. Этот GPIO имеет внутреннее подключение к подтягивающему резистору 10 кОм.

Когда GPIO 0 подключен к GND, ESP32 переходит в режим прошивки, и вы можете загружать код на плату.

После загрузки кода, для того чтобы ESP32 работала «нормально», вам просто нужно отключить GPIO 0 от GND.

Подключение карты MicroSD

Следующие контакты используются для взаимодействия с картой памяти microSD, когда она установлена в соответствующий разъем на плате.

MicroSD card ESP32
CLK GPIO 14
CMD GPIO 15
DATA0 GPIO 2
DATA1 / flashlight GPIO 4
DATA2 GPIO 12
DATA3 GPIO 13

Если вы не используете карту microSD, вы можете использовать эти контакты как обычные входы / выходы. Вы можете посмотреть руководство по распиновке ESP32, чтобы увидеть особенности этих контактов.

Все эти GPIO являются RTC и поддерживают ADC: GPIO 2, 4, 12, 13, 14 и 15.

Фонарик (GPIO 4)

ESP32-CAM имеет очень яркий встроенный светодиод, который может работать как вспышка при съемке.

ESP32-CAM имеет очень яркий встроенный светодиод, который может работать как вспышка при съемке.

Фонарик — этот светодиод внутренне подключен к GPIO 4 .

Этот GPIO также подключен к слоту для карты microSD, поэтому у вас могут возникнуть проблемы при попытке использовать оба устройства одновременно — фонарик загорится при использовании карты microSD.

Примечание: один из наших читателей поделился, что у вас не будет этой проблемы, если вы инициализируете карту microSD следующим образом, потому что карта microSD не будет использовать эту линию данных. *

SD_MMC.begin("/sdcard", true)

* после проверки было обнаружено, что это работает, и что светодиод не дает такого эффекта вспышки. Однако светодиод продолжает гореть с низкой яркостью – возможно при проверке был упущен какой-то момент.

GPIO 33 — встроенный красный светодиод

Рядом с кнопкой RST есть встроенный красный светодиод. Этот светодиод внутренне подключен к GPIO 33 . Вы можете использовать этот светодиод, чтобы указать, что что-то происходит. Например, если Wi-Fi подключен, светодиод горит красным или наоборот.

Рядом с кнопкой RST есть встроенный красный светодиод. Этот светодиод внутренне подключен к GPIO 33.

Этот светодиод работает с перевернутой логикой, поэтому вы отправляете LOW сигнал на включение и HIGH сигнал, чтобы выключить его.

Вы можете поэкспериментировать, загрузив следующий фрагмент кода, и посмотреть, светится ли этот светодиод.

void setup() < pinMode(33, OUTPUT); >void loop()

Подключения камеры

Соединения между камерой и ESP32-CAM AI-Thinker показаны в следующей таблице.

OV2640 CAMERA ESP32 Variable name in code
D0 GPIO 5 Y2_GPIO_NUM
D1 GPIO 18 Y3_GPIO_NUM
D2 GPIO 19 Y4_GPIO_NUM
D3 GPIO 21 Y5_GPIO_NUM
D4 GPIO 36 Y6_GPIO_NUM
D5 GPIO 39 Y7_GPIO_NUM
D6 GPIO 34 Y8_GPIO_NUM
D7 GPIO 35 Y9_GPIO_NUM
XCLK GPIO 0 XCLK_GPIO_NUM
PCLK GPIO 22 PCLK_GPIO_NUM
VSYNC GPIO 25 VSYNC_GPIO_NUM
HREF GPIO 23 HREF_GPIO_NUM
SDA GPIO 26 SIOD_GPIO_NUM
SCL GPIO 27 SIOC_GPIO_NUM
POWER PIN GPIO 32 PWDN_GPIO_NUM

Итак, определение контактов для ESP32-CAM AI-Thinker в среде Arduino IDE должно быть следующим:

#define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22

Заключение

Надеюсь, что вы нашли это руководство для GPIO ESP32-CAM полезным. Если у вас есть какие-либо советы или дополнительная информация о GPIO ESP32-CAM, напишите комментарий ниже.

Смотрите мои проекты с использованием ESP32-CAM:

  • Wi-Fi машинка с камерой на ESP32-CAM.
  • ESP32-CAM сохраняем фотографии на флешку при движении
  • ESP32-CAM ov2640, потоковое видео в среде Arduino IDE.

Понравилась статья Распиновка ESP32-CAM AI-Thinker. Назначение GPIO? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Esp32 встроенный usb uart переходник как воспользоваться

ESP-12K-1

В 2020 году компания Espressif представила три новых чипа: ESP32-S2, ESP32-S3 и ESP32-S3.

Если S3 это новый топовый контроллер ESP32, а C3 представляет новую архитектуру RISC-V, то S2 — это явный «CELERON» в мире ESP — с низкой ценой и обрезанным функционалом.

ESP32-S2 построен на одноядерном микропроцессоре Xtensa LX7 нового поколения, имеет интегрированную поддержку USB и некоторые дополнительные интерфейсы (камера, жидкокристаллический дисплей). Зато он кроме одного ядра лишился поддержки Bluetooth, Ethernet и некоторых других (видимо мало востребованных по мнению производителя) функций.

На рынке сейчас доступны собственно микросхемы ESP32-S2, несколько SOC модулей и отладочных плат. Из производителей, кроме Espressif отметилась известная компания AI-Thinker, которая выпустила модуль со странным название ESP-12K (видимо как замену ESP8266 ESP12-E и ESP12-S) и E103-W07 от EBYTE.

ESP-12K есть в двух трудноразличимых вариантах вариантах. ESP-12K(00) — полный аналог ESP32-S2-WROOM и ESP12K(08) — аналог ESP32-S2-WROVER с установленными 8Мб PSRAM. Все модули имеют полностью совместимые корпуса и распиновку, что позволяет распаивать их на одни и те же печатные платы.

ESP-12K-dev

Для экспериментов я на всякий случай заказал одну готовую плату от AI-Thinker, ,

ESP-12K-1

модуль AI-Thinker ESP-12K (что скромно затерялся у продавца среди ESP8266 плат)

DFR0743-WROOM

и ESP32-S2-WROOM от Espressif.

E103-W07 мне во время не попался, может быть при следующей закупке посмотрю ни эти модули.

Что интересно, но на всех отладочных платах ESP32-S2 установлена микросхема USB/UART CH340 или что-то подобное на UART0б что при наличии аппаратного USB наводит на размышления.

На данный момент занимаюсь шлюзом LoRa/WiFi и под это дело вместе с другими платками заказал и для ESP32-S2. Заодно решил проверить подключение по USB напрямую к ESP.

Схема обвязки ESP32-S2 минимальна. USB разъем с защитной сборкой диодов, две кнопки на EN и GPIO0 и стабилизатор на 3.3В

Chema0

У меня на плате живет еще RFM95 модуль с PCB антенной от TI DN024 и три светодиода. Ширину платы определила PCB антенна

100 101

Итак, приступаю к тестированию. Подключаю через внешний переходник USB-UART

102

Распаковываю архив и буду работать с полным файлом прошивки combibde.bin. Для загрузки я буду использовать esptool.py от Arduino core for ESP32, который установлен у меня на компьютере. Перевожу ESP в режим загрузчика, для этого жму кнопку BOOT(GPIO) и RESET(EN).

Ввожу c:\Users\Alexey\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0\tools\esptool.py -p COM5 chip_id и получаю информацию о чипе

esptool-chip_id

Ввожу c:\Users\Alexey\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0\tools\esptool.py -p COM5 flash_id

esptool-flash_id

Ну и наконец набираю команду прошивки загрузчика: c:\Users\Alexey\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0\tools\esptool.py -p COM5 write_flash 0x0 combined.bin

esptool-write

Нажимаю RESET и о чудо, в системе появляется USB диск на котором лежит файл с прошивкой, а после нажатия BOOT/RESET в системе появляется новый ком порт

device

Теперь можно попробовать залить скетч через USB. В последней версии Arduino core for ESP32 включена поддержка чипов S2 и C3. Выбираю плату ESP32S2 Dev Module И вижу интересные пункты меню в настройке платы:

Arduino-IDE

USB CDC (Communications Device Class)- включает виртуальный COM-порт, в который можно производить загрузку без нажатия BOOT/RESET, а также обмениваться информацией через интерфейс Serial в скетче. При этом в системе появляется последовательно два порта, один для прошивки (какой появлялся при нажатии BOOT/RESET), второй для ввода/вывода Serial интерфейса при работе. Данный режим похож на работу с платой Arduino Leonardo на Atmega32U4.

USB Firmware MSC (Mass Storage Class) — создает в системе USB диск, через который мы получаем прямой доступ к прошивке файла. То есть для загрузки прошивки мне достаточно скомпилировать файл (Экспорт бинарного файла в Arduino IDE), переименовать этот файл в FIRMWARE.BIN и переписать его на этот USB диск

USB DFU (Device Firmware Update) — загрузка прошивки через DFU утилиты. Этот метод загрузки широко практикуется в микропроцессорах STM32

Работа через USB порт имеет некоторые особенности. После каждой перезагрузки контроллера в системе передергиваются USB устройства и если в этот момент устройства заняты (открыт COM порт или USB диск), до система без зазрения совести создает последовательный порт с новым номером или диск с новой буквой

Ну и нужно учитывать, что сам загрузчик находится в Flash и может быть затерт, и для его восстановления опять потребуются манипуляции с esptool

А что у нас с ESP32-S в мире LINUX? Подключаю свою плату с ESP32-S2 по USB к своему старенькому нетбуку с Debian 10, на котором крутится у меня «умный дом» и вижу два устройства /dev/ttyACM0 и /dev/sdb соответствующие ком порту и USB-диску

Linux

Осталось проверить, насколько богат внутренний мир USB ESP32-S2. В новой версии ESP32 core for Arduino IDE есть целый каталог примеров USB, которые работают только с ESP32-S2

В этих примерах, как создавать эмулятор USB-мыши, USB-клавиатуры, джойстика, записывать своего вендора в USB-устройствах, создавать доступ к USB Serial порту и USB MSC диску. В общем, получается этакий мега-леонардо с WiFi

В довершении проверяю работоспособность своей платы: модуль RFM95 завелся на библиотеке LoRa от сандипа.

В общем первое знакомство с ESP32-S2 прошло вполне успешно. В целом, чип мне понравился, каких то особых глюков я не нашел и думаю, что в дальнейшем буду его использовать там где нужна невысокая цена и работа с USB.

Планирую в ближайшее время провести тестирование ACD 13бит, и прочих фич нового чипа ESP. «Но это уже другая история» (C)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *