Ich habe eine kleine Umweltstation gebaut.
Das Ganze läuft über ein Mega.
Nun möchte ich die Station auf´s Dach setzen und die Daten per Wlan übertragen lassen.
Ich habe dafür ein ESP8266 an das Board angeschlossen.
Irgendwie komme ich nicht weiter.
Ich habe den ESP als Client eingerichtet.
Er verbindet sich auch mit dem Hausnetzwerk.
Jetzt müsste ich nur wissen wie ich die Verbindung vom Arduino zum ESP herstelle und die Daten gesendet werden.
Mit dem Ethernet-Shild ging das relativ einfach.
Eigentlich müsste die Dachstation Server sein.
Die "Bodenstation" fordert von dort die Daten ab.
Ob das ein Webserver oder ein UDP-Server ist, bleibt Dir überlassen.
Wenserver gibt es mehr Beispiele, UDP ist schlanker vom Datentransport her.
Der ESP und der Mega kommunizieren per Serieller Verbindung (Also Rx/Tx ist schon richtig).
Als Client kann er zum Beispiel die Daten über php dem Server übergeben. So etwa:
speichere_daten.php?data=25
Dafür gibts ja diverse Anbieter.
Eine Library die du verwenden könntest wäre zum Beipsiel diese.
rieders:
Nun möchte ich die Station auf´s Dach setzen und die Daten per Wlan übertragen lassen.
Ich habe dafür ein ESP8266 an das Board angeschlossen.
Was ist an dem Text nicht zu verstehen?
Die Datenübertragung soll über WLAN geschehen.
Was noch unklar ist:
rieders:
Jetzt müsste ich nur wissen wie ich die Verbindung vom Arduino zum ESP herstelle und die Daten gesendet werden.
Mit dem Ethernet-Shild ging das relativ einfach.
Ob er damit einen zweiten Arduino meint, der im lokalen Netz per Draht-LAN angeschlossen ist.
Er wird kaum vom Dach RX/TX runter zu einem Arduino ziehen. Da wäre auch WLAN völlig überflüssig.
Hier fehlen noch ein paar Infos vom TO.
Er will ja den ESP ans Board anschliessen.
Die eleganteste Lösung wäre natürlich ein ESP15 also Solist, der sollte genügend Ausgänge haben und alles selbst schalten zu können.
Wenn´s denn unbedingt der Mega sein soll:
Es muss unbedingt eine AT-Firmware auf dem ESP geflasht sein, nix was per Arduino-IDE eingespielt wurde, die können mit AT-Befehlen nicht umgehen.
Benutze die WiFiESP.h, mit den mitgelieferten Beispielen sollte es schnell ersichtlich sein, wie es arbeitet.
Wichtig ist halt nur, dass die AT-Firmware wieder draufkommt, dann hast du quasi ein selbst gebautes WLAN-Shield.
Bitte auch beachten: der GPIO0 darf beim Booten nicht auf Masse liegen, d.h. jedesmal wenn die Station eingeschaltet wird darf der nicht LOW sein....
Den ESP über HardwareSerial1 z.B. anklemmen oder SoftwareSerial benutzen.
Danke für eure Hilfe.
Ich wollte hier kein Streit vom Zaun brechen.
Also die Daten sollten an einen Server gesendet werden.
Das hat auch soweit schon mit Ethernet funktioniert.
Angeschlossen ist der ESP an tx rx.
Ich hatte es mit softserial versucht aber nicht zum laufen bekommen, oder bin ich da auf dem Holzweg.
Da ich ettliche Sensoren am mega hab brauche ich den auch.
Ich hatte schon andere Lösungen ohne mega gesehen. ZB Temperaturmessung.
Muss es unbedingt der Mega sein? Nimm doch direkt den ESP und programmier den. Der ist sowieso viel schneller. Eventuell ein NodeMCU dev board für einen schmalen Taler kaufen.
Wenn die Pins reichen, nimm einen Wemos D1 Mini. Ansonsten würd eich überlegen, ob ich nicht immer noch einen ESP mit Arduino programmieren und z.B. über I2C mit dem mega reden lassen würde.
Mit ATMega und Wifi über AT-befehle habe ich mich nur befasst, als die ESP01-Module noch neu waren und es kein Arduino dafür gab. Auch keine Library, war also komplett zu Fuß. Das war ein Kramp ohne gleichen. Fing schon damit an, dass die Verbindung auf dem Breadboard anscheinend nicht zuverlässig genug war.
Dazu kommt, dass Du Dir die einfach Debugmöglichkeit über den USB-Anschluss kaputt machst, oder SoftSerial benutzen musst. Ich sehe absolut keinen Grund dafür. Die Dinger sind genauso einfach programmierbar wie die Original-Arduinos, und deutlich leistungsfähiger.
Da ich die Hardware nun einmal habe würde ich es erstmal so versuchen.
Parallel habe ich jetzt den NodeMCU bestellt.
Grund dafür war das ich ihn auf Breadboard besser verbauen kann.
Der ESP8266 01 hat doch nur GPIO0, GPIO1,TXD,RXD.
Kann da trotzdem eine Verbindung mit I2C hergestellt werden ?