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

Опубликовано: 01.07.2017
Автор: Виталий Бочкарев
Поддержать автора статьи по этой ссылке

В этой заметке я расскажу, о контроллере 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 контактов. Фотография платы представлена ниже.

Arduino mega and esp8266 - 01
Arduino mega and esp8266 - 02

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

  1 2 3 4 5 6 7 8 RXD/TXD
USB изолирован --- --- --- --- --- --- --- --- 0
USB
<->
ATmega2560
--- --- ON ON --- --- --- --- 0
USB
<->
ESP8266 (прошивка)
--- --- --- --- ON ON ON --- 0
USB <->
ESP8266 (работа)
--- --- --- --- ON ON --- --- 0
ATmega2560
<->
ESP8266
ON ON --- --- --- --- --- --- 0
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.

Arduino mega and esp8266 - 03

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

Arduino mega and esp8266 - 04

После того, как плата стала видна, её можно отключить от компьютера, но надо запомнить, к какому 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.
    Arduino mega and esp8266 - 05
  7. Сохранить настройки, нажав OK.
  8. Открыть Менеджер плат через Инструменты --> Плата --> Менеджер плат.
  9. Найти в списке esp8266 by ESP8266 Comunity и установить пакет нужной версии, например 2.3.0.
  10. Закрыть программу Arduino IDE.

 

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

  1. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
      1 2 3 4 5 6 7 8 RXD/TXD
    USB
    <->
    ATmega2560
    --- --- ON ON --- --- --- --- 0
  2. Подключить плату к компьютеру с помощью USB-кабеля.
  3. Запустить программу Arduino IDE.
  4. Выбрать плату Arduino/Genuino Mega or Mega 2560 через
    Инструменты --> Плата --> Arduino/Genuino Mega or Mega 2560.
    Arduino mega and esp8266 - 06
  5. Выбрать COM-порт, который выписывали из Диспетчера устройств при установке драйвера платы, через
    Инструменты --> Порт --> COM4.
  6. Открыть тестовую программу TEST_MEGA через Файл --> Папка со скетчами --> TEST_MEGA.
  7. Загрузить прошивку в контроллер через Скетч --> Загрузка.
  8. После успешной загрузки прошивки в контроллер открыть Монитор порта через Инструменты --> Монитор порта.
  9. В Мониторе порта нужно выбрать скорость передачи в 115200 бод, после чего в окне монитора должно отобразиться меню тестовой программы.
    Arduino mega and esp8266 - 07
  10. В поле ввода команд Монитора порта нужно ввести английскую букву "a" и нажать Отправить, в ответ на команду контроллер перейдет в режим мигания встроенным светодиодом в течении 20 секунд.
  11. В Монитор порта нужно отправить команду "b" - контроллер выдаст размер свободной памяти SRAM = 7873 и полный размер памяти EEPROM = 4096.
    Arduino mega and esp8266 - 08
  12. В Монитор порта нужно отправить команду "c" - контроллер протестирует состояние выходов и выдаст таблицу с результатами.
    Arduino mega and esp8266 - 09
    В таблице все выводы кроме 0, 1 и 13 должны быть в состоянии OK. На выводах 0, 1, 13 выявлены неисправности, так как 0 и 1 выводы заняты последовательным портом (UART), а на 13 выводе находится встроенный светодиод.
  13. Все проверки проведены - контроллер нужно отключить от USB порта компьютера.

 

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

  1. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
      1 2 3 4 5 6 7 8 RXD/TXD
    USB
    <->
    ESP8266 (прошивка)
    --- --- --- --- ON ON ON --- 0
  2. Подключить плату к компьютеру с помощью USB-кабеля.
  3. В программе Arduino IDE выбрать плату WeMos D1 R2 & mini через Инструменты --> Плата --> WeMos D1 R2 & mini.
    Примечание. Рекомендованный в документации тип платы Olimex MOD-WIFI-ESP8266(-DEV) не подходит.
  4. Проверить настройки контроллера в соответствии с рисунком.
    Arduino mega and esp8266 - 10
  5. Открыть тестовую программу TEST_ESP8266 через Файл --> Папка со скетчами --> TEST_ESP8266.
  6. В строки 7 и 8 программы вместо многоточий нужно вставить имя домашней WiFi сети и её пароль.
  7. Загрузить прошивку в контроллер через Скетч --> Загрузка.
  8. После успешной загрузки отключить плату от компьютера.
  9. С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
      1 2 3 4 5 6 7 8 RXD/TXD
    USB <->
    ESP8266 (работа)
    --- --- --- --- ON ON --- --- 0
  10. Подключить плату к компьютеру с помощью USB-кабеля.
  11. С помощью Монитора порта посмотреть что выдает контроллер.
    Arduino mega and esp8266 - 11
    Значения Chip Real Size (реальный размер памяти) и Chip Flash Size (размер памяти, выставленный при прошивке) должны быть одинаковыми.
    Необходимо выписать IP адрес, который получил контроллер от WiFi коммутатора - этот адрес понадобится в следующем тесте.
  12. Проверка проведена - контроллер нужно отключить от 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 и выдать их в окно Монитора порта.
    Arduino mega and esp8266 - 12
  8. Открыть в браузере страницу по IP адресу, выданному в Мониторе порта.
    Arduino mega and esp8266 - 13
  9. В отрытой странице поочередно нажимать на кнопки ON и OFF и следить за состоянием светодиода, встроенного на плату. Светодиод должен включаться командой ON и выключаться командой OFF.
  10. Проверка проведена - контроллер нужно отключить от USB порта компьютера.

 

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

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

Вложения