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


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. (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.