当前位置:首页 > 物联网 > IoT设计分享
[导读]在这里,我们正在构建一个基于物联网的生物识别考勤系统,该系统可以将考勤记录存储在谷歌表格中。ESP8266 NodeMCU模块将与R305指纹模块和LCD显示屏接口,谷歌电子表格将用于保存考勤日志以备将来参考。我们还使用push box API将生物识别数据从NodeMCU发送到谷歌表。本项目对企业、教育机构、医院等单位的出勤有很大的帮助。

现在,企业和办公室正在采用生物识别考勤系统,将手指放在指纹传感器上记录考勤。这些记录保存在云服务器上,以便当局从任何地方进行监控。

在这里,我们正在构建一个基于物联网的生物识别考勤系统,该系统可以将考勤记录存储在谷歌表格中。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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭