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
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?
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.
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.
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.
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.
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!
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
Kevin M. schrieb: > > Bisher hat doch noch keiner eine nicht serielle Verbindung > vorgeschlagen? Na das ist doch dann gut, oder ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.