使用树莓派和NFC标签阅读器的考勤系统的制作

电子说

1.3w人已加入

描述

步骤1:材料清单

您可以在E-Bay或许多中国的电子商店(例如Dealextreme等)上购买此项目所需的一切。

对于此项目,您需要以下物品:

Raspberry Pi模型B

16x2显示屏

Mifare RFID阅读器

USB数字键盘

LED二极管支架

红色LED二极管

有源3V蜂鸣器

小面包板以及各种FF和MF跨接电缆

各种螺钉和/或胶枪,LED电阻器,显示屏10k电位器

我推荐使用Raspberry Pi B型,因为集成局域网和两个USB端口。这样,您既可以使用LAN + USB键盘,也可以使用USB键盘和USB WiFi加密狗。

您可以使用任何显示器,但我使用的是HD44780(与adafruit上的显示器相同),因为它已被充分记录并仅使用我选择了13.56 MHz RFID读取器和标签,因为从我的手机实验中我已经很少使用这种技术的标签了。我还找到了不错的“操作方法”(http://fuenteabierta.teubi.co/2013/07/utilizando-el-lector-nfc-rc522-en-la.html),并且在Google翻译的帮助下修改了给定的源代码我的需要。

可以使用任何数字键盘。那些高按钮的人可能会因为盒子的厚度而更好。安装时只需用小刀或螺丝刀卸下所有多余的按钮即可。

LED和LED支架是纯粹多余的,对于设备运行而言不是必需的,但它们可以作为额外的动作指示。

蜂鸣器。我觉得这样的设备应该有自己的声音让人们知道它正在工作。

面包板和跳线用于每个设备之间的互连,因为多个引脚(3.3V,GND等)用于多个部分。 。您当然可以使用焊接的板,但是我希望能够轻松地更换每个零件,而只需用胶枪将其粘合在一起。

您还需要很少的螺钉和/或胶枪将所有零件固定在一起。对于LED,您需要小电阻。对于我的红色LED,我使用了68欧姆的电阻,该电阻应将电流限制在19 mA左右。根据您的LED,您可以在该地址上计算电阻值。在多个论坛上讨论了最大GPIO电流,但我不会超过20mA。电位器用于调整显示器的对比度。

步骤2:一起布线

树莓派

在图片上从上方的Fritzing可以看到每个元素之间的连接。您可以在页面下方找到fzz文件作为下载链接。

有关显示连接的故障排除,请参阅adafruit网站上的精美手册。

连接非常简单,因此不会有任何麻烦。

我在包装盒的盖子上切了一些孔,用于显示,LED和键盘,为了安全起见,NFC读取器仍留在盖子下,并且它有足够强的信号可以通过塑料读取标签。

我用胶枪对准了盒子,它足以固定每个组件。并且在测试之后,甚至将电线粘到连接器上,以防止在操作过程中意外断开连接。

也不要忘记在电源和网络电缆上钻孔(如果使用WiFi加密狗或PoE,则只能钻一个孔)。 br》作为最后的触摸,在NFC读取器所在的盖子的外部标记点,以便于阅读。

步骤3:软件

该项目来自多个教程和HOWTO,因此可能会有一些遗留之处,但是暂时可行,以后我可能会修复它(AKA永远不;))

首先,您需要默认的Raspbian映像

之后,我们需要进行一些调整才能启用正确的功能:

首先,我们安装了NFC阅读器所需的文件,如下所述(http://fuenteabierta .teubi.co/2013/07/utilizando-EL-讲师-NFC-RC522-ZH-la.html)点击1。通过编辑文件/etc/modprobe.d/raspi-blacklist.conf 启用SPI设备,并注释 blacklist spi-bcm2708 行,以便其内容如下:

# blacklist spi and i2c by default (many users don‘t need them)

# blacklist spi-bcm2708

blacklist i2c-bcm2708

2.然后下载SPI-Py软件包以启用Python的SPI通信

git clone https://github.com/lthiery/SPI-Py,并通过

sudo python setup.py install

进行安装(如果缺少python-dev和安装脚本错误退出,请先安装软件包

sudo apt-get install python-dev

我们还将需要来自https://github.com/mxgxw/MFRC522-python的MFRC522软件包,但我必须对其进行编辑一点点,所以它已经在该项目的源文件夹中。

要使其正常工作,最后想到的是为Python安装GPIO(如果愿意,请将软件包版本中的数字更新为最新的版本)。 :

wget https://pypi.python.org/packages/source/R/RPi.GPIO-0.5.4.tar.gz

tar zxf RPi.GPIO-0.5.4.tar.gz

cd RPi.GPIO-0.5.4

sudo python setup.py install

此后,我们可以下载该项目的源代码

git clone https://github.com/Yimbo/attendance在您的MySQL数据库中创建表并将结构从mysql.sql文件上传到该数据库。 br》根据您的设置(服务器,用户名,密码和数据库名称,下一个更新文件mysql.py我)。

此步骤之后,您应该可以运行该程序:

sudo python attendance.py

步骤4:自动化

现在您应该具有功能齐全的系统,可用于读取NFC标签并将有关它们的信息存储在MySQL数据库中。

对于日常使用,您应该准备接受电源故障,数据错误等。为避免电源故障,可以使用UPS,但是树莓派可能仍然不时重启。另外,您还想使用集成键盘,而不是要从中运行程序的控制台中的键盘。

首先更改您的出勤文件属性,使其可以在不外部调用python的情况下运行:

chmod +x attendance.py在下一个中在TTY1上启用自动登录。以root身份重启后,这将自动登录您的第一个控制台。

首先安装mingetty:

apt-get install mingetty,然后编辑文件/etc/inittab并找到行

1:2345:respawn:/sbin/getty --noclear 38400 tty1并将其更新为:

1:2345:respawn:/sbin/mingetty --autologin root --noclear tty1

然后,每次系统登录到控制台tty1时,都需要激活NumLock,因此请创建具有以下内容的文件leds.sh(请注意,它可能不会影响键盘上的实际LED,但是它将变成Numlock无论如何,请执行以下操作:

setleds -D +num 《 /dev/tty1并将其权限更改为可执行文件:

chmod +x leds.sh然后您要为python脚本创建看门狗,因此即使崩溃,该看门狗也会再次启动它。转到主目录并使用以下文本创建文件runattendance.sh:

while [ 1=1 ];

do

if [ ! “$(pgrep attendance.py)” ];

then

/root/leds.sh && cd /root/Attendance/ && /root/Attendance/attendance.py

fi

sleep 10

done并以与以前相同的方式将其权限更改为可执行。

此后转到根主目录(/root/)并更新文件.bash_profile并添加以下行:

[[ $(tty) == ’/dev/tty1‘ ]] && /root/runattendance.sh这将在系统每次登录第一个控制台时启动runattendance.sh(引导后现在将自动运行)。

如果完成所有这些操作步骤,您现在可以重新启动树莓派,并且在成功启动后,显示屏应该亮起并且考勤系统应该可以工作。
        责任编辑:wv 

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

全部0条评论

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

×
20
完善资料,
赚取积分