Прошивка Arduino Mega 2560 R3 с интегрированным WiFi

Это уникальная версия классической платы Arduino Mega R3. Полная интеграция микроконтроллера Atmel ATmega2560 и микросхемы Wi-Fi ESP8266 с 32 МБ (мегабит) флэш-памяти и преобразователем CH340G USB-TTL на одной плате! Все компоненты могут быть настроены для совместной или независимой работы.

Режим работы выбирается с помощью встроенных DIP-переключателей:

Переключение статуса и выбора режима:

Режим работы12345678
CH340 подключен к ESP8266 (загрузка скетча)ВыклВыклВыклВыклВклВклВклНе исп.
CH340 подключен к ESP8266 (работа)ВыклВыклВыклВыклВклВклВыклНе исп.
CH340 подключен к ATMEGA2560 (загрузка скетча)ВыклВыклВклВклВыклВыклВыклНе исп.
CH340 подключен к ATMEGA2560 COM3 подключен к ESP8266ВклВклВклВклВыклВыклВыклНе исп.
ATMEGA2560 + ESP8266ВклВклВыклВыклВыклВыклВыклНе исп.
Независимая работа ATMEGA2560 и ESP8266ВыклВыклВыклВыклВыклВыклВыклНе исп.

Также есть переключатель для смены соединительного порта между ATmega2560 и ESP8266.

После выбора режима работы платы можно приступить к настройке IDE

Важно, чтобы при программировании модуля ESP8266 была нажата кнопка «Режим».

Для начала откройте среду программирования Arduino IDE и перейдите в настройки

Затем в окне, которое появляется в строке, URL-адреса диспетчера дополнительных досок (отмечены красным) вставьте ссылку

http://arduino.esp8266.com/stable/package_esp8266com_index.json

для установки в Arduino IDE дополнительных сценариев, которые будут работать с модулями ESP8266. и нажмите ОК

Затем перейдите в Tools -> Board -> Boards Manager

В появившемся окне прокрутите список вниз до сценария esp8266 от сообщества ESP8266 и нажмите Install.

В правом нижнем углу сможете выбрать версию программного обеспечения (2.1.0 самая новая версия на момент написания инструкции).

После установки закройте окно и перейдите в Tools -> Board и увидите список доступных устройств на чипе программирования ESP8266

Далее необходимо выбрать карту, как показано на рисунке (модуль Generic ESP8266)

Выберите скорость загрузки — 115200

Тестовый скетч

void setup() {
  Serial3.begin(115200);
  pinMode(13,OUTPUT);
  delay(500);
  Serial3.println("AT+CIPMUX=1");
  delay(2000);
  Serial3.println("AT+CIPSERVER=1,5000");
  delay(2000);
  Serial3.println("AT+CIPSTO=3600");
  delay(2000);
}


void loop() {
   while(Serial3.available()) {
    char Rdata;
    Rdata=Serial3.read();

    if (Rdata=='A'|Rdata=='a') {
      digitalWrite(13,HIGH);
      delay(50);
    } else if (Rdata=='B'|Rdata=='b') {
      digitalWrite(13,LOW);
      delay(10);
      digitalWrite(13,HIGH);
      delay(10);
      digitalWrite(13,LOW);
    } else {
      digitalWrite(13,LOW);
    }
  }
}