基于Arduino和Adafruit IO的RFID考勤系统
扫描二维码
随时随地手机看文章
传统的人工考勤方法非常耗时,而且经常会导致人为错误。手工系统也容易出现不当行为,宝贵的工作时间被浪费在考勤数据的组织和结构化上。目前的考勤系统可以通过使用物联网和RFID技术的智能考勤系统来取代更高效和有效的方法。RFID是一种自动识别和数据收集技术。射频识别(RFID)是一种通过电磁波在终端和附着在物体上的电子标签之间交换数据的技术,目的是识别和跟踪。一些标签可以在几米外读取,超出阅读器的视线范围
本课题是利用射频识别(RFID)技术简化考勤系统。在这个项目中,我们使用Arduino Uno, RC522 RFID扫描仪和ESP8266 Wi-Fi模块。Arduino和RFID扫描仪扫描RFID卡,然后借助ESP8266 Wi-Fi模块将数据记录到Adafruit IO云平台。这些信息可以显示在Adafruit IO仪表板上,并可以由所需的当局访问,以便随时随地通过互联网查看和分析考勤情况。
组件的要求
硬件组件
•Arduino Uno
•RFID-RC522
•ESP8266-01
•跳线
软件应用程序和在线服务
•Arduino IDE
•Adafruit IO
设置你的Adafruit IO帐户
Adafruit IO是一个开放的数据平台,允许您在云中聚合、可视化和分析实时数据。使用Adafruit IO,您可以在互联网上上传,显示和监控数据,并使您的项目启用物联网。您可以使用Adafruit IO控制电机,读取传感器数据,并通过互联网制作酷的物联网应用程序。为了测试和尝试,有一些限制,Adafruit IO是免费使用的。我们以前也在树莓派上使用过Adafruit IO。
1. 对于Adafruit IO设置,您需要做的第一件事是注册Adafruit IO。登录Adafruit IO的网站,点击屏幕右上方的“Get started for Free”即可注册。
2. 在此之后,将弹出一个窗口,您需要在其中填写详细信息
在注册窗口填写您的详细信息,如您的姓名,邮件id,用户名等。然后点击保存设置,你的账户就创建好了。要获得你的AIO密钥,点击“查看AIO密钥”。
3. 一个窗口将弹出与您的Adafruit IO AIO密钥。复制此键,稍后在代码中需要它。
4. 现在,在此之后,您需要创建一个提要。要创建提要,请单击“feed”。然后点击“Actions”,你会看到一些选项,点击“Create a New Feed”。
5. 在此之后,将打开一个新窗口,您需要输入:
名称-在名称中,选择为提要写一个简短的描述性名称。你可以用
字母、数字和空格。
描述-对数据的长格式描述。这个字段不是必需的,但是你
可以写你的数据的描述。
6. 点击“创建”,你将被重定向到你的新提要。
ESP8266-01编程
利用FTDI板对ESP8266进行编程的电路图如下图所示。FTDI板的Rx、Tx、GND与ESP8266相连。在本项目中,ESP8266需要同时在AT命令模式和编程模式下运行。通过拨动开关,ESP8266可以在AT命令模式和编程模式之间切换,通过按钮复位模块。
要使模块进入编程模式,需要将ESP8266的GPIO 0引脚(紫色线)连接到地(绿色线),并按下复位按钮。要将模块置于AT命令模式,必须使GPIO 0引脚(紫色线)保持空闲状态,并按下复位按钮。
请注意,默认情况下,ESP8266-01模块使用AT命令。但是当我们使用Arduino IDE将程序上传到它时,默认的AT命令固件将被我们的Arduino代码覆盖。要与AT命令一起使用它,您必须用其默认固件Flash ESP8266模块。
基于Arduino IDE的ESP8266编程
要用Arduino IDE编程ESP8266,请进入File - > preferences - >Settings。
在“附加董事会管理器URL”字段中输入,然后单击“确定”。
现在转到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中输入esp, esp8266将在下面列出。现在选择最新版本的电路板并单击install。
安装完成后,进入“工具>单板>通用ESP8266模块”。选择正确的Port,然后上传代码。
RFID考勤系统的ESP8266编程
在本教程的最后给出了完整的代码和工作视频,在这里我们解释程序以了解项目的工作原理。
通过添加所需的库开始程序。在此之后,输入Wifi凭据和密码与Adafruit IO用户名和AIO密钥,我们之前获得。
使用setup功能,我们将以11500波特率开始串行通信。然后我们将Wi-Fi客户端连接到Adafruit IO服务器。
在void循环函数中,ESP将从串行读取数据,然后将其发布到Adafruit IO服务器。
一旦你的代码准备好了,检查ESP8266是否工作。通过使ESP8266保持编程模式,使用FTDI模块将代码上传到ESP8266。一旦代码上传,将其连接回AT命令模式并按复位按钮。然后打开串行监视器,你应该看到它连接到Wi-Fi和Adafruit IO。
线路图
RFID智能考勤系统的完整电路图如下所示。电路图是用Fritzing软件制作的。
Arduino与RFID的连接如下表所示:
如图所示,用Arduino和RFID-RC522替换FTDI板。RFID扫描仪由Arduino的3.3V引脚供电,ESP由LM317稳压器供电,通过12V直流适配器供电时,稳压3.3V。Arduino UNO模块通过USB接口供电。
为了制作电路,我通过参考CircuitDigest的IoT Arduino Wi-Fi Shield为ESP8266和LM317稳压器部分构建了PCB。但你也可以在面包板上建立完整的电路,事情应该工作得很好。我的硬件与连接如下所示。
Arduino Uno程序
MFRC522库用于RFID扫描器。如电路图所示,SDA和RST引脚分别与Arduino的10和9引脚相连。您可以从下面的链接下载库的zip文件,并将其添加到您的Arduino IDE。
下载MFRC522 RFID库Arduino
在setup函数中,我们将串行通信初始化为9600波特率,软件串行初始化为115200波特率。我们也开通了与MFRC522的沟通。
在void循环函数中,我们将检查是否存在一张新卡,如果存在一张新卡,那么它将检查该卡的UID。对于有效卡,它将在串行监视器上打印该卡的UID;否则,它将打印“未经授权的卡”。
现在将下面给出的完整Arduino代码上传到UNO板,并将其与已经运行代码的ESP连接起来。上传码扫描卡后,对于每张有效卡,它将在串行监视器上打印卡的UID,并将卡的详细信息发送到Adafruit IO。
这就是你如何建立一个基于物联网的考勤系统,并将其连接到互联网上,通过互联网监控考勤情况。
本文编译自iotdesignpro