Arduino UNO和ESP8266 HUZZAH突破之间的软件系列

Arduino UNO和ESP8266 HUZZAH突破之间的软件系列,arduino,esp8266,Arduino,Esp8266,我正在做一项任务,通过WIFI将传感器数据从esp发送到PC应用程序,使其可视化。该项目的所有部分都完成了,除了通过串行软件将传感器数据从UNO发送到ESP的部分 接线: 将UNO的Rx(0)连接至ESP中的引脚(12)作为Tx 将UNO的Tx(1)连接到分压器,以将3.3 v连接到ESP引脚(14)作为Rx 特别是地面对UNO地面 特别是从V+到UNO的3v3 代码: 两个代码测试此过程是否正常。一个在ESP上,另一个在arduino上 在构建之后,我发现根据下面的屏幕显示,由于while

我正在做一项任务,通过WIFI将传感器数据从esp发送到PC应用程序,使其可视化。该项目的所有部分都完成了,除了通过串行软件将传感器数据从UNO发送到ESP的部分

接线:

  • 将UNO的Rx(0)连接至ESP中的引脚(12)作为Tx

  • 将UNO的Tx(1)连接到分压器,以将3.3 v连接到ESP引脚(14)作为Rx

  • 特别是地面对UNO地面
  • 特别是从V+到UNO的3v3
代码:

两个代码测试此过程是否正常。一个在ESP上,另一个在arduino上

在构建之后,我发现根据下面的屏幕显示,由于while循环的条件和我设置的延迟,有一些东西正在发送,但是输出被转换为数字,而不是字符串,随机数

  • 特别是从V+到UNO的3v3
标准Uno上的3v3引脚将无法提供足够的电流使ESP8266可靠工作

Uno上的串行连接到Arduino引脚0和1,用于输出到计算机上的串行监视器(以及上传草图)。您还使用引脚0和1使用串行软件与ESP8266通信。不能同时将相同的管脚用于这两个目的。您需要为您的软件串行使用不同的引脚,或者,由于您目前没有对串行执行任何有用的操作,您可以切换到Uno上的使用串行与ESP8266通信,并删除软件串行代码

如果要继续在Uno上使用软件串行,则应使用低于115200的波特率,因为Arduino软件串行库在该速度下不可靠

我不知道你认为这段代码在做什么:

char x = "ahmad,54,54,45";
while ( ESPserial.available() ) {
ESPserial.write( x );
但这肯定行不通

该行:

char x = "ahmad,54,54,45";
while ( ESPserial.available() ) {
相当于:

char x = 16;
也许您打算使用字符数组:

char x[] = "ahmad,54,54,45";
但是,这将与

ESPserial.write( x );
因此,您需要将其更改为:

ESPserial.print( x );
它将一次打印整个字符串,或者您可以一次处理一个字符的数组:

ESPserial.write( x[i] );
该行:

char x = "ahmad,54,54,45";
while ( ESPserial.available() ) {
检查是否有来自ESP8266的传入数据,但这永远不会是真的,因为您从未通过串行软件从ESP8266发送任何数据。如果它确实接收到任何数据,那么它将永远卡在while循环中,因为您从未读取接收到的数据。然后将数字16写入ESP8266,而不是读取不存在的传入数据:

ESPserial.write( x );

我建议你花点时间阅读这本书。同样的信息也应适用于ESP8266上的。

我使用的软件串行:串行监视器输出是来自Uno还是ESP8266?你应该在stackoverflow.From ESP8266上编辑你的文章,将你的草图包含在这里。最近我认为这个过程会有一个代码,没有两个单独的代码。我的主要问题是如何使用ESP8266作为arduino UNO的模块?!“最近我认为这个过程会有一个代码,没有两个单独的代码”这是什么意思。你贴了两个“代码”的链接,一个显然是ESP8266,一个是Uno,现在你试图声称只有一个?