Mega + Wifi?

Hallo in die Runde, ich habe ein Projekt was schon einige Jahre läuft.

Es besteht aus einem Mega, einem 7" TFT mit 16bit- serieller Ansteuerung, einer DS3232 Uhr und einem nrf24.

Ich möchte nun gern die Uhrzeit nicht mehr von der DS3232 holen, sondern via Wifi aus dem Netz.
Gern würde ich noch Wetterdaten von Openweathermap mit einbinden- muss aber nicht zwingend sein.

Wie kann ich ein nodeMCU oder ESP8266 mit dem Mega verbinden und zum laufenbringen?

Oder gibt es ein MEGA- Board was WiFi an Board hat und direkt genutzt werden kann, ohne an der Verkabelung zum TFT etwas zu ändern?

nur paar gedanken:
Uno/MEGA mit WIFI Shield war bei mir immer sehr unstabil, hab ich schon mehrere Jahre nicht mehr im Einsatz.
Uno/MEGA mit LAN Shield an einem Accesspoint sollte eigentlich sehr stabil sein.
Die NodeMCU/ESP8266 laufen sehr stabil - ich würde diese jedoch immer komplett als Master laufen lassen und den MEGA nur als "Porterweiterung" z.b. über I2C anbinden, wobei es dann zu überlegen gilt, auf andere Portexpander auszuweichen.

Hm... dann müßte ich an dem sehr großen Sketch zu viel umbauen... :frowning:

Bevorzugen würde ich etwas wo ich z.b. einen ESP8266 oder ähnliches separat einbinden kann- vielleicht über I2C oder so?

Also generell würde ich auch das ganze Projekt auf einen ESP umstellen- was aber schon daran scheitert, dass ich da kein 7" SPI TFT finde was kompatibel wäre... Ich hab schon ein RA8875 erfolgreich mit Teensy zum laufen gebrahct- das Teil stört aber SPI derart, dass ich schon kein nrf24 einbinden kann...

Eine Anbindung eines ESP an einen Mega über eine der seriellen Schnittstellen wäre simpel.

Ein Nextion könnte die Anzeige auf einem ESP übernehmen ohne SPI zu beinflussen oder zu stören.

Mit den Nextion werd ich irgendwie nicht warm :-/

OK, den ESP an den Mega seriell anbinden klingt am sinnvollsten… dann müßte ich also nur die beiden Datenleitungen und die Stromversorgung anschliessen- das wäre schon mal ein schön kleiner Aufwand bzgl. der Verdrahtung…

Hat das schon jemand gemacht und kann mir Tipps zum Sketch geben? Muss ich den Sketch für das Abfragen der Uhrzeit direkt auf den ESP flashen? Oder muss ich mit dem Mega über AT- Befehle dem ESP sagen was er wo holen soll?

Und wenn wir schon dabei sind: ( :smiley: ) Kann ich dann auch gleich den Mega und den ESP künftig via OTA falshen?

OK, ich weiß, das ist schon weit übers Ziel hinaus… will nur wissen, was bei der Hardware-seitig simplen Lösung an Potential steckt. :smiley:

Ein Nextion lässt sich übrigens auch super über eine der seriellen Schnittstellen an einen Mega anbinden.

MaHa76:
OK, den ESP an den Mega seriell anbinden klingt am sinnvollsten... dann müßte ich also nur die beiden Datenleitungen und die Stromversorgung anschliessen- das wäre schon mal ein schön kleiner Aufwand bzgl. der Verdrahtung...

Du vergisst den 3.3 Spannungsregler den du benötigst.

MaHa76:
Muss ich den Sketch für das Abfragen der Uhrzeit direkt auf den ESP flashen? Oder muss ich mit dem Mega über AT- Befehle dem ESP sagen was er wo holen soll?

Beides ist möglich, OTA Update geht nicht mit AT Software, soweit ich das verstehe,
ein OTA Update eines Megas via ESP habe ich noch nicht gesehen.

Ah, danke für die Erinnerung an den Spannungsunterschied! Da muss noch ein Spannungsregler dazwischen... Mache so viel mit Teensy- da vergesse ich sowas schnell.

Du meinst sicherlich einen Pegelwandler, keinen Spannungsregler.

Schade, dass Du die Variante Wemos D1 mini als Master und MEGA als intelligente Porterweiterung über I2C ablehnst.
Du könntest den größten Teil des MEGA-Codes weiter verwenden, nur die Resultate dann auf Anforderung an den ESP8266 übertragen und von dort per WLAN weiter. Wenn Du Interesse hast, kannst Du Dir dieses Beispiel mal anschauen.

Gruß Tommy

Wenn ich den Mega als Porterweiterung nutze und der eigentliche Code auf dem ESp läuft, würde es doch aber mit dem nrf24 komplizierter werden, oder?

Ich überleg ja schon, ob ich das was der ESP an Daten zu liefern hat einfach via nrf24 hole :slight_smile: also den ESP mit einem nrf irgendwo liegen hab und den als "Sensor" einbinde... das wäre vom Sketch her recht simpel, da der Mega schon X Sensoren abfragt und die Daten weiter verarbeitet.

das macht (für mich) sogar mehr Sinn als den ESP verdrahtet über AT-Befehle anzusteuern.

Schau dir vieleicht auch noch den ESP32 an, hat mehr Beinchen als ein Esp8266-E10 und sollte auch Platz haben für einen nrf24. vieleicht kommst mit einem ESP32 komplett ohne Mega aus?

Naja, komplett ohne Mega wäre natürlich super- aber für das Display brauche ich 21(?) PINs...

Oooooooooder.... ich nehme einen nano oder Teensy LC oder 3.2 nur für die Ansteuerung eines RA8875 Displays- verbinde dann diesen mit einem nodeMCU und der übernimmt auch den nrf24 (?) Wie schaufel ich dann die Daten zwischen den (z.b.) Teensy und dem NodeMCU hin und her?

i2c

edit: dieses 21 PIN Display … das ist schon eine Ansage. da gibts keine Alternative, 4bit/8bit modus statt 16bit, fertiges “Shield” zum einfacheren ansteuern über I2C, SPI.

Ansonsten vom Aufwand evtl. Display am Mega lassen und vom NodeMCU aus ansteuern, aber auch da wäre ich wieder bei I2C NodeMCU Master, Mega-Slave.

Ich möchte ja möglicherweise möglichst wenig in die Hardware eingreifen- die ist passend in ein Gehäuse montiert und funktioniert schon etliche Jahre...

Könnte man mit I2C auch den Mega als Master und eine nodeMCU als Slave laufen lassen?

Ja, das wäre so, wie wenn Du ein Paddelboot als Transportmittel und einen Öltanker daran als Rettungsboot hast. Es sollte gehen, aber über die Sinnfälligkeit kann man geteilter Meinung sein.

Ich weiß aber nicht, ob schon mal jemand einen ESP8266 als I2C-Slave betrieben hat. Funktionieren sollte es aber. Man wird ihm dann eine I2C-Adresse zuweisen müssen.

Gruß Tommy

Ja :smiley: Das ist mir auch klar... da macht ein lahmer Mega den Hauptjob und der ESP wird dann mal alle Stunde gefragt ob er sich dolle langweilt und mal eben auf die Uhr schauen kann :slight_smile:

Aber was will ich machen? Die Hardware steht (bei meinen Eltern) und läuft :slight_smile: Da sind kleine Änderungen an erster Stelle im Lastenheft.

ESP als I2C Slave ... könnte klappen oder Tommy?

Wär' doch irgendwie witzig einen ESP den Adress-Satz vom DS3232 beizubringen, sodass dieser als RTC mit NTP läuft und andererseits mit der timelib zusammenarbeitet. Quasi ein Drop-In Replacement.

zwar irgendwie auch sinnarm aber warum nicht.

Der ESP soll nur die Zeit holen? Warum nimmst Du dann nicht eine DS3231?

Gruß Tommy

noiasca:
Wär' doch irgendwie witzig einen ESP den Adress-Satz vom DS3232 beizubringen, sodass dieser als RTC mit NTP läuft und andererseits mit der timelib zusammenarbeitet. Quasi ein Drop-In Replacement.

Dann müsstest Du die DS3231 an den ESP hängen und Dir eine spezielle Syncfunktion bauen:

  1. Hole NTP-Zeit. Wenn erfolgreich stelle die RTC nach und triggere Time
  2. Wenn nicht erfolgreich triggere Time aus RTC.

Mit mehreren NTP-Servern kann man das noch ausbauen.

Gruß Tommy

noch mal #1 gelesen ... nö - soll auch openweather abfragen, ok, also doch grob umbauen.

aber genau dann ist es doch eh wieder soweit: Nur das Display + Mega überlassen und alles auf den NodeMCU od. ESP32 migrieren. ESP32 bringe ich ins spiel wegen der zweiten vollen UART Schnittstelle.

Naja, die DS hängt da im Moment schon dran... Ich will mit dem ESP langsam anfangen, weil er später auch mal Wetterdaten von Openweathermap holen soll - das hab ich standalone schon geschafft. Bei der Integration in das bestehende Projekt will ich aber erstmal klein anfangen und die Uhrzeit als ersten Schritt holen. Priorität hat, dass das System immer stabil läuft- daher lieber in kleinen Schritten und dann immer wieder testen.

Bei größeren Änderungen kann ich auch die Hardware komplett neu zusammenstellen... Dafür wären die Anforderungen: ein 7" TFT, ein nrf24, Wifi und gern SD. :smiley: Bin offen für Vorschläge, das ganze sollte aber auch preislich im Rahmen bleiben... ein RA8875 TFT hab ich noch- mit dem ESP und der sumotoy-RA8875-lib hab ich es aber nicht zum Laufen gebracht, an einem Teensy 3.6 läuft es inkl. Touch ohne Probleme.