亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

电子值机

组件和用品

Arduino Mega 2560
× 1
Mifare RC522 读卡天线射频模块
× 1
LED(通用)
× 2
触觉开关
× 2
电阻(通用)
× 4

关于这个项目

我们在台北黑客空间经常遇到的一个问题是人们不知道我们什么时候开放。我们的基本规则很简单:只要有密钥持有者成员在 Hackerspace 中,任何人/每个人都可以进入。实际上,尽管人们永远不知道是否有人在那里。

他们可以给空间打电话,甚至给邮件列表发送电子邮件,而我认识的人通常最终会直接问我 - 嘿,现在有人在空间吗?因为我并不总是知道答案,所以一直在寻找更好的——也许是更具技术性或黑客性的解决方案:让我们构建一个电子签入/签出系统,显示网站上的当前状态。

主要想法是在台北几乎每个人都有一张 EasyCard,一张 13.56MHz RFID 卡,用于城市中的所有公共交通等等。 RC522 卡天线模块似乎能够很好地读取卡,我所需要的只是非常简单的 ID 号(在挖掘 Arduino 论坛的源代码之后)。

项目简而言之:

  • 使用带有 RC522 板的 Arduino Mega 获取给定 EasyCard 的 ID 号
  • 使用女巫来了解此人是在签入还是签出
  • 使用 LED 为硬件提供一些反馈和基本用户界面
  • Node.js 服务器与 Arduino 通信,连接签入/签出数据库,并提供 API 和对数据的实时访问
  • 在网站上创建一些界面来显示签到状态

现在让我详细研究不同的部分。

射频识别

RC522 模块有 8 个引脚,Arduino 可以使用 SPI 库与其进行通信。我使用了 Arduino Mega ADK,因为 SPI 引脚可以方便地访问,不像例如Leonardo,为此我不得不制作一些新的电缆或接头。 RC522(pin number)->Mega(pin number) 连接是这样完成的:

  • SA(1) → SS(53)
  • SCK(2) → SCK(52)
  • MOSI(3) → MOSI(51)
  • 味噌(4) → 味噌(50)
  • (5) 未连接
  • GND(6) → GND
  • RST(8) →(任何数字引脚)
  • +3.3V(8) → +3.3V
RFID-RC522,带空白卡和插针

与卡片对话的源代码来自博客,我猜最初来自中国的一家科技商店(基于大量简体中文评论)。

开关和视觉反馈

我想为读卡器制作尽可能简单的界面。添加了这对开关和 LED(D1 为绿色,D2 为红色)。 Arduino 从读卡器收到卡 ID 后,LED 会闪烁以提示人们按下 Check In 或 Check Out 按钮。按任意一个,对应的LED灯会非常亮的闪烁一下,卡号和签入/签出事件通过串口发送到所连接的电脑

签入/签出按钮和视觉反馈 LED 的(非常基本的)电路。 “引脚”是指当前版本使用的Arduino引脚


如果在 10 秒左右内没有发生任何按钮按下,则读取被丢弃,读卡器返回到聆听模式。

网络服务器

Node.js 对于制作快速的 Web 服务非常有用,它的库支持一点也不差,尽管并非一帆风顺:它们的文档充其量通常是稀缺的。然而,它是启动和运行最快的一个,因为我之前使用过几乎所有必需的组件。

服务器通过串行端口库与 Arduino 通信。我更习惯于 Python 的 pyserial,尽管在这种情况下,serialport 可以发出读取事件非常方便,因此服务器可以等到有东西要读取并在传入数据上运行一些函数。根据我的经验,串行端口对于我在串行领域遇到的每个角落情况都不是很好,但在这种设置中效果很好。

我选择 SQLite3 来存储数据,使用 sqlite3 库。还有很多其他的,不得不环顾一下哪个仍在开发中。这个特殊的库还不错,虽然我发现自己在与缺乏文档和异步性做斗争。我敢肯定,生成的代码非常难看,在某些地方效率低下,因为我不知道如何以不那么迂回的方式获得我想要的结果,但它似乎仍然有效,这对原型来说很重要。

首先我做了一个简单的 REST API 来查询当前签到的人,然后通过 socket.io 添加(实时)推送更新,使其更好。非常棒的是,无需任何轮询,一旦有人登录或退出,所有客户端都可以更新。

由于此代码与我们的主 Web 服务器在不同的计算机上运行,​​因此必须使用 Access-Control-Allow-Origin 标头,并调整我们的路由器设置以使其可正确访问 Web。

尝试添加一个前端可以加载的几乎独立的脚本,它可以处理所有内容,只需要一个合适的 HTML span 或 div 元素来显示信息。

用于签入/签出的硬件设置:Arduino Mega、RFID-RC522 电路以及一些开关和 LED。

结果还不错,只要读卡器不死机。本来结果是用表格显示的,但想让它更人性化,所以这是我最终得到的格式:

包含一种特定签到情况的主页屏幕截图

也可以有没有名字的人,他们只是出现类似“现在有三个人 在 Hackerspace 签到:Greg 和另外两个人。”

SpaceAPI

还有一个名为 Space API 的项目,用于统一规范以公开有关空间本身的信息(

这个签到小工具与我们的台北黑客空间的空间 API 端点集成,显示我们的打开状态,因此可以与例如My Hackerspaces Android 应用程序,或 Space API 站点上列出的其他应用程序。

它活着!

这是它如何工作的快速演示视频:

https://www.youtube.com/embed/L3ccO_AuhQ8?feature=oembed

因此,您可以访问我们的网站 https://taipeihack.org/#open 查看实时结果,如果您在附近,如果“空间”中有任何人,请访问。

整个源代码在 Github 存储库中共享:Arduino 草图、服务器脚本和任何其他文件。我相信有很多可以改进的地方......

原文:台北黑客空间电子签到

代码

Github
https://github.com/taipeihackerspace/thcheckinhttps://github.com/taipeihackerspace/thcheckin

示意图


制造工艺

  1. 电子墨水
  2. 带有 RC522 的 Arduino RFID 锁 - MIFARE 协议 13.56 Mhz
  3. Arduino Spybot
  4. FlickMote
  5. 自制电视 B-Gone
  6. 主时钟
  7. 找到我
  8. Arduino Power
  9. 电子变色龙
  10. Tech-TicTacToe
  11. Arduino Quadruped
  12. Arduino 向日葵:电子太阳舞者