带有ESP8266的RC522不能正常使用Arduino uno

时间:2018-03-31 04:54:35

标签: arduino arduino-uno esp8266 rfid

我已经为Arduino Uno编写了以下代码,使用RC522模块和ESP8266模块扫描RFID卡以连接到我的路由器。

现在,当我扫描任何卡时,它应该读取卡号并向我服务器的IP地址发送请求并获得响应。

但在成功读取RFID卡后,通过TCP与服务器的连接不起作用:

所以我无法向我的服务器发送请求。

但是当我删除RC522代码(用于测试)时,它正在运行!

一起使用RC522和ESP8266有什么问题?

esp.println("AT+CIPSTART=\"TCP\",\"" + server + "\",80");//start a TCP connection.

论坛链接 - https://forum.arduino.cc/index.php?topic=538180.0

1 个答案:

答案 0 :(得分:0)

不幸的是,您没有显示正在运行的代码(部分是TCP连接)与不运行的代码(根本不是TCP连接?)之间的差异。

  

当我删除Rc522代码测试时,它正在工作!

试着描述一下哪些是有效的,哪些更详细。您还可以提供调试输出并添加一些注释。

此外,我还尝试删除更多非必要代码(如显示屏),以帮助缩小原因。这可能已经让你在正确的轨道上自行修复它,但它也会使你的代码更容易阅读(另见How to create a Minimal, Complete, and Verifiable example虽然我怀疑很多人会有确切的部分来重现你的问题 - 但你可能会幸运儿。)

但是,根据您提供的代码,这里只是猜测

Arduino可能没有从ESP8266模块接收数据,因为您正在将RX引脚重新配置为输出(但您没有使用它!?):

#define mainLock 2
...
pinMode(mainLock, OUTPUT);

冲突
SoftwareSerial esp(2, 3);// RX, TX

所以我建议仔细检查你的引脚使用和连接(同样,提供这些信息会增加你发现错误的机会)。