Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino到NodeMcu的串行通信_Arduino_Data Transfer_Arduino Esp8266_Serial Communication - Fatal编程技术网

Arduino到NodeMcu的串行通信

Arduino到NodeMcu的串行通信,arduino,data-transfer,arduino-esp8266,serial-communication,Arduino,Data Transfer,Arduino Esp8266,Serial Communication,我希望通过usb电缆通过Arduino mega的键盘获取输入,并通过串行通信(TX-RX)将其发送到nodemcu,以便将其发送到服务器(从nodemcu中的wifi模块) 我试着为Arduino和NodeMCu编写代码,有人能帮我更正吗 Arduino巨型代码 #包括 软件串行传输(19,18); 字符串scr=“”; 字符串User=“”; 字符串请求=”; 字符串Roomid=“”; 字符串Email=“”; 无效设置(){ 序列号开始(115200); 交易开始(115200); }

我希望通过usb电缆通过Arduino mega的键盘获取输入,并通过串行通信(TX-RX)将其发送到nodemcu,以便将其发送到服务器(从nodemcu中的wifi模块)

我试着为Arduino和NodeMCu编写代码,有人能帮我更正吗


Arduino巨型代码

#包括
软件串行传输(19,18);
字符串scr=“”;
字符串User=“”;
字符串请求=”;
字符串Roomid=“”;
字符串Email=“”;
无效设置(){
序列号开始(115200);
交易开始(115200);
}
void循环(){
Serial.println(“输入您的用户ID”);
而(Serial.available()==0){}
User=Serial.readString();//从串口读取输入字符串。
Serial.println(“输入您的请求”);
而(Serial.available()==0){}
请求=Serial.readString();
Serial.println(“输入您的室友”);
而(Serial.available()==0){}
Roomid=Serial.readString();
Serial.println(“输入您的电子邮件”);
而(Serial.available()==0){}
Email=Serial.readString();
Serial.println(“---------------------------”);//显示详细信息
Serial.println(“您的用户ID:+User”);
Serial.println(“您的请求ID:+请求”);
Serial.println(“您的房间id:+Roomid”);
Serial.println(“您的电子邮件:+电子邮件”);
Serial.println(“谢谢你…”);
Serial.println(“”);
scr=用户+请求+房间ID+电子邮件;
事务写入(scr);
而(Serial.available()==0){}
}

NodeMcu码

#包括
#包括
#包括
#包括
#include//Included软件串行库
const char*ssid=“SLT-4566”;
const char*password=“1234”;
int数据;
const char*host=“0.0.0.0”//您的pc或服务器(数据库)IP,例如:192.168.0.0,如果您是windows操作系统用户,请打开cmd,然后键入ipconfig,然后查看IPv4地址。
无效设置(){
//将安装代码放在此处,以便运行一次:
pinMode(2,输出);
延迟(1000);
序列号开始(115200);
WiFi.mode(WiFi_OFF);//防止重新连接问题(连接时间过长)
延迟(1000);
WiFi.mode(WiFi_STA);//此行隐藏了ESP作为WiFi热点的查看
WiFi.begin(ssid,密码);//连接到您的WiFi路由器
Serial.println(“”);
串行打印(“连接”);
//等待连接
while(WiFi.status()!=WL_已连接){
延迟(250);
连续打印(“.”);
延迟(250);
}
//如果连接成功,在串行监视器中显示IP地址
Serial.println(“”);
Serial.println(“连接到网络/ssid”);
串行打印(ssid);
串行打印(“IP地址:”);
Serial.println(WiFi.localIP());//分配给ESP的IP地址
}
void循环(){
//将主代码放在此处,以便重复运行:
data=Serial.read();
Serial.println(数据);
}

并非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()

但是,, 我不知道,为什么需要mega与NodeMCU串行通信

我希望我能帮忙!
祝你好运

为什么是巨型?相同的串行读取代码在NodeMCU中工作。Mega有4个硬件系列:串行、串行1、串行2、串行3。你为什么使用软件序列号?并非Mega支持SoftwareSerial上的所有引脚。