商品销量:238
收藏数量:276
店铺名称: 兆源电子 SagooStudio
旺旺: scmcu
商品永久链接: RDM8800 NFC/RFID开发板模块 读写卡射频模块13.56mHz串口传输
卖点:
标签:模块,射频,串口,读写,传输
24小时发货默认发默认物流:中通快递;发圆通快递和邮政小包请联系客服备注和补邮费。。
注意:本链接发货不包括图片上的钥匙扣,需要配套的钥匙扣或卡可联系客服另外购买!
今天教小伙伴们使用RDM8800烧写程序来实现刷NFC卡,把卡号通过短信发送到手机上。这有什么实际意义吗?比如上班打卡?一起来大开脑洞吧!
本次教程需要用到的配件有:
首先下载RDM8800的硬件补丁包和库文件:
下载完成后把每个压缩包都解压出来,将Iteaduino_Lite文件夹放到你的Arduino IDE安装目录下的hardware 文件夹里面,把PN532_SPI文件夹放到你的Arduino IDE安装目录下的libraries 文件夹里面。
注意:新的硬件驱动和库文件需要在IDE下次运行时生效,所以在操作上面这一步的时候请关闭arduino IDE软件。
接下来,我们需要给RDM8800烧写固件。按照下面的硬件连接图来连接FOCA转串板和RDM8800。注意:FOCA转串板的开关要打到5V。详细引脚定义请查阅datasheet和原理图。
使用USB mini接口的数据线将FOCA转串板连接到电脑上,开始烧写以下代码:
/******************** RDM8800 *************************
RDM8800 sends the ID number by HEX.
eg.
ID num output(10 bits)
46553491 0x30 0x30 0x34 0x36 0x35 0x35 0x33 0x34 0x39 0x31 (0x0D 0x0A)
************************************************************/
#include <PN532.h>
#include <SPI.h>
#define delaytime 2000
#define timeout1 5000
#define timeout2 7000
char number[20] = "123456789"; //改成接收短信的手机号码
byte comm_buf[20];
const int LED = 3;
#define PN532_CS 10
PN532 nfc(PN532_CS);
//#define NFC_DEMO_DEBUG 1
unsigned int frame_format;
unsigned char id_buffer[10];
uint32_t old_id;
unsigned long lasttime=0;
unsigned long prev_time=0;
unsigned char r_buffer[30];
void setup(void) {
Serial.begin(9600);
nfc.begin();
nfc.SAMConfig();
pinMode(LED,OUTPUT);
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(10000);
lasttime = millis();
}
void loop(void) {
uint32_t id;
// look for MiFare type cards
id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
if (id != 0)
{
if(old_id != id)
{
old_id = id;
hex_to_dec(id);
while(Serial.available())
Serial.read();
Serial.println("AT+CMGF=1");
prev_time = millis();
int a=0;
while((millis() - prev_time)<timeout1)
{
if(Serial.available())
{
r_buffer[a++]=Serial.read();
if(strstr((char *)r_buffer, "OK"))
break;
}
}
Serial.print("AT+CMGS=\\"");
Serial.print(number);
Serial.println("\\"");
prev_time = millis();
a=0;
while((millis() - prev_time)<timeout2)
{
if(Serial.available())
{
r_buffer[a++]=Serial.read();
if(strstr((char *)r_buffer, ">"))
break;
}
}
Serial.print("card: ");
for(unsigned char i=0;i<10;i++)
{
Serial.write(id_buffer[i]);
}
char buf_end[2];
buf_end[0]=0x1a;
buf_end[1]='\\0';
Serial.println(buf_end);
prev_time = millis();
a=0;
while((millis() - prev_time)<timeout2)
{
if(Serial.available())
{
r_buffer[a++]=Serial.read();
if(strstr((char *)r_buffer, "OK"))
break;
}
}
}
lasttime = millis();
}
if(millis() - lasttime > delaytime)
{
lasttime = millis();
old_id=0;
}
}
void hex_to_dec(uint32_t value)
{
id_buffer[0] = 0x30 + value / 1000000000;
id_buffer[1] = 0x30 + value % 1000000000 / 100000000;
id_buffer[2] = 0x30 + value % 100000000 / 10000000;
id_buffer[3] = 0x30 + value % 10000000 / 1000000;
id_buffer[4] = 0x30 + value % 1000000 / 100000;
id_buffer[5] = 0x30 + value % 100000 / 10000;
id_buffer[6] = 0x30 + value % 10000 / 1000;
id_buffer[7] = 0x30 + value % 1000 / 100;
id_buffer[8] = 0x30 + value % 100 / 10;
id_buffer[9] = 0x30 + value % 10;
}
烧写的时候选择“board板子类型:Iteaduino_Lite”,然后选择相应的串口。
点击upload,提示烧写成功,RDM8800的固件就烧好了。
接下来是测试,拔掉电源线和所有杜邦线,按照下面的硬件连接图来连接FOCA,RDM8800和SIM900模块。
给SIM900模块装上SIM卡(仅支持联通/移动sim卡)和天线,把NFC的天线板连接到RDM8800的接口上,然后插上USB线供电。实物如下图:
上电后,SIM900开机,看到NET LED灯开始闪烁时,等待10s。然后把NFC typeA卡放到RDM8800的天线板上,这时RDM8800会把读到的卡号发送到对应的手机上,例如: “card: 0046553491” 。输出格式为“card: +卡号”。卡一直放在天线板上只读一次,只发一次短信,同一张卡需要隔2秒后才能刷第二次并发送短信,不同的卡号无需等待。
此处的FOCA仅是用于供电,你也可以使用5V/1A适配器或者电池供电。
RDM8800 NFC/RFID开发板模块 读写卡射频模块13.56mHz串口传输评价
四川凉山 ID706461 :
灵芝孢子粉的食用方法破壁灵芝孢子粉用量
评论时间:2025年05月10日
西藏山南 ID154813 :
灵芝孢子粉哪个牌子比较好可靠1斤有多少灵芝孢子粉
评论时间:2025年05月10日
贵州铜仁 ID504041 :
灵芝孢子粉会过敏吗灵芝孢子粉多少钱一斤是正宗的
评论时间:2025年05月10日