Datenaustausch zwischen Arduino Mega und ESP NodeMCU

OP #6589512
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
#6589518
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?
Gast #6589566
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.
Gast #6589572
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.
Gast #6589582
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.
OP #6589618
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!
Gast #6590019
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren