首页 » 软件开发 » 如何制作Makerspace NFC组件管理系统(管理系统组件制作创建按钮)

如何制作Makerspace NFC组件管理系统(管理系统组件制作创建按钮)

少女玫瑰心 2024-07-24 23:19:57 0

扫一扫用手机浏览

文章目录 [+]

此项目需要用到的工具材料:

硬件组件

光子(Particle Photon)物联网开发

如何制作Makerspace NFC组件管理系统(管理系统组件制作创建按钮) 软件开发
(图片来自网络侵删)

RC522 NFC标记阅读器

OLED 2828 262K色 全彩显示模块

Adafruit电容式触摸传感器 - MPR121

NFC贴纸 40

软件应用程序和在线服务

Autodesk Fusion 360

粒子搭建Web IDE

MySQL

NodeJS

手动工具和制造设备

3D打印机

烙铁

故事:

目的

想象一下,作为创客空间的所有者,您可以自行组织和跟踪仓库内的设备。
有时您的成员可能会借用这些组件但是并没有归还给您,或者他们将自己的工具材料带来后并将二者组装起来。
这就是为什么我需要创建一个单独的库存管理系统,它使用NFC和仓储箱(bin)对具有物联网功能的组件进行组织和跟踪。

演示视频

http://v.qq.com/x/page/w08640xhlzk.html

总体布局

每个bin都会被分配一个名称、描述、一般类型,以及与其贴纸相对应的NFC UID。
当零件进入bin时,每个零件都会有一个名称、描述、数量、类型,以及它所属bin的ID。
所有这些数据都托管在MySQL数据库中。
我使用NodeJS网络服务器创建了一个云API,然后可以对MySQL数据库执行某些操作,例如创建新组件或删除bin。
在硬件方面,我使用带128x128 OLED屏幕和NFC读取器的Particle Photon,以及用于虚拟按钮的MPR121。

我还创建了一个网页,允许完全访问API,以便能够轻松、干净地更改几乎所有关于bin或组件的内容。

网络服务器

我决定使用最适合我的用例的Express库,因为它允许创建简单的RESTful API,并且路径创建也非常简单。
我开始使用npm安装express,以及cors和mysql。
然后我用“require('包名package_name ')”将它们放置在顶部全局定义程序里面。
我使用MySQL库的createPool函数连接到MySQL数据库,因为它能够轻松安全地创建和释放连接。
每个API路径都有自己的功能,其中“app.post”用于POST请求,“app.get”用于GET请求。

字符串是发送数据的路径,例如“/parts/get_all_bins”。
函数内容各不相同,但通常每个函数都建立与数据库的连接,解析请求数据,并执行某项查询。
在数据库和设备之间添加缓冲区会创建一层安全控制区。

MySQL数据库

那么虽然目前存在一种访问和更改数据的方法,但是数据究竟存储在何处或如何存储?当我安装MySQL数据库时,我还安装了MySQL Workbench,它允许用户对其数据库进行管理。
我创建了名为“components”的新模式,并创建了两个表:parts和bin。

每张表都需要不同的列,因为bin没有具体数量,而且组件不需要NFC UID。

我还创建了需要登录密码的新用户,以便与NodeJS服务器同时使用。
如果有人获得对服务器代码的访问权限,那么执行此操作而不是使用root密码会大大提高安全性。

NFC RFID标签

当我第一次开始这个项目时,我只有几张NFC卡,所以我必须找到一种新的数据存储和扫描方法。
然后我去了AliExpress寻找更好的媒介。
我看到了NFC贴纸,它贴有一个非常小的天线和芯片,但是整个纸张非常薄而且很小。
这样我们就可以将它们粘在bin上并轻松读取。

硬件

那么bin究竟以何种方式进行扫描,数量如何变化?对于这个问题,我使用RC522 RFID阅读器读取NFC标签。
为了显示数据和指令,我使用了一个使用SSD1351控制器的128x128 OLED屏幕。
由于此项目适用于创客空间,我希望避免使用物理按钮,因为它们可能会出现磨损。
MPR121电容式触控板价格低廉并且具有I2C接口,最终被我选用。

它最多可以处理12个不同的频道。
在我的设计方案中,我增加3个附有1/4英寸铜带的地方。
这些铜片在触摸时可以充当按钮。

硬件代码

由于系统需要通过一系列繁琐的步骤进行创建,因此我开发了一个系统,该系统使用状态机对显示的页面进行控制。
它按照以下顺序依次排列:搜索选项卡->选择bin ->显示bin ->显示组件->更改数量。
为了解析来自Web服务器的响应,我使用了SparkJson库。
在每个阶段,请求会自动生成并将其发送到Web服务器。

网页

这是整个项目中最难更正的部分。
它包含三个组件:HTML、JavaScript和CSS。

由于我还是CSS新手,我使用的是W3 School的W3.CSS课程。
为了确保界面的简洁,我制作了一个简单的按钮网格,每个按钮对应一个弹出的模态卡。
每张模态卡右上角都有一个关闭按钮。
列表箱和列表项等按钮显示一个在单击时更新的列表中。
添加新项目和添加bin等按钮都包含在一个表单内。

JavaScript代码过于复杂,无法在本文中进行解释,但是它基本上包含在提交表单时调用的各种函数中。
某些函数还会填充选择元素和表。

用法

如需使用该系统,用户将首先通过输入其名称和其他数据来填充他们所拥有的bin列表。
然后按照类似的方式创建组件。
如有需要,通过一个按钮即可批量创建组件,例如塞满各种电阻值的bin。
一旦所有事情准备就绪,那么现在就可以使用photon对bin进行扫描了。

未来计划

在未来,我希望扩展系统,使其包括登录和所有权方面的内容。
用户可以扫描他们的makerspace RFID卡,然后访问他们自己的个人bin。

原理图

代码列表:

物理ReaderC/C++HTML网页Javascript网页

详细代码请在原文(http://mc.dfrobot.com.cn/thread-276715-1-1.html)中,相应位置查找。

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0