基于Maduino Zero的COVID | 您所在的位置:网站首页 › nfc芯片厂商 › 基于Maduino Zero的COVID |
本文要介绍的是一款 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); //L298Nconst 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 { 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,低);}
|
CopyRight 2018-2019 实验室设备网 版权所有 |