×

建筑访客管理系统Waylay IO开源分享

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-15

张旭

分享资料个

描述

动机

如今,智能建筑越来越普遍,其自动照明、通风和安全等功能与所谓的建筑管理系统相关联,该系统根据预定义的规则集积极照顾环境。

其中一个重要部分是安全层,它允许在那里工作的人根据某种身份确认轻松访问。通常,这些系统支持物联网,以便轻松监控和统计用户流量和未经授权的进入尝试。

让我们构建一个基本系统,允许用户基于 RFID 卡或指纹进行访问,并将数据发送到 IoT 平台进行记录。

本教程的主要目的是让您开始使用Waylay IO低代码平台进行物联网开发。

让我们开始吧!

poYBAGNo79CAc9uKAAmGzQERn0I53.jpeg
 

硬件要求

对于本教程,我们决定使用 M5Stack 生态系统,因为它可以构建这样一个系统,而无需对特定工具进行原型设计,例如烙铁或原型设计电缆。该项目的大脑是基于 ESP32 微控制器的物联网开发套件 M5Core2。该生态系统允许您通过 GROVE 端口将提供的模块连接到 M5Core2,从而实现硬件的快速部署。

poYBAGNo79WAAV_pAAnawV8pyWk30.jpeg
M5Core2
 

我们为本教程选择的模块是 M5Stack基于 FPC1020A 电容式指纹识别芯片组的指纹传感器单元和基于 MFRC522 芯片的Mini RFID 读写器单元

pYYBAGNo79uAEytBAAj9c6fbrRY79.jpeg
M5Stack 的指纹传感器单元和迷你 RFID 读写器单元
 

电线连接

  • 使用 Grove 电缆将 Mini RFID 读写器单元连接到 M5Core2 的端口 A(USB-C 连接器附近的红色端口)。本机使用 I2C 协议向 M5Core2 发送数据。
  • 取出背面的 CORE2 板以露出引脚。
  • 指纹传感器单元通过 UART 协议与 M5Core2 通信,因此我们将使用 Grove 电缆、Grove 到 4 针连接器和公对公杜邦线连接到以下引脚:
BLACK  - GND
RED    - 5V
YELLOW - TXD2
WHITE  - RXD2
poYBAGNo7-CAAKa-AAok394QmsQ66.jpeg
 

先决条件

pYYBAGNo7-KAQNKOAAAUvIh31nA362.png
M5燃烧器
 
pYYBAGNo7-WAGWXmAAAKjrOvuXk954.png
托尼 Python IDE
 

设置设备

  • 使用提供的 USB Type-C 电缆将 M5Stack 套件连接到您的 PC,然后启动M5Burner 端口名称应出现在应用程序的左上角(靠近COM )。

在 Linux 上,通过运行以下命令确保您的用户是拨出组的一部分:

sudo adduser $USER dialout
poYBAGNo7-iAQaZpAAJl32sxSDs238.png
M5Burner 接口
 
  • 下载UIFlow(CORE2) 单击擦除按钮,等待它完成,然后按刻录按钮将 UIFlow(CORE2) 固件上传到设备上。我们使用了 1.8.1_core2 系统将提示您输入设备将用于连接到本地网络的 WiFi 详细信息。如果刻录失败,请将波特率更改为较低的。
poYBAGNo7-uADdVTAAEsCp1Clt4604.png
烧录固件
 
  • 现在单击对应于 UIFlow(Core2)的配置框,然后从提供的屏幕的下拉列表中选择应用模式,如果不存在,则添加 Wifi 详细信息。
  • 完成重启后,您会看到一个初始屏幕,右上角是 UiFlow 版本。
pYYBAGNo7--AESC8AAkpGraZCnM27.jpeg
 

现在,让我们继续升级云解决方案吧!

设置云解决方案

如果您还没有注册Waylay IO并登录。

  • 转到资源并添加资源。将其命名为VisitorManagement. 该资源实际上是您在云中的设备表示,您将在其中发送数据。
  • customer使用keyZalmotekvalue添加一个新属性
  • tags使用key["VisitorManagementSystem" ]value添加另一个属性
pYYBAGNo7_GAXtwgAACTsk0gLOk249.png
在 Waylay IO 上创建资源
 
  • 转到左侧主菜单中的Webscripts并添加一个新的。将其命名为VisitorManagementDataIngestion并在正文中添加以下代码:
async function handleRequest (req, res) {
  if (!req.body) {
    // No body found
    return
  }

  // Parse body if needed
  let payload = req.body
  if (typeof payload === 'string' || payload instanceof String)
    payload = JSON.parse(payload)

  /*
  You can do some processing of the payload over here.
  */

  // Post values to our resource
  waylay.data.baseUrl = 'https://data-io.waylay.io'
  await waylay.data.postSeries('replace_with_resource_id', payload, { store: true, forward: true })
    .catch(e => console.error(e.message))

  res.sendStatus(200)
}

请务必将replace_with_resource_id占位符替换resource_id为上述步骤中的实际值。导航到资源页面以获取它。我们的有点像9d086585-eb05-46a2-9367-bf4a45679a0c粘贴正确的详细信息后,保存。

pYYBAGNo7_SAVu_DAAAO_A4gIIM049.png
Waylay IO 上的资源 ID
 
poYBAGNo7_aANWYBAADqMpatuvA510.png
Waylay IO 上的 Webscript
 

对设备进行编程

  • 转到该项目的 GitHub 存储库(也存在于本教程的代码块中)并下载包含所有必要代码的 zip 文件并将其解压缩到一个文件夹中(或使用 git 命令行界面执行相同的操作,如亲。
  • 启动Thonny并从Run -> Select interpreter将解释器设置为MicroPython (ESP32) ,然后选择设备端口。
  • 确保 M5Stack 已连接并显示 API 屏幕(或打开 hello world 程序),单击Shell 文本字段并按CTRL+C或按STOP按钮以连接到设备。看到>>符号后,您可以访问设备上的文件。转到查看并选择文件以设置您的工作区。然后转到本教程中提供的 temp.py 文件,并使用您的 Webscript 的 URL 编辑 SendPOST() 函数中的 URL。您可以在https://console-io.waylay.io/webscripts上找到它,位于您的 Webscript 名称下方。单击它以将其复制到剪贴板(确保包含机密)。
  • 按住 Shift 并单击文件(以及本教程中提供main.py的 2 个文件夹:custom、、、文件),从从 GitHub 下载的文件夹中选择所有文件。res排除自述文件,右键单击菜单图标(如下图所示的 3 条水平线)并按Upload to /flash ,按ok即可完成设置。确认被覆盖的文件。
pYYBAGNo7_uAHte5AAS2NeoWP24075.png
 
  • 此时请确保按照之前的说明连接所有传感器,否则程序将挂在白屏上。
  • 按下 SD 卡插槽附近的向下按钮重新启动 M5Stack(屏幕将关闭并刷新)。设备将连接到 WiFi 网络并自动运行 main.py 文件。
  • 当设备成功将数据发送到服务器时,您将Data sent在显示屏左下角收到一条消息,并在显示屏右下角200收到 HTTP 状态代码(表示请求已成功接收、理解并接受) )。
pYYBAGNo8AKAOBQgABA6lGFZIQs34.jpeg
 

这是系统的演示:

 

设置警报

警报是一项有用的功能,当监控值达到不需要的水平时,您可以通过该功能获得通知。

  • 从您的用户控制台中选择模板字段,然后单击添加模板按钮。
  • 要创建基本的警报流程,我们将从块菜单中添加必要的块,然后对其进行配置。添加一个Stream块,取消选中execute on tick并选中execute on data并选择您选择的资源。
  • 添加一个Condition块,取消选中execute on tick并选中execute on data并选择您选择的资源。在条件字段中,按以下格式写出条件:
${nodes.stream_1.rawData.stream.replace_with_your_metric}
  • 在我们的示例中,您可以选择的指标是在( , )中的DataMap变量中定义的指标。我们的情况如下所示:temp.pyaccValueDoorStatus
${nodes.stream_1.rawData.stream.DoorStatus} > 0
  • 添加一个Create Alarm块,取消选中execute on tick ,选中execute on data ,然后选择您选择的资源。还要填写您的警报文本、您想要的警报类型(CRITICAL、MAJOR、MINOR 或 WARNING),并创建警报类型。
  • 单击“保存”按钮并为您的模板选择一个名称。
  • 现在您已经返回到Templates菜单,选择之前创建的模板并单击Create Task
poYBAGNo8AWAeCx2AACt8AKMC9w860.png
在 Waylay IO 上创建警报
 
  • 为您的任务选择一个名称,选择Resource选择Reactive模式,然后单击Create Task
  • 现在任务已创建,当满足条件时,将触发警报,并将显示在控制台的“警报”字段中,以及链接到与警报相同的资源的仪表板中。
pYYBAGNo8AeAYBSrAACw2brHNLU561.png
在 Waylay IO 上创建任务
 

创建仪表板

现在我们设法将数据持续发送到我们的云解决方案,是时候设置一个仪表板来显示它了。

  • 前往dashboard-io.waylay.io/并使用您的帐户数据登录。
  • 通过单击+号创建组织。此组织的名称必须与您在定义资源时使用的客户名称(元数据属性)相同。
  • 单击以管理员身份登录
  • 单击左下角的+号,单击Query ,然后在标签字段中填写您为资源选择的标签属性的值,在我们的例子中是VisitorManagementSystem
  • 命名您的组,最后单击创建组
  • 单击您的查询,然后单击您的资源名称。
  • 单击我的仪表板旁边的+号并选择所需的表示,选择您要表示的指标,然后单击保存
  • 对于这个项目,我们决定使用 twp Bulletin Widgets 来显示门的状态和访问状态,使用散点图显示门打开的时间,并使用 Alarm 小部件在门解锁时提醒我们。
  • 添加所有小部件后,单击+号旁边的齿轮,然后单击Publish
  • 单击我的仪表板并选择您的仪表板(注意+号消失),单击齿轮,单击管理,然后选择public
  • 现在,通过单击连接按钮,您可以获得公共仪表板的链接,以便与您的朋友分享或从任何浏览器访问它。
pYYBAGNo8AqAI9lCAAEFFsfxFAM601.png
 

下一步是什么?

我们有一系列教程以及其他用例,您可以从中学习并进一步提高您的 IoT 技能,或者您可以开始自己的项目。

如果您在部署此解决方案或构建类似解决方案方面需要帮助,请联系Waylay.io获取低代码 IoT 解决方案或Zalmotek.com获取支持 IoT 的硬件原型。

如果您还有其他问题,请通过评论与我们联系!


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

评论(0)
发评论

下载排行榜

全部0条评论

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