Ich möchte Daten von meinem ESP8266-Gerät über UART an eine Arduino Uno-Karte senden.Daten über UART von ESP8266 (NodeMCU) an Arduino senden
Der ESP8266 wurde mit der NodeMCU Firmware geflasht (der Build hat den folgenden Zeitstempel: nodemcu-master-8-modules-2017-05-30-19-21-49-integer
). Die Firmware wurde nur mit den folgenden Modulen erstellt: file, gpio, net, node, tmr, uart, websocket, wifi
. Das ESP8266 Board selbst ist ein Adafruit Huzzah Board.
Die ESP-Karte wird über ein serielles Kabel von meinem Laptop USB gespeist. Das Kabel, das ich verwende, ist , das mir 5V für die Stromversorgung meines Boards zur Verfügung stellt und ich weiß, dass der USB auf meinem Mac die 500mA benötigt, die benötigt werden.
Der Arduino wird auch über den anderen USB-Port an meinem Computer mit Strom versorgt.
Das ESP-Platine und die Arduino verbunden sind, wie folgt:
ESP8266
TX RX GND
| | |
| | |
10 11 |
RX TX GND
Arduino
Die Adafruit Huzzah Platte behauptet, dass:
Der TX Stift der Ausgang von dem Modul ist und 3,3V Logik. Der RX-Pin ist der Eingang in das Modul und ist 5V konform (es gibt eine Ebene Schieber auf diesem Stift)
So sollte es keine Notwendigkeit für eine Ebene zwischen diesen beiden umgewandelt werden.
Der Code, den ich auf dem Esp8266 Board leite, wie init.lua
ist:
uart.setup(0,115200,8,0,1)
tmr.alarm(0, 5000, 0, function()
uart.write(0, "A", 19)
end)
Der Code, den ich auf dem Arduino leite ist:
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
MeetAndroid meetAndroid;
SoftwareSerial sSerial(rxPin, txPin);
uint8_t lastByte;
uint8_t serialBuffer[64];
int count = 0;
int onboardLed = 13;
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(115200);
sSerial.begin(115200);
pinMode(onboardLed, OUTPUT);
digitalWrite(onboardLed, HIGH);
}
void loop() {
while (sSerial.available() > 0) {
serialBuffer[count] = sSerial.read();
count++;
}
for (int i = 0; i < count; i++) {
Serial.println(serialBuffer[i]);
}
}
Was ich auf dem Serial Monitor sehen in einmal Arduino setze ich mein ESP Board ist Müll:
⸮⸮⸮⸮⸮⸮Z,⸮}⸮߿⸮ߏ⸮\⸮⸮LYLYLYLYL⸮L⸮L⸮L⸮L⸮L (((((⸮$⸮$⸮$⸮$⸮$⸮$⸮4⸮0⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@ ((((⸮$:⸮&i(⸮⸮
Nach einer kurzen Verzögerung es Anfang s Zeile für Zeile des Abfalls nach dieser Anfangszeile auszudrucken. Mir ist klar, dass irgendwo ein Missverhältnis besteht.
Ich habe nach früheren Fragen zu diesem Thema gesucht, aber das einzige, das ich finden konnte, das war am nächsten zu meiner Verwendung, erklärte einfach, dass one ought to read the docs, die nicht sehr hilfreich war.
Weiß jemand, was hier nicht stimmt?
Hallo arbeite ich an einem Projekt zu verwenden, die in einer ähnlichen Situation mit Ihnen. Hast du die Lösung gefunden? Ich denke, dass Software-Serien nicht ordnungsgemäß auf 115200 Baudrate funktionieren? –