Forum: Mikrocontroller und Digitale Elektronik Datenaustausch zwischen Arduino Mega und ESP NodeMCU


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johann B. (brockelmann)


Lesenswert?

Moin, ich habe folgendes Problem:
Ich möchte gerne einen Datenaustausch zwischen einem Arduino Mega2560 
Rev3 und einem ESP NodeMCU V3 ermöglichen. Über den ESP möchte ich gerne 
Befehle von Apple's HomeKit entgegennehmen, dafür habe ich einen 
Raspberry Pi als Bridge laufen und die Befehle an den Mega senden. An 
dem Mega sind 10 Lampen angeschlossen, die über 10 PWM Ausgänge 
angesteuert werden. Die Lampen können zusätzlich zu HomeKit, über ein 
Nextion-Touchdisplay und einer IR-Fernbedienung bedient werden, welche 
beide an den Mega angeschlossen werden. Hierbei sollen die geänderten 
Daten automatisch bei HomeKit und dem Touchdisplay angezeigt werden.
Zudem sollen noch verschiedene Sensoren (Temperatur-, Bewegungs- und 
Erschütterungssensor) an den Mega angeschlossen werden.
Wenn über HomeKit die Lampen angesteuert werden, soll der ESP die Daten 
zu dem Mega senden und wenn die Daten auf dem Nextion-Touchdisplay 
geändert werden, dann sollen die geänderten Daten zu dem ESP gesendet 
werden.

Nun wollte ich euch Fragen, ob Ihr schon Erfahrungen mit dem austausch 
von Daten zwischen dem Arduino Mega und dem NodeMCU habt und wie Ihr das 
umgesetzt bzw. welches Verfahren Ihr da verwendet habt.

LG Johann

: Verschoben durch Moderator
von Heinz R. (heijz)


Lesenswert?

Da gibt es viele Möglichkeiten - seriell, I2C, ....

Aber wofür brauchst Du den Arduino Mega? Das kann der ESP8266 doch 
alleine?

Evtl. für die vielen PWM-Kanäle noch ein PCA9685...

Oder, wenn Du mehr IOs brauchst, einen ESP32?

Nextion - hast Du das Teil schon? auch das kann ein ES heutzutage meist 
ganz alleine

Schau Dir mal ESPEasy an?

von FOp (Gast)


Lesenswert?

Da der ESP 3,3V Pegel hat und der Mega 2560 5V Pegel, würde ich 
vermutlich auf SPI setzen. Das sind realtiv wenige, unidirektionale 
Signale, die umzusetzen sind. RS232 wären zwar noch weniger, aber dafür 
geht bei SPI vermutlich mehr an Baudrate. Bei IIC aka TWI sind die 
Signale bidirektional. Ausserdem müsste ich jetzt nachschlagen, ob einer 
von beiden den Slave in Hardware spielen kann.

von Brain 2.0 (Gast)


Lesenswert?

Das sind alles keine wahnsinnig schnellen Vorgänge. Da reicht seriell 
durchaus aus.
Die Verbindung der Controller über 1k Widerstände durchführen, um die 
Spannungsunterschiede auszugleichen.
Das funktioniert prima, mehrfach so genutzt.

von Kevin M. (arduinolover)


Lesenswert?

Brain 2.0 schrieb:
> Da reicht seriell
> durchaus aus.

Bisher hat doch noch keiner eine nicht serielle Verbindung 
vorgeschlagen?

Wenn du vor hast das ggf. noch zu erweitern und vielleicht auch mehrere 
Module über eine gewisse Distanz zu verbinden werf ich mal noch CAN in 
den Raum. Ansonsten ist die einfachste Verbindung zwischen den beiden 
wohl UART.

von c-hater (Gast)


Lesenswert?

FOp schrieb:

> Da der ESP 3,3V Pegel hat und der Mega 2560 5V Pegel, würde ich
> vermutlich auf SPI setzen.

Ja und zwar mit dem ESP32 als Slave und dem 2560 als Master, aber nicht 
mit der dedizierten SPI-Hardware, sondern mit einer UART im 
SPI-Master-Mode.

Dann würden 8MBit/s gehen.

> Das sind realtiv wenige, unidirektionale
> Signale, die umzusetzen sind.

Was allerdings auch bei "nur" 8MHz schon nicht mehr so ganz trivial ist. 
Aber  immerhin noch mit Hobbymitteln beherrschbar.

von Johann B. (brockelmann)


Lesenswert?

Heinz R. schrieb:
> Oder, wenn Du mehr IOs brauchst, einen ESP32?

Auf den ESP32 bin ich gar nicht gekommen, wusste gar nicht, dass dieser 
so viele analoge/digitale Pins, sowie PWM kompatible Pins besitzt.

Werde mich mit dem mal etwas beschäftigen, vielen Dank!

Heinz R. schrieb:
> Nextion - hast Du das Teil schon?

genau, das Nextion habe ich schon hier liegen.

c-hater schrieb:
> Ja und zwar mit dem ESP32 als Slave

Wenn ich mich recht erinnere, kann man den ESP nur als Master und nicht 
als Slave benutzen.

Und vielen Dank für die anderen Antworten, ich werde mich erstmal mit 
dem ESP32 beschäftigen und mich gegebenfalls nochmal melden!

von Arno (Gast)


Lesenswert?

Tipp: Schau dir auch den ESP32-S2 an. Wenn du kein Bluetooth, Ethernet 
oder CAN brauchst, kann das die bessere Option sein als der ESP32.

Braucht weniger Strom, hat mehr I/O-Pins, ist billiger und ist direkt 
per USB flashbar, spart also auch noch den USB-UART-Wandler. Nur noch 
nicht so weit verbreitet.

MfG, Arno

von Brain 2.0 (Gast)


Lesenswert?

Kevin M. schrieb:
>
> Bisher hat doch noch keiner eine nicht serielle Verbindung
> vorgeschlagen?

Na das ist doch dann gut, oder ?

von Stefan ⛄ F. (stefanus)


Lesenswert?

Du kannst den ESP auch mit I²C Port-Expandern erweitern. Zum Beispiel

PCF8474 8x parallel I/O
PCF8591 4x analog in, 1x analog out
PCA9685 16x PWM output
MCP23017 16x parallel I/O

Oder auch ganz einfache Schieberegister 74HC165 und 75HC595. Oder den 
TPIC6B595 wenn du starke Ausgänge brauchst.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.