WeMOS Mega + WiFi R3 ATmega2560 + ESP8266 USB-TTL For Arduino Mega NodeMCU
Features:
Use this board is very simple
The board has DIP-switch, to connect the modules
For example, to: USB and ATmeg2560, USB and ESP8266, ATmega2560 and ESP8266
It is a customized version of the classic ARDUINO MEGA R3 board. Full integration of Atmel ATmega2560 microcontroller and ESP8266 Wi-Fi IC, with 32 Mb (megabits) of flash memory, and CH340G USB-TTL converter on a single board! All components can be set up to work together or independently.
Operating mode is selected by means of DIP switches on-board:
Table DIP- Switch:
Connection | DIP | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
ATmega2560<->ESP8266 | ON | ON | OFF | OFF | OFF | OFF | OFF |
USB <->ATmega2560 | OFF | OFF | ON | ON | OFF | OFF | OFF |
USB<->ESP8266 (Update firmware or sketch) | OFF | OFF | OFF | OFF | ON | ON | ON |
USB<->ESP8266 (communication) | OFF | OFF | OFF | OFF | ON | ON | OFF |
All independent | OFF | OFF | OFF | OFF | OFF | OFF | OFF |
Also, have switch for change of connecting port between ATmega2560 and ESP8266
Special solution:
USB <->ATmega328<-> ESP8266
Connection | DIP | SWITH 2 | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
USB <-> ATmega2560<-> ESP8266 | ON | ON | ON | ON | OFF | OFF | OFF | To RXD3/TXD3 |
After choosing the mode of the board can proceed to set up the IDE
It is important that when the ESP8266 module is programming, it is necessary to press the button “Mode”
USB converter CH340G connect to RX0/TX0 of ATmega2560
ESP8266 connect to RX3/TX3 of ATmega2560
Size: 10.5x5.3cm/4.13x2.09inch
Then in the window that appears in the row, Additional Boards Manager URLs (marked in red) insert http://arduino.esp8266.com/stable/package_esp8266com_index.json link for installation in Arduino IDE additional scripts that would work with the modules ESP8266 and click OK
==========test sketch for ATmega2560===========
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);
}
}
}