基于Maduino Zero的COVID-19 NFC口腔检测仪

测量仪表

1495人已加入

描述

  本文要介绍的是一款 COVID-19 NFC 口腔检测仪,以确保进出办公室的每个人都可以正常运行。

  冠状病毒疫情的影响,办公楼严格控制工作人员的进出。每个人都应该戴上口罩并测量身体的才能进入。

  在 COVID-19 期间,很多人都有免费口罩,但仍有一些人始终没有提供。这就是我制作这个项目的原因。

  设备好后的人员需要通过专门的 NFC 口罩,出门定制这个普通的办公场所,你不会在外面使用这个设备。可以自由进出,否则您将无法进入。

  第1步:需要的材料

检测仪

  硬件:

  马杜伊诺零 NFC

  L298N电机驱动板

  NFC 壁纸

  电磁锁

  软件:

  Arduino IDE

  第2步:连接

检测仪

  L298N 模块 -- Maduino Zero NFC

  ENA——D4 (GPIO4)

  IN1 -- D5 (GPIO5)

  IN2 -- D6 (GPIO6)

  电磁锁 -- L298N OUT2

  第3步:定制NFC口罩

检测仪

  我们还定制了NFC口罩、尺寸大小的NFC礼物。

  第4步:安装NFC口罩检测器

检测仪

  Maduino Zero NFC模块用于固定在门侧,检测工作人员是否在门上,NFC支架固定在门上。

  第 5 步:测试

  工作人员在门口口罩,仪器检测是否自动打开。(同样戴几戴口罩,如果门会自动关闭。)

  NFC代码:

  #include

#include
#include "Adafruit_PN532.h"

#define PN532_SS (9)
//如果使用带 I2C 的分线器或屏蔽,只定义连接
到//到 IRQ 和复位线的引脚。使用下面的值 (2, 3) 作为屏蔽!
#define PN532_IRQ (2)
#define PN532_RESET (11) // NFC Shield 上默认未连接

Adafruit_PN532 nfc(PN532_SS);

//L298N
const int ENA = 6 ;
常量 int IN1 = 5 ;
常量 int IN2 = 4 ;

#if defined(ARDUINO_ARCH_SAMD)
// 对于零,在 USB 串行控制台上输出,如果使用编程端口对零进行编程,请删除下面的行!
// 同时更改 Adafruit_PN532.cpp 库文件中的
   #define #define Serial SerialUSB
#endif

无效设置(无效){
    pinMode(ENA,输出);
    pinMode(IN1,输出);
    pinMode(IN2,输出); 
    
    序列号.开始(115200);
    串行USB.开始(115200);
    SerialUSB.println("你好,Maduino Zero NFC!Makerfabs");

  nfc.开始();

  uint32_t 版本数据 = nfc.getFirmwareVersion();
  if (!versiondata) {
    SerialUSB.print("没找到 PN53x 板");
    而(1);// 停止
  }
  
  // 得到好的数据,打印出来!
  SerialUSB.print("找到芯片PN5"); SerialUSB.println((版本数据>>24) & 0xFF, HEX); 
  SerialUSB.print("固件版本"); SerialUSB.print((versiondata>>16) & 0xFF, DEC); 
  SerialUSB.print('.'); SerialUSB.println((versiondata>>8) & 0xFF, DEC);
  
  // 设置从卡读取的最大重试尝试次数
  // 这可以防止我们永远等待卡,这是
  // PN532 的默认行为。
  nfc.setPassiveActivationRetries(0xFF);
  

  nfc.SAMConfig();
  
  SerialUSB.println("等待 ISO14443A 卡");
}

无效循环(无效){
  布尔结果_成功= 0;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // 缓冲区存储返回的 UID
  uint8_t uidLength; // UID 的长度(4 或 7 个字节,取决于 ISO14443A 卡类型)
  
  // 等待 ISO14443A 类型卡(Mifare 等)。找到时
  // 'uid' 将填充 UID,uidLength 将指示
  // 如果 uid 是 4 字节(Mifare Classic)或 7 字节(Mifare Ultralight)
  result_success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0 ], &uidLength);
  
  if (result_success) {
    SerialUSB.println("找到一张卡!");
    SerialUSB.print("UID 长度:");SerialUSB.print(uidLength, DEC);SerialUSB.println("
    SerialUSB.print("UID 值:");
    for (uint8_t i=0; i < uidLength; i++) 
    {
      SerialUSB.print("0x");SerialUSB.print(uid[i], HEX); 
    }
    SerialUSB.println("");
    结果_成功=0;

    //analogWrite(ENA, 255);
    数字写入(ENA,高);
    数字写入(IN1,低);//切换方向
    digitalWrite(IN2, HIGH);
    延迟(2000);
    // 等待 1 秒再继续
    delay(1000);
  }
  else
  {
    // PN532 等待卡片可能超时
    SerialUSB.println("等待卡片超时");
  }
    数字写入(IN1,低); 
    数字写入(IN2,低);
}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分