Serielle Kommunikation zwischen Arduino Uno R3 und NodeMCU 12-E
Hallo,
habe mir vor einiger Zeit ein NodeMCU-Board besorgt (NodeMCU 12-E) welches ich für ein Projekt benötige bei dem ich ein ferngesteuertes Auto von einem PC aus steuern möchte.
Dabei sind einige Sensoren (z.B. Abstandssensor) mit dem Arduino verbunden, dies sollen via Serielle Verbindung (RX/TX) an das NodeMCU-Board gesendet werden und dann über
Wlan (AP) an den PC weitergeleitet werden.
Ich habe bereits viele Anleitungen zur Seriellen Verbindung zwischen Arduino und NodeMCU versucht, jedoch gelang jedes Mal nur eine Verbindung in eine Richtung, konkret: NodeMCU -> Arduino
Jedoch habe ich noch keine Möglichkeit gefunden wie ich Daten vom Arduino an das NodeMCU-Board senden kann, hat da jemand Erfahrung mit?:confused:
Hilfe gerne erwünscht!:p
Grüße
fcn200
Liste der Anhänge anzeigen (Anzahl: 2)
Habe soeben das Ganze mit dem beschriebenen Aufbau versucht, jedoch ohne jeglichen Erfolg:
Links NodeMCU Rechts Arduino
Anhang 34063
Aufbau
Anhang 34064
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
HaWe
hast du auch die beiden Masse-Potentiale verbunden?
(zumindest auf den Fotos sehe ich es nicht)
Hat leider auch nichts gebracht.
Man sieht zwar das der Arduino sendet (TX-led blinkt in regelmäßigen Abständen ), aber auf Seiten des NodeMCU Boards kommtnichts an:(
- - - Aktualisiert - - -
Beim Programmieren ist mir noch Folgendes aufgefallen:
Ich lasse mir vom Arduino zur Kontrolle auf der Konsole den gesendeten Wert (10.0) ausgeben, jedoch taucht dort auch in regelmäßigen Abständen der Wert "0.00" auf, der aber ürsprünglich gar nicht gesendet wird:
Anhang 34065
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat von
HaWe
du hast aber oben nicht einen von moppis Codes gepostet, den du verwendet hast, worum ich dich gebeten hatte, oder doch?
Ansonsten poste jetzt bitte die Codes, die du verwendest, samt neuem Foto deines Aufbaus.
Arduino:
Code:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); // RX, TX
int a;
void setup() {
// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
}
void loop() { // run over and over
delay(3000);
a++;
mySerial.print("Hello, world: ");
mySerial.print(a);
mySerial.println("!");
}
NodeMCU:
Code:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
}
Aufbau:
Anhang 34066
Anhang 34067
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat von
HaWe
sieht aus, als hättest du den Spannungsteiler falsch verkabelt, oder?
Laut der Anleitung hier nicht:
Anhang 34068
An D2 ist er dran, genau wie bei mir:
Anhang 34069
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
HaWe
nein.
beide Widerstände liegen in Serie von Arduino Soft-TX nach GND.
dazwischen (!!)
wird eine Leitung zum ESP-Soft-RX Pin geführt!
- - - Aktualisiert - - -
Code:
Arduino TX ( 5V Level )
|
33k
|
|---- ESP RX ( 3.3V Level)
|
47k
|
GND
Immer noch nichts...
Anhang 34070
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
HaWe
immer noch falsch verkabelt, wie es aussieht!
klemm die Widerstände hintereinander in Reihe und führe den letzten an GND.
Dazwischen an den ESP führen!
Besser so? :
Anhang 34071