校园门禁一(NFC录入信息和excel存储信息)
前言
Mind+1.7.0迎来了目前火热的Python模式,这一版本的发布却引来很多人的使用。废话不多说,直接上项目讲解。
在使用之前先给大家看一下简单的教程简介,以防在使用中出现错误后不知所措。
Python教程
最新版本Mind+下载链接
Mind+ Python模式使用教程大家可以到官方教程中查看:Mind+Python模式教程
项目分析
实现表格储存NFC信息,首先要利用pinpong库,来控制硬件获取NFC信息,读取该卡信息后写入表格,用于信息存储。xlwt是 Python 用来在 Excel 写入数据和格式化数据的工具包,可以实现指定表单、指定单元格的写入。
准备工作
软件方面
安装库文件
1.pinpong库
2.xlwt
硬件连接
程序代码
# -*- coding: utf-8 -*-
import time
from pinpong.board import Board
from pinpong.libs.dfrobot_pn532 import PN532
import xlwt
import datetime
Board("uno").begin() #初始化,选择板型和端口号,不输入端口号则进行自动识别
nfc = PN532()
workbook = xlwt.Workbook(encoding = 'acsii') #创建一个workbook 设置编码
worksheet = workbook.add_sheet('student') #用add_worksheet添加一个新的工作表,student是表名
student ={} #建立一个空的字典
block_num = 2 #NFC写入块
while not nfc.begin():
print("initial failure")
time.sleep(1)
print("Please place the info card/tag on module..... ")
def parse_data(read_data):
if read_data != None:
print("read success! data is ", end=" ")
print(read_data)
else:
print("read failure!")
a = input("请输入录入学生人数:") #输入录入学习人数
a = int(a) #转化为整形
worksheet.write(0,0,'学号') #指定表格的行和列,写入数据
worksheet.write(0,1,'姓名')
worksheet.write(0,2,'温度')
worksheet.write(0,3,'时间')
style = xlwt.XFStyle()
style.num_format_str = 'M/D/YY'
global i,j
i=1
j=0
while True:
if a == 0 :
break
else :
num = input("请输入学生学号:")
name = input("请输入学生姓名:")
student[num] = name
print("请放入卡片!录入信息")
a=a-1
while not (nfc.scan()==True):
pass
while not (nfc.get_information()!=None):
pass
if nfc.write_data(block_num, num):
print("录入成功", num,student[num])
worksheet.write(i,0,num)
worksheet.write(i,1,student[num])
worksheet.write(i,3,datetime.datetime.now(),style)
i = i+1
workbook.save('student.xls')
调试
1.键盘输入录入学生人数(NFC的标签卡和人数是一一对应的)
2.键盘输入学号和姓名,回车按下,等待卡片放入
3.卡片识别成功后,提示录入信息成功(两个学生录入完成,终止录入)
4.打开表格
演示图
总结
在表格中大家看到了温度,因为这篇是一个类似校园门禁的项目,目前只是如何把信息放入表格,下一篇帖子会体现口罩识别和温度检测,并且会把学生体温放表格中。