Forum: Mikrocontroller und Digitale Elektronik Serielle Datenübertragen vom Arduino Uno zum NodeMCU (ESP8266)


von Hendrik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte meinen NodeMCU als AccesPoint nutzen, um auf erfassten Daten 
über die WLAN-Schnittstelle zugreifen zu können. Hierfür muss ich die 
Daten vom Arduino an den NodeMCU übermitteln. Weil ich ein SD-Shield 
benutzte, sind viele Datenschnittstellen bereits belegt und es bleibt 
mir noch die Serielle Schnittstelle. Ich habe bereits einiges 
ausprobiert und es gelingt mir problemlos die Daten vom NodeMCU an den 
Arduino zu schicken, allerdings will ich meine Daten ja vom Arduino an 
den NodeMCU schicken. Wenn ich die übertragenden Daten auf dem NodeMCU 
auslese wird nur ein "?" angezeigt und mithilfe des Befehls 
"myserial.available()" um die Übertragung abzufragen führt es zu keiner 
Ausgabe. Ich habe die Kontakte Tx/Rx jeweils gekreuzt und den Pegel des 
Arduinos mithilfe eines Spannungsteiler auf 3,06V reduziert. Außerdem 
hab ich auch die neuste Library von "ESPSoftwareSerial" verwendet. Hätte 
jemand eine Idee, wo das Problem liegen könnte?
Wenn ich anstelle des NodeMCU einen Arduino Uno verwende und den Code 
sowie die Schaltung nicht verändere funktioniert die Datenübertragung.
Die Programmes des NodeMCUs sowie des Arduinos und ein Bild der 
Schaltung hab ich angehängt.

Mit freundlichen Grüßen,

Hendrik

von Stefan F. (Gast)


Lesenswert?

Zeichen mal einen Schaltplan von deinem Aufbau, aus dem hervor geht, 
welche Widerstände du verwendet hast. Auf dem Foto kann ich das nicht 
gut genug erkennen.

Ich habe Zweifel, ob SoftwareSerial auf dem ESP8266 überhaupt 
funktionieren kann. Denn auf dem Ding läuft nicht nur dein eigenes 
Programm sondern auch eine ganze Menge Code von der Basis Firmware (von 
Espressif). Was passiert wohl, wenn der ESP gerade seriell Daten 
empfängt, während diese Firmnware ausgeführt wird?

Offenbar braucht man für den ESP eine spezielle Version der 
SoftwareSerial Klasse: 
https://arduino-esp8266.readthedocs.io/en/latest/libraries.html#softwareserial

von Brain 2.0 (Gast)


Lesenswert?

Was ich erkennen kann, haben die Widerstände nix mit der seriellen 
Schnittstelle zu tun.
Du brauchst da aber 1k, da der Uno mit 5 Volt arbeitet und der NodeMCU 
mit 3,3Volt.

Auch kann ich nicht erkennen, dass du die gesendeten Zeichen richtig 
ausliest.
Und du solltest deinen gesendeten String mit einem Steuerzeichen 
abschließen, damit der Empfänger auch erkennt, wenn der String zu Ende 
ist. Da gibt es im Netz schon sehr schöne Beispiele.

von Brain 2.0 (Gast)


Lesenswert?

Achja, du kannst für den ESP8266 auch die normale SoftwareSerial Lib 
verwenden, die funktioniert bei mir problemlos, auch mit größeren 
Baudraten.

von IhrWisstEsSowieso (Gast)


Lesenswert?

Warum eigentlich überhaupt zwei µC?

von Brain 2.0 (Gast)


Lesenswert?

IhrWisstEsSowieso schrieb:
> Warum eigentlich überhaupt zwei µC?

Das hatte Hendrik ja im Eingangspost geschrieben.
Aber er ist wohl an weiterer Hilfe nicht interressiert.

von LKW mit ABS (Gast)


Lesenswert?

Brain 2.0 schrieb:
> IhrWisstEsSowieso schrieb:
> Warum eigentlich überhaupt zwei µC?
>
> Das hatte Hendrik ja im Eingangspost geschrieben.
> Aber er ist wohl an weiterer Hilfe nicht interressiert.

Ich hab's jetzt mehrmals gelesen und mir erschließt sich einfach nicht 
warum es zwei uC sein müssen. Wenn er Daten mit mehreren Sensoren 
erfassen will könnte er immernoch Multiexer verwenden. Das wäre 
immernoch optimaler als zwei verschiedene Systeme Ping Pong spielen zu 
lassen. Vor allem wenn man schon sowas komfortables wie ein NodeMcu 
verwendet.
Naja

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.