我已经为Arduino Uno编写了以下代码,使用RC522模块和ESP8266模块扫描RFID卡以连接到我的路由器。
现在,当我扫描任何卡时,它应该读取卡号并向我服务器的IP地址发送请求并获得响应。
但在成功读取RFID卡后,通过TCP与服务器的连接不起作用:
所以我无法向我的服务器发送请求。
但是当我删除RC522代码(用于测试)时,它正在运行!
一起使用RC522和ESP8266有什么问题?
esp.println("AT+CIPSTART=\"TCP\",\"" + server + "\",80");//start a TCP connection.
答案 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
所以我建议仔细检查你的引脚使用和连接(同样,提供这些信息会增加你发现错误的机会)。