電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何使用WisBlock和RUI3構(gòu)建NFC閱讀器

如何使用WisBlock和RUI3構(gòu)建NFC閱讀器

2023-02-06 | zip | 1.10 MB | 次下載 | 免費

資料介紹

描述

介紹

目前市場上常見的NFC無線讀卡器都是基于WiFi或藍(lán)牙的,功耗大,無線傳輸距離有限。LoRaWAN?具有傳輸距離遠(yuǎn)、接收靈敏度低、功耗低等特點。

因此,使用LoRaWAN?可以彌補以上兩種無線設(shè)備的不足。NFC的數(shù)據(jù)傳輸量也比較小,非常適合LoRaWAN?傳輸方式。采用 LoRaWAN? 無線傳輸?shù)淖x卡器易于安裝和部署。它是電池供電的,可以使用半年以上。

該項目的主要思想是通過 WisBlock 構(gòu)建一個支持 LoRaWAN? 的無線讀卡器。當(dāng)讀卡器讀取電子標(biāo)簽數(shù)據(jù)時,電子標(biāo)簽信息會自動上傳到RAK7268 WisGate Edge Lite 2內(nèi)置的LoRaWAN?服務(wù)器。

使用的硬件

本項目的主要硬件使用了 WisBlock 套件。MCU選用RAK4631 WisBlock Core模塊,采用Nordic nRF52840 MCU,支持藍(lán)牙5.0(藍(lán)牙低功耗)和Semtech公司最新的LoRa?收發(fā)器SX1262 。它支持 LoRa? 和藍(lán)牙通信模式。

image_75bj2KU8xa.png?auto=compress%2Cformat&w=740&h=555&fit=max
RAK4631
?

NFC選用WisBlock E生態(tài)的RAK13600 NFC讀卡模塊采用PN532芯片,支持ISO/ICE 14443A/B卡類型的讀寫。

?

image_OL2eZkzLF9.png?auto=compress%2Cformat&w=740&h=555&fit=max
RAK13600
?

它還配備了蜂鳴器模塊RAK18001,在NFC刷卡有效時提供蜂鳴器提醒。

buzz_mLDVgV6Rlv.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

本項目軟件采用RUI3開發(fā)平臺。RUI3為WisBlock提供了很多API接口函數(shù),包括傳感器驅(qū)動接口和無線傳輸接口。只需要編寫少量的應(yīng)用代碼就可以完成這個產(chǎn)品的開發(fā)。

Step 1 - 硬件電路搭建

硬件準(zhǔn)備:

  • 用于帶有 LoRa SX1262 的 LoRaWAN 的 Nordic nRF52840 BLE 核心模塊 | RAK4631 / RAK4631-R
  • WisBlock 底板 | RAK5005-O
  • NFC RFID NXP PN532 | RAK13600
  • 蜂鳴器模塊江蘇MLT-5020 | RAK18001
  • 兩個 ISO/ICE 14443A/B 卡
  • 統(tǒng)一外殼 IP65 100x75x38mm
  • 3dBi SubG 天線 | (LoRa? 天線)
  • 5 顆 M2.5x4 螺絲和 8 顆 M1.2x3 螺絲
07d8357e-96f3-4c16-8202-1f4dd5a65b7c_eAXtnSOWCo.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

五金組裝:

RAK4631模塊固定在CPU SLOT位置,RAK13600固定在IO SLOT位置,RAK18001固定在SLOT A(或SLOT B)上,用固定螺絲固定模塊。

連接 NFC 天線、LoRa? 天線、藍(lán)牙天線,并將它們安裝到外殼中。

image_EJsyUB7XqS.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

這是在組裝過程中指導(dǎo)您的示意圖

squematic_NFONAonJEl.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

Step 2 - 軟件環(huán)境搭建

Arduino IDE中添加RAK4631-R開發(fā)板:

  • 打開 Arduino IDE 并轉(zhuǎn)到File > Preferences 。
image_LMgR2GCO4i.png?auto=compress%2Cformat&w=740&h=555&fit=max
Arduino 偏好
?
  • 要將 RAK4631-R WisBlock Core 添加到您的 Arduino 板列表,您需要編輯附加板管理器 URL。單擊該圖標(biāo)。
image_ufJNPtchyU.png?auto=compress%2Cformat&w=740&h=555&fit=max
修改其他 Board Manager URL
?
  • 復(fù)制 URLhttps://raw.githubusercontent.com/RAKWireless/RAKwireless-Arduino-BSP-Index/main/package_rakwireless.com_rui_index.json并將其粘貼到字段中。如果已經(jīng)有其他 URL,只需將它們添加到下一行即可。添加 URL 后,單擊確定。
image_OE8JexynOA.png?auto=compress%2Cformat&w=740&h=555&fit=max
添加其他 Board Manager URL
?
  • 重新啟動 Arduino IDE。
  • 從工具菜單打開板管理器。
image_9mHIXMdRhj.png?auto=compress%2Cformat&w=740&h=555&fit=max
打開 Arduino 開發(fā)板管理器
?
  • RAK在搜索欄中。這將顯示可用的 RAKwireless WisBlock 核心板,您可以將它們添加到 Arduino 板列表中。選擇并安裝RAKwireless RUI nRF 板
image_2axZvmbDIm.png?auto=compress%2Cformat&w=740&h=555&fit=max
安裝 RAKwireless RUI nRF 板
?
  • 安裝 BSP 后,選擇Tools > Boards Manager > RAKWireless RUI nRF Modules > WisBlock Core RAK4631 Board
image_VDroskBMSy.png?auto=compress%2Cformat&w=740&h=555&fit=max
選擇 RAKwireless WisBlock 模塊
?

安裝庫

安裝RAK13600-PN532庫和Adafruit總線庫:

image_I6UUUCg60D.png?auto=compress%2Cformat&w=740&h=555&fit=max
?
image_sqy1bSYf5P.png?auto=compress%2Cformat&w=740&h=555&fit=max
?

第 3 步 - 軟件開發(fā)

LoRaWAN? 部分的初始化。該函數(shù)初始化協(xié)議棧的所有參數(shù)網(wǎng)絡(luò)接入方式為OTAA。用戶需要根據(jù)自己的頻段和網(wǎng)絡(luò)接入?yún)?shù)修改這個宏定義。代碼中使用的頻段為AS923。NFC芯片初始化代碼采用IIC通信協(xié)議。初始化完成后,即可使用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 控制。蜂鳴器不用時,需要關(guān)閉輸出。

pinMode(BUZZER_CONTROL,OUTPUT);
 noTone(BUZZER_CONTROL);

NFC芯片初始化代碼采用IIC通信協(xié)議。初始化完成后,即可使用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循環(huán)讀取是否有NFC卡。如果 ID 讀取成功,蜂鳴器響 150ms,然后將卡 ID 發(fā)送到 LoRaWAN? 服務(wù)器。

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 進行數(shù)據(jù)記錄

通過WisToolBox查看實時串口日志

image_7BulyJVMwp.png?auto=compress%2Cformat&w=740&h=555&fit=max
通過wistoolbox查看實時串口日志
?

RAK7268 內(nèi)置 LoRaWAN?,如果您需要確認(rèn)數(shù)據(jù)是否已成功發(fā)送,還有一個服務(wù)器日志。

image_pasted_at_2022-8-11_16-42_oB4XTPKXg0.png?auto=compress%2Cformat&w=740&h=555&fit=max
查看服務(wù)器上的日志
?

結(jié)論

在成功構(gòu)建具有 LoRaWAN 連接的 NFC 讀卡器后,您有多種選擇可以在多種場景中實施它,例如通過標(biāo)簽進行商品控制、用戶進入控制、構(gòu)建安全控制等許多事情,并記住我們總是說#IoTMadeEasy。

此外,請關(guān)注我們的Hackster Hub 并成為我們社區(qū)的一員,以了解更多 DIY IoT 項目和新聞。

如果您想購買我們的產(chǎn)品,請訪問我們的商店

歡迎與我們分享,寫下你的疑惑,在評論區(qū)與我們互動。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費