Компьютер не видит esp32

Обновлено: 07.07.2024

Esp32 использует два процессора Xtensa с симметричной адресацией. Это разработка Гарварда, сделанная аж в 1997 году. Заявленная тактовая частота 240/160 МГц.

Частота таймеров 80 МГц

Очень низкое энергопотребление в режиме «глубокого сна» — аж 5-2,5 мкА.

Аналогичные по архитектуре модули STM32, скажем стоят значительно дороже. Да, 400 МГц, да отличная документация. Но, скажем процессор STM32F407 стоит около 1000 рублей на Алиэкспрессе.

И почти нет микропроцессоров, у которых были бы «на борту» Bluetooth и Wi-Fi стоимостью 150-200 рублей.

Удобные для любительской распайки модули с микропроцессором «на борту»

Почему esp-idf VSCode и Eclipse?

ESP-IDF позиционируется, как Espressif IoT Development Framework — Фреймворк разработки IoT (Интернет Вещей). Плата с процессором Esp32 вполне может стать объектом Интернета Вещей.

А так же, с этим фреймворком легко разрабатывать Bluetooth Low Energy устройства, которыми, скажем, можно легко управлять с мобильного телефона. Подключаться к WiFi и проводной сети Ethernet.

Да, цена входа для непрофессионального разработчика на Arduino IDE, значительно ниже. Для сегмента DIY (Самодельничество, или «сделай сам» (англ. DIY — Do It Yourself), — вид деятельности, при котором люди самостоятельно производят какие-либо изделия для собственного использования), более чем достаточно.

Но всегда же хочется большего, не правда ли? Примитивы FreeRTOS кажутся мне более понятными, логичными и простыми в использовании, чем void setup() и void loop(). Опять же, возможность обращения к LL функциям (Low Level Layer Function)

Так и не понял, можно ли «поднять» BLE GATT Server на Arduino IDE, но во фреймворке esp-idf он пишется почти элементарно.

Часть I. Консоль

Статей о настройке IDE Visual Studio Code и Eclipse под Linux и Windows написано уже много. В принципе, с точностью до небольших деталей, они повторяют друг-друга. Эта заметка не исключение.

Linux

Для примера, использую Ubuntu 21.04.

Во-первых, классическое начало для deb систем:

Ну или установить cmake и ninja, используя snap

Для полноценной работы esp-idf должны быть установлены git, python3 и pip3. Причём, надо, чтобы python вызывался, как python, а не python3 или python3.9 и т.д. Скажем, в Ubuntu 18.04, 20.10, 21.04 такой команды, как python изначально нет. Есть python3. Так, что надо либо сделать мягкую ссылку:

Последний способ чуть сложнее, но даже в создании мягкой ссылки есть забавный подвох: если Вы не создали каталог

/.local/bin, то .profile его не «подхватит», потому, что в скрипте профиле есть такой код:

Иными словами, если этот каталог не создан, его в пути и не будет. После создания каталога, нужно вызвать source

Проверим себя. Вызовем из терминала:

Всё работает. Скачиваем esp-idf. Предпочитаю установить фреймворк в какой-нибудь подкаталог домашеного каталога, вроде

/espressif. Фреймворков Esp32, аж целых три — esp-adf, esp-idf, esp-mdf, так что, чтобы не засорять «корневое» пространство пользовательского каталога, сложим их в одну кучу. Имена каталогов верхних уровней не должны содержать пробелов.

Имеет смысл сразу добавить в какой-нибудь из пользовательских .*rc-файлов загрузку переменных окружения esp-idf. Переменные ADF_PATH и MDF_PATH предусмотрены на тот случай, если Вы захотите работать на Esp32 со звуком или создавать самоорганизующиеся сети из нескольких плат Esp32.

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

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

/.*rc-файл. Например, добавить в

/.bashrc (\. необходим, поскольку, разрешения .*rc-файлов 0644):

Далее, осталось установить набор инструментария для сборки проектов. По умолчанию toolchain будет установлен в

Если всё прошло удачно, то увидим что-то такое (журнал установки укорочен):

WARNING: You are using pip version 21.2.3; however, version 21.2.4 is available. You should consider upgrading via the '/home/grandfatherpikhto/.espressif/python_env/idf4.4_py3.8_env/bin/python -m pip install --upgrade pip' command. All done! You can now run:

Обратите внимание, что предлагается обновить venv:

Размер esp-idf приблизительно 2.2 Гб, toolchain — 1.2 Гб. Ну, так на минуточку:

После установки toolchain можно вызвать source

/.idfrc и подгрузить переменные окружения ESP-IDF командой idfexp или

Если всё пошло правильно, должны увидеть что-то такое:

$ idfexp Detecting the Python interpreter Checking "python" . Python 3.8.10 "python" has been detected Adding ESP-IDF tools to PATH. Using Python interpreter in /home/grandfatherpikhto/.espressif/python_env/idf4.4_py3.8_env/bin/python Checking if Python packages are up to date. Python requirements from /home/grandfatherpikhto/espressif/esp-idf/requirements.txt are satisfied. Added the following directories to PATH: /home/grandfatherpikhto/espressif/esp-idf/components/esptool_py/esptool /home/grandfatherpikhto/espressif/esp-idf/components/espcoredump /home/grandfatherpikhto/espressif/esp-idf/components/partition_table /home/grandfatherpikhto/espressif/esp-idf/components/app_update /home/grandfatherpikhto/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin /home/grandfatherpikhto/.espressif/tools/xtensa-esp32s2-elf/esp-2021r1-8.4.0/xtensa-esp32s2-elf/bin /home/grandfatherpikhto/.espressif/tools/xtensa-esp32s3-elf/esp-2021r1-8.4.0/xtensa-esp32s3-elf/bin /home/grandfatherpikhto/.espressif/tools/riscv32-esp-elf/esp-2021r1-8.4.0/riscv32-esp-elf/bin /home/grandfatherpikhto/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin /home/grandfatherpikhto/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin /home/grandfatherpikhto/.espressif/tools/openocd-esp32/v0.10.0-esp32-20210721/openocd-esp32/bin /home/grandfatherpikhto/.espressif/python_env/idf4.4_py3.8_env/bin /home/grandfatherpikhto/espressif/esp-idf/tools Done! You can now compile ESP-IDF projects. Go to the project directory and run:

В принципе, можно приступить к сборке и прошивке какого-нибудь проекта из каталога

/espressif/esp-idf/examples, но сначала надо настроить udev — пакет управления устройствами для новых версий ядра Linux.

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

У вашего покорного слуги наличествует макетная плата ESP32-WROOM. Попробуем собрать и прошить

/espressif/esp-idf/examples/get-started/hello_world. Обратите внимание, что, в принципе надо указывать порт. Например, idf.py -p /dev/ttyUSB0 flash. Но, на самом деле, это не обязательно. idf.py попробует найти порт, к которому подключено устройство Esp32 и прошьёт первое обнаруженное.

Если всё получилось хорошо, увидим что-то вроде:

/Programs/esp32/hello_world $ idf.py build

Executing action: all (aliases: build)

Running cmake in directory /home/denis/Programs/esp32/hello_world/build

Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DCCACHE_ENABLE=0 /home/denis/Programs/esp32/hello_world".

-- IDF_TARGET not set, using default target: esp32

-- Found Git: /usr/bin/git (found version "2.32.0")

-- The C compiler identification is GNU 8.4.0

-- The CXX compiler identification is GNU 8.4.0

-- The ASM compiler identification is GNU

-- Found assembler: /home/denis/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working C compiler: /home/denis/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc - skipped

-- Detecting C compile features

-- Detecting C compile features - done

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Check for working CXX compiler: /home/denis/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++ - skipped

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Project is not inside a git repository, or git repository has no commits; will not use 'git describe' to determine PROJECT_VER.

-- Building ESP-IDF components for target esp32

-- Project sdkconfig file /home/denis/Programs/esp32/hello_world/sdkconfig

-- Found PythonInterp: /home/denis/.espressif/python_env/idf4.4_py3.9_env/bin/python (found version "3.9.6")

-- Found Perl: /usr/bin/perl (found version "5.32.1")

-- App "hello-world" version: 1

-- Adding linker script /home/denis/Programs/esp32/hello_world/build/esp-idf/esp_system/ld/memory.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_system/ld/esp32/sections.ld.in

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.api.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-time.ld

-- Adding linker script /home/denis/espressif/esp-idf/components/soc/esp32/ld/esp32.peripherals.ld

-- Build files have been written to: /home/denis/Programs/esp32/hello_world/build


c ESP32 на борту. Работал нормально, но после того как я нему подпаявался перестал поднимать WiFi, светодиод моргает. Хотел посмотреть по UART что отдаёт, но комп его не видит, ни как вообще. кабель в порядке, проверял.
Может есть какой ни будь способ оживить модуль? спасибо.

проверить есть ли 3.3в на выводе, проверить всю электрику платы, стабилизатор

Вы неправильно (лично мое мнение) пишите. Начните с самого простого компьютер не видит не вашу ESP32 а TTL-COM конвертер собранный на маленькой микросхеме внизу платы. Вот с него и начинайте (опять без обид) но видно у вас совсем познания в электронике на вы и шопотом. Повторяю без обид. 1 Ничто не мешает взять внешний USB-COM конвертер подключиться к ногам RX-TX еспехи и поглядеть что она вообще передает 2 Никто не запрещает сдуть крышку с есп сдуть память ее в прогер и перешить. Опять же это как гадания на кофейной гуще куда вы подпаивались и что вы делали с платой нам только остается догадываться.

Спасибо за ответы, на самом деле оба ответы верные, только второй более развёрнут.
А мешает сдуть крышку выпаять память и прошить в программаторе отсутствие нужных инструментов и опыт. я программист по образованию, и со схемотехникой знакомился только в теории, и давно в универе.
Начну обхода TTL-COM, пожалуй.

Спасибо за ответы, на самом деле оба ответы верные, только второй более развёрнут.
А мешает сдуть крышку выпаять память и прошить в программаторе отсутствие нужных инструментов и опыт. я программист по образованию, и со схемотехникой знакомился только в теории, и давно в универе.
Начну обхода TTL-COM, пожалуй.

Ну если по хорошему то начать надо всегда с проверки питающих напряжений и разрешающих сигналов(тут имеется ввиду сигнал EN) И только если с ними (питающими напряжениями и разрешающими сигналами )все в порядке тогда уж начинать шить.

Платы ESP 32 оснащены микроконтроллером ESP32-WROOM-32 с интерфейсом Wi-Fi, подключаются к компьютеру через WiFi или USB порт.

О том как установить «Arduino IDE» можно прочитать в статье Wiki - Установка среды разработки Arduino IDE для Windows .

Настройка Arduino IDE:

Писать скетчи под микроконтроллер ESP32 можно в среде разработки «Arduino IDE», но перед загрузкой скетча нужно выбрать тип используемой платы из списка меню «Инструменты» > «Плата», а там по умолчанию нет плат ESP32. Вся настройка сводится к тому, что бы в этом списке меню появились эти платы.

В среде «Arduino IDE» имеется «Менеджер плат» который поможет быстро добавить интересующие платы в список. Для этого нужно выполнить следующие действия:


Откройте «Arduino IDE» и выберите пункт меню: «Файл» > «Настройки»



Запустите «Менеджер плат» выбрав пункт меню «Инструменты» > «Плата» > «Менеджер плат».


В открывшемся окне «Менеджер плат» выберите пункт «esp32 by Espressif Systems» из списка сборок и нажмите на кнопку «Установка» (при желании можно выбрать версию устанавливаемой сборки).


Дождитесь окончания установки сборки.


После успешной установки сборки, в списке, напротив её названия «esp32 by ESP32 Systems» появится фраза «INSTALLED». Закройте «Менеджер плат» нажав на кнопку «Закрыть».

На этом настройка «Arduino IDE» завершена! Теперь в списке плат есть раздел «ESP32 Arduino».

Первая программа:

Самая первая программа для любой платы под управлением микроконтроллера - это «Hello, World!» (вывод строки) или «Blink» (мигание светодиодом). Данная статья не будет исключением, загрузим скетч для мигания светодиодом.


Для работы с платами ESP 32 нужно в пункте меню «Инструменты» > «Плата» > «ESP32 Arduino» выбрать соответствующую плату. В нашем случае это будет Piranha ESP32.


Так же нужно выбрать COM-порт после подключения платы к компьютеру через USB порт. На рисунке выбран порт «COM10», но Вам нужно выбрать тот порт, который появился у Вас в списке доступных портов после подключения платы. Если после подключения платы новый порт не появился, значит не установлен драйвер для чипа CH340C ссылки на драйверы указаны в конце данной статьи.

Осталось загрузить скетч и проверить его работу.


Скетч «Blink» можно загрузить из базовых примеров Arduino в меню «Файл» > «Примеры» > «01.Basic» > «Blink» . Макрос «LED_BUILTIN» содержит номер вывода к которому подключён встроенный в Piranha ESP32 светодиод. Если Вы используете другую плату, то необходимо указать соответствующий вывод в начале скетча, например:

или выбрать плату соответствующую Вашей в пункте меню «Инструменты» > «Плата» > «ESP32 Arduino»


Нажмите левой кнопкой мыши на кнопку загрузки скетча в плату (или на клавиатуре <Ctrl> + <U>). Начнётся компиляция и загрузка двоичного кода в микроконтроллер платы.


В зависимости от конфигурации системы и используемой платы, возможно понадобится перевести плату в режим программирования. Для этого зажмите на плате одновременно RESET и BOOT, а затем отпустите RESET не отпуская BOOT. Через несколько секунд можно отпустить BOOT, начнётся загрузка кода в микроконтроллер платы.

.Установка, прошивка платы ESP32 в Arduino IDE (Windows, Mac OS X, Linux)

Существует надстройка для Arduino IDE, которая позволяет программировать ESP32 с использованием Arduino IDE и его языка программирования. В этой статье мы покажем вам, как установить плату ESP32 в Arduino IDE, не зависимо от используемой вами операционной системы: Windows, Mac OS X или Linux.

Если у вас возникли какие-либо проблемы во время процедуры установки, сообщите об этом на форуме.

esp32 devkit

Необходимые условия: Arduino IDE последней версии.
Перед началом установки убедитесь,что на вашем компьютере установлена последняя версия Arduino IDE. Если у вас стоит не последняя версия, сперва удалите текущую версию и затем установите более новую версию. В противном случае, данная инструкция может не сработать.
Имея последнюю версию Arduino IDE, установленную с официального сайта, продолжайте установку по данной инструкции.

Установка дополнения ESP32 в Arduino IDE

Чтобы установить плату ESP32 в Arduino IDE, выполните следующие действия:
1. В вашем Arduino IDE перейдите в Файл> Настройки

установить плату ESP32 в Arduino IDE

2. Войдите https://dl.espressif.com/dl/package_esp32_index.json. в поле "Дополнительные ссылки для менеджера платы", как показано на рисунке ниже. Затем нажмите кнопку OK.

Дополнительные ссылки для менеджера платы

Внимание: Если вы у вас установлена в Arduino IDE ESP8266 то добавьте 2 строки или через запятую:

3. Откройте Менеджер плат. Перейдите в меню Инструменты > Платы > Менеджер плат

Менеджер плат

4. Ищем ESP32. И нажимаем кнопку Установка.

Ищем ESP32

5. Вот и все. Через пару минут у вас все установиться.

Первая загрузка скетча в ESP32.

Подключите плату ESP32 к компьютеру. Открываем Arduino IDE и выполним следующие действия:

1. Выберите доску в меню Инструменты > Плата (в моем случае это DOIT ESP32 DEVKIT V1 )

Инструменты WiFiScan

Плата (в моем случае это DOIT ESP32 DEVKIT V1)" width="382" height="240" style="display: block; margin: auto; width: 382px; height: 240px;" rel="display: block; margin: auto; width: 382px; height: 240px;">

2. Выберите порт (если вы не видите COM-порт в Arduino IDE, вам необходимо установить драйверы CP210x USB to UART Bridge VCP). В моем случае ком порт отображается по другому. Это связанно с тем что я использую OS Linux.

Выберите порт

3. Открыть в следующем примере в Файл > Примеры > WiFi > WiFiScan

Примеры WiFiScan

4. В вашей среде Arduino IDE откроется новый скетч.

Arduino IDE откроется новый скетч

 Загрузить в Arduino IDE

6. Откройте последовательный монитор Arduino IDE со скоростью передачи данных 115200.

 Откройте последовательный монитор Arduino IDE

Распиновка ESP32 DEVKIT V1

Подведение итогов.
Это краткое руководство, которое иллюстрирует, как подготовить ваш Arduino IDE для ESP32 на компьютере с ОС Windows, Mac OS X или Linux. Если во время установки возникнут какие-либо проблемы, пишите на форум.

Читайте также: