Загружаем софт для 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);
}

Загружаем эту программу в микроконтроллер. Порядок загрузки следующий:

  1. В Arduino IDE нажимаем кнопку загрузка.
  2. Программа компилируется.
  3. На экране появляется Connecting........_____....._____....._____..
  4. Зажимаем кнопки RESET и Prog, смотрите схему на странице ESP8266-01 подключение USB-UART
  5. Отпускаем сначала кнопку RESET, а затем Prog.
  6. Программа загружается в микроконтроллер.
  7. Появляется сообщение Hard resetting via RTS pin...
  8. Нажимаем кнопку RESET.
  9. Программа выполняется.

Ниже приводим сообщения программы 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 >>>