私のESP8266デバイスからUART経由でArduino Unoボードにデータを送信したいとします。UART経由でESP8266(NodeMCU)からArduinoにデータを送信
ESP8266はNodeMCUファームウェアでフラッシュされました(ビルドには次のタイムスタンプがあります:nodemcu-master-8-modules-2017-05-30-19-21-49-integer
)。ファームウェアは、次のモジュールのみを使用して構築されています。file, gpio, net, node, tmr, uart, websocket, wifi
。 ESP8266ボード自体は、Adafruit Huzzahボードです。
ESPボードは、ラップトップUSBのシリアルケーブルで電源が供給されています。私が使用しているケーブルはthis oneです。私のボードに電源を供給するために5Vを供給しています.MacのUSBが500mAを供給することができます。
Arduinoは、コンピュータの他のUSBポートからも電源が供給されています。
ESPボードとのArduino次のように接続されている:TXピンはモジュールから出力され、3.3Vのロジックである
:
ESP8266 TX RX GND | | | | | | 10 11 | RX TX GND Arduino
Adafruit Huzzahボードが主張しています。 RXピン モジュールに入力されるので、これら二つの間で変換レベルのために必要があってはならない
(このピンのレベル シフトがある)5V準拠しています。
私はinit.lua
として、ESP8266ボード上で実行していますコードされています。私はArduinoの上で実行しているコードがある
uart.setup(0,115200,8,0,1)
tmr.alarm(0, 5000, 0, function()
uart.write(0, "A", 19)
end)
:
私はシリアルモニタに表示されるもの#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]);
}
}
Arduinoが私のESPボードをリセットしたら、ごみは
⸮⸮⸮⸮⸮⸮Z,⸮}⸮߿⸮ߏ⸮\⸮⸮LYLYLYLYL⸮L⸮L⸮L⸮L⸮L (((((⸮$⸮$⸮$⸮$⸮$⸮$⸮4⸮0⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@⸮@ ((((⸮$:⸮&i(⸮⸮
この最初の行の後にゴミのラインにラインを印刷します。どこかに、不一致があることは明らかです。
私はこの問題について以前の質問を探しましたが、私の使用に最も近い唯一のものはone ought to read the docsと書いてありましたが、これはあまり役に立ちませんでした。
ここで気になることは誰にも分かりますか?
こんにちは私はあなたと同様の状況でプロジェクトに取り組んでいます。あなたは解決策を見つけましたか?私は、ソフトウェアのシリアルが正しく115200のボーレートで動作しないと思いますか? –