资料介绍
描述
介绍
目前市场上常见的NFC无线读卡器都是基于WiFi或蓝牙的,功耗大,无线传输距离有限。LoRaWAN®具有传输距离远、接收灵敏度低、功耗低等特点。
因此,使用LoRaWAN®可以弥补以上两种无线设备的不足。NFC的数据传输量也比较小,非常适合LoRaWAN®传输方式。采用 LoRaWAN® 无线传输的读卡器易于安装和部署。它是电池供电的,可以使用半年以上。
该项目的主要思想是通过 WisBlock 构建一个支持 LoRaWAN® 的无线读卡器。当读卡器读取电子标签数据时,电子标签信息会自动上传到RAK7268 WisGate Edge Lite 2内置的LoRaWAN®服务器。
使用的硬件
本项目的主要硬件使用了 WisBlock 套件。MCU选用RAK4631 WisBlock Core模块,采用Nordic nRF52840 MCU,支持蓝牙5.0(蓝牙低功耗)和Semtech公司最新的LoRa®收发器SX1262 。它支持 LoRa® 和蓝牙通信模式。
NFC选用WisBlock E生态的RAK13600 NFC读卡模块,采用PN532芯片,支持ISO/ICE 14443A/B卡类型的读写。
它还配备了蜂鸣器模块RAK18001,在NFC刷卡有效时提供蜂鸣器提醒。
本项目软件采用RUI3开发平台。RUI3为WisBlock提供了很多API接口函数,包括传感器驱动接口和无线传输接口。只需要编写少量的应用代码就可以完成这个产品的开发。
Step 1 - 硬件电路搭建
硬件准备:
- 用于带有 LoRa SX1262 的 LoRaWAN 的 Nordic nRF52840 BLE 核心模块 | RAK4631 / RAK4631-R
- WisBlock 底板 | RAK5005-O
- NFC RFID NXP PN532 | RAK13600
- 蜂鸣器模块江苏MLT-5020 | RAK18001
- 两个 ISO/ICE 14443A/B 卡
- 统一外壳 IP65 100x75x38mm
- 3dBi SubG 天线 | (LoRa® 天线)
- 5 颗 M2.5x4 螺丝和 8 颗 M1.2x3 螺丝
五金组装:
将RAK4631模块固定在CPU SLOT位置,RAK13600固定在IO SLOT位置,RAK18001固定在SLOT A(或SLOT B)上,用固定螺丝固定模块。
连接 NFC 天线、LoRa® 天线、蓝牙天线,并将它们安装到外壳中。
这是在组装过程中指导您的示意图
Step 2 - 软件环境搭建
在Arduino IDE中添加RAK4631-R开发板:
- 打开 Arduino IDE 并转到File > Preferences 。
- 要将 RAK4631-R WisBlock Core 添加到您的 Arduino 板列表,您需要编辑附加板管理器 URL。单击该图标。
-
复制 URL
https://raw.githubusercontent.com/RAKWireless/RAKwireless-Arduino-BSP-Index/main/package_rakwireless.com_rui_index.json
并将其粘贴到字段中。如果已经有其他 URL,只需将它们添加到下一行即可。添加 URL 后,单击确定。
- 重新启动 Arduino IDE。
- 从工具菜单打开板管理器。
-
写
RAK
在搜索栏中。这将显示可用的 RAKwireless WisBlock 核心板,您可以将它们添加到 Arduino 板列表中。选择并安装RAKwireless RUI nRF 板
- 安装 BSP 后,选择Tools > Boards Manager > RAKWireless RUI nRF Modules > WisBlock Core RAK4631 Board 。
安装库
安装RAK13600-PN532库和Adafruit总线库:
第 3 步 - 软件开发
LoRaWAN® 部分的初始化。该函数初始化协议栈的所有参数。网络接入方式为OTAA。用户需要根据自己的频段和网络接入参数修改这个宏定义。代码中使用的频段为AS923。NFC芯片初始化代码采用IIC通信协议。初始化完成后,即可使用NFC的刷卡功能。
/*************************************
LoRaWAN band setting:
RAK_REGION_EU433
RAK_REGION_CN470
RAK_REGION_RU864
RAK_REGION_IN865
RAK_REGION_EU868
RAK_REGION_US915
RAK_REGION_AU915
RAK_REGION_KR920
RAK_REGION_AS923
*************************************/
#define OTAA_BAND (RAK_REGION_AS923)
#define OTAA_DEVEUI {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}
#define OTAA_APPEUI {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}
#define OTAA_APPKEY {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88}
void lora_init()
蜂鸣器由 PWM 控制。蜂鸣器不用时,需要关闭输出。
pinMode(BUZZER_CONTROL,OUTPUT);
noTone(BUZZER_CONTROL);
NFC芯片初始化代码采用IIC通信协议。初始化完成后,即可使用NFC的刷卡功能。
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
while (1); // halt
}
// Got ok data, print it out!
Serial.print("Found chip PN5"); Serial.println((versiondata >> 24) & 0xFF, HEX);
Serial.print("Firmware ver. "); Serial.print((versiondata >> 16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata >> 8) & 0xFF, DEC);
// Set the max number of retry attempts to read from a card
// This prevents us from waiting forever for a card, which is
// the default behaviour of the PN532.
nfc.setPassiveActivationRetries(0xFF);
//configure board to read RFID tags
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A card");
每1s循环读取是否有NFC卡。如果 ID 读取成功,蜂鸣器响 150ms,然后将卡 ID 发送到 LoRaWAN® 服务器。
void loop(void) {
boolean success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes dep ending on ISO14443A card type)
// Wait for an ISO14443B type cards (Mifare, etc.). When one is found
// 'uid' will be populated with the UID, and uidLength will indicate
// if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
if (success) {
tone(BUZZER_CONTROL,4000);
delay(150);
noTone(BUZZER_CONTROL);
Serial.println("Found a card!");
Serial.print("UID Length: "); Serial.print(uidLength, DEC); Serial.println(" byte s");
Serial.print("UID Value: ");
for (uint8_t i = 0; i < uidLength; i++)
{
Serial.print(" 0x"); Serial.print(uid[i], HEX);
}
Serial.println("");
digitalWrite(ledPin1, HIGH); // LED turn on when input pin value is HIGH
delay(150);
digitalWrite(ledPin1, LOW); //
/** Send the data package */
if (api.lorawan.send(uidLength, (uint8_t *) & uid, 2, true, 1))
{
Serial.println("Sending is requested");
}
else
{
Serial.println("Sending failed");
}
// Wait 1 second before continuing
delay(1000);
}
else
{
// PN532 probably timed out waiting for a card
Serial.println("Timed out waiting for a card");
}
}
使用 WisToolBox 和 WisGate Edge Lite 2 进行数据记录
通过WisToolBox查看实时串口日志
RAK7268 内置 LoRaWAN®,如果您需要确认数据是否已成功发送,还有一个服务器日志。
结论
在成功构建具有 LoRaWAN 连接的 NFC 读卡器后,您有多种选择可以在多种场景中实施它,例如通过标签进行商品控制、用户进入控制、构建安全控制等许多事情,并记住我们总是说#IoTMadeEasy。
此外,请关注我们的Hackster Hub 并成为我们社区的一员,以了解更多 DIY IoT 项目和新闻。
如果您想购买我们的产品,请访问我们的商店
欢迎与我们分享,写下你的疑惑,在评论区与我们互动。
- 简单的NFC阅读器
- 构建一个移动RFID阅读器
- NFC EZ430阅读器模块参考设计
- 电子阅读器的电路原理图免费下载 49次下载
- Python简历样本—模拟仪表阅读器下载 1次下载
- 基于图论的阅读器防碰撞算法 1次下载
- PDF阅读器AcroRd32软件 22次下载
- 身份证阅读器SDK使用手册 23次下载
- Flash单片机原理(请用超星阅读器阅读) 5次下载
- 集成电路手册(请用超星阅读器阅读) 0次下载
- 超星阅读器免费下载 19次下载
- 基于S1D13521的电子纸阅读器的设计 129次下载
- PDF阅读器绿色版 0次下载
- txt文档阅读器
- djvu阅读器下载
- 手搓了一个ESP32墨水屏阅读器,蛮简单的 331次阅读
- 20W电子阅读器充电器ic U6205DC基本知识介绍 432次阅读
- 电子书阅读器内置锂电池供电自动切换电路 1601次阅读
- 基于PXA270工业级嵌入式处理器实现设备自动识别系统的设计 1836次阅读
- 基于EPCglobal ALE协议标准实现嵌入式RFID阅读器系统的设计 2433次阅读
- 基于C8051F410单片机实现双频固定式阅读器的应用方案 3154次阅读
- ZigBee模块在RFID射频识别阅读器中有着怎样的作用 2689次阅读
- 如何构建基于ZigBee的物联网平台 2390次阅读
- Rohm BD57121MUF-M汽车NFC兼容无线功率发送解决方案、BOOM与电路图 1876次阅读
- 采用LabVIEW图形化编程语言设计的基于软件无线电的RFID阅读器 2226次阅读
- nfc手环怎么用_荣耀手环3nfc怎么使用 3.8w次阅读
- 采用新型集成元件来简化RFID阅读器设计 1083次阅读
- 基于无源电子标签的谐振频率检测的耦合器设计 2617次阅读
- 基于ISO18000-6C协议的UHF RFID阅读器接收电路设计 3772次阅读
- NFC技术定义及其与RFID的区别 1648次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多