Загружаем софт для ESP8266 в Arduino IDE, выбираем в менеджере плат подходящий модуль, подключаем модуль ESP8266-01 к компьютеру через USB порт и можем программировать на C++.
Как подключить модуль ESP8266-01 к компьютеру можно посмотреть в статье ESP8266-01 подключение USB-UART, а сейчас мы рассмотрим порядок настройки среды программирования Arduino IDE с нашим модулем.
В Arduino IDE в меню файл открываем окно "Настройки". В поле "Дополнительные ссылки для Менеджера плат" вбиваем ссылку
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Нажимаем ОК. В меню "Инструменты" в разделе "Плата" открываем окно менеджер плат. В поле фильтра вводим "ESP8266" и устанавливаем софт для плат с микроконтроллером ESP8266.
В меню В меню "Инструменты" в разделе "Плата" выбираем плату "Generic ESP8266 Module". Там же делаем настройки в соответствии с конфигурацией вашей платы и планируемым распределением Flash памяти.
В меню "Файл" в разделе "Примеры" появились примеры для плат с микроконтроллером ESP8266. Откроем пример ESP8266/Blink.
Мы здесь приводим этот пример с небольшими изменениями (светодиод мигает 1 раз в секунду):
/*
Мигает синий светодиод на модуле ESP-01.
Синий светодиод на модуле ESP-01 подключен к GPIO1 и + VCC
который также является выводом TXD;
*/
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Инициализация порта со светодиодом
}
void loop() {
digitalWrite(LED_BUILTIN, LOW);
delay(50);
digitalWrite(LED_BUILTIN, HIGH);
delay(950);
}
Загружаем эту программу в микроконтроллер. Порядок загрузки следующий:
- В Arduino IDE нажимаем кнопку загрузка.
- Программа компилируется.
- На экране появляется Connecting........_____....._____....._____..
- Зажимаем кнопки RESET и Prog, смотрите схему на странице ESP8266-01 подключение USB-UART
- Отпускаем сначала кнопку RESET, а затем Prog.
- Программа загружается в микроконтроллер.
- Появляется сообщение Hard resetting via RTS pin...
- Нажимаем кнопку RESET.
- Программа выполняется.
Ниже приводим сообщения программы Arduino после компиляции скетча и в процессе загрузки в микроконтроллер:
Executable segment sizes:
IROM : 228624 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 26752 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1248 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 688 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 24880 ) - zeroed variables (global, static) in RAM/HEAP
/home/dior/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-size -A /tmp/arduino_build_6521/Blink.ino.elf
Скетч использует 257312 байт (26%) памяти устройства. Всего доступно 958448 байт.
Глобальные переменные используют 26816 байт (32%) динамической памяти, оставляя 55104 байт для локальных переменных. Максимум: 81920 байт.
/home/dior/.arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 /home/dior/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/upload.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash 0x0 /tmp/arduino_build_6521/Blink.ino.bin
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____..
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 84:f3:eb:68:8e:9a
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 261472 bytes to 193133...
Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 261472 bytes (193133 compressed) at 0x00000000 in 22.4 seconds (effective 93.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
<<< ESP8266-01 AT интерпретатор Ω Esptool >>>