Начало работы с UNO+WiFi R3 ATmega328P+ESP8266

Привет всем. Эта запись — шпаргалка по работе с платой «UNO+WiFi R3 ATmega328P+ESP8266, 8Mb flash, USB-TTL CH340G, Micro-USB». Потратил немало времени в поисках информации, чтобы понять как с ней работать.

Это кастомная версия платы Arduino UNO R3. Интеграция микроконтроллера Atmel ATmega328 с Wi-Fi чипом ESP8266 и USB-TTL конвертором CH340G на борту. Купить можно на али.

UNO+WiFi R3 ATmega328P+ESP8266, 8Mb flash, USB-TTL CH340G
UNO+WiFi R3 ATmega328P+ESP8266, 8Mb flash, USB-TTL CH340G

Распиновка платы:

Распиновка платы UNO+WiFi R3 ATmega328P+ESP8266
Распиновка платы UNO+WiFi R3 ATmega328P+ESP8266

Arduino UNO GPIO расположены и промаркированы привычным образом. Пины ESP8266 расположились вблизи контактов «RX» и «TX» Arduino. Их маркировку можно найти на обратной стороне платы.

Интегрировали, интегрировали, да недоинтегрировали =)).

По сути, работать с Arduino UNO нам придется отдельно, а с ESP8622 (Wi-Fi) отдельно, короче говоря, как и раньше… Плюс в том, что теперь у нас один разъем питания на двоих и… с помощью переключателей мы можем связать ATmega 328P и ESP8622 по serial. Провода в этом случае больше не нужны. Из минусов — то и дело нужно выставлять переключатели на плате в нужное положение для заливки скетча в UNO или ESP.

Работаем с платой UNO+WiFi R3 ATmega328P+ESP8266 в Arduino IDE.

Подсоединим плату к компьютеру с помощью micro USB, если винда сама не найдет и не установит нужный драйвер для USB-TTL CH340G, качаем его отсюда и накатываем. Добавляем в Arduino IDE возможность для работы с модулем ESP8266. Как это сделать написано в начале заметки «Добавляем ESP8622 NodeMCU в Arduino IDE и работаем с датчиками DS18B20«.

Табличка выбора режимов работы платы в зависимости от положения микропереключателей:

Установка переключателей12345678
CH340 подсоединен к ESP8266 (загрузка скетча)OFFOFFOFFOFFONONON
CH340 подсоединен к ESP8266 (мониторим COM)OFFOFFOFFOFFONONOFF
CH340 подсоединен к ATmega328 ( загрузка скетча )OFFOFFONONOFFOFFOFF
Mega328+ESP8266 (serial соединение)ONONOFFOFFOFFOFFOFF
Модули работают независимоOFFOFFOFFOFFOFFOFFOFF

Для начала выберем в среде разработки Arduino IDE плату Arduino UNO, переведем переключатели 3 и 4 на плате в положение ON (остальные OFF) и зальем для теста простой до безобразия скетч:

void setup(){
 Serial.begin(9600);
  }

void loop()
{
  Serial.println("Привет, я ATmega328P");
  delay(2000);
  }
Заливка скетча в Arduino UNO
Заливка скетча в Arduino UNO

Работает как и обычно: залили скетч, открыли монитор порта и можем наблюдать вывод в COM порт. Теперь зальем аналогичный скетч в ESP8266. Рекомендую сначала закрыть окно монитора порта. В инструментах Arduino IDE выберем плату «Generic ESP8266 Module» Установим переключатели 5, 6 и 7 на плате в положение ON (остальные OFF), нажмем на кнопку «MCU Reset» и наблюдаем свечение красного светодиода возле Wi-Fi (ESP) чипа, означающего что можно загружать скетч.

ESP8266 готова принять скетч ))
ESP8266 готова принять скетч ))
void setup(){
 Serial.begin(9600);
  }

void loop()
{
  Serial.println("Привет, я ESP8266");
  delay(2000);
  }

Открываем монитор порта и наблюдаем там… НИЧЕГО =))

Пустота в мониторе порта
Пустота в мониторе порта

Оставим включенным лишь один переключатель — #5 и нажмем на кнопку «MCU Reset», красный светодиод возле ESP чипа погаснет и в монитор порта пойдут данные:

Вывод данных ESP8266 в монитор порта
Вывод данных ESP8266 в монитор порта

Кстати, если сейчас выставить переключатели 3 и 5 в ON (остальные — OFF), то в окне монитора порта будем наблюдать приветствие от обоих микроконтроллеров:

Монитор порта Arduino UNO Wi-Fi
Монитор порта Arduino UNO Wi-Fi

Иногда все вроде делаем как написано (или не совсем=)), а не всегда получаем то, что хотим… Ошибки. Например, после компиляции скетча ни в какую не получается его залить в ESP8266 Wi-Fi модуль платы, выходит ошибка соединения: Failed to connect to ESP8266: Timed out waiting for packet header. Первым делом проверим положение переключателей (5 6 7) и состояние светодиода у чипа ESP (должен светиться красным). Если в норме, то скорее всего открыто окно монитора порта, закройте его. Как правило, это помогает!

Вот так совсем просто работать с платой UNO+WiFi R3 ATmega328P+ESP8266, 8Mb flash, USB-TTL CH340 в среде Arduino IDE. Надеюсь эта запись кому-нибудь пригодится. Для меня это будет рабочей шпаргалкой по работе с этой платой. Но, чувствую, пока я допилю управление вентиляционной установкой под эту плату, положение переключателей запомню наизусть =)). А завтра попробую скормить по Serial данные с датчиков температуры, подключенных к Arduino в ESP8622.

Управление вентиляционной установкой на Arduino.

Поделиться ссылкой:

2 thoughts on “Начало работы с UNO+WiFi R3 ATmega328P+ESP8266

  1. Иван

    Добрый вечер. У меня произошла беда с этой платой. Это было полгода назад. Точно не помню из-за чего, но суть в том что теперь не грузится ничего в атмегу. В есп грузится и она работает (пользовался вашей подсказкой) А атмега не принимает ни скетч ни загрузчик (купил такую же плату -он классная) со второй платы пробовал записать загрузчик. Как можно использовать есп и все что есть на плате — пины (жалко выбрасывать, есп же работает) ?

    1. admin Автор записи

      Иван, здравствуйте. Используйте соответствующие пины ESP — они особняком на плате расположены! Атмеговские, соответственно, не получится использовать…

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

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