Как правильно подключить ESP8266 к Arduino. Какие шаги нужно выполнить для настройки WiFi-модуля. Как загрузить прошивку в ESP8266 с помощью Arduino IDE. Какие распространенные ошибки могут возникнуть при программировании ESP8266.
Подготовка к работе с ESP8266 и Arduino
ESP8266 — это популярный WiFi-модуль, который часто используется совместно с платформой Arduino для создания «умных» устройств с возможностью подключения к интернету. Прежде чем приступить к работе с ESP8266 и Arduino, необходимо выполнить несколько подготовительных шагов:
- Установить последнюю версию Arduino IDE
- Добавить поддержку ESP8266 в Arduino IDE
- Подготовить необходимые компоненты и инструменты
Установка Arduino IDE не вызывает сложностей — достаточно скачать программу с официального сайта и запустить установщик. А вот добавление поддержки ESP8266 требует выполнения дополнительных действий.
Добавление поддержки ESP8266 в Arduino IDE
Чтобы иметь возможность программировать ESP8266 с помощью Arduino IDE, необходимо добавить поддержку этого модуля. Для этого выполните следующие шаги:
- Запустите Arduino IDE
- Откройте меню «Файл» > «Настройки»
- В поле «Дополнительные ссылки для Менеджера плат» вставьте ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Нажмите OK
- Откройте «Инструменты» > «Плата» > «Менеджер плат»
- Найдите «esp8266» и установите последнюю версию
После установки в списке плат появятся различные модификации ESP8266. Теперь вы можете программировать этот модуль с помощью Arduino IDE.
Схема подключения ESP8266 к Arduino UNO
Для программирования ESP8266 с помощью Arduino UNO необходимо правильно соединить выводы этих устройств. Вот базовая схема подключения:
- VCC ESP8266 -> 3.3V Arduino
- GND ESP8266 -> GND Arduino
- TX ESP8266 -> RX Arduino (pin 0)
- RX ESP8266 -> TX Arduino (pin 1)
- CH_PD ESP8266 -> 3.3V Arduino
- GPIO0 ESP8266 -> GND Arduino (только при прошивке)
- RST ESP8266 -> RST Arduino
Обратите внимание, что ESP8266 работает от напряжения 3.3В, поэтому необходимо использовать делитель напряжения или преобразователь уровней для согласования с 5В логикой Arduino.
Загрузка прошивки в ESP8266
После правильного подключения ESP8266 к Arduino можно приступать к загрузке прошивки. Для этого выполните следующие действия:
- Выберите в Arduino IDE плату «Generic ESP8266 Module»
- Выберите правильный COM-порт
- Откройте нужный скетч или напишите свой код
- Нажмите кнопку «Загрузка»
- Когда в консоли появится надпись «Connecting…», нажмите и удерживайте кнопку RESET на ESP8266
- Дождитесь окончания загрузки
Если все сделано правильно, прошивка будет успешно загружена в ESP8266. После этого можно отключить GPIO0 от GND и перезагрузить модуль для запуска новой прошивки.
Типичные ошибки при программировании ESP8266
При работе с ESP8266 нередко возникают различные ошибки. Вот несколько распространенных проблем и способы их решения:
Ошибка соединения (Failed to connect to ESP8266)
Эта ошибка может возникать по следующим причинам:
- Неправильное подключение выводов RX и TX
- ESP8266 не переведен в режим программирования (GPIO0 не подключен к GND)
- Проблемы с питанием ESP8266
Проверьте правильность подключения и попробуйте еще раз. Иногда помогает отключение и повторное подключение питания.
Ошибка esptool.FatalError
Данная ошибка обычно связана с проблемами синхронизации при загрузке. Попробуйте следующие шаги:
- Отключите питание ESP8266
- Подключите GPIO0 к GND
- Подайте питание
- Запустите загрузку в Arduino IDE
- Когда появится «Connecting…», нажмите и удерживайте кнопку RESET на ESP8266
Если ошибка сохраняется, попробуйте использовать более стабильный источник питания для ESP8266.
Проверка работоспособности ESP8266
После успешной загрузки прошивки стоит проверить работоспособность ESP8266. Простейший тест — это загрузка скетча для мигания встроенным светодиодом:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Если после загрузки этого скетча светодиод на модуле начнет мигать с интервалом в 1 секунду, значит ESP8266 работает корректно.
Использование ESP8266 в качестве WiFi-модуля для Arduino
Одно из популярных применений ESP8266 — это использование его в качестве WiFi-модуля для Arduino. Для этого необходимо настроить связь между Arduino и ESP8266 по UART интерфейсу. Вот базовый пример кода для Arduino:
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
esp8266.begin(115200);
sendCommand("AT+RST");
delay(1000);
sendCommand("AT+CWMODE=1");
sendCommand("AT+CWJAP=\"SSID\",\"PASSWORD\"");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
void sendCommand(String command) {
esp8266.println(command);
delay(1000);
while(esp8266.available()) {
Serial.write(esp8266.read());
}
}
Этот код настраивает ESP8266 на подключение к указанной WiFi-сети и позволяет отправлять AT-команды через последовательный монитор Arduino IDE.
Возможности и ограничения ESP8266
ESP8266 обладает широкими возможностями для создания IoT-устройств, но также имеет некоторые ограничения. Вот основные характеристики:
- Поддержка Wi-Fi 802.11 b/g/n
- Встроенный TCP/IP стек
- 32-битный микроконтроллер
- Тактовая частота до 160 МГц
- 4 МБ флеш-памяти
- До 16 GPIO пинов (зависит от модификации)
Основные ограничения связаны с небольшим объемом оперативной памяти и отсутствием аппаратной поддержки некоторых интерфейсов. Однако для большинства IoT-проектов возможностей ESP8266 вполне достаточно.
Заключение
Подключение и программирование ESP8266 с помощью Arduino может показаться сложным процессом на первый взгляд. Однако, следуя пошаговым инструкциям и понимая основные принципы работы, можно успешно использовать этот мощный WiFi-модуль в своих проектах. Главное — соблюдать правила подключения, учитывать особенности питания ESP8266 и правильно настраивать среду разработки.
Освоив базовые принципы работы с ESP8266, вы сможете создавать разнообразные устройства с возможностью подключения к интернету — от простых датчиков до сложных систем умного дома. Экспериментируйте, изучайте документацию и не бойтесь ошибок — это неотъемлемая часть процесса обучения работе с новыми технологиями.
Как у меня заработал WIFI для Arduino ESP8266 ESP-12E
Плата ESP8266 ESP-12 ESP-12E UART Wi-Fi устанавливается сверху на плату Arduino UNO R3 и позволяет получать доступ к управлению и состоянием Arduino из интернет. И я заставил этот слоеный пирог заработать.
Компоненты Arduino для работы покупал в магазине All Electronics Trading Company.
Все быстро пришло. Почти все из того что заказал в этом магазине было отличного качества.
Исключение составляла комбинированная плата с разными датчиками, светодиодами и кнопками s.click.aliexpress.com/e/ct9JuGza. Эта плата была какой-то ручной пайки, но полностью работала.
Платы, которые использовались при написании статьи:
ESP8266 ESP-12 ESP-12E UART Wifi Wireless Shield Development Board For Arduino Mega UNO R3 Module Mega 3.3V 5V TTL Interface one
и
Arduino UNO R3 из состава набора Upgraded Advanced Version Starter Kit the RFID learn Suite Kit LCD 1602 for Arduino UNO R3.
Несмотря на то что нашел исчерпывающую инструкцию по запуску платы ESP8266 ESP-12E (назовем ее Инструкция №1), получилось не сразу.
Скачал по ссылке со страницы инструкции 1 FLASH_DOWNLOAD_TOOLS_v2.4_150924 и прошивку Ai-Thinker_ESP8266_DOUT_32Mbit_v1.5.4.1-a AT Firmware.
Закачал пустой скетч в Arduino U3.
void setup () {
// поместите здесь свой установочный код, чтобы запустить его один раз:
}
void loop () {
// поместите ваш основной код здесь для повторного запуска:
}
Действуя по инструкции 1 я ничего не достиг. Все комбинации перепробовал.
Раньше где-то слышал, что процедура прошивки требует намного большей мощности, чем штатная работа, и мощности питания от Arduino не всегда хватает.
На момент прошивки нужен отдельный источник питания. Заподозрил что у меня именно эта ситуация.
Помогла Инструкция №2 по подключению ESP8266 ESP-12E к UNO.
Esp8266 питается от 3.3V, а Uno использует 5V. В инструкции 1 написано, что 5V не трогаем. Автор инструкции 2 подключает на свой страх и риск (о чем говорит) плату Esp8266 к 5V выходу UNO R3. Я тоже так решил сделать, подключив все вот так.
Тут дело сдвинулось с мертвой точки, почти сразу же опять застопорившись.
Плата синхронизировалась, но как-то не до конца.
Содержимое окна FLASH_DOWNLOAD_TOOLS_v2.4_150924 было почти такое же, как в инструкции 1:
но у меня поле MAC adress заполнилось, а вот DETECTED IINFO оставалось пустым.
В логе содержалась фраза «error read crystal«. Подумал было что все-таки сжег плату, подав напряжение 5V на свой страх и риск.
Но нашел подобную проблему в ветке форума ERROR FLASHING FIRMWARE. Проблему решили, записав в Arduino U3 пустой скетч.
Да я же делал это в самом начале!
Снова записал пустой скетч и на этом этапе все заработало. А именно — содержимое окна FLASH_DOWNLOAD_TOOLS_v2.4_150924 стало таким же, как в инструкции 1.
И прошивка залилась в плату ESP8266 ESP-12 ESP-12E UART Wi-Fi.
Может, когда на первом этапе ничего не получалось, что-то залил в Arduino R3?
Начал дальше следовать инструкции 1, поместив плату ESP8266 на Arduino UNO R3 — и опять ничего не ладилось. Что бы не делал с переключателями Р1, Р2 — не проходили команды.
Снова обратился к инструкции 2.
Вернул подключение ESP8266 к UNO через Debug Port, но уже с использованием 3.3V — flash загрузчик уже не надо было использовать и решил не испытывать плату на прочность.
И отправил при таком подключении команду «AT+UART_DEF=9600,8,1,0,0». Вернуло ERROR.
Тут оказалось, что внимательно надо следить за регистрами и за отсутствием пробелов. Команды копировал с сайтов, а там были пробелы и поэтому возвращало ERROR.
Также нужно следить за регистрами. Команда «AT» принимается как в верхнем, так и в нижнем регистре. Остальные команды только в верхнем.
Решить эти проблемы помогла ветка https://esp8266. ru/forum/threads/error-oshibka-at-komand.126/.
Дальше действовал по инструкции 1.
Использовал немного модифицированную библиотеку WiFIESP и код Web-сервера со страницы инструкции 1.
Можно использовать и оригинальную библиотеку WiFIESP.
Небольшой трудностью на этом этапе было привязать статичный IP адрес — пришлось выяснять пароль от модема ZyXel Keenetic 4G II.
И все заработало.
Теперь можно было с Web-страницы при помощи кнопки управлять светодиодом, подключенным к Arduino UNO R3, и видеть его состояние.
Материалы со страницы «Инструкция 1».
Почему бы не использовать совмещенную плату UNO+ESP8266?
Есть в природе плата, аналогичная вроде-бы двум описываемым выше.
UNO + WiFi R3 ATmega328P + ESP8266 (32 Мб памяти), USB-TTL Ch440G. Совместимость Uno, NodeMCU, WeMos ESP8266.
Продается по цене 360р:
http://s.click.aliexpress.com/e/bCHsJmh6
http://s.click.aliexpress.com/e/pq9qvHm
Получается дешевле на 100р, чем описываемые выше в паре.
UPD
Заказал и протестировал совмещенную плату UNO+WiFi.
С ней оказалось все немного по другому.
Smart Electronics ESP-12E WeMos D1 на основе ESP8266 ESP-12E
лата построена на основе Wi-Fi модуля ESP-12E. WI-FI модули ESP8266. появились на китайских торговых площадках с конца 2014 года. ESP-12E – это одна из последних модификаций модулей ESP8266, различающихся количеством выводов и вариантами исполнения. Это не просто WI-FI модуль, а полноценные 32 битный микроконтроллер ESP-8266EX со своим набором GPIO, в том числе SPI, UART, I2C. При этом схема модуля состоит из минимального количества деталей: самого чипа ESP8266, flash памяти, кварца. Характеристики модуля ESP-12E представлены в таблице 1.
Таблица 1. Характеристики модулей ESP8266
Частота | Wi-Fi 2412-2484МГц |
Стандарт | 802. 11 b / g / n |
Мощность | + 20dBm |
Поддерживаемы типы шифрования | WEP, WPA, WPA2 |
Поддерживаемые режимы работы | Клиент(STA), Точка доступа(AP), Клиент+Точка доступа(STA+AP) |
Напряжение питания | 1.7..3.6 В |
Потребление тока | 70мА (240мА пик) |
Количество GPIO | 11 |
Внешняя Flash память | 4 Мб |
RAM данных | 80 кБ |
RAM инструкций | 32 кБ |
Температурный режим | -40 +70С |
ESP-12E — это сердце платы Blue Sky Smart Electronics ESP-12E WeMos D1. Какие же еще компоненты включены в плату?
Это встроенные microUSB порт и Ch440 USB to UART Serial module, что позволяет подключить плату для отладки к компьютеру через microUSB кабель. Все выводы ESP-12E выведены на разъёмы типа «мама» с шагом 1 дюйм. Расположение разъемов полностью совпадает с распоожением разъемов плат Arduino Uno, что позволяет разместить в них Arduino шилды. На разъемы выведены контакты tx, rx, gnd, 3v3, 11 цифровых выводов и 1 аналоговый. Все выводы (за исключением D0) поддерживают interrupt/pwm/I2C/one-wire. Питание платы от usb 5 вольт, не нужно искать мощный преобразователь на 3,3 вольта. На каждой плате обязательно присутствуют линейный стабилизатор напряжения, что позволяет питать через разъем питания напряжением 9-24В. Есть кнопка reset.
Плата может использоваться либо в качестве шилда Arduino, либо в качестве автономного устройства с собственной прошивкой.
Программирование платы возможно через Serial порт или OTA (беспроводная загрузка программного кода по Wi-Fi).
Подключаем контроллер к USB порту компьютера micro-USB кабелем.Если вы работаете в операционной системе Windows или Mac OS, необходимо скачать) и установить драйвера со страницы www.wemos.cc/downloads . В операционной системе Linux установки драйверов не требуется. После распаковки и запуска файла Ch441SER.EXE в ОС Windows вы увидите в диспетчере устройств плату.
Теперь рассмотрим программирование платы. Arduino IDE для ESP8266 позволяет писать скетчи и загружать их одним кликом в ESP8266 в знакомой среде Arduino IDE. Сначала установим самую свежую версию Arduino IDE www.arduino.cc/en/Main/Software для своей операционной системы с официального сайта Arduino.
Запускаем Arduino IDE. Далее пункт Файл — Настройки и в поле Additional Boards Manager URLs вставляем ссылку на стабильную версию Arduino IDE для ESP8266 http://arduino.esp8266.com/package_esp8266com_inde… .
Нажимаем ОК
Выбираем пункт Инструменты — Плата — Менеджер плат и находим в списке ESP8266 by ESP8266 Community. Выбираем нужную версию и нажимаем Установка.
После окончания процесса загрузки в списке плат Arduino IDE (Инструменты — Плата ) появится плата WeMos D1
Установим необходимые параметры платы
Arduino IDE для ESP8266 позволяет создавать прошивки и прошивать их в ESP8266 точно так же, как вы это делаете с Arduino. При этом никаких плат Arduino не требуется, это не тот случай, когда ESP8266 используется в качестве WiFi шилда для Arduino. Кроме того, вы можете использовать практически все Arduino библиотеки с ESP8266 после небольшой доработки. В настоящее время уже достаточно много библиотек адаптировано для использования с ESP8266.
Установка драйверов для WeMos D1 R2
Подключаем контроллер к USB порту компьютера micro USB кабелем.
Скачиваем драйвера:
http://www.wemos.cc/downloads
Распаковываем его и запускаем файл Ch441SER.EXE.
Arduino UNO + внешний ESP8266 в качестве точки доступа WiFi
В этом пошаговом руководстве показано, как запустить графический интерфейс RemoteXY на плате Arduino UNO с внешним модулем ESP8266, подключенным к аппаратному последовательному порту. ESP8266 будет настроен как точка доступа. Это руководство также можно использовать для Arduino Nano, Arduino Mini, Arduino Meaga и других плат.
Шаг 1. Создайте графический интерфейс
Перейдите в редактор RemoteXY. Найдите кнопку на левой панели инструментов. Перетащите его на экран телефона. Выберите кнопку , вокруг нее появится рамка. Выбрав кнопку, на правой панели инструментов откройте вкладку Element . Найдите параметр Snap to pin и выберите значение 13 (LED) .
Примечание. Редактор позволяет указать вывод для некоторых элементов, которые могут однозначно определять состояние вывода, например высокий или низкий уровень. Однако лучшим решением будет написать собственный код для управления выводами контроллера.
Шаг 2. Настройка проекта
Откройте вкладку Configuration на правой панели инструментов. Нажмите на любой пункт в списке, откроется окно настроек конфигурации. Параметр конфигурации позволяет указать параметры вашей платы и способ подключения. Выберите следующие настройки и нажмите кнопку Применить :
- Соединение: Точка доступа WiFi
- Плата: Ардуино УНО
- Модуль: Модуль Wi-Fi ESP8266
- IDE: Arduino IDE
Вкладка конфигурации должна выглядеть как на картинке:
Откройте вкладку Интерфейс модуля и установите следующие значения параметров:
- Интерфейс подключения: Аппаратный последовательный
- Последовательный порт: Последовательный, контакты 0 (RX) и 1 (TX)
- Скорость (скорость передачи): 115200
- Имя (SSID): RemoteXY
- Пароль: 12345678
- Порт: 6377
Настройки определяют, что модуль ESP8266 подключается к Arduino через аппаратный серийный номер 115200 и использует контакты 0 и 1. В настройках также указывается имя точки доступа (SSID) и пароль для точки доступа, которую вы хотите открыть.
Примечание. ESP8266 настроен на скорость передачи данных по умолчанию 115200. По этой причине для связи необходимо использовать аппаратный последовательный порт. Software Serial не может работать на такой скорости.
Шаг 3. Получите исходный код для Arduino
Нажмите кнопку Получить исходный код .
На открывшейся странице нажмите на ссылку Download code и скачайте архив скетча для Arduino IDE. Распаковать этот архив. В архиве находится файл project.ino
, откройте его в Arduino IDE.
Для компиляции скетча необходимо добавить библиотеку RemoteXY в Arduino IDE. Перейдите по ссылке для скачивания библиотеки и следуйте инструкциям по ее установке.
В настройках Arduino IDE выберите плату Arduino UNO и попробуйте скомпилировать скетч. Если вы все сделали правильно, скетч должен скомпилироваться без ошибок.
Шаг 4. Подключите ESP8266 к Arduino Uno
Подключите ESP8266 к Arduino Uno в соответствии со схемой ниже. Обратите внимание, что контакт 0 платы Arduino, выбранный как RX, соединяется с контактом TX модуля Bluetooth, а контакт 1 платы Arduino, выбранный как TX, соединяется с контактом RX модуля ESP8266.
Уровни сигнала модуля ESP8266 составляют 3,3 В, но плата Arduino работает при напряжении 5 В, вам необходимо использовать резистивный делитель напряжения для преобразования уровня выходного сигнала TX.
Примечание. Некоторые модули ESP8266 толерантны к уровню сигнала TX, и вам может не понадобиться использовать преобразователь напряжения, если ваш модуль окажется таким.
Шаг 5. Загрузите скетч на плату Arduino.
Поскольку модуль ESP8266 подключен к основному Serial порту платы Arduino, это будет мешать загрузке скетча. Перед загрузкой скетча необходимо отключить ESP8266 от контактов 0 и 1 платы Arduino. После отключения ESP8266 загрузите скетч на плату обычным способом. Подключите плату Arduino UNO к компьютеру, выберите COM-порт, к которому подключена плата, и нажмите кнопку загрузки. После загрузки скетча подключите контакты ESP8266.
Внимание. Отключать и подключать ESP8266 только при отсутствии питания на плате.
Если вы все сделали правильно, то сразу после запуска Arduino вы увидите мигание синим светодиодом на модуле ESP8266 примерно полсекунды. Если это произойдет, то, скорее всего, обмен данными между платой Arduino и ESP8266 налажен. За это время RemoteXY настраивает ESP8266 на работу в качестве точки доступа с помощью AT-команд, а светодиод мигает во время обмена данными.
Шаг 6. Подключитесь к плате с помощью мобильного приложения.
Установите мобильное приложение RemoteXY на свой телефон.
Запустите приложение и нажмите кнопку + (Плюс) на верхней панели навигации. В открывшемся окне выберите подключение WiFi Point .
Внимание. В соответствии с частной политикой безопасности приложение запросит у вас разрешение на определение местоположения. Приложению требуется разрешение на определение местоположения для поиска устройств WiFi и подключения к ним.
Приложение для Android
В приложении для Android нажмите кнопку обновления на верхней панели навигации. Вы увидите все доступные точки WiFi. Найдите точку с именем RemoteXY и щелкните ее. В открывшемся окне ввода пароля вводим пароль 12345678 , который мы указали на шаге 2. Если вы все сделали правильно, должен открыться графический интерфейс.
Приложение iOS
В приложении iOS перед подключением необходимо вручную подключить смартфон к точке доступа с помощью системных настроек. Зайдите в настройки системы и подключитесь к Точка доступа RemoteXY с паролем 12345678 , который мы указали на шаге 2. Затем вернитесь в приложение RemoteXY, вы должны увидеть имя подключенной точки доступа. Затем нажмите кнопку Подключить . Если вы все сделали правильно, должен открыться графический интерфейс.
Если нет соединения…
Если соединение не установлено, проверьте себя по списку ниже. Это поможет вам найти ошибку.
Плата Arduino под управлением библиотеки RemoteXY отправляет команды на модуль ESP8266. Вы можете увидеть эти команды, если откроете Serial Monitor в Arduino IDE. Это возможно, потому что ESP8266 и Serial Monitor подключены к одному и тому же порту. Вы сможете видеть только выходные AT-команды, но не сможете увидеть ответы от ESP8266. Но этого достаточно для диагностики системы.
Запустите Serial Monitor, установите скорость передачи данных 115200. При необходимости нажмите кнопку сброса на плате.
Serial Monitor ничего не показывает
Если Serial Monitor не отображает никаких сообщений, это, скорее всего, означает, что Arduino не будет выполнять вашу программу или вы неправильно настроили метод связи на шаге 2. Даже если у вас нет ESP8266 подключен, правильно настроенная библиотека RemoteXY по-прежнему отправляет запросы к модулю, пытаясь его обнаружить, и вы увидите это в Serial Monitor. Если Serial Monitor не отображает никаких сообщений, то возможны следующие неисправности:
- Параметры конфигурации или параметры интерфейса модуля были указаны неправильно до получения исходного кода. Проверьте на шаге 2.
- Вы внесли недопустимые изменения в скетч, такие как исправление структуры
RemoteXY
или массиваRemoteXY_CONF
, удаление вызовов функцийRemoteXY_Init()
илиRemoteXY_Handler()
. Пересоберите исходный код и загрузите его на доску без каких-либо изменений. - Последовательный монитор не подключен к плате Arduino. Возможно, вы не выбрали 115200 бод после запуска Serial Monitor.
- В плату Arduino не загружен скетч, или был загружен другой скетч. Убедитесь, что вы загрузили именно тот эскиз, который вам нужен.
- Плата Arduino не включена или неисправна.
Serial Monitor отображает запросы AT-команд
Если Serial Monitor отображает некоторые команды, то анализируя эти команды, вы можете проверить следующие ошибки.
ESP8266 не отвечает
Если вы видите только AT-команды и больше ничего:
В
В
В
В
Это означает, что модуль ESP8266 не отвечает на команды. Проблема может быть как в неправильном подключении модуля, так и в нем самом. Возможные причины следующие:
- Контакты RX и TX модуля Bluetooth подключены неправильно, они могут быть перепутаны. Сверьтесь со схемой в шаге 4.
- Скорость передачи данных не соответствует, ESP8266 по умолчанию имеет значение 115200. Возможно, ESP8266 был настроен вручную для работы с другой скоростью передачи данных.
- Нет питания на ESP8266, при подаче питания на ESP8266 должен гореть красный светодиод.
- Недостаточно мощности блока питания 3,3 В для ESP8266. Различные платы, совместимые с Arduino, могут иметь разные преобразователи постоянного тока 3,3 В с разным максимальным выходным током.
- Прошивка модуля ESP8266 не поддерживает AT-команды.
- Модуль ESP8266 неисправен.
Не все AT-команды обрабатываются
Если за AT-командой следует последовательность команд, это означает, что модуль ESP8266 связан с платой Arduino. Ниже приведена правильная последовательность команд:
В
AT+RST
ATE0
AT+CWMODE=2
AT+CWDHCP=0,1
AT+CWSAP="RemoteXY","12345678",10,4
AT+CIPMODE=0
AT+CIPMUX=1
AT+CIPSERVER=1,6377
Но после некоторых команд соединение может разорваться. Это поможет вам найти ошибку.
Если нет последней строки с командой AT+CIPSERVER=1,6377
, это может указывать на то, что у модуля ESP8266 старая прошивка.
Если последняя команда, которую вы видите, это AT+RST
, это означает, что модуль ESP8266 не запускается после сброса, после его загрузки нет ответа ready
.
Если обрыв происходит на любой другой линии, то скорее всего не хватает питания от блока питания 3,3В для ESP8266.
Все АТ-команды обработаны, но не подключены
Если отображается вся последовательность AT-команд из предыдущего списка, но приложение выдает сообщение об ошибке, посмотрите, какую ошибку показывает приложение, и попытайтесь ее исправить. Также возможны следующие варианты:
- Недостаточно мощности блока питания 3.3В для ESP8266. Модуль
- ESP8266 имеет старую прошивку. Размер памяти
- ESP8266 составляет 4 Мбит или меньше, и текущая прошивка не может быть прошита.
Примечание. В Android-приложении есть возможность анализировать журнал подключений, это также может помочь выявить ошибку.
Программирование ESP8266 с помощью Arduino UNO
Программа ESP8266 с Arduino UNO объясняется, как устранить ошибку, например esptool.FatalError, в программировании ESP8266
В этом руководстве по ESP8266 я показал, как программировать ESP01 с помощью Arduino Uno с помощью Arduino IDE. В этой статье я объяснил все этапы программирования ESP8266, как подключить ESP8266 к Arduino UNO. Я также объяснил, как использовать FTDI232 USB to TTL в качестве программатора ESP01 с принципиальной схемой.
Содержание
Подключите ESP8266 к Arduino UNO
Сначала обратитесь к этой схеме, чтобы подключить ESP01 к Arduino UNO для программы ESP-01.
Контакты GPIO-0 и GND должны быть соединены во время программирования ESP8266.
Загрузите плату ESP8266 в Arduino IDE
Сначала обновите Настройки –> URL-адреса менеджера дополнительных плат: https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/ стабильный/package_esp8266com_index.json
ESP8266 Учебное пособие: Программирование ESP-0…
Пожалуйста, включите JavaScript
ESP8266 Учебное пособие: Программирование ESP-01 с помощью Arduino
Затем загрузите и установите плату ESP8266 из Tools — Board Manager.
Загрузите код в модуль ESP-01
Выберите плату: « Generic ESP8266 Module » и соответствующий ПОРТ в меню «Инструменты» в Arduino IDE.
Затем нажмите кнопку «Загрузить».
Во время загрузки кода, когда вы видите « Connecting….__ », затем нажмите кнопку RESET на ESP 01. (См. рисунок выше)
После этого код начнет загружаться в ESP01. В это время вы заметите, что светодиоды TX и RX Arduino IDE мигают.
Отключите Arduino от ESP-01
Здесь я загрузил простой скетч для примера мерцания на ESP8266.
Я отключил контакты TX и RX от Arduino. Также отключите GPIO-0 от контакта GND.
Затем перезапустите ESP-01 или вы также можете нажать кнопку RESET на ESP01.
Согласно коду, который я загрузил, светодиод, подключенный к GPIO-0, начинает мигать.
Здесь я использовал Arduino UNO только для подачи питания 3,3 В на модуль ESP-01.
Ошибка в программировании ESP8266
При загрузке кода в ESP8266 вы можете получить эту ошибку « esptool.FatalError. Не удалось запустить Stub. Неожиданный ответ: b’OHA’ ».
Чтобы устранить ошибку esptool.FatalError , выполните следующие действия:
- Отключите питание от модуля ESP-01.
- Убедитесь, что контакты GPIO-0 и GND подключены .
- Подключите Arduino и ESP01 согласно схеме (см. рис. 1)
- После выбора платы и порта нажмите кнопку «Загрузить ».
- Во время загрузки кода, если появляется текст « Connecting….___ », затем нажмите кнопку RESET ESP8266 ESP01, пока код не начнет загрузку.
Обучающее видео по программированию ESP8266
В обучающем видео я показал пошаговое программирование ESP8266, а также обсудил некоторые ошибки, связанные с программой ESP8266.
Также объясняется, как загрузить пример скетча Blynk ESP8266 для управления бытовой техникой со смартфона.
FTDI232 as ESP01 Programmer
Вы также можете использовать преобразователь FTDI232 USB в TTL для программирования универсального модуля ESP8266.