基于物联网的生物识别考勤系统,采用NodeMCU ESP8266和谷歌表
扫描二维码
随时随地手机看文章
现在,企业和办公室正在采用生物识别考勤系统,将手指放在指纹传感器上记录考勤。这些记录保存在云服务器上,以便当局从任何地方进行监控。
在这里,我们正在构建一个基于物联网的生物识别考勤系统,该系统可以将考勤记录存储在谷歌表格中。ESP8266 NodeMCU模块将与R305指纹模块和LCD显示屏接口,谷歌电子表格将用于保存考勤日志以备将来参考。我们还使用push box API将生物识别数据从NodeMCU发送到谷歌表。本项目对企业、教育机构、医院等单位的出勤有很大的帮助。
这种生物识别考勤系统比基于RFID的考勤系统更安全,更容易使用,因为RFID考勤系统需要一个RFID标签来注册考勤。
组件使用
•NodeMCU
•R305指纹传感器
•I2C模块用于16x2(1602)字母数字LCD
•电路试验板
•16*2字母数字液晶显示
•跳线
使用谷歌电子表格
在开始硬件模块之前,首先我们将创建谷歌表来记录出勤情况。以下是为该生物识别考勤系统创建和配置谷歌表的步骤:
步骤1:创建新工作表:
首先用你的谷歌账户登录谷歌docs,然后选择谷歌表格,然后选择“开始一个新的电子表格”。
步骤2:重命名工作表
将空白表重命名为您选择的任何名称。在我的例子中,它是ESP_Datalogger。然后在工作表中为日期、时间和名称创建列
步骤3:
现在转到工具并单击“脚本编辑器”选项,我们将在其中编写函数以将数据插入工作表。
步骤4:
新的Google Script以默认名称“Untitled project”创建。您可以将此Google脚本文件重命名为您选择的任何名称。在我的例子中,我将其重命名为“esp_datalogger”。
步骤5:
现在下载并粘贴下面给出的Google脚本代码,并将代码中的变量sheet_id替换为Sheet ID。
你可以从表单URL中获取表单ID,如下所示:
获取谷歌脚本ID
1. 转到Publish并选择“Deploy as web app”。
2. 选择“项目版本”为“新建”。在“Execute the app as”字段中选择“email id”。在“谁有权访问应用程序”字段中选择“任何人,甚至匿名”。然后点击“部署”。
3. 在下一步中,提供所有必需的权限。现在你可以看到一个带有给定链接的新屏幕,并将其命名为“当前web应用URL”。此URL包含Google Script ID。只需复制URL并将其保存在记事本中以备将来使用。
使用推箱API
步骤1:
现在转到pushingbox.com并使用您用于谷歌表单的相同电子邮件创建一个帐户。点击“我的服务”选项卡,然后点击“添加服务”按钮。选择“CustomURL”。填好弹出的表格。命名服务,然后在根URL字段,粘贴谷歌表单web应用程序的URL,我们已经在上一步中保存。在字段方法中选择GET选项。
步骤2:
接下来,转到“我的场景”。在文本字段中,为场景指定一个名称,然后单击“Add”。然后点击“Add an Action”,选择刚刚创建的服务的“Add an Action with this service”。然后弹出一个窗口,在表单中用“=$ name $”输入输入字段的名称,如下所示。之后我们会得到一个设备ID。
基于物联网的智能考勤系统电路图
基于物联网的生物识别考勤系统电路图如下:
编程NodeMCU发送考勤数据到谷歌表
在这里,我们将使用设备ID对NodeMCU进行编程,使其与谷歌表同步,并使用push box API将数据发送到谷歌表。本文底部给出了完整的程序,这里给出了分步解释。
在继续该程序之前,请确保您已经在Arduino IDE中安装了所需的电路板详细信息,使用电路板管理器对ESP8266 NodeMCU进行编程。之后,使用Sketch -> Include Library -> Manage Library安装以下库。只需搜索所需的库并单击安装。
Adafruit指纹传感器库
液晶LCD I2C接口库
这里有很多ESP8266的NodeMCU项目,我们已经解释了如何使用Arduino IDE对NodeMCU进行编程。
注册指纹的编程:
1. 在Arduino IDE中,转到File > Examples > Adafruit指纹传感器库> Enroll。
2. 将代码上传到NodeMCU,并以9600的波特率打开串口监视器。
重要:将程序中的软件串行引脚更改为SoftwareSerial mySerial(D3, D4)。
3. 您应该为要存储指纹的指纹输入ID。因为这是我的第一个指纹,所以我在左上角输入了1,然后点击发送按钮。
4. 然后指纹传感器上的灯会闪烁,这表明您应该将手指放在传感器上,之后,在串行监视器中,您可以按照步骤进行操作,直到它确认您成功注册。
指纹考勤系统的编程
因此,在注册手指之后,是时候上传考勤系统程序了。最后给出了基于指纹考勤系统的完整程序,并对代码的工作原理进行了说明。
在程序中要做的第一件事是包含所有必需的库。在我的情况下,我包括“Adafruit_Fingerprint.h”用于使用R305指纹传感器和“ESP8266WiFi.h”用于使用ESP8266 NodeMCU Wi-Fi模块。为了使用LCD显示器的I2C接口,我们使用了LiquidCrystal_I2C.h库。然后我们必须配置连接指纹传感器的串口。在我的情况下,我已经声明D3为RX引脚和D4为TX引脚。
接下来,在程序中设置您的Wi-Fi路由器凭证。将您的网络SSID名称替换为“xyz”,密码替换为“123456789”。因为我们将使用pushbox API将数据发送到Google表单,所以我将它分配给一个变量主机,我将在稍后的程序中使用。
在设置功能内,初始化LCD并打印欢迎信息。之后,我们用给定的凭据将nodeMCU连接到Wi-Fi网络,并在LCD中打印IP地址。
连接成功后,编写一个程序块来检查指纹传感器的可用性。这将确认我们关于指纹传感器与nodeMCU的成功配对。
在下一步中,编写一个函数getFingerprintID,该函数将为已经注册的指纹返回一个有效的指纹ID。
如果成功注册指纹,则调用getFingerprintID函数来获取有效的指纹ID。然后使用if-else循环进行比较以获得成员名,然后将该名称作为参数发送给函数connecthost,该函数将通过push box API将此数据发送到谷歌表。
在connecthost函数内部,从循环函数发送的数据被赋值给一个变量成员。一个可变的标志被设置为限制多个post的数据到谷歌表。然后用给定的主机和端口连接到Wi-Fi客户端。
如果与客户端的连接成功建立,则使用我们在推送盒API中获得的设备ID创建完整的URL。如果客户端没有响应超过5秒,它将显示客户端超时。否则,它将通过推框API使用URL将数据发送到谷歌表。
重要提示:将您的设备ID替换为v81040XXXXXX。
下图显示了如何在谷歌表中记录生物识别考勤。
这就是使用NodeMCU构建基于物联网的生物识别系统的方法。
本文编译自iotdesignpro