ESP-32 is still quite new, therefore uploading a sketch is not as straightforward as with ESP-8266. It’s still easy though if you follow below steps:
Install Python
First, install Python 2.7 if you don’t already have.
https://www.python.org/download/releases/2.7/
Then install python library called wget using pip.
pip install wget
The above is needed for all operating systems. Things are still almost the same in Windows, Linux or MacOS.
Install ESP-32 drivers (for Windows users)
Windows users need to install some drivers. Linux and MacOS users can skip this step.
Go to below address:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
download and install CP210x_Universal_Windows_Driver.zip
Install ESP-32 board manager
You cannot install ESP-32 by boards manager in Arduino IDE (at least in June 2018). Additional Boards Manager URLs
is no use when installing ESP-32.
You need to create a new folder hardwareespressif
under your sketchbook folder. If you don’t know this location simply open Arduino IDE. Then go to Preferences and see Sketchbook location
section at the top. Then change this location wherever needed in the below command list.
For me it was «C:UsersAliustaogluDocumentsArduino». Change yours accordingly
For Windows
It is quite simple for Windows. Execute below commands one by one. It will first get the source code from git and then download necessary files to the location where Arduino IDE will be looking for.
My sketchbook location was C:UsersAliustaogluDocumentsArduino
for Windows-10.
md C:UsersAliustaogluDocumentsArduinohardwareespressif
cd C:UsersAliustaogluDocumentsArduinohardwareespressif
git clone https://github.com/espressif/arduino-esp32.git esp32
cd esp32
git submodule update --init --recursive
cd tools
get.exe
It might take a while. But after the download and installation finishes, you should be able to see the list of ESP-32 devices under board menu. You don’t need to go to Boards Manager anymore.
For Linux and Mac OS
My sketchbook location was /Users/cuneytaliustaoglu/Documents/Arduino
for Mac OS.
It is almost the same for UNIX users. Execute below steps:
mkdir -p /Users/cuneytaliustaoglu/Documents/Arduino/hardware/espressif
cd /Users/cuneytaliustaoglu/Documents/Arduino/hardware/espressif
git clone https://github.com/espressif/arduino-esp32.git esp32
cd esp32
git submodule update --init --recursive
cd tools
python get.py
But I got an error while executing the last step
IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726
If you get this error change the contents of get.py with the one below. Open a text editor:
sudo nano get.py
and replace whole content with below:
#!/usr/bin/env python
# This script will download and extract required tools into the current directory.
# Tools list is obtained from package/package_esp8266com_index.template.json file.
# Written by Ivan Grokhotkov, 2015.
#
from __future__ import print_function
import os
import shutil
import errno
import os.path
import hashlib
import json
import platform
import sys
import tarfile
import zipfile
import re
import wget
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
if sys.version_info[0] == 3:
from urllib.request import urlretrieve
else:
# Not Python 3 - today, it is most likely to be Python 2
from urllib import urlretrieve
if 'Windows' in platform.system():
import requests
current_dir = os.path.dirname(os.path.realpath(unicode(__file__)))
dist_dir = current_dir + '/dist/'
def sha256sum(filename, blocksize=65536):
hash = hashlib.sha256()
with open(filename, "rb") as f:
for block in iter(lambda: f.read(blocksize), b""):
hash.update(block)
return hash.hexdigest()
def mkdir_p(path):
try:
os.makedirs(path)
except OSError as exc:
if exc.errno != errno.EEXIST or not os.path.isdir(path):
raise
def report_progress(count, blockSize, totalSize):
percent = int(count*blockSize*100/totalSize)
percent = min(100, percent)
sys.stdout.write("r%d%%" % percent)
sys.stdout.flush()
def unpack(filename, destination):
dirname = ''
print('Extracting {0}'.format(os.path.basename(filename)))
sys.stdout.flush()
if filename.endswith('tar.gz'):
tfile = tarfile.open(filename, 'r:gz')
tfile.extractall(destination)
dirname= tfile.getnames()[0]
elif filename.endswith('zip'):
zfile = zipfile.ZipFile(filename)
zfile.extractall(destination)
dirname = zfile.namelist()[0]
else:
raise NotImplementedError('Unsupported archive type')
# a little trick to rename tool directories so they don't contain version number
rename_to = re.match(r'^([a-z][^-]*-*)+', dirname).group(0).strip('-')
if rename_to != dirname:
print('Renaming {0} to {1}'.format(dirname, rename_to))
if os.path.isdir(rename_to):
shutil.rmtree(rename_to)
shutil.move(dirname, rename_to)
def get_tool(tool):
sys_name = platform.system()
archive_name = tool['archiveFileName']
local_path = dist_dir + archive_name
url = tool['url']
#real_hash = tool['checksum'].split(':')[1]
if not os.path.isfile(local_path):
print('Downloading ' + archive_name);
sys.stdout.flush()
if 'CYGWIN_NT' in sys_name:
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
urlretrieve(url, local_path, report_progress, context=ctx)
elif 'Windows' in sys_name:
r = requests.get(url)
f = open(local_path, 'wb')
f.write(r.content)
f.close()
else:
#urlretrieve(url, local_path, report_progress)
wget.download(url, local_path)
sys.stdout.write("rDonen")
sys.stdout.flush()
else:
print('Tool {0} already downloaded'.format(archive_name))
sys.stdout.flush()
#local_hash = sha256sum(local_path)
#if local_hash != real_hash:
# print('Hash mismatch for {0}, delete the file and try again'.format(local_path))
# raise RuntimeError()
unpack(local_path, '.')
def load_tools_list(filename, platform):
tools_info = json.load(open(filename))['packages'][0]['tools']
tools_to_download = []
for t in tools_info:
tool_platform = [p for p in t['systems'] if p['host'] == platform]
if len(tool_platform) == 0:
continue
tools_to_download.append(tool_platform[0])
return tools_to_download
def identify_platform():
arduino_platform_names = {'Darwin' : {32 : 'i386-apple-darwin', 64 : 'x86_64-apple-darwin'},
'Linux' : {32 : 'i686-pc-linux-gnu', 64 : 'x86_64-pc-linux-gnu'},
'LinuxARM': {32 : 'arm-linux-gnueabihf', 64 : 'aarch64-linux-gnu'},
'Windows' : {32 : 'i686-mingw32', 64 : 'i686-mingw32'}}
bits = 32
if sys.maxsize > 2**32:
bits = 64
sys_name = platform.system()
sys_platform = platform.platform()
print('System: %s, Info: %s' % (sys_name, sys_platform))
if 'Linux' in sys_name and sys_platform.find('arm') > 0:
sys_name = 'LinuxARM'
if 'CYGWIN_NT' in sys_name:
sys_name = 'Windows'
return arduino_platform_names[sys_name][bits]
if __name__ == '__main__':
identified_platform = identify_platform()
print('Platform: {0}'.format(identified_platform))
tools_to_download = load_tools_list(current_dir + '/../package/package_esp32_index.template.json', identified_platform)
mkdir_p(dist_dir)
for tool in tools_to_download:
get_tool(tool)
print('Done')
Now if you restart Arduino IDE, you will see the list of ESP-32 devices.
Subscribe to Full Stack Developer & Amateur Musician
Get the latest posts delivered right to your inbox
Display and touchpad drivers for ESP32 using LVGL
For a ready to use ESP32 project take look at the lv_port_esp32 repository.
Table of content
- Supported display controllers
- Supported indev controllers
- Support for predefined development kits
- Thread-safe I2C with I2C Manager
- Backlight control
NOTE: You need to set the display horizontal and vertical size, color depth and
swap of RGB565 color on the LVGL configuration menuconfig (it’s not handled automatically).
Supported display controllers
Display Controller | Type | Interface | Color depth (LV_COLOR_DEPTH) | Swap RGB565 color (LV_COLOR_16_SWAP) |
---|---|---|---|---|
ILI9341 | TFT | SPI | 16: RGB565 | Yes |
ILI9163C | TFT | SPI | 16: RGB565 | Yes |
ILI9486 | TFT | SPI | 16: RGB565 | Yes |
ILI9488 | TFT | SPI | 16: RGB565 | No |
HX8357B/HX8357D | TFT | SPI | 16: RGB565 | Yes |
ST7789 | TFT | SPI | 16: RGB565 | Yes |
ST7735S | TFT | SPI | 16: RGB565 | Yes |
FT81x | TFT | Single, Dual, Quad SPI | 16: RGB565 | No |
GC9A01 | TFT | SPI | 16: RGB565 | Yes |
RA8875 | TFT | SPI | 16: RGB565 | Yes |
SH1107 | Monochrome | SPI | 1: 1byte per pixel | No |
SSD1306 | Monochrome | I2C | 1: 1byte per pixel | No |
PCD8544 | Monochrome | SPI | 1: 1byte per pixel | No |
IL3820 | e-Paper | SPI | 1: 1byte per pixel | No |
UC8151D/ GoodDisplay GDEW0154M10 DES | e-Paper | SPI | 1: 1byte per pixel | No |
FitiPower JD79653A/ GoodDisplay GDEW0154M09 | e-Paper | SPI | 1: 1byte per pixel | No |
Supported indev controllers
- XPT2046
- FT3236, FT6X36
- FT6206 controllers should work as well (not tested)
- STMPE610
- FT81x (Single, Dual, and Quad SPI)
If your display or input device (touch) controller is not supported consider contributing to this repo by
adding support to it! Contribute controller support
Support for predefined development kits
You can also use the predefined kits, which selects the correct display controllers on the kit,
and sets the gpio numbers for the interface.
Kit name | Display controller | Interface | Hor. Res. | Ver. Res. |
---|---|---|---|---|
ESP Wrover Kit v4.1 | ILI9341 | SPI | 240 | 320 |
M5Stack | ILI9341 | SPI | 240 | 320 |
M5Stack Core2 | ILI9341 | SPI | 240 | 320 |
M5Stick | SH1107 | SPI | — | — |
M5StickC | ST7735S | SPI | 80 | 160 |
Adafruit 3.5 Featherwing | HX8357 | SPI | 480 | 320 |
RPi MPI3501 | ILI9486 | SPI | — | — |
Wemos Lolin OLED | SSD1306 | SPI | 64 | 128 |
ER-TFT035-6 | ILI9488 | SPI | 480 | 320 |
AIRcable ATAGv3 | IL3820 | SPI | 128 | 296 |
TTGO T-Display | ST7789 | SPI | 135 | 240 |
TTGO Camera Plus | ST7789 | SPI | 240 | 240 |
NOTE: See Supported display controllers for more information on display configuration.
NOTE: See Supported indev controllers for more information about indev configuration.
Thread-safe I2C with I2C Manager
LVGL can use I2C to read from a touch sensor or write to a display, possibly
many times a second. Meanwhile, other tasks may also want to read from i2c
devices on the same bus. I2C using the ESP-IDF is not thread-safe.
I2C Manager (i2c_manager
) is a component that will let code in multiple threads
talk to devices on the I2C ports without getting in each other’s way. These drivers
use a built-in copy of I2C Manager to talk to the I2C port, but you can also use
the I2C Manager component itself and have others play nice with LVGL and vice-versa.
Click here for details.
Backlight control
Control of LCD’s backlight is provided by separate module that is independent from the display driver.
Configuration of the backlight controller can be found in menuconfig LVGL ESP Drivers -> LVGL TFT Display controller
.
There are three modes of operation:
- Off — No backlight control
- Switch — Allows ON/OFF control
- PWM — Allows brightness control (by Pulse-Width-Modulated signal)
На данной странице находится максимально подробный гайд по началу работы с Arduino, в котором можно найти ответы на все вопросы касательно установки, подключения и загрузки прошивки, а также по работе с моими проектами. Внимательно изучите гайд, прежде чем писать мне на почту или в нашу группу ВК, если у вас что-то не получается, тут есть ответы на все вопросы. Также прилагаю список уроков на этом сайте, где можно найти ещё больше базовой информации:
- Начало работы
- Работа с Arduino IDE
- Первая прошивка, ошибки, FAQ
- Питание платы
Arduino IDE
Arduino IDE – программа для написания и загрузки прошивки в плату, скачать можно с официального сайта вот здесь. Внимание! Перевод языка страницы в браузере ломает кнопки! На данный момент называется Legacy IDE (1.8.X), так как вышла новая IDE v2. Новичкам рекомендуется начать с версии 1.8.X.
Перед загрузкой вам предложат пожертвовать на развитие проекта, можно отказаться и нажать JUST DOWNLOAD (только скачать). Либо открываем прямую ссылку на загрузку версии 1.8.19 и сразу качаем файл.
Для работы рекомендуется компьютер с Winodws 7 или выше, либо Linux/MacOS
- Если у вас Windows XP, придётся установить версию 1.6.13, более свежие версии будут очень сильно тормозить или не будут работать вообще. Есть ещё одна проблема: некоторые библиотеки не будут работать на старых версиях Arduino IDE, также не будет работать поддержка плат семейства esp8266, поэтому крайне рекомендуется обновить свой компьютер до Windows 7 или выше
- Установка на Linux из системного репозитория – читать тут
- Установка на MacOS – читать тут
Arduino Windows app
Не рекомендуется устанавливать Arduino Windows app из магазина приложений Windows, так как с ней бывают проблемы
Другие версии
Не устанавливайте старые версии IDE, если нет на то весомых причин, а также beta и hourly-билды
Java
Для старых версий Arduino IDE, а также для некоторых других программ, понадобится пакет Java JRE. Скачать можно с официального сайта для своей операционной системы.
Установка
Arduino IDE устанавливается как обычная программа, запускам и жмём далее далее далее…
Драйвер
Во время установки Arduino IDE программа попросит разрешения установить драйвера от неизвестного производителя, нужно согласиться на установку всего предложенного.
Обновление
Перед установкой новой версии нужно удалить старую. Ни в коем случае не удаляйте папку установленной IDE из Program Files, удалять нужно через “Установка и удаление программ“, либо запустив файл uninstall.exe из папки с установленной программой. Иначе установщик откажется устанавливать новую программу, так как в системе остались следы от старой. Решение этой проблемы описано в видео ниже. Вкратце о том, как удалить IDE вручную:
Удаление остатков IDE
Удаляем папки:
- Папка с программой
- C:Program Files (x86)Arduino (64-битная версия Windows)
- C:Program FilesArduino (32-битная версия Windows)
- Папка со скетчами и библиотеками
- ДокументыArduino
- Папка с настройками и дополнительными “ядрами” плат
- C:Пользователи (или Users)Ваш_пользовательAppDataLocalArduino15
Удаляем следы из реестра:
- Открыть редактор системного реестра:
- Windows 10: Пуск/regedit
- Предыдущие: Пуск/Выполнить/regedit
- Инструкция для всех Windows
- В открывшемся окне: Правка/Найти…
- В окне поиска пишем arduinouninstall
- Поиск
- Удаляем найденный параметр (см. скриншот ниже)
- На всякий случай Правка/Найти далее
- Удаляем и так далее, пока не удалим все найденные параметры с arduinouninstall
- После этого можно запускать установщик и устанавливать новую программу
Другие проблемы
- Если перестала запускаться Arduino IDE – удаляем файлик preferences.txt из C:Пользователи (или Users)Ваш_пользовательAppDataLocalArduino15
Портативная версия
Вместо полной установки программы можно скачать архив с уже “установленной”, на странице загрузки он называется Windows ZIP file. Вот прямая ссылка на 1.8.19. Распаковав архив, получим портативную версию Arduino IDE, которую можно скинуть на флешку и использовать на любом компьютере без установки программы. Но понадобится установить драйвер CH341 для китайских плат, а также драйверы из папки с программой Arduino IDE (подробнее в следующем уроке). Возможно понадобится установить Java.
Работа на смартфоне
Писать и загружать прошивку через смартфон тоже можно, понадобится смартфон на Android и приложение ArduinoDroid. Также для тренировки и удобного редактирования скетчей можно использовать CppDroid, но загружать в плату она не умеет.
Первое подключение
Осмотр платы
Перед подключением к компьютеру рекомендуется провести визуальный осмотр платы на предмет дефектов пайки компонентов. Что можно встретить (в порядке фотографий):
- Замкнутые пины (вроде бы паяются китайцами вручную)
- Неприпаянная нога компонента
- “Торчащие” вверх или под углом компоненты типа резисторов и конденсаторов, припаянные только с одной стороны
- Компоненты со смещением
- “Сопля” между ногами компонента
Плату с обнаруженным дефектом не рекомендуется подключать к компьютеру! Всё можно исправить паяльником, если не умеете сами – попросите того, кто умеет.
Реакция на подключение питания
Как понять, что плата работает корректно? На примере Nano/Uno:
- При подключении USB загорается и горит светодиод PWR
- Если плата новая и на ней прошит загрузчик (он обязан быть прошит) – однократно мигает светодиод L
- Примечание: светодиоды могут быть любого цвета
- На новой плате прошито “мигание светодиодом”, поэтому светодиод L продолжит мигать один или два раза в секунду в зависимости от версии загрузчика
- При нажатии на кнопку сброса (RESET, единственная кнопка на плате) должен однократно мигнуть светодиод L, сигнализируя о завершении работы загрузчика.
Если ваша плата ведёт себя иначе – скорее всего это заводской брак, если плата новая, или кривые руки – если плата уже паялась и или куда то подключалась =)
Драйвер USB контроллера
CH341
В своих проектах я использую “Ардуино-совместимые” китайские платы, у которой для подключения по USB используется контроллер CH340/CH341. Чтобы он распознавался компьютером, нужно установить драйвер.
Windows
Скачать драйвер можно по ссылке:
- FTP сайта
- Яндекс.Диск
- Сайт driverslab
Запускаем и в появившемся окошке нажимаем INSTALL. Готово!
Если во время установки Arduino IDE вы по какой-то причине пропустили установку драйверов, то их можно установить вручную из папки с программой, расположенной по пути
- C/Program Files/Arduino/drivers (для 32-х разрядной системы)
- C/Program Files (x86)/Arduino/drivers (для 64-х разрядной системы).
Запустить файл
- dpinst-x86.exe (для 32-х разрядной системы)
- dpinst-amd64.exe (для 64-х разрядной системы)
Linux Mint
В Linux уже встроен необходимый драйвер, но Arduino IDE может отказаться с ним работать: Linux определяет ардуинку как устройство ttyUSB*, обычно это ttyUSB0 (это можно узнать командой dmesg в терминале), то есть в системе появляется интерфейс /dev/ttyUSB0. Чтобы с ним работать, нужны права доступа. Читать и писать на устройство /dev/ttyUSB0 имеет пользователь root и пользователи группы dialout. Работы с правами суперпользователя лучше избегать, поэтому следует занести своего пользователя в группу dialout. Это можно сделать следующей командой (обратите внимание, команда whoami в обратных кавычках)
sudo usermod -a -G dialout `whoami`
После этого нужно перелогиниться. Дальше запускаем Arduino IDE и в меню «Инструменты/Порт» ставим галочку напротив /dev/ttyUSB0.
Linux Arch
Вся информация по работе с IDE на данной ОСи есть вот в этой статье
FT232
На оригинальных Arduino Nano стоит USB контроллер производства FTDI – FT232, драйвер для всех версий ОС можно скачать с официального сайта (прямая ссылка на инсталлятор для Windows). Некоторые очень редкие китайцы паяют на свои Наны поддельные FTDI контроллеры, которые буквально выходят из строя после некоторых обновлений Windows. Если вам достался такой экземпляр (я никогда не даю ссылки на такие поделки) – подробности по ситуации читайте здесь. Как восстановить контроллер и сделать рабочий драйвер – читайте здесь.
CP2102
На некоторые Arduino-совместимые платы китайцы ставят контроллер USB CP2102. Драйвер на него в большинстве случаев уже есть в системе (на Linux точно есть), если не работает – скачать можно с официального сайта.
- Прямая ссылка на драйвер для Windows всех версий
- Прямая ссылка на драйвер для Mac OS
На Windows установка производится следующим образом: достаём из архива и
Настройка и прошивка
Подключение платы
Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель
- Неисправен USB порт компьютера
- Неисправен USB порт Arduino
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка
- Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
- На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
- Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания
Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей
- Кабель должен быть data-кабелем, а не “зарядным”
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
- Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.
В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:
- См. предыдущий список неисправностей
- Некорректно установлен драйвер на USB контроллер Arduino
- Переверните плату и найдите “узкую” микросхему. Если на ней написано CH341 – ставим драйвер по инструкции выше
- Если написано FT232R – опять же инструкция выше
- Если ничего не написано – открываем “Диспетчер устройств”, смотрим блок “Другие устройства”. Если при подключении платы к компьютеру там появляется FT232R USB UART – смотрим инструкцию выше
- Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
- Возникла системная ошибка, обратитесь к знакомому компьютерщику или экзорцисту
Выбор и настройка платы (Arduino NANO)
- Выбираем соответствующую плату в ИнструментыПлата Большинство моих проектов сделаны на Arduino Nano. Если вы используете Nano:
- В микроконтроллер китайских плат зашит “старый” загрузчик, поэтому выбираем ИнструментыПроцессорATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Теперь выбираем порт, к которому подключена плата. COM1 – в большинстве случаев системный порт, у вас должен появиться ещё один (обычно COM3)
Загрузка прошивки
“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.
Вставьте следующий код с полной заменой содержимого в IDE и загрузите его. Должен начать мигать светодиод на плате, это означает что все программы настроены верно и можно переходить к работе!
Примечание: данный код является универсальным для всех Arduino-совместимых плат
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, 0); delay(300); digitalWrite(LED_BUILTIN, 1); delay(300); }
ESP8266 (Wemos, NodeMCU)
ESP8266 – микроконтроллер с WiFi на борту, на его базе сделаны платы Wemos D1 mini, NodeMCU и другие.
- Читайте вводный урок по esp8266.
- На популярных платах Wemos и NodeMCU стоит бортовой USB и CH340 или CP2102 (обычно это указано на странице товара).
- Установка драйверов описана выше на этой странице.
Для работы с esp8266 нужно добавить поддержку плат в Arduino IDE:
- Arduino IDE/Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить
- http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Нажать ОК
- Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “esp”. Выбрать и установить ESP8266 boards
- Рекомендуемая версия – 2.7.4, на более высоких пока что наблюдаются проблемы с совместимостью
- В списке плат Инструменты/Плата/ появится семейство плат на esp8266. Выбираем плату
- NodeMCU – NodeMCU 1.0
- Wemos Mini – LOLIN Wemos D1 R2 & mini
- Или другую согласно своей конфигурации
- Выбираем порт, к которому подключена плата
- На четвёртом скриншоте ниже показаны настройки платы по умолчанию, изменены только выделенные красным (плата и порт)
Заметка для NodeMCU. Перед началом загрузки нужно ввести плату в режим прошивки. Подключить к компьютеру, выбрать появившийся порт для загрузки. Зажать кнопку Flash. Кликнуть по кнопке Reset. Отпустить кнопку Flash. И только после этого нажать стрелочку в программе для загрузки прошивки.
ESP32
ESP32 – мощный микроконтроллер с WiFi на борту
- На плате стоит бортовой USB и CH340 или CP2102 (обычно это указано на странице товара).
- Установка драйверов описана выше на этой странице.
Для работы с ESP32 нужно добавить поддержку плат в Arduino IDE:
- Arduino IDE/Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить
- https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Нажать ОК
- Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “esp”. Выбрать и установить esp32
- В списке плат Инструменты/Плата/ появится семейство плат на esp32. Выбираем плату согласно купленной модификации
- Выбираем порт, к которому подключена плата
У некоторых плат не работает автоматический запуск в режиме прошивки, поэтому в самом начале процесса загрузки прошивки нужно зажать кнопку Flash (BOOT) на плате
Digispark
Digispark – плата на базе ATtiny85.
- Читайте вводный урок по Digispark.
- Подключение к ПК по USB (реализован программно)
- Нужно установить специальный драйвер, скачать можно на официальном GitHub проекта (в разделе Релизы, вот прямая ссылка на архив), либо с моего FTP. Драйвера есть для Win, MacOS и Linux.
- Пользователям Linux читать здесь
Для работы с Digispark нужно добавить поддержку плат в Arduino IDE:
- Arduino IDE/Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить
- http://digistump.com/package_digistump_index.json
- или https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
- Нажать ОК
- Arduino IDE/Инструменты/Плата/Менеджер плат… Начать вводить в поиске “Digispark”. Выбрать и установить Digistump AVR Boards
- В списке плат Arduino IDE/Инструменты/Плата/ появится семейство плат Digispark. Выбираем Digispark (Default – 16.5mhz)
Прошивка загружается следующим образом: ПЛАТУ НЕ ПОДКЛЮЧАЕМ, ПОРТ НЕ ВЫБИРАЕМ, нажимаем загрузка, ждём компиляции. Появится надпись “подключите плату”. Втыкаем плату в USB и прошивка загружается.
LGT8F328
LGT8F328 – китайский клон ATmega328
- Читайте вводный урок по lgt8f328.
- Может понадобиться драйвер (прямая ссылка на архив)
Для работы с LGT8F328 нужно добавить поддержку плат в Arduino IDE:
- Запустить Arduino IDE, перейти в Файл/Настройки/
- В окошко “Дополнительные ссылки…” Вставить
- https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json
- Нажать ОК
- Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “lgt8”. Выбрать и установить LGT8fx Boards
- Теперь в списке плат Инструменты/Плата/ появится семейство плат Logic Green… Выбираем свою плату
“Голые” МК
Для начала рекомендуется изучить вот эти два урока: первый и второй. У проектов на базе голого микроконтроллера есть два варианта:
- Если проект основан на ATmega328 (Arduino Nano/Mini) и на плате есть источник тактирования на 16 МГц (резонатор), то микроконтроллер можно просто перепаять с Arduino и загружать прошивку через внешний USB-TTL переходник, как на Arduino Pro Mini. Либо загрузить прошивку, и потом перепаивать – всё будет работать.
- Если источника тактирования нет – так делать нельзя! Сначала нужно настроить МК на внутреннее тактирование, подключив ISP программатор к плате Arduino и выбрав внутренний источник тактирования в настройках ядра. Подробнее читайте в уроке.
- Если используется новый микроконтроллер (или припаянный китайцами) – он по умолчанию настроен на внутреннее тактирование и его можно паять на плату в любом случае. Загрузить прошивку можно только при помощи ISP программатора. Также можно прошить загрузчик и в дальнейшем загружать прошивку через USB-TTL преобразователь.
Установка библиотек
Библиотека – несколько файлов с кодом, облегчающим работу с датчиками и другими модулями. К моим проектам библиотеки идут в архиве (об этом ниже). Рассмотрим все способы загрузки и установки библиотек.
Менеджер библиотек
Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек:
- Скетч/Подключить библиотеку/Управлять библиотеками…
- Комбинация клавиш Ctrl+Shift+I
Нужную библиотеку можно найти в поиске по названию и нажать Установка, библиотека будет автоматически установлена в папку с библиотеками. Arduino IDE проверяет обновления библиотек при запуске и предложит обновиться, если найдёт обновления.
Скачивание с GitHub
Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми “лишними” служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP
Если у библиотеки есть релизы – справа будет отмечен последний (свежий) релиз. Нажимаем на него:
И в новом окне нажимаем Source code (zip) – начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.
В обоих случаях библиотека скачается как .zip архив.
Автоматическая установка
Скачанный .zip архив можно установить в автоматическом режиме через Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… В открывшемся окне выбрать скачанный архив, библиотека будет установлена по указанному в настройках пути.
Ручная установка
Для начала нужно распаковать архив (стандартный архиватор Windows или WinRAR). Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):
- Документы/Arduino/libraries/
- Папка с программой/libraries/
- C/Program Files/Arduino/libraries/ (Windows 32)
- C/Program Files (x86)/Arduino/libraries/ (Windows 64)
- В портативной версии IDE желательно держать библиотеки в Папка с программой/libraries
Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/. На скриншотах показана установка скачанной с GitHub библиотеки в папку с программой и в документы. Ставить нужно в одно место, я просто показываю оба варианта.
Ошибки компиляции
Возникает на этапе сборки и компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо программная. Слева от кнопки “загрузить” есть кнопка с галочкой – проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.
- В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
- В чёрном окошке в самом низу Arduino IDE можно прочитать полный текст ошибки и понять, куда копать
- В скачанных с интернета готовых скетчах часто возникает ошибка с описанием <название файла>.h no such file or directory. Это означает, что в скетче используется библиотека <название файла>, и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по <название файла>.
- При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
- Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
- Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча.
- Ошибка недостаточно свободного места возникает по вполне понятным причинам. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.
Частые ошибки в коде, приводящие к ошибке компиляции
- …no such file or directory – компилятор не может найти файл, который используется в коде. Чаще всего это библиотека, которую не установили или установили неправильно
- expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
- stray ‘320’ in program – русские символы в коде
- expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
- … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
- redefinition of … – повторное объявление функции или переменной
- storage size of … isn’t known – массив задан без указания размера
Ошибки загрузки
Возникает на этапе, когда прошивка собрана, скомпилирована, в ней нет критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за настроек программы и драйверов.
- Если неправильно выбран COM порт – прошивка не загрузится с ошибкой avrdude: ser_open(): can’t open device. Вернитесь к пункту “Выбор и настройка платы” этого урока и убедитесь в том, что выбор порта активен и при подключении платы появляется новый.
- Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением Ардуины от питания. Потом вставляем USB и по новой прошиваем.
- Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”.
- Если это Arduino Nano – попробуйте оба, Old и не Old.
- Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
- Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
- Если в описании ошибки встречается bootloader is not responding и not in sync, из-за ошибок записи мог “слететь” загрузчик, его можно попробовать прошить заново.
- Если все пункты из этого списка проверены, а загрузчик прошить не удаётся – микроконтроллер скорее всего необратимо повреждён, то есть сгорел.
Предупреждения
Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет несовместимых с жизнью ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:
- # Pragma message……. – сообщения с директивой Pragma обычно выводят библиотеки, сообщая о своей версии или каких-то настройках. Это даже не предупреждение, а просто вывод текста в лог.
- Недостаточно памяти, программа может работать нестабильно – чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти.
- Предупреждения о несовместимых типах данных. Компилятор не смог привести один тип к другому и сообщает о потенциальных ошибках в ходе выполнения программы. В большинстве случаев ничего плохого не случится, но лучше найти проблемную строку и помочь компилятору преобразовать тип.
Частые вопросы
- Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс flash памяти. А он довольно большой.
- Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
- Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов.
- Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию.
- Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
- Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу
- Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь
- Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI
▶Проекты AlexGyver◀
ВНИМАТЕЛЬНО ЧИТАЙ ИНСТРУКЦИЮ
Если это твой первый опыт работы с Arduino — внимательно изучи каждый пункт инструкции выше, здесь всё написано!!!
Все мои проекты имеют одинаковую структуру и устанавливаются/прошиваются одинаково, поэтому вот финальная общая инструкция:
1. Установить Arduino IDE и драйверы, как написано в гайде выше. Если это ваш первый раз – желательно не подключать ничего к новой плате, а загрузить пробную прошивку из гайда и убедиться, что всё загружается и работает. Если после сборки схемы прошивка перестанет загружаться – увы, схема собрана с ошибками и плата уже могла сгореть. Но она работала, мы это проверили =)
- Если проект основан не на стандартной Arduino плате, а например на esp8266, ESP32, Digispark, lgt8f328 – устанавливаем поддержку этих плат, как описано выше.
2. Скачать архив со страницы проекта. Ссылка всегда одна, она ведёт на прямую загрузку архива с хранилища GitHub. Когда проект обновляется (об этом может быть написано на странице проекта), ссылка на архив остаётся той же, но в нём будут уже какие-то изменённые файлы, добавлены новые версии прошивки и т.д. Все обновления указаны на странице проекта.
3. Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив – прошивка откроется неправильно. Я не отличаюсь буйной фантазией и всегда называю папки одинаково, вот что может быть в архиве проекта:
- firmware – прошивки для Arduino
- software – программы для ПК
- libraries – библиотеки
- schemes – схемы
- PCB – gerber файлы печатных плат
- docs – всякие документы
- Android – исходники приложения
- 3Dprint – модели для печати
- processing – программа на Processing
4. Установить библиотеки. К прошивкам моих проектов всегда идут библиотеки, необходимые для работы кода. Библиотеки в проектах часто пересекаются, но рекомендуется ставить именно идущую в комплекте с проектом версию, так как более старые или новые могут быть несовместимы.
Содержимое папки libraries из архива помещаем в
- С/Program Files/Arduino/libraries/ (Windows x32)
- C/Program Files (x86)/Arduino/libraries/ (Windows x64)
Если возникнут проблемы с доступом к этой папке (на Windows 10), то библиотеки можно положить в
- Документы/Arduino/libraries/
Примечание: к разным проектам идут разные версии одних и тех же библиотек, они не всегда совместимы. При возникновении ошибок рекомендуется удалить текущие версии и заменить их теми, которые идут в архиве.
5. Открыть скетч (так называется файл с программой). При запуске файла скетча автоматически откроется Arduino IDE. Важно: если в папке со скетчем есть несколько файлов – запускаем любой с логотипом Arduino. Остальные файлы должны подтянуться автоматически и образовать вкладки в окне программы. Если запускать скетч прямо из архива – вкладки не откроются и скомпилировать/загрузить программу будет невозможно.
6. Выбрать плату и порт. Выбираем в настройках программы соответствующую плату и порт куда она подключена, как в гайде выше. Важные моменты по настройкам самой платы обычно указано в описании конкретного проекта.
- Для проектов на Arduino Nano выбираем Arduino Nano, а также ИнструментыПроцессорATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
- Для проектов на Wemos выбираем (LOLIN)Wemos D1 R2 & mini
- Для проектов на NodeMCU выбираем NodeMCU 1.0
- В некоторых проектах, например GyverLamp2 (второй версии) для прошивки в esp8266 нужно выбрать плату Generic esp8266, читайте особенности загрузки на странице проекта!
- Для проектов на Digispark порт выбирать не надо, читай инструкцию выше
7. Настроить программу. Очень часто в начале кода моих программ можно встретить блок настроек. Настройки обычно имеют вид
#define SOME_SETTING 1 // 1 включено, 0 выключено
где цифра отвечает за значение настройки, менять нужно только цифру согласно комментарию.
8. Загрузить прошивку. Нажимаем стрелочку в левом верхнем углу окна программы и прошивка загружается. Не загружается? Читаем гайд выше, там описаны все возможные причины.
Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если потребитель его потребует – это может привести к выгоранию защитного диода на плате Arduino.
9. Если что-то не работает – читай инструкцию, в ней описан каждый шаг и решение всех проблем. Также в самом начале есть видео, где всё показано ещё более подробно.
Заметка для тех, кто не читал инструкцию и получил какую-то ошибку. Вот список самых частых причин:
- Не распаковал архив и запустил скетч прямо из него, получил ошибку компиляции в стиле not declared in this scope. РАСПАКУЙ АРХИВ
- В логе ошибок встречается фраза no such file or directory – не установил библиотеки. УСТАНОВИ БИБЛИОТЕКИ
- Происходит ошибка загрузки. ВЕРНИСЬ К ИНСТРУКЦИИ ПО НАСТРОЙКЕ IDE
- На плате что-то греется и прошивка не грузится. ДОПУСТИЛ ОШИБКУ ПРИ СБОРКЕ, ВСЁ СГОРЕЛО
- Установил старую или кривую версию Arduino IDE и получил непонятные ошибки – удали старую и УСТАНОВИ СВЕЖУЮ ВЕРСИЮ
- Некоторые проекты будут работать только на тех платах, что показаны в видео и описаны на странице проекта. Под другие платы прошивка компилироваться не будет!
Содержание
- Скачать драйвер CP2102 для NodeMCU (ESP8266)
- Установка драйвера для CP2102 в Windows
- Проверка виртуального COM-порта
- USB to UART драйвер CP210x для NodeMCU (ESP8266)
- Установка ESP32 в Arduino IDE (руководство для ОС Windows)
- Первое включение:
- Настройка Arduino IDE:
- Первая программа:
- ESP32 и Ардуино
- Спецификации
- Цена вопроса
- Поддержка в Arduino IDE
- Добавление поддержки ESP32 в Arduino IDE
- Неочевидные моменты инсталляции ESP32
- Версии Arduino IDE
- Преимущества ESP32
- Скорость работы
- Прочие достоинства
- Примеры работы с кодом
- Энергонезависимая память
- AnalogWrite()
- Прочие примеры кода на ESP32
- Стабильность работы
- Arduino Mega Server для ESP32
- Перспективы
- Заключение
- Establish Serial Connection with ESP32В¶
- Connect ESP32 to PC¶
- Check port on Windows¶
- Check port on Linux and macOS¶
- Adding user to dialout on Linux¶
- Verify serial connection¶
- Windows and Linux¶
- macOS¶
- Example Output¶
- Знакомимся с ESP32, часть 1: установка в Arduino IDE
- Дубликаты не найдены
- Arduino & Pi
- Правила сообщества
- HTTP-сервер ESP8266. Основы HTML разметки, Javascript, CSS
- Esp8266 нужен совет
Скачать драйвер CP2102 для NodeMCU (ESP8266)
Микросхема CP2102 является мостом USB – UART, позволяющим NodeMCU обмениваться данными с компьютером с помощью USB.
Существует несколько версий NodeMCU (ESP8266) и следует удостовериться в том, что ваша версия платы имеет на борту именно чип CP2102.
Для того, чтобы определить какая у вас плата NodeMCU (ESP8266), рассмотрим рисунок, на котором приводится сравнение двух популярных плат (NodeMCU с CP2102 расположена справа). Чипы, отвечающие за связь NodeMCU с компьютером по USB, обведены красным.
Установка драйвера для CP2102 в Windows
1. Подключаем NodeMCU к компьютеру при помощи кабеля USB.
2. Скачиваем архив с драйвером. В конце статьи приводятся ссылки на файлы с драйверами для операционных систем Windows и MacOS.
3. Распаковываем архив.
4. Запускаем файл с инсталлятором CP210xVCPInstaller_x64.exe для 64-битной или CP210xVCPInstaller_x86.exe для 32-битной версии Windows.
Нажмимаем кнопку «Далее» в появившемся окне.
Принимаем лицензионное соглашение.
Дожидаемся появления сообщения об успешной установке. Нажимаем кнопку «Готово».
На этом установка драйвера завершена.
Если драйвер установлен правильно, то в диспетчере устройств в разделе «Порты COM и LPT» можно увидеть виртуальный COM-порт, созданный Windows для CP2102.
Заходим в диспетчер устройств (Панель управления >> Система и безопасность >> Система >> Диспетчер устройств) и проверяем наличие драйвера CP210x USB to UART. В вашем случае номер COM-порта может быть другим.
USB to UART драйвер CP210x для NodeMCU (ESP8266)
Скачать драйвер CP210x для Windows
Скачать драйвер CP210x для Mac OS
Источник
Установка ESP32 в Arduino IDE (руководство для ОС Windows)
Первое включение:
Платы ESP 32 оснащены микроконтроллером ESP32-WROOM-32 с интерфейсом Wi-Fi, подключаются к компьютеру через WiFi или USB порт.
Настройка Arduino IDE:
Писать скетчи под микроконтроллер ESP32 можно в среде разработки «Arduino IDE», но перед загрузкой скетча нужно выбрать тип используемой платы из списка меню «Инструменты» > «Плата», а там по умолчанию нет плат ESP32. Вся настройка сводится к тому, что бы в этом списке меню появились эти платы.
В среде «Arduino IDE» имеется «Менеджер плат» который поможет быстро добавить интересующие платы в список. Для этого нужно выполнить следующие действия:
Откройте «Arduino IDE» и выберите пункт меню: «Файл» > «Настройки»
В открывшемся окне заполните поле «Дополнительные ссылки для Менеджера плат» введя в него строку: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json И нажмите на кнопку «Ok».
Запустите «Менеджер плат» выбрав пункт меню «Инструменты» > «Плата» > «Менеджер плат».
В открывшемся окне «Менеджер плат» выберите пункт «esp32 by Espressif Systems» из списка сборок и нажмите на кнопку «Установка» (при желании можно выбрать версию устанавливаемой сборки).
Дождитесь окончания установки сборки.
После успешной установки сборки, в списке, напротив её названия «esp32 by ESP32 Systems» появится фраза «INSTALLED». Закройте «Менеджер плат» нажав на кнопку «Закрыть».
На этом настройка «Arduino IDE» завершена! Теперь в списке плат есть раздел «ESP32 Arduino».
Первая программа:
Для работы с платами ESP 32 нужно в пункте меню «Инструменты» > «Плата» > «ESP32 Arduino» выбрать соответствующую плату. В нашем случае это будет Piranha ESP32.
Так же нужно выбрать COM-порт после подключения платы к компьютеру через USB порт. На рисунке выбран порт «COM10», но Вам нужно выбрать тот порт, который появился у Вас в списке доступных портов после подключения платы. Если после подключения платы новый порт не появился, значит не установлен драйвер для чипа CH340C ссылки на драйверы указаны в конце данной статьи.
Осталось загрузить скетч и проверить его работу.
или выбрать плату соответствующую Вашей в пункте меню «Инструменты» > «Плата» > «ESP32 Arduino»
Нажмите левой кнопкой мыши на кнопку загрузки скетча в плату (или на клавиатуре + ). Начнётся компиляция и загрузка двоичного кода в микроконтроллер платы.
В зависимости от конфигурации системы и используемой платы, возможно понадобится перевести плату в режим программирования. Для этого зажмите на плате одновременно RESET и BOOT, а затем отпустите RESET не отпуская BOOT. Через несколько секунд можно отпустить BOOT, начнётся загрузка кода в микроконтроллер платы.
Источник
ESP32 и Ардуино
Случилось то, чего все так долго ждали и о чём так много говорили — новые модули ESP32 стали широко продаваться и пошли в народ. Сегодня мы поговорим об этих модулях с точки зрения непрофессионального пользователя, привыкшего работать с Ардуино и создавать небольшие проекты для домашней автоматизации или просто для удовольствия и самообучения.
Работает ли это вообще? Что там с поддержкой этих модулей в Arduino IDE? Стоит ли платить больше или лучше ограничиться ставшим уже привычным ESP8266? Мы постараемся вместе ответить на все эти вопросы, а в конце статьи я дам ссылку на реальное воплощение работы ESP32 с Ардуино — дистрибутив бесплатной версии Arduino Mega Server для платформы ESP32.
Спецификации
Я не буду здесь подробно останавливаться на спецификациях ESP32, вы без труда найдёте их в Интернет: каждый обзорщик считает своим долгом привести простыню спецификаций в начале обзора ESP32. Скажу только, что они впечатляют и если подходить к делу серьёзно и вдумчиво, то можно потратить не один год на изучение всех возможностей модуля и эксперименты с ним.
Оставим это профессионалам (или тем, кто считает себя таковым) и сосредоточимся на практической стороне вопроса, понятной и доступной простому смертному.
Цена вопроса
Начнём с цены. На данный момент модуль ESP32 в китайских интернет-магазинах стоит 350 рублей и 500 в варианте платы с обвязкой и USB интерфейсом. Это против 100 и 160 рублей для модуля ESP8266, соответственно. Как видим, разница в три с лишним раза, хотя абсолютные значения невелики, каждый, при желании, может позволить себе потратить 350 — 500 рублей на микроконтроллер. Для сравнения, Arduino Mega 2560 в том же Китае стоит 600 рублей, а в России около 1000 (плюс ещё стоимость Ethernet Shield).
Осталось только выяснить, стоит ли платить в три раза больше, чем за ESP8266 и что мы за это получим. (Забегая вперёд скажу, что на мой взгляд, безусловно стоит.)
Поддержка в Arduino IDE
Для того, чтобы что-то сделать с модулем, нужно сначала иметь его поддержку в Arduino IDE. На данный момент поддержка ESP32 в Arduino IDE находится хоть и на начальном, но вполне приличном и работоспособном уровне. Те, кто боится встретить тут непреодолимые трудности, может не беспокоиться — основные функции работают нормально и вы, скорее всего, не заметите никакой разницы по сравнению с работой на других контроллерах.
Несколько хуже дела обстоят с драйверами устройств, но это, безусловно, временное явление. Модуль настолько популярен, что поддержка любой периферии неизбежно появится в ближайшее время.
Добавление поддержки ESP32 в Arduino IDE
Теперь немного практической информации об инсталляции поддержки ESP32 в Arduino IDE. Интернет полон инструкциями на эту тему, вы их также можете в изобилии найти в нём. Замечу только, что все инструкции делятся на «старые», там, где упоминается Python и «новые», где упоминается GIT. Вам, естественно, нужно руководствоваться новыми.
Из множества инструкций лучшей можно назвать (как это ни странно) официальную инструкцию от производителя модуля.
Которой я и рекомендую пользоваться. Единственное замечание: GIT использовать необязательно, можно просто скачать дистрибутив и распаковать его в нужную директорию.
Примечание. Все нижеизложенное касается инсталляции под Windows 7 64-bit, поскольку все эксперименты я производил именно на ней, в других операционных системах пути могут отличаться от указанных.
Файлы дистрибутива должны находиться в папке
где C: — это имя вашего диска с Windows, а User — это имя пользователя в операционной системе (и то и другое у вас может отличаться от указанных).
Неочевидные моменты инсталляции ESP32
Многие пользователи жалуются, что у них ничего не работает и не появляется поддержка ESP32 в Arduino IDE. Тут дело вот в чём: поскольку драйвера ESP32 только разрабатываются, то несколько изменён порядок расположения системных директорий. В качестве папки для расположения скетчей в настройках Arduino IDE должна быть указана папка
(с теми же поправками на диск и имя пользователя), а файлы дистрибутива должны располагаться внутри этой папки так, как рекомендует производитель. Если не будет учтён этот момент, то поддержка ESP32 в Arduino IDE не появится и ничего работать не будет.
Версии Arduino IDE
Часто приходится слышать, что поддержка ESP32 есть только в последних версиях Arduino IDE, это не так — ESP32 прекрасно работает в более ранних версиях, например, дистрибутив Arduino Mega Server для ESP32 разрабатывался в версии 1.6.5 r2.
Преимущества ESP32
Теперь поговорим о преимуществах ESP32 перед его предшественником, ESP8266. На таких очевидных вещах как мощность процессора и объём оперативной памяти я останавливаться не буду, скажу только, что нужно сильно постараться, чтобы загрузить ESP32 полностью на задачах DIY и домашней автоматизации.
Ахиллесовой пятой его предшественника, модуля ESP8266, было (и есть) экстремально малое количество выводов. После работы с такими контроллерами как Arduino Mega и Arduino Due с их десятками цифровых и аналоговых пинов, работа с ESP8266 вызывает недоумение: счёт GPIO идёт буквально на единицы и это сильно ограничивает применение этого модуля в реальных проектах.
ESP32 если не полностью, то в значительной степени лишён этого недостатка. Количество доступных выводов значительно увеличено, появилось также множество аналоговых входов. Полностью свободными и доступными для использования можно назвать 13 выводов
В случае необходимости к ним можно добавить ограниченно функциональные и работающие только на вход
Если пожертвовать некоторыми возможностями и не использовать в конкретных проектах Serial, SPI или I2C, то к этому числу можно добавить ещё 8 пинов
Ну и возможно удастся использовать ещё 6 выводов, которые предназначены для работы с внутренней флеш-памятью (например, если подключить внешнюю SD карту)
Как видим, с ESP8266 нет никакого сравнения — новый модуль выглядит просто отлично по количеству возможных подключений и это очень ценно в реальных проектах, в которых дорог каждый пин.
Скорость работы
Я уже упоминал мощный процессор, теперь несколько слов нужно сказать о скорости сетевой работы. Я затрудняюсь сказать с чем это связано, возможно с мощным процессором, возможно с оптимизацией сетевого стека, но модуль ESP32 под управлением Arduino Mega Server показал рекордную сетевую производительность.
Загрузка страницы с объёмным кодом CSS и JavaScript и обилием графики занимает всего одну с небольшим секунды — быстрее, чем на любом другом протестированном контроллере, включая проводные контроллеры с W5100 и W5500 Ethernet интерфейсом.
Применительно к Arduino Mega Server это снимает все ограничения на использование графики и любых JavaScript библиотек как по размеру, так и их количеству.
Прочие достоинства
ESP32 это чрезвычайно высокотехнологичное устройство, одно только сухое перечисление доступных возможностей может занять не одну страницу, а перечисление достоинств и возможностей с комментариями займёт целый том. Поэтому я на этом ограничусь, чтобы не загромождать статью и приведу несколько примеров работы с кодом на ESP32 в среде Ардуино.
Примеры работы с кодом
Энергонезависимая память
Это то, что применительно к Arduino Mega мы привыкли называть EEPROM. В ESP32 этой памяти нет как таковой, но у этого модуля есть её аналог и соответствующая библиотека для работы с ней. Называется эта память «NVS» (Non-volatile storage).
Но для нас нет никакой разницы — можно точно так же сохранять значения и читать их после выключения и последующего включения контроллера.
Пример использования. Подключаем библиотеку:
Создаём объект prefs
Инициализируем хранилище с идентификатором, например, «nvs»:
false относится в выбору режима чтение/запись, в данном случае и чтение и запись. Сохраняем байт под именем «addr»:
Читаем сохранённый байт:
Подобным же образом можно сохранять и читать значения любых других типов данных. Теперь удаляем хранилище.
Если разобраться, то это даже проще, чем работа со стандартной энергонезависимой памятью EEPROM на контроллерах Ардуино.
AnalogWrite()
Ещё одно нововведение, которое может поставить в тупик начинающего пользователя — в ESP32 отсутствует привычная функция AnalogWrite(). В первый момент это очень непривычно, но на самом деле эта функция всего лишь заменена своим более функциональным аналогом.
Рассмотрим пример. Начнём с подключения соответствущей библиотеки, хотя библиотекой в полном смысле слова это назвать нельзя, скорее это специализированный файл с описанием нужных функций. Дело в том, что не все функции присутствуют напрямую в Arduino IDE, часть функций доступна в файлах, находящихся в каталоге
В данном случае нас интересует файл работы с ШИМ и светодиодами, который мы подключаем следующей инструкцией:
Далее нам нужно установить номер канала (0), частоту ШИМ (например, 50 Гц) и разрешение (8 бит).
Номера каналов могут устанавливаться в диапазоне от 0 до 15, а разрешение от 1 до 16 бит. При выборе разрешения 8 бит, диапазон данных, управляющих ШИМ, будет находиться в интервале от 0 до 255.
Далее нам нужно привязать наш канал (0) к какому-либо выводу GPIO, в данном случае к выводу 22:
И нужно не забыть обычным образом настроить 22-й пин на выход.
Всё, теперь мы можем управлять, например, яркостью свечения светодиода, просто указывая номер канала и значение ШИМ (яркости) из диапазона от 0 до 255.
Прочие примеры кода на ESP32
Дистрибутив Arduino Mega Server, ссылку на который я дам в конце статьи, кроме полностью работоспособной системы являет собой обширный сборник структурированного кода, протестированный и проверенный на работоспособность на модуле ESP32. Вы можете его использовать как обучающее пособие для вхождения в тему программирования под ESP32.
Стабильность работы
Arduino Mega Server для ESP8266 имеет подтверждённые аптаймы в несколько месяцев и демонстрирует абсолютно стабильную работу и у меня нет никаких причин думать, что у модуля ESP32 могут быть какие-то проблемы со стабильностью. По крайней мере за всё время создания дистрибутива AMS для ESP32 я не наблюдал ни единого сбоя или несанкционированной перезагрузки модуля. Всё работает очень чётко и предсказуемо.
Arduino Mega Server для ESP32
Это ещё один представитель экосистемы AMS, включающей в себя контроллеры и платы Arduino Mega, Due, 101, M0, AMS Home, ESP8266, Sonoff, ESP32, OLIMEX ESP32-EVB и т. д. Благодаря мощному процессору и быстрой сетевой работе модуля ESP32, интерфейс Arduino Mega Server содержит обилие графики и скриптов и это никак не сказывается на скорости его работы — страницы загружается почти мгновенно.
Всё работает стабильно и предсказуемо, никаких сбоев или неадекватного поведения системы или модуля не выявлено. Ниже приведён лог загрузки AMS, из которого можно узнать некоторые подробности о системе.
Температура модуля, измеряемая встроенным датчиком температуры колеблется от 50 градусов Цельсия при старте до 55 градусов в процессе работы. Во время работы ток потребления модуля составляет около 130 мА.
Перспективы
Заключение
Вот, собственно и всё, что я могу сказать о новом модуле ESP32 и его работе с Ардуино. Впечатления он оставляет исключительно положительные, мне по крайней мере, было очень приятно и интересно с ним работать. Немного портит картину отсутствие библиотек для поддержки датчиков и периферии, но это временное явление и вскоре с этим всё будет в порядке.
Источник
Establish Serial Connection with ESP32В¶
This section provides guidance how to establish serial connection between ESP32 and PC.
Connect ESP32 to PC¶
Connect the ESP32 board to the PC using the USB cable. If device driver does not install automatically, identify USB to serial converter chip on your ESP32 board (or external converter dongle), search for drivers in internet and install them.
Below is the list of USB to serial converter chips installed on most of the ESP32 boards produced by Espressif together with links to the drivers:
Please check the board user guide for specific USB to serial converter chip used. The drivers above are primarily for reference. Under normal circumstances, the drivers should be bundled with an operating system and automatically installed upon connecting the board to the PC.
Check port on Windows¶
Check the list of identified COM ports in the Windows Device Manager. Disconnect ESP32 and connect it back, to verify which port disappears from the list and then shows back again.
Figures below show serial port for ESP32 DevKitC and ESP32 WROVER KIT
USB to UART bridge of ESP32-DevKitC in Windows Device Manager В¶
Two USB Serial Ports of ESP-WROVER-KIT in Windows Device Manager В¶
Check port on Linux and macOS¶
To check the device name for the serial port of your ESP32 board (or external converter dongle), run this command two times, first with the board / dongle unplugged, then with plugged in. The port which appears the second time is the one you need:
Adding user to dialout on Linux¶
The currently logged user should have read and write access the serial port over USB. On most Linux distributions, this is done by adding the user to dialout group with the following command:
on Arch Linux this is done by adding the user to uucp group with the following command:
Make sure you re-login to enable read and write permissions for the serial port.
Verify serial connection¶
Now verify that the serial connection is operational. You can do this using a serial terminal program by checking if you get any output on the terminal after reseting ESP32.
Windows and Linux¶
In this example we will use PuTTY SSH Client that is available for both Windows and Linux. You can use other serial program and set communication parameters like below.
Run terminal, set identified serial port, baud rate = 115200, data bits = 8, stop bits = 1, and parity = N. Below are example screen shots of setting the port and such transmission parameters (in short described as 115200-8-1-N) on Windows and Linux. Remember to select exactly the same serial port you have identified in steps above.
Setting Serial Communication in PuTTY on Windows В¶
Setting Serial Communication in PuTTY on Linux В¶
Then open serial port in terminal and check, if you see any log printed out by ESP32. The log contents will depend on application loaded to ESP32, see Example Output.
Close the serial terminal after verification that communication is working. If you keep the terminal session open, the serial port will be inaccessible for uploading firmware later.
macOS¶
To spare you the trouble of installing a serial terminal program, macOS offers the screen command.
You should see similar output:
The output will vary depending on the type and the number of boards connected to your PC. Then pick the device name of your board and run:
Do not forget to exit the screen session after verifying that the communication is working. If you fail to do it and just close the terminal window, the serial port will be inaccessible for uploading firmware later.
Example Output¶
An example log by ESP32 is shown below. Reset the board if you do not see anything.
If you can see readable log output, it means serial connection is working and you are ready to proceed with installation and finally upload of application to ESP32.
For some serial port wiring configurations, the serial RTS & DTR pins need to be disabled in the terminal program before the ESP32 will boot and produce serial output. This depends on the hardware itself, most development boards (including all Espressif boards) do not have this issue. The issue is present if RTS & DTR are wired directly to the EN & GPIO0 pins. See the esptool documentation for more details.
Источник
Знакомимся с ESP32, часть 1: установка в Arduino IDE
Всем привет! С этого поста я начинаю серию «Знакомимся с ESP32». В этой части я опишу сам микроконтроллер, а так же процесс установки в Arduino IDE. Поехали!
-Двухъядерный 32-х битный процессор, работающий на частоте 80, 160 или 240 МГц (ну плюс ещё одно энергосберегающее ядро с урезанным набором команд и на частоте 32 КГц)
-448 КБ flash-памяти (на самом деле доступно больше, рассмотрим далее)
-Дополнительно внешняя flash-память на 4-16 МБ (о чём я говорил ранее)
-Wi-Fi 802.11n с максимальной скоростью 150 Мбит в секунду
-BT 4.2 BR/EDR и Low Energy
-Встроенный датчик температуры
-Инфракрасный контроллер, причём, как на приём, так и на передачу
-PWM на всех портах вроде
-Встроенный датчик Холла
-Куча периферии для криптографии (шифровальщики, хешеры, ГСЧ)
А так же энергопотребление:
-При передаче Wi-Fi 160-260 мА
-Без Wi-Fi и BT 20 мА
-Режим «мягкого» сна 0.8 мА
-Режим «глубокого» сна 10 мкА
-Гибернизация со включенным ядром низкого энергопотребления 5 мкА
АХТУНГ! Вы часто будете встречать слово RTC при использовании ESP32. Однако, это не Real Time Clock, а ядро низкого энергопотребления.
Я заказал отладочную плату на Али, которая обошлась мне в 335 рублей, это без доставки.
1. Скачиваем Arduino IDE
2. Устанавливаем Git с сайта
3. Запускаем Git GUI
3.1. Выбираем Clone Existing Repository
3.2. В Source Location пишем
3.3. В Target Directory пишем
4. Открываем директорию
и запускаем файл get.exe
5. Подключаем нашу плату
5.1. Если драйвера сами не установились, то устанавливаем драйвера для CP210x (у меня был CP2102) отсюда
6. Запускаем Arduino IDE
7. Выбираем плату в Tools > Board (Инструменты > Плата) (У меня DOIT ESP32 DEVKIT V1)
8. Выбираем COM-порт, в который установилась плата
8.1. Как определить порт?
8.1.1. Открываем диспетчер устройств
8.1.2. Раскрываем группу «Порты (COM и LPT)»
8.1.3. Смотрим название устройств. Среди них должно быть что-то подобное
9. Выбираем любой пример (например, вот)
10. Загружаем, нажав Ctrl+U
10.1. В некоторых инструкциях говорят, что во время загрузки нужно нажать кнопку BOOT на плате. Однако, у меня всё завелось и без неё.
Поздравляю, теперь вы загрузили свою первую программу на ESP32! Ждите следующих частей, в которых я расскажу некоторые тонкости и трудности, с которыми я столкнулся.
Дубликаты не найдены
Arduino & Pi
1K поста 18K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Рассуждать на темы политики
> «-Двухъядерный 32-х битный процессор, работающий на частоте 80, 160 или 240 МГц (ну плюс ещё одно энергосберегающее ядро с урезанным набором команд и на частоте 32 КГц)»
Это разные версии платы или программно регулируется?
подписался. Плату купил, хочу поковыряться с ней.
Просадки питания можно победить, попробуй поставить электролит 100 мкФ на вход. Важно чтобы он был на проходе БП->стаб.
Набрасывался на этот вопрос пару раз, но так и не понял, есть ли в ЕПС32 RTC, тот что Real Time Clock с батарейным бэкапом.
Про ядро понятно, а про часы нет.
Очень жаль. DS3231 нам в помощь.
Чукча не писатель, тут уж извините. Текст ориентирован на тех, кто знаком с Arduino, но совсем не знаком с ESP32
Пытался и boot зажимать при прошивке и при старте. Уже совсем голову сломал.. может плата бракованная?
Привет! В сети есть инструкции, как прошить Pro mini через Nano. Удобно, когда нет программатора. Пользовался несколько раз.
Сейчас в наличии esp32 и надо прошить pro mini. Опыта с 32 почти нет. Подскажите, можно ли и как прошить про мини через исп32?
У ESP32 точно такие же цифровые входы-выходы, дайте мне пару часов, я вам отвечу, в принципе просто должно быть.
Здравствуйте! подскажите пожалуйста что я делаю не так
заливаю скетч в ESP8266 в котором указаны данные моего модема/роутера, то есть имя сети и пароль, но после заливки плата работает (со смартфона) только в на расстоянии сигнала от роутера, то есть если уехать в другой город то связи не будет, а моя идея такая: написать скетч, под ЕСП8266 и со смартфона включать приборы
Каким вы способом собираетесь прошивать Pro Mini? Как SPI-программатор или как UART-конвертер?
Вы знаете, задачу сняли. Так что даже и не знаю, стоит ли Вас беспокоить. Завтра у меня будет возможность захватить нано, а там я уже умею.
Надо с чего-то начинать с этой esp32. Пока только осилил заливку собранной прошивки с wifi-iot.com для WiFi радио.
Кто мешает вам извратиться и хранить переменные на SD-карте?)
Здравый смысл? Да можно конечно организовать своп, но зачем?
а как двухядерный процессор работает там? в ардуино вроде нет многопоточности
Одно ядро занимается задачами BT/Wi-Fi, на втором крутится прошивка. Если бы двухъядерности не было, то программа бы зависала на время работы Wi-Fi/BT
Собственно, как это есть в 8266. BT и I2S ковыряли?
Пока нет. Ждите следующие части 🙂
Лежит такая, поставил туда espruino, там и npm-модули и программировать не на огрызке от C, а на JavaScript полноценном, удобно.
uCLinux наверное можно, не помню есть ли MMU. Но зачем? Если сдк из коробки дает FreeRTOS.
Так. Спасибо за идею.
не знаешь случайно есть ли у этого микроконтроллера аналоги от ST Microelectronics или On Semiconductor.
Конечно! Два 32-битных ядра, встроенные Wi-Fi и Bluetooth, куча других прибамбасов, другая архитектура процессора. Простите, вы видимо невнимательно пост читали
А зачем она нужна? для майнинга что-ли?
HTTP-сервер ESP8266. Основы HTML разметки, Javascript, CSS
Сегодня поговорим о том, как сделать HTTP-сервер ESP8266. Рассмотрим основы HTML разметки и Javascript, CSS.
Исходные материалы данного урока тут.
На основе полученных данных можно сделать более интересные вещи.
— Веб-сервер ESP32 (ESP8266) в среде Arduino IDE
Исходные материалы данного урока тут.
— Подключаем DHT11, DHT22 к ESP32, ESP8266. Выводим показание на веб-странице.
Исходные материалы данного урока тут.
— ESP32 и ESP8266 выводим статус на веб страницу и на OLED дисплей
Исходные материалы данного урока тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Esp8266 нужен совет
Прошу совета у ардуинщиков и еспешников.
Второй год занимаюсь с соседскими детьми Ардуинками частным образом. Дети от 6 до 9 класса. Ребята уже соображают лучше меня.
В основном собирают метеоприборы, но есть и другое. Работаем с уно, нано, мега. В прошлом году закупил esp32 и esp8266. Несколько esp32 использовали для светодиодных матриц 2812b. Другие для сбора данных с датчиков bme280, 1750, uv и других. Через телефон или на дисплей. Короче все работало по sda и scl.
Этим летом разобрали большинство собранных устройств, начали собирать другие. И вот тут столкнулись с проблемой.
Релюшки управляемые нулем и единицей отказываются переключаться от esp8266 и d1 mini. От есп32, меги, уно, нано работают.
Даже самый примитивный код типа:
void setup() <
pinMode(13, OUTPUT);
>
void loop() <
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
>
не работает. На еsp8266 нумерация gpio не совпадает с d или пином. Проверяли разные номера. Подключали к разным пинам. Например, ставили пин 4, цепляли рабочий светодиод ко всем выводам, кроме питания и земли поочередно. Ставили принтлайн, в мониторе порта показывается переключение.
Несколько детей и я ищем решение по тематическим форумам. Везде указывают на несоответствие gpio нумерации и нумерации пинов. Например gpio2 это пин 4.
Контроллеры и датчики через i2c работают отлично. А вот на пинах пусто.
Проблема еще в том, что сейчас нано, уно подорожали сильно. Закупил для ребят с Али больше 10 esp8266 версии 340 (у меня 2101).
Ребята получат контроллеры, которыми не смогут выдавать сигналы на пины.
Куда копать, как заставить esp8266 менять состояние пинов? Вернеее не так. Как определить какой именно номер d будет переключаться по команде на пин 2?
Плату в АрдуиноИДЕ версии 1.8.5 я выбираю правильно. Порт и скорост так же.
Источник
Post Reply
- Print view
Advanced search
2 posts
• Page 1 of 1
-
Herman Overgaauw
- Posts: 1
- Joined: Sun Apr 01, 2018 3:03 pm
CP210x_Universal_Windows_Driver
- Quote
Postby Herman Overgaauw » Mon Apr 09, 2018 12:07 pm
I bought a esp32-pico-kit-dev-board-v4
I installed esp32_win32_msys2_environment_and_toolchain-20180110
and I installed with CP210xVCPInstaller_x86.exe the USBtoCOM driver.
I was able to compile the Hello_world sample.
But when I connect the esp32-pico-kit-dev-board-v4 the USB driver is not recognized by Windows 10 Home.
only for the Ardduino toolkit exists a COM4
How can I solve this problem?
Top
-
Reiner1210
- Posts: 39
- Joined: Tue Mar 20, 2018 6:28 pm
Re: CP210x_Universal_Windows_Driver
- Quote
Postby Reiner1210 » Mon Apr 09, 2018 9:50 pm
Install the driver
https://www.silabs.com/products/develop … cp-drivers
and look in the device manager which COM port it uses
Top
Display posts from previous:
Sort by
Post Reply
- Print view
2 posts
• Page 1 of 1
Return to “ESP-IDF”
Jump to
- English Forum
- Explore
- News
- General Discussion
- 全国大学生物联网设计竞赛乐鑫答疑专区
- FAQ
- Documentation
- Documentation
- Sample Code
- Discussion Forum
- Hardware
- ESP-IDF
- ESP-BOX
- ESP-ADF
- ESP-MDF
- ESP-WHO
- ESP-SkaiNet
- ESP32 Arduino
- IDEs for ESP-IDF
- ESP-AT
- ESP IoT Solution
- ESP RainMaker
- Rust
- Report Bugs
- Showcase
- Chinese Forum 中文社区
- 活动区
- 乐鑫活动专区
- 讨论区
- ESP-IDF 中文讨论版
- 《ESP32-C3 物联网工程开发实战》书籍讨论版
- ESP-AT 中文讨论版
- ESP-BOX 中文讨论版
- ESP IoT Solution 中文讨论版
- ESP-ADF 中文讨论版
- ESP-MDF 中文讨论版
- ESP Cloud 中文讨论版
- ESP-WHO 中文讨论版
- ESP-SkaiNet 中文讨论版
- ESP 生产支持讨论版
- 硬件问题讨论
- 项目展示
Who is online
Users browsing this forum: Bing [Bot], ESP_Sprite, georgatos7 and 43 guests
Для среды Arduino IDE существует дополнение, которое позволяет программировать модуль ESP32. В этом руководстве мы покажем, как установить плату с ESP32 в Arduino IDE, работающую на ОС Windows.
Установка дополнения для ESP32 в Arduino IDE
Важно: перед началом установки убедитесь, что ваша среда Arduino IDE обновлена до актуальной версии. Если нет, то рекомендуется удалить и установить актуальную версию. Если у вас установлена старая версия среды Arduino IDE, то у вас может не получится настроить.
После установки последней версии Arduino IDE из источника, вы можете продолжить изучение руководства.
ВАЖНОЕ ПРИМЕЧАНИЕ:
- Если вы впервые устанавливаете поддержку ESP32 микроконтроллера в среде разработки Arduino IDE, то просто выполните нижеприведённые инструкции.
- Если вы уже установили дополнение ESP32 используя старый способ, то вам необходимо сначала удалить папку «espressif». Ниже вы сможете найти инструкцию как это сделать.
Установка ESP32 в Менеджере плат
Чтобы установить ESP32 в среду Arduino IDE, выполните следующее.
1) Откройте окно настроек в среде Arduino IDE. Выберите пункт меню «Файл > Настройки» («File > Preferences»).
2) В поле «Дополнительные ссылки для Менеджера плат» (Additional Boards Manager URLs) скопируйте адрес
https://dl.espressif.com/dl/package_esp32_index.json |
Затем нажмите кнопку «OK».
Примечание: если у вас уже есть ссылка для плат с чипом ESP8266, то вы можете разделить ссылки запятой следующим образом:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
3) Откройте менеджер плат. Нажмите «Инструменты > Плата > Менеджер плат» («Tools > Boards > Boards Manager»).
4) Введите в поиске «ESP32» и нажмите кнопку «Установка» (Install) для «ESP32 by Espressif Systems».
5) Готово. Дополнение должно установиться за несколько секунд.
Удаление папки «espressif»
Если вы впервые устанавливаете поддержку микроконтроллера ESP32 в среду Arduino IDE, то вы можете проигнорировать этот раздел.
Если уже вы выполнили старые инструкции и вручную установили дополнение ESP32 посредством системы управления версиями Git с графическим интерфейсом, то вам необходимо удалить папку «espressif» из среды Arduino IDE.
Чтобы найти папку «espressif» и папку, где установлена Arduino IDE (путь установки), запустите среду разработки и выберите пункт меню «Файл > Настройки» («File > Preferences»).
Скопируйте адрес из поля «Размещение папки скетчей» («Sketchbook location»).
Пройдите в папку, где установлена среда Arduino IDE: «C:UsersruisantosDocumentsArduino» и откройте папку «hardware».
Затем удалите папку «espressif».
Проверка установки
Подключите плату ESP32 к компьютеру. Затем выполните следующее:
1) Запустите среду Arduino IDE.
2) Пройдите в меню «Инструменты > Плата» («Tools > Board») и выберите свою плату (в нашем случае это DOIT ESP32 DEVKIT V1)
3) Выберите порт в меню «Порт» («Port») (если вы не видите COM-порт в среде Arduino IDE, то вам необходимо установить драйвер для адаптера CP210x USB to UART Bridge VCP).
4) Откройте следующий пример «Файл > Примеры > WiFi (ESP32) > WiFi Scan» («File > Examples > WiFi (ESP32) > WiFi Scan»).
5) Откроется новый готовый пример.
6) Нажмите кнопку «Загрузка» («Upload») в среде Arduino IDE. Подождите несколько секунд, пока код компилируется и загружается в плату.
7) Если всё прошло, как ожидается, то вы должны увидеть сообщение «Done uploading» (Загрузка завершена).
Откройте окно последовательного COM-порта (Serial Monitor) среды Arduino IDE и настройте скорость передачи на 115 200 бод.
9) Нажмите кнопку «Enable» на плате с микроконтроллером ESP32, после этого вы должны увидеть сети, доступные для ESP32.
Заключение
В этом руководстве показаны только основы подготовки среды разработки Arduino IDE на ПК с ОС Windows для работы с микроконтроллером ESP32.
Самые популярные материалы в блоге
За все время
За сегодня
Вольтик — это слаженная команда амбициозных и заядлых инженеров. Мы создали этот проект с целью вовлечения вас, талантливых и начинающих профессионалов, в увлекательный мир мейкерской микроэлектроники!