Меню

Как настроить mega esp8266



Контроллер Arduino Mega с ESP8266

В этой заметке я расскажу, о контроллере Arduino Mega, совмещенным с контроллером ESP8266. Для тестирования функционала платы была использована контрафактная копия этой платы, заказанная в Китае, поэтому фотографии и протестированный функционал относятся к копии, нежели к оригиналу. Оригинал платы можно найти на сайте компании RobotDyn.

История покупки данной платы следующая. Для управления макетом железной дороги по протоколу DCC++ мне понадобилась плата семейства Arduino. Сначала я выбрал микроконтроллер Arduino UNO и управлял поездами через виртуальный COM-порт компьютера (USB порт), подключенного к микроконтроллеру. Но в начале 2017 года я нашел статью » Roco z21 на базе Arduino » в которой указывалось, что макетом можно управлять по WiFi, если применить плату Arduino Mega, совмещенную с контроллером ESP8266.

Итак, плата выполнена в размерах оригинального контроллера Arduino Mega. Контроллер ATmega2560 смещен в правую сторону, а в левой стороне расположен контроллер ESP8266. Над WiFi контроллером находится USB разъем, который заменен с обычного Type-B на Micro-B, а взаимодействие этого разъема с компонентами платы осуществляется через USB-TTL конвертер CH340G и DIP переключатель из 8 контактов. Фотография платы представлена ниже.


Переключатель режимов USB порта может находится в режимах, описанных в таблице ниже

1 2 3 4 5 6 7 8 RXD/TXD
USB изолирован
USB

ATmega2560

ON ON
USB

ESP8266 (прошивка)

ON ON ON
USB
ESP8266 (работа)
ON ON
ATmega2560

ESP8266

ON ON
USB

ATmega2560

ESP8266

ON ON ON ON 3

Для проверки работоспособности платы необходимо протестировать работу каждого из контроллеров, а также взаимодействие контроллеров между собой. Для проверки потребуется:

  • Сама плата Mega-WiFi.
  • Компьютер с операционной системой Windows.
  • Кабель USB-microUSB.
  • Драйвер USB-TTL конвертера CH340.
  • Программная среда Arduino IDE (старые сборки можно скачать из архива версий).
  • Тестовые прошивки Arduino Mega and ESP8266.
  • Канцелярская скрепка.

Сначала надо установить драйвер платы, а если быть точнее, то драйвер контроллера CH340. Для этого нужно подключить плату к компьютеру с помощью USB кабеля, открыть Диспетчер устройств, найти подключенное неизвестное USB-устройство и обновить ему драйвер, указав в качестве источника драйверов папку со скачанными и распакованными драйверами CH340.

После установки драйверов устройство отобразиться в диспетчере устройств как USB-SERIAL CH340 (COMx). Надо найти это устройство и выписать номер виртуального COM-порта, к которому подключена плата, например COM4.

После того, как плата стала видна, её можно отключить от компьютера, но надо запомнить, к какому USB порту было произведено подключение и включать плату только в этот порт — если включить в другой, то номер COM-порта может измениться.

Теперь можно заняться установкой и настройкой программной среды Arduino IDE. Скачав нужную версию программы, например 1.8.3, и установив на свой компьютер, необходимо её настроить. Для этого надо выполнить следующее:

  1. Создать папку для своих проектов, например C:\ArduinoProjects.
  2. Распаковать в папку проектов архив Arduino Mega and ESP8266.zip.
  3. Запустить программу Arduino IDE.
  4. Открыть Настройки через Файл —>Настройки.
  5. В поле Размещение папки скетчей указать C:\ArduinoProjects.
  6. В поле Дополнительные ссылки для менеджера плат вписать
    http://arduino.esp8266.com/stable/package_esp8266com_index.json.

Чтобы проверить работоспособность контроллера ATmega2560 необходимо проделать следующие операции:

  1. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
    1 2 3 4 5 6 7 8 RXD/TXD
    USB

    ATmega2560

    ON ON
  2. Подключить плату к компьютеру с помощью USB-кабеля.
  3. Запустить программу Arduino IDE.
  4. Выбрать плату Arduino/Genuino Mega or Mega 2560 через
    Инструменты —>Плата —>Arduino/Genuino Mega or Mega 2560.

Чтобы проверить работоспособность контроллера ESP8266 необходимо проделать следующие операции:

  1. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
    1 2 3 4 5 6 7 8 RXD/TXD
    USB

    ESP8266 (прошивка)

    ON ON ON
  2. Подключить плату к компьютеру с помощью USB-кабеля.
  3. В программе Arduino IDE выбрать плату WeMos D1 R2 & mini через Инструменты —>Плата —>WeMos D1 R2 & mini.

  • Открыть тестовую программу TEST_ESP8266 через Файл —>Папка со скетчами —>TEST_ESP8266.
  • В строки 7 и 8 программы вместо многоточий нужно вставить имя домашней WiFi сети и её пароль.
  • Загрузить прошивку в контроллер через Скетч —>Загрузка.
  • После успешной загрузки отключить плату от компьютера.
  • С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
    1 2 3 4 5 6 7 8 RXD/TXD
    USB
    ESP8266 (работа)
    ON ON
  • Подключить плату к компьютеру с помощью USB-кабеля.
  • С помощью Монитора порта посмотреть что выдает контроллер.

    Чтобы проверить взаимодействие контроллеров ATmega2560 и ESP8266 необходимо проделать следующие операции:

    1. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
      1 2 3 4 5 6 7 8 RXD/TXD
      USB

      ATmega2560

      ESP8266

      ON ON ON ON 3
    2. Подключить плату к компьютеру с помощью USB-кабеля.
    3. В программе Arduino IDE выбрать плату Arduino/Genuino Mega or Mega 2560 через
      Инструменты —>Плата —>Arduino/Genuino Mega or Mega 2560.
    4. Открыть тестовую программу TEST_MEGA-ESP через Файл —>Папка со скетчами —>TEST_MEGA-ESP.
    5. Загрузить прошивку в контроллер через Скетч —>Загрузка.
    6. После успешной загрузки прошивки в контроллер открыть Монитор порта через Инструменты —>Монитор порта.
    7. Контроллер Arduino Mega должен считать данные с порта обмена данных с контроллером ESP8266 и выдать их в окно Монитора порта.

    Плату можно найти в интернет магазине RobotDyn, eBay или AliExpress по ключевым словам «ATmega2560 ESP8266 CH340G». Цена на плату колеблется от 10$ до 25$ в зависимости от качества исполнения и жадности продавца. Я покупал плату на AliExpress за 11$.

    Еще один обзор платы можно прочитать по этой ссылке.

    Источник

    Модуль Wi-Fi ESP8266 (ESP-01): подключение, распиновка, прошивка в IDE

    Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.

    Видеообзор

    Общие сведения

    ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX . На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.

    По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.

    Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.

    Работа с AT командами

    Подключение и настройка

    В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.

    На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.

    HardwareSerial

    На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .

    Список поддерживаемых плат:

    Для примера подключим модуль Wi-Fi к платформе Iskra Neo.

    Прошейте управляющую платформу кодом ниже.

    Код прошивки

    SoftwareSerial

    Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.

    Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.

    Код прошивки

    HardwareSerial Mega

    На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.

    Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:

    Список поддерживаемых плат:

    Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.

    Код прошивки

    Примеры работы

    Рассмотрим несколько примеров по работе с «AT-командами»

    Тестовая команда «AT»

    Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.

    Настройка режима работы

    Wi-Fi модуль умеет работать в трёх режимах:

    Переведём чип в смешанный режим командой:

    После установки модуль должен ответить «OK»:

    В отличии от аппаратного UART (HardwareSerial), за работу программного UART (SoftwareSerial) отвечает микроконтроллер, который назначает другие пины в режим работы RX и TX , соответственно и данные которые приходят от Wi-Fi модуля обрабатывает сам микроконтроллер во время программы. По умолчанию скорость общения Troyka Wi-Fi равна 115200 , что значительно выше чем позволяет библиотека SoftwareSerial. В итоге часть информации которая приходит с Wi-Fi модуля будет утеряна. Если вы используете плату с HardwareSerial подключением модуля можете пропустить пункт настройки скорости и сразу перейти к дальнейшей работе с модулем.

    AT установка скорости общения

    Для корректной работы с большими объемами необходимо понизить скорость соединения модуля и микроконтроллера. Для этого используйте «AT-команду»:

    После проделанной операции, измените скорость программного UART в скетче программы и прошейте плату.

    По итогу программный UART успеет обработать каждый пришедший байт с Wi-Fi модуля.

    AT сканирование WI-FI сетей

    Откройте Serial-порт и отправьте на модуль «AT-команду» для сканирования всех доступных Wi-Fi сетей:

    При наличии доступных WI-FI сетей в ответ получим сообщение:

    Для продолжение работы используйте перечень «AT-команд»

    Wi-Fi модуль как самостоятельный контроллер

    ESP-01 (ESP8266) — очень умный модуль. Внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE и JavaScript через Espruino Web IDE .

    Настройка железа

    Ввиду отсутствия у платформы ESP-01 собственного USB-порта, понижающего преобразователя и отсутствия толерантности к 5 вольтам, подключите её к компьютеру, используя один из перечисленных способов:

    Схема через Arduino Uno

    Для сборки программатора понадобится:

    Необходимо каждый раз выполнять перед прошивкой модуля.

    Схема через USB-Serial адаптер

    Для сборки программатора понадобится:

    Необходимо каждый раз выполнять перед прошивкой модуля.

    Программирование на C++

    После выполненных действий модуль ESP-01 готов к программированию через Arduino IDE.

    Подробности о функциях и методах работы ESP-01 (ESP8266) на языке C++ читайте на ESP8266 Arduino Core’s.

    Программирование на JavaScript

    После выполненных действий модуль ESP-01 готов к программированию через Espruino Web IDE.

    Подробнее о функциях и методах работы ESP8266 на языке JavaScript читайте на Espruino.

    Восстановление стандартной АТ-прошивки

    После программирования платформы в режиме самостоятельного контроллера может понадобиться восстановить на модуле стандартную AT-прошивку. Для этого необходимо воспользоваться утилитой Flash Download Tool.

    Элементы платы

    Чип ESP8266EX

    Чип ESP8266 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле). В основе кристалла входит процессор семейства Xtensa — 32-х битный Tensilica L106 с частой 80 МГц с ультранизким энергопотреблением, радиочастотный трансивер с физическим уровнем WiFi IEEE 802.11 b/g/ и блоки памяти SRAM. Мощности процессорного ядра хватает для работы сложных пользовательских приложений и цифровой сигнальной обработки.

    Программное приложение пользователя должно храниться на внешней микросхеме Flash-памяти и загружаться в ESP8266EX через один из доступных интерфейсов (SPI, UART, SDIO и др.) каждый раз в момент включения питания системы.

    Чип ESP8266 не содержит в себе Flash-память и многих других компонентов для пользовательского старта. Микросхема является основой на базе которой выпускаются модули с необходимой периферией, например ESP-01.

    Светодиодная индикация

    Имя светодиода Назначение
    LED Индикаторный светодиод подключённый к цифровому пину 1
    POWER Индикатор питание на модуле

    Распиновка

    Пины питания

    Пины ввода/вывода

    В отличии от большинства плат Arduino, родным напряжением платформы ESP-01 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить модуль!

    Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

    Источник

    Как настроить mega esp8266

    Разработка Arduino Mega Server для ESP8266 велась в Arduino IDE версии 1.6.5 r2 и крайне желательно использовать для работы именно эту версию. Если у вас другая версия среды разработки, то, возможно, вам удастся скомпилировать проект, но поведение системы в этом случае будет непредсказуемым, поэтому лучше не рисковать и использовать рекомендуемую версию.

    Важный момент! У вас на компьютере может быть несколько проектов Arduino Mega Server для разных плат и модулей и каждый из этих проектов может требовать особой модификации системных библиотек. Для того, чтобы изменения, вносимые в библиотеки в одном проекте, не мешали соседним и не приводили к их неработоспособности, в системе Arduino Mega Server под каждый проект выделяется отдельная папка, которая кроме проекта содержит и полный комплект библиотек к нему.

    Переключение между проектами производится выбором пункта «Размещение папки скетчей» в меню Файл/Настройки среды Arduino. Обратите внимание! Несоблюдение этого пункта приводит к невозможности компиляции проекта и работы с ним. Вы должны указать путь к вашему проекту с точностью до папки «Arduino», например:

    Не забудьте исправить этот путь на реальный, который существует в вашей системе.

    Драйвера ESP8266

    После инсталляции среды разработки вам нужно установить пакет программного обеспечения, необходимого для работы с модулями ESP8266 в среде Arduino, который далее мы будем называть «драйверами».

    Для этого в настройках среды Arduino Файл/Настройки, в пункте «Additional Boards Manager URLs» вам нужно ввести следующую строку

    После этого в менеджере плат (Boards Manager) Инструменты/Плата/Boards Manager вам нужно найти «esp8266 by ESP8266 Community» версии 2.0.0 и нажать «Install». Версию крайне желательно выбирать именно указанную, с другими версиями, даже если компиляция пройдёт успешно, результат непредсказуем.

    Выбор платы

    После инсталляции драйверов, вам, в менеджере плат, станут доступны различные версии модулей ESP8266. В большинстве случаев нужно выбирать «Generic ESP8266 Module». Если у вас модуль известной марки и он есть в списке, то лучше выбрать пункт, соответствующий вашему модулю.

    Настройка параметров модуля

    Это важный пункт инструкции, к которому нужно отнестись со всей ответственностью потому, что от него зависит как будет работать ваш модуль.

    От выбора платы зависит и набор параметров. доступный для редактирования. Мы рассмотрим настройку стандартного варианта «Generic ESP8266 Module».

    Модули бывают разные и каждый модуль может иметь разный набор параметров и для того, чтобы правильно их указать в настройках среды Arduino, вы можете воспользоваться сторонними утилитами или посмотреть, что выводит модуль при загрузке — часто там можно увидеть много полезной информации.

    Flash Mode (режим работы с памятью)

    Выбор этого режима зависит от вашего модуля — одни модули работают в DIO, другие в QIO. Часто это написано на самом модуле. Также есть модули, работающие в обоих режимах. В вашем конкретном случае нужно отталкиваться от того, что написано на модуле, если установить на какой режим рассчитан модуль не удаётся, то можно протестировать его работу сначала в одном режиме, затем в другом.

    В тестовой конфигурации использовался модуль с надписью «QIO» на корпусе и, соответственно, в QIO режиме.

    Flash Frequency (частота работы памяти)

    40 или 80 МГц. В тестовой конфигурации использовалось значение 40 МГц, вы можете поэкспериментировать с этим параметром, если значительной разницы в скорости работы не обнаружите, то лучше оставить 40 МГц.

    Upload Using (метод загрузки)

    В тестовой конфигурации использовалось значение Serial

    CPU Frequency (частота работы процессора)

    В тестовой конфигурации использовалось значение 80 МГц. Вы можете поэкспериментировать с этим параметром, если значительной разницы в скорости работы не обнаружите, то лучше оставить 80 МГц.

    Flash Size (размер флеш памяти)

    Прежде всего вы должны установить реальный размер флеш памяти вашего модуля. Она может варьироваться в широких пределах — от 1-го до 16-и мегабайт. В тестовой конфигурации использовался модуль с 4-я мегабайтами.

    На что стоит обратить внимание. Система Arduino Mega Server использует флеш память модуля в двух разных качествах. Первая часть — это память под скетч, вторая — память под флеш диск для хранения файлов. Среда Arduino предоставляет возможность по-разному разделить всё пространство флеш памяти модуля, эти настройки находятся в меню «Flash Size».

    В тестовой конфигурации использовалось разбиение 4M (3M SPIFFS). Это означает, что под флеш диск используется 3 мегабайта памяти, а под скетч — оставшийся 1 мегабайт. Скетч Arduino Mega Server занимает около 300 килобайт, а 700 килобайт остаются свободными.

    Если у вас модуль с другим объёмом флеш памяти, то вы можете попробовать разбить её по-другому, но в этом случае вам нужно учитывать, что под скетч нужно оставить не менее 512 КБ, а файлы сервера занимают около двух мегабайт. Если вы выделите под файловую систему SPIFFS менее двух мегабайт, то вам придётся удалить часть файлов из системы и, соответственно, потерять часть функциональности Arduino Mega Server.

    Reset Method (метод сброса модуля)

    В тестовой конфигурации использовался метод «ck»

    Upload Speed (скорость загрузки)

    В проекте Arduino Mega Server для ESP8266 используется значение «115200»

    В этом пункте вы должны указать порт, к которому подключён ваш модуль ESP8266.

    Обратите внимание. Система Arduino Mega Server непрерывно развивается и в код проекта постоянно вносятся изменения и улучшения, поэтому, описание и документация может не соответствовать вашей конкретной версии системы. Последняя правка этой страницы относится к 0.15 версии системы.

    Источник

  • Читайте также:  Как настроить веб камеру своего ноутбука