我使用2个esp8266无线模块在2个arduino板(一个兆和一个uno)之间建立双向无线通信,而不使用任何基于地球的技术(即无线电频率,依赖地球卫星的wifi等)。我的解决方案是使用esp8266建立一个私有区域网络,esp充当一个站点和一个接入点(AT + CIPMODE = 3)。不幸的是,这个解决方案被证明比它的价值更麻烦。
首先,根据此图表我有每个esp的连线 当我刚开始时,红色LED亮起,蓝色LED熄灭。在此期间,我能够发送AT命令,建立服务器,并通过直接向串行监视器输入命令来实现我所需的通信。在此之后,我开始使用SoftwareSerial库编写一个库,允许我直接通过程序发出命令,以便在启动脚本时根据需要设置esp。在此之前,我更改了波特率,以确保它在9600运行,并在串行监视器中输入AT命令,以确保一切正常,它仍然有效。 在我开始编写库之后,在通过库的测试上传代码之前,我注意到蓝色LED现在已经点亮了。注意到这一点,我重新上载了准系统脚本(我还没有将库代码上传到arduino)并且esp不再接收AT命令。
这是否表示我可以解决的电路板问题,或者这是否意味着电路板已完成?
随着我的截止日期在3周左右快速接近,我必须开展无线通信工作,所以如果这是董事会的问题,我将不得不废弃esp并使用不同的沟通方式。所以我的第二个问题是,如果是这样的话,建立这种沟通的其他可行方案是什么?我之前和之前都使用过xbee,这是理想的,它们已经超出了我的预算,所以我需要将它保持在50美元以下。如果不能以该价格进行双向通信,我可以单向使用,因为我只需要让这个系统工作。基本上我只需要传输一个字节的数据。
答案 0 :(得分:0)
我意识到这种反应有点迟了,我希望你把它排序:我在过去的几周里开始自己和ESP8266一起工作,因此我在寻找有关直接沟通的教程的原因。 2个单位,当我找到你的帖子。
根据我能够确定的内容,AT命令是“固件”的一部分。随附一些模块。然而,Arduino代码开始加载到内存地址0x0000的芯片上,这是固件更新工具使用的相同地址。
换句话说,我相信在那里运行Arduino编码的程序,就会失去AT命令功能。
如果您找到ESP8266的固件更新工具(在线充足),您将获得AT命令。
我想虽然真正的问题是你为什么要这样做?似乎AT命令只是将ESP视为一种愚蠢的WiFi天线的一种方式。使用Arduino代码,您实际上将其视为微控制器。