Контроллер 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 изолирован | — | — | — | — | — | — | — | — | 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.
После установки драйверов устройство отобразиться в диспетчере устройств как USB-SERIAL CH340 (COMx). Надо найти это устройство и выписать номер виртуального COM-порта, к которому подключена плата, например COM4.
После того, как плата стала видна, её можно отключить от компьютера, но надо запомнить, к какому USB порту было произведено подключение и включать плату только в этот порт — если включить в другой, то номер COM-порта может измениться.
Теперь можно заняться установкой и настройкой программной среды Arduino IDE. Скачав нужную версию программы, например 1.8.3, и установив на свой компьютер, необходимо её настроить. Для этого надо выполнить следующее:
- Создать папку для своих проектов, например C:\ArduinoProjects.
- Распаковать в папку проектов архив Arduino Mega and ESP8266.zip.
- Запустить программу Arduino IDE.
- Открыть Настройки через Файл —>Настройки.
- В поле Размещение папки скетчей указать C:\ArduinoProjects.
- В поле Дополнительные ссылки для менеджера плат вписать
http://arduino.esp8266.com/stable/package_esp8266com_index.json.
Чтобы проверить работоспособность контроллера ATmega2560 необходимо проделать следующие операции:
Чтобы проверить работоспособность контроллера ESP8266 необходимо проделать следующие операции:
Чтобы проверить взаимодействие контроллеров ATmega2560 и ESP8266 необходимо проделать следующие операции:
- С помощью скрепки переключить ползунки DIP-переключателя в положения, указанные в таблице ниже.
1 2 3 4 5 6 7 8 RXD/TXD USB ATmega2560
ESP8266
ON ON ON ON — — — — 3 - Подключить плату к компьютеру с помощью USB-кабеля.
- В программе Arduino IDE выбрать плату Arduino/Genuino Mega or Mega 2560 через
Инструменты —>Плата —>Arduino/Genuino Mega or Mega 2560. - Открыть тестовую программу TEST_MEGA-ESP через Файл —>Папка со скетчами —>TEST_MEGA-ESP.
- Загрузить прошивку в контроллер через Скетч —>Загрузка.
- После успешной загрузки прошивки в контроллер открыть Монитор порта через Инструменты —>Монитор порта.
- Контроллер Arduino Mega должен считать данные с порта обмена данных с контроллером ESP8266 и выдать их в окно Монитора порта.
Плату можно найти в интернет магазине RobotDyn, eBay или AliExpress по ключевым словам «ATmega2560 ESP8266 CH340G». Цена на плату колеблется от 10$ до 25$ в зависимости от качества исполнения и жадности продавца. Я покупал плату на AliExpress за 11$.
Еще один обзор платы можно прочитать по этой ссылке.
WEMOS Мега + WiFi R3 ATmega2560 + ESP8266 (32 МБ памяти), USB-TTL CH340G — как установить ESP3D Server
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Задавался я уже вопросом целесообразности покупки Меги с Wi-Fi на борту. Меня отговаривали, но я упрямый. Купил на Али этого ‘монстра’ и с начала пожалел, но.
Перечитал все, что есть по этим платам в нете. Инфы именно по плате с 32Мб на борту очень мало. Пробовал установить сервер по мануалу Mega + Wifi или подключение принтера к домашней сети. Все вроде бы и расписано, но не складывается, у меня ведь 32Мб памяти. Каким-то чудом удалось поставить одну из старых версий сервера, но постоянные обрывы связи с сервером, убогий интерфейс — меня поставили в ступор. Потом пробовал более новую версию сервера ставить — ничего не выходило. Перебрал все возможные варианты по всем платам из набора плат ESP8266 в Ардуино. Пытался разобраться с самыми простыми сборками на чипе ESP8266, подставляя параметры под свою плату. В общем облом.
Но тут подходит к концу сборка H-bot и нужно уже мозги готовить. 🙂 Попытка номер 2 — и тут пошло!
В общем сперва нужно определить реальный размер памяти этого ‘монстра’. Я упускаю момент как подключить библиотеку с платами ESP8266, это расписано в статье по ссылке выше.
После установки библиотеки заходим в Инструменты/Плата/ и выбираем Generic ESP8266 module. Потом Файл/Примеры/ESP8266 и выбираем скетч CheckFlashConfig Проверяем установки модуля ESP:
(желтым я выделил как устанавливал)
Вот тут и понимаешь, что китайцы тебя опять ‘намахали’. Реальный объем памяти 4Мб
Ну что поделать? Имеем, что имеем!
Правим данные в меню настройки плат
Теперь открываем ранее скачанный проект ESP3D и запускаем esp3d.ino Идем в Файл/Настройки/ и вносим в строчку ‘Дополнительные ссылки для Менеджера плат‘ вот эту строчку: http://arduino.esp8266.com/stable/package_esp8266com_index.json (А грозился не повторять 🙂 )
Заходим в инструменты/Плата/Менеджер плат и в строке поиска набираем ESP получаем список плат и убеждаемся, что установлена последняя версия для плат ESP
Далее выбираем наш модуль, как писал выше — Generic ESP8266 module и теперь выставляем все параметры как на скрине, если у Вас объем памяти отличается от 4Мб, тогда выбирайте из списка нужный объем.
Загружаете это в плату. В окне монитора, после успешной заливки можно наблюдать приглашение отправленное на принтер.
Не забываем перевести переключатель 7 в OFF!
Подключаемся компом(ноутом) по Wi-Fi к обозначенной сети. Пробовал с андроида — как-то через раз и долго подключается(может из-за того, что у меня ведро 8.1.0), а ноутом на раз.
Можно выбрать сразу все 4-е файла и загрузить их. Перегружаем плату и после переподключения к сети попадаем в первоначальные настройки сервера. Ниже ряд скринов не нуждающихся в коментариях.
Собственно вот и все грабли по которым я ходил с этой Мегой.
Что-бы связать модуль и Мегу между собой — выставляем переключатели 1,2,3,4 в положение ON — остальные в OFF, второй переключатель в положение TXD3 Теперь по USB можно достучаться к мозгам принтера, а так же через WEB-морду.
При подключении ноутом к точке доступа этой платы — никаких проблем с соединением или качеством связи не замечено.
Вывод: можно пользовать эту плату вместо Меги2560 и без дополнительных соплей и модулей иметь подключение к принтеру через web-морду. Так же можно настроить и подключение к действующей сети Wi-Fi. Все настройки доступны Через WEB-морду во вкладке ESP3D
Из ПЛЮСОВ — питание +5В организовано через MP2307DN, что позволяет нормально подавать на эту плату внешнее питание до 26В и получать стабилизированные 5В до 3А.
П.С. Плату так и не проверю в действии на боевом принтере, так как нацелился на MKS TFT28, уже на пол-пути ко мне из Китая. Так что этот монстр пойдет на продажу.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.