Esp8266 подключение к arduino: Установка ESP8266 в Arduino IDE (руководство для ОС Windows)

Содержание

Как у меня заработал 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 , выполните следующие действия:

  1. Отключите питание от модуля ESP-01.
  2. Убедитесь, что контакты GPIO-0 и GND подключены .
  3. Подключите Arduino и ESP01 согласно схеме (см. рис. 1)
  4. После выбора платы и порта нажмите кнопку «Загрузить ».
  5. Во время загрузки кода, если появляется текст « Connecting….___ », затем нажмите кнопку RESET ESP8266 ESP01, пока код не начнет загрузку.

Обучающее видео по программированию ESP8266

В обучающем видео я показал пошаговое программирование ESP8266, а также обсудил некоторые ошибки, связанные с программой ESP8266.

Также объясняется, как загрузить пример скетча Blynk ESP8266 для управления бытовой техникой со смартфона.

FTDI232 as ESP01 Programmer

Вы также можете использовать преобразователь FTDI232 USB в TTL для программирования универсального модуля ESP8266.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *