如何解决Arduino与NodeMcu的串行通信
我希望通过usb电缆通过Arduino mega的键盘接收输入,然后通过串行通信(TX-RX)将其发送到nodemcu,以便可以将其发送到服务器(从nodemcu的wifi模块)。
我试图为Arduino和NodeMCu编写代码,有人可以帮助我更正它们吗
Arduino超级代码
#include <SoftwareSerial.h>
SoftwareSerial trans(19,18);
String scr ="";
String User = "";
String Request = "";
String Roomid = "";
String Email = "";
void setup() {
Serial.begin(115200);
trans.begin(115200);
}
void loop() {
Serial.println("Enter your User ID.");
while (Serial.available() == 0) {}
User = Serial.readString(); //Reading the Input string from Serial port.
Serial.println("Enter your Request.");
while (Serial.available() == 0) {}
Request = Serial.readString();
Serial.println("Enter your Roomid.");
while (Serial.available() == 0) {}
Roomid = Serial.readString();
Serial.println("Enter your Email.");
while (Serial.available() == 0) {}
Email = Serial.readString();
Serial.println("-------------------------"); //Showing the details
Serial.println("YOUR User ID:" + User);
Serial.println("YOUR Request ID:" + Request);
Serial.println("YOUR Room id:" + Roomid);
Serial.println("YOUR EMAIL:" + Email);
Serial.println("Thanks You...");
Serial.println("");
scr = User+Request+Roomid+Email;
trans.write(scr);
while (Serial.available() == 0) {}
}
NodeMcu代码
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include<SoftwareSerial.h> //Included SoftwareSerial Library
const char* ssid="SLT-4566";
const char* password="1234";
int data;
const char *host = "0.0.0.0"; //Your pc or server (database) IP,example : 192.168.0.0,if you are a windows os user,open cmd,then type ipconfig then look at IPv4 Address.
void setup() {
// put your setup code here,to run once:
pinMode(2,OUTPUT);
delay(1000);
Serial.begin(115200);
WiFi.mode(WIFI_OFF); //Prevents reconnection issue (taking too long to connect)
delay(1000);
WiFi.mode(WIFI_STA); //This line hides the viewing of ESP as wifi hotspot
WiFi.begin(ssid,password); //Connect to your WiFi router
Serial.println("");
Serial.print("Connecting");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
delay(250);
}
//If connection successful show IP address in serial monitor
Serial.println("");
Serial.println("Connected to Network/ssid");
Serial.print(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
}
void loop() {
// put your main code here,to run repeatedly:
data = Serial.read();
Serial.println(data);
}
解决方法
并非Mega和Mega 2560上的所有引脚都支持更改中断,因此只有以下引脚可用于RX:10、11、12、13、14、15、50、51、52、53,A8(62) ,A9(63),A10(64),A11(65),A12(66),A13(67),A14(68),A15(69),所以这是第一个问题。
serial.read()命令仅读取一个字符,也可以在此处测试serial.readString()。
但是, 我不知道,为什么需要兆与NodeMCU串行通信。
希望我能帮上忙! 祝你好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。