Arduino Mega 2560+ESP WIFI

Last Updated on 1. April 2022 by sfambach

Es handelt sich hierbei um ein hybrides Board aus Atmega 2560 und einem Espressiv Chip (ESP8266) für die WLan Kommunikation.

Ansicht

Überblick

[table id=6 show_columns="1,16" hide_columns="2-30" /]

Board Funktionen

Arduino Mega + ESP Beschriftet
Arduino Mega + ESP Beschriftet

Zusätzlich sind einige Pins des ESP herausgeführt. Die Beschriftung ist auf der Rückseite des Boards zu finden.

Dipschalter Belegung

1234567
ATMega <->ESP AnAnAus Aus Aus Aus Aus
USB <-> ATMega Aus Aus An An Aus Aus Aus
USB <-> ESP Firmware Aus Aus Aus Aus An An An
USB <-> ESP Kom. Aus Aus Aus Aus An An Aus
Keine Verbindungen Aus Aus Aus Aus Aus Aus Aus

Spezielle Pin-Belegungen

FunktionPins
Interrupt 2, 3, 18, 19, 20, 21
Serialport 1
Serialport 2
Serialport 3
Serialport 4
0(RX), 1(TX)
19(RX), 18(TX)
17(RX), 16(TX)
15(RX), 14(TX)
Led 13

Genauer hingesehen

Hier ein paar Schnappschüsse mit dem Mikroskop.

Programmierumgebung

Mega Einstellungen

Dipschalter 3,4 auf ON Rest auf OFF

Auswahl Arduino Mega in der Arduino IDE
Auswahl Arduino Mega in der Arduino IDE

ESP Einstellungen

Evtl. vorher noch die ESP8266 Programmierumgebung einrichten. Ich verwendete hier die Version 2.7.1 der Boardtreiber.

Dipschalter 5,6,7 auf ON Rest auf OFF. Sollte das programmieren nicht beginne ist ein Reset  des Boards nötig. Das spielen mit der Reset Methode im Menü brachte hier leider keine Besserung.

Überblick Arduino Mega Einstellungen in Arduio IDE
Überblick Arduino Mega Einstellungen in Arduio IDE

Test Programme

Als Testprogramme können die, des hier gelinkten Beitrags verwendet werden.

Sonstiges

AT-Lib Verwenden

Wenn man noch nicht so genau weiss wo die Reise hin geht und für was der ESP auf dem Board gebraucht wird, kann man erst einmal eine Maximalkonfiguration aufspielen. Dh. man spielt die sogenannte AT-Firmware auf, die durch Steuerkommandos (die auf komischerweise alle mit AT beginnen) konfiguriert wird ohne jedes mal neu programmiert zu müssen. Wer jetzt glaubt vom Regen in die Traufe zu kommen und AT Kommandos lernen zu müssen hat Glück, es gibt eine gegestück für den Arduino. Ein paar Klassen erlauben es den ESP mit einfachen Methodenaufrufen zu steuern ohne die AT Kommandos verwenden zu müssen. Somit ist sind die Ziele:

  • Aufspielen der AT-Firwmare auf den ESP
  • Programm auf dem Arduino erstellen welches den ESP als WLAN Adapter nutzt

HINWEIS: Schaut mal vorba ob nicht schon die AT Firmware auf dem dem ESP vorhanden ist, solltet ihr sie überschrieben haben, kein Problem hier erfahrt ihr wie ihr sie wieder herstellen könnt.

Den ESP vorbereiten

Den ESP sebst auf Programmierung einstellen:

Für den ESP benötigen wir eine Version der AT Bibliothek. Diese gibts als Binärdatei auf der Espressif Homepage.

https://www.espressif.com/en/support/download/at

Sollte die gewählte Firmware nicht funktionieren, probiert mal ältere Versionen aus. Auch ich habe mehrere ausprobiert und ich bin bei Version 1.6 in dieser Konstellation gelandet.

Zum flashen der Binärdatei auf den ESP kann jedes beliebige Tool verwendet werden, hier das vom Hersteller.

Tool und Binärdatei entpacken. Geladen wird mit der 1.6 Version wie folgt. In den README Dateien der Zip’s ist meist beschrieben wie diese zu flashen sind (hat bei mir alles nicht funktioniert, habe nach unzählig Versuchen eine Kombi gefunden die bei diesem Board funktionierte).

MEGA+WIFI – Start Flash Tool von der Festplatte
MEGA+WIFI – Start Flash Tool Modus auswählen

Dateien Auswählen, Speicherbereiche eingeben, Einstellungen anpassen und noch die richtige Verbindung zum Board wählen. Danach auf Start und warten was passiert.

MEGA+WIFI – Flashoption für AT Firmware

Ob die Firmware richtig installiert ist kann in der Arduino IDE Konsole überprüft werden. (Nicht vergessen Dipschalter 7 wieder aus zu schalten, sonst geht nichts). Boud Rate ist 115200 als Zeilendend NL/CR auswählen und oben in die Sendezeile AT eingeben. Kommt ein OK zurück klappt erstmal alles.

MEGA+WIFI – Konsolen AT Kommando Spass

Wer noch mehr über die vorhandenen AT Kommandos wissen will kann sich auf der folgenden Seite informieren.

https://docs.espressif.com/projects/esp-at/en/latest/AT_Command_Set/index.html

Da im Arduino auf das Netzwerk zugegriffen werden soll möchte ich das vorab mal mit AT Kommandos prüfen:

AT+CWMODE=1 -> Station Mode einschalten

AT+CWLAP -> Netzwerk scannen gibt ne liste zurück

AT+CWJAP=“NODES“,“HappyNodes1234″ -> Mit Accesspoint verbinden

AT+CIFSR -> Infos zur Verbindung abrufen

AT+CWDHCP? -> DHCP aktiviert ? wenn nicht mit AT+CWDHCP:1 aktivieren

hier gehts bald weiter .... 

Externe Antenne anschliessen

Wie ihr im Bild seht ist mein Mega+Wifi etwas eingestaubt. Nichts desto trotz kam die Frage auf, was zu tun ist um eine extene Antenne anzuschliessen. Hierfür muss die Brücke (0 Ohm Widerstand) aus dem Bild umgelötet werden auf die freie Position (2).

Mega+Wifi – Brücke umlöten von 1 nach 2.

Fazit

Wer ein Arduino Uno kompatibles Board, eine Menge zusätzlicher Ports und eine WLan Anbindung benötigt, ist mit diesem Board richtig gut bedient. Der Antennenanschluss vergoldet das Board zusätlich, da hierdurch höhere Reichweiten erreicht werden können.

Zudem ist das Board recht günstig, seit dem der ESP32 draussen ist, wird das Board zum Teil unter 10€ gehandelt  (schaue beim schnellen Ali oder beim guten Beng nach 😉 ).

Quellen:

https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

https://www.arduino.cc/en/Hacking/PinMapping2560

https://www.instructables.com/id/Arduino-MEGA-2560-With-WiFi-Built-in-ESP8266/

https://robotdyn.com/catalog/boards/mega_wifi_r3_atmega2560_esp8266_flash_8gb_usb_ttl_ch340g_micro_usb/

https://docs.espressif.com/projects/esp-at/en/latest/AT_Command_Set/index.html

https://www.espressif.com/en/support/download/at

11 Gedanken zu „Arduino Mega 2560+ESP WIFI

  1. Hi,
    wollte dieses Board ESP-mäßig gerade nach deiner Anleitung einrichten. Leider ist auf der Espressif-Seite die Version die du in deiner Anleitung verwendest nicht mehr verfügbar. In der aktuellen Version stehen nicht die von dir verwendeten Bin-Dateien. Kennst du eine andere Downloadmöglichkeit oder kannst du mir diese Version per Mail zukommen lassen?

    Vielen Dank
    Thomas

      1. Hallo Stefan,
        vielen Dank für die schnelle Antwort. Habe es auch mit der aktuellen Firmware hinbekommen. DIP-Schalter 5 und 6 sind nun auf ON der Rest OFF. AT-Befehle funktionieren und Verbindung zur FritzBox funktioniert auch. Wenn die Verbindung steht ist sie auch stabil. Nur braucht es manchmal einige Boardresets bis der eine IP-Adresse bekommt. Obwohl in der FritzBox eingestellt ist das immer dieselbe IP-Adresse zugewiesen werden soll.

        Problem ist nun das ich keinen Sketch auf den ESP bekomme. Habe mir zum testen einen kleinen Sketch für einen Miniwebserver runtergeladen. Kompilierung läuft auch ohne Fehler. Nur ist in der Arduino IDE bei dem ausgewählten Board Generic ESP8266 unter Programmer „No Programmer available“. Bei dir in der obrigen Anleitung steht jedoch einer. Bekomme somit natürlich immer die Mitteilung das der Sketch aufgrund eines Timeouts nicht hochgeladen werden kann.

        Irgendeine schlaue Idee wo das Problem liegen könnte?

        Vielen Dank

        Thomas

        1. Hallo Thomas,
          habe es gerade mal bei mir gecheckt. Da steht mittlerweile wirklich kein Programmer komisch, Programmierung meines Boards ist aber möglich. Allerdings muss bei mir zum programmieren Dipschalter 567 aktiviert sein. nach dem Programmieren 7 wieder rausnehmen. ( Wenn nicht sowieso vom Strom abgezogen ESP dann nochmal in beiden Fällen resetten).
          Gruß Stefan

  2. Danke, guter Artikel
    Ich habe ein solches Board laufen, um RFLink über MQTT und Wifi mit meinem MQTT-Broker zu verbinden.
    Ich stelle fest, dass die Stabilität der Wifi Verbindung extrem Stao-abhängig ist. Ich habe eine Wifi Installation basierend auf Fritz 7560 und 2 Repeatern als Mesh. Ich nutze im Moment die PCB-Antenne.
    Hat jemand schon erfolgreich eine externe Antenne angeschlossen? Muss dafür etwas umgelötet werden?

    1. Hi, bin gerade im Urlaub und habe das Board nicht vor mir. Aber dachte immer dass zumindest meines nur mit externer Antenne funktioniert. Sehe weder eine aufgedampfte Antenne auf den Bildern noch die charakteristische 0 Ohm Brücke.

      Gruss Stefan

    1. Hallo Michi,
      guter Hinweis, die Version sollte man immer dazu schreiben :(. Werde ich gleich noch verbessern, ich habe die Version 2.7.1 verwendet, sollten keine Methoden umbenannt oder neu Bugs hinzugekommen sein, müsste es aber auch mit der 2.7.4 funktionieren :).

      Gruß
      Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert