电子说
步骤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,您可以在该地址上计算电阻值。在多个william hill官网 上讨论了最大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
全部0条评论
快来发表一下你的评论吧 !