首页 > 编程知识 正文

plc以太网端口号怎么查看(nodemcu教程)

时间:2023-05-06 03:17:15 阅读:72525 作者:2549

RC522使用NodeMCU将卡号NodeMCU和RC522的接线图发送到计算机

项目背景:必须通过主机连接6-8个RC522读取器模块。 由于技术丰富,串行通信可能会发生丢包,因此使用Esp8266进行互联网通信,而不是常用的Arduino Uno RC522。 读卡后直接向电脑发送UDP消息。

如图所示连接电缆时,默认情况下安装了NodeMCU和RC522库。

这是读取普通IC卡号码的代码,该代码只能读取卡号码并将卡号码打印在串行端口上。

# includes pi.h # includemfrc 522.h # defineRST_PIN5//配置引脚# definess _ pin4MFR c522 mfrc 522 (ss _ pin,rst _ pin ) //新的RFID实例MFRC522:MIFARE_Key key; voidsetup((serial.begin ) ) 9600; //将串行端口的波特率设置为9600 SPI.begin (; //SPI开始mfrc522.PCD_Init (; //initmfrc 522 cardserial.println (测试-演示-开始); }void loop ()//查找新卡if )! mfrc522.PICC_IsNewCardPresent () { //Serial.println (“找不到卡”); 返回; //选择一张卡片if (! mfrc522.PICC_ReadCardSerial (() { Serial.println ) )“无卡选项”); 返回; //显示卡详细信息的serial.print(f (卡UID: ) ); dump _ byte _ array (MFR c522.uid.uid byte,mfrc522.uid.size ); Serial.println (; //兼容性检查if(PICCtype!=mfrc 52233603360 PICC _ type _ mifare _ minipicctype!=mfrc 52233603360 PICC _ type _ mifare _1KPI cctype!=mfrc 5223360: PICC _ type _ mifare _ 4k ((serial.println (f )仅适用于读写Mifare Classic卡) ); 返回; } mfrc 52233603360状态代码状态; if (状态!=MFRC522:STATUS_OK ) {serial.print(f ('认证失败吗? 或卡链接失败'); serial.println (MFR c522.getstatuscodename (status ) ); 返回; 停止PICC mfrc522.PICC_HaltA (; 停止PCD mfrc522.PCD_StopCrypto1(的加密; 返回; }/**将字节数组转换为串行十六进制值*/voidprinthex(byte*buffer,byte bufferSize ) for ) byteI=0; I缓冲大小; I ) serial.print(buffer[I]0x10? '0' : ' ); 序列. print (buffer [ I ],HEX ); }关键是serial.print(buffer[I],HEX ); 此行代码只能通过串行监视器查看,不能检索并通过udp发送。

以下是完整的代码

# includes pi.h # includemfrc 522.h # include esp 8266 wifi.h # includewifiudp.h # definestassid '您的wifi帐户' # define //本地端口号和目标端口号//Rc522配置#define RST_PIN 5 //配置管脚# definess _ pin4MFR c522 mfrc 522 (ss _ pin,RST_PIN ); //新的RFID实例MFRC522:MIFARE_Key key; String Card_UID; WiFiUDP Udp; voidsetup((serial.begin ) ) 9600; //初始化串行端口波特率9600 //初始化读取器SPI.begin (; //SPI开始mfrc522.PCD_Init (; //initmfrc 522 cardserial.println (测试-演示-开始);//连接到//wifiwifi.mode(wifi_sta )的wifi.Begin(stassid,STAPSK ); wile(wifi.status )!=wl_connected({serial.print ) '.'; dlay(500; }序列. print (' connected! IP地址: '; serial.println(wifi.localip ) ); serial.printf (udpserveronport % dn ),targetPort ); UDP.Begin(targetport ); }void loop ()//查找新卡if )! mfrc522.PICC_IsNewCardPresent () { //Serial.println (“找不到卡”); 返回; //选择一张卡片if (! mfrc522.PICC_ReadCardSerial (() { Serial.println ) )“无卡选项”); 返回; //向目标设备UDP.beginpacket(targetip,targetPort )发送卡ID; card _ uid=dump _ byte _ array (MFR c522.uid.uid byte,mfrc522.uid.size ); UDP.write(card_uid.c_str ) );//将字符串格式转换为char* Udp.endPacket (; //兼容性检查if(PICCtype!=mfrc 52233603360 PICC _ type _ mifare _ minipicctype!=mfrc 52233603360 PICC _ type _ mifare _1KPI cctype!=mfrc 5223360: PICC _ type _ mifare _ 4k ((serial.println (f )仅适用于读写Mifare Classic卡) ); 返回; } mfrc 52233603360状态代码状态; if (状态!=MFRC522:STATUS_OK ) {serial.print(f ('认证失败吗? 或卡链接失败'); serial.println (MFR c522.getstatuscodename (status ) ); 返回; 停止PICC mfrc522.PICC_HaltA (; 停止PCD mfrc522.PCD_StopCrypto1(的加密; 返回; }/**将字节数组转换为串行十六进制值*/string dump _ byte _ array (byte * buffer,byte bufferSize ) { String id );//十进制idfor(byteI=0; I缓冲大小; I ) ) id=(buffer[I]/10 ); id=(buffer[I] ); //itoa(Buffer[I],hexID,16 ); 可以转换为十六进制(serial.println(p ); 返回id; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。