室友总不锁门!丢了很多东西!用Python写个远程门禁控制系统!

室友总不锁门!丢了很多东西!用Python写个远程门禁控制系统!,第1张

概述当代社会,我们进公司需要门禁卡,出入小区需要门禁卡,门禁系统又称出入管理控制系统(ACCESSCONTROLSYSTEM),是一种管理人员进出的智能化管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械

当代社会,我们进公司需要门禁卡,出入小区需要门禁卡,门禁系统又称出入管理控制系统(ACCESS CONTRol SYstem), 是一种管理人员进出的智能化管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。适用各种机要部门,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂等。

最近发现一个新好玩的Micropython开发板-萝卜狗(TurnipDog),比TPYBoard v102更牛掰,可能是个升级版吧,然后果断买了一个抓紧玩玩,发现这个的魅力在于支持远程控制,这个Micropython开发板,不是利用Wifi远程控制,而是利用红外线控制的,控制距离大约在15米左右,于是就想用它来做个远程的门禁控制系统。

材料准备

萝卜狗(TurnipDog)开发板 1个

12864液晶显示屏 1个

MF RC522射频IC卡 1个

中文文字转语音播报模块 1个

杜邦线若干

实验的器件都是一些通用的东西,很多地方都能买的到,我就不一一介绍啦,不过它的核心是我们的萝卜狗-TurnipDog

萝卜狗

MF RC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,是一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。 MF RC522利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。支持14443A兼容应答器信号。数字部分处理ISO14443A帧和错误检测。此外,还支持快速CRYPTO1加密算法,用语验证mifare系列产品。MFRC522支持mifare系列更高速的非接触式通信,双向数据传输速率高达424kbit/s。

作为13.56MHz高集成度读写卡系列芯片家族的新成员,MF RC522与MF RC500和MF RC530有不少相似之处,同时也具备许多特点和差异。它与萝卜狗之间通信采用SPI模式,萝卜狗通过SPI接口来读取传输数据,以前用的是C语言,现在我们用的Micropython语言。

进群:548377875 即可获取数十套pdf哦!

MF RC522射频IC卡

硬件接线方法

下面我们将萝卜狗和12864液晶显示屏、MF RC522射频卡和语音播报模块接起来,实物图我就不拍了,太丑了,大家根据下面的列表就可以接起来

12864液晶显示屏萝卜狗MF RC522射频卡语音播报模块GNDGND VCCVIN RSX11 R/WGND EX18 DB0X1 DB1X2 DB2X3 DB3X4 DB4X5 DB5X6 DB6X7 DB7X8 PSB3V3 RST3V3 BLA3V3 BLK3V3 Y4SDA Y6SCK Y8MOSI Y7MISO GNDGND Y3RST 3V33.3V Y2 TXD Y1 RXD +5V VDD GND GND程序编程

下面是main.py的主程序代码,可以直接复制使用 ,这个类库太多了,我就不一一粘贴了,有需要的留下邮箱告诉我,我发给大家 (*  ̄3)(ε ̄ *)

# main.py -- put your code here!import pybimport LCD12864import mfrc522import syn6288from pyb import UARTfrom necir import NecIrfrom bm import necbmfrom bm import nec_csfrom bm import nec_cbled=pyb.Pin('X10',pyb.Pin.OUT_PP)lcd=LCD12864.lcd12864()lcd.init_12864()led.value(1)SPI=pyb.SPI(2) RC522_SDA='Y4'RC522_RST='Y3'rc52=mfrc522.MFRC522()rc52.init_spi(SPI,RC522_RST,RC522_SDA)tab_ID=[45,162,222,43,122]buf=[0xFD,0x00,0x07,0x01,0x5B,0x74,0x35,0x5D,0xBD]u6=UART(6,9600)u6.write(bytearray(buf))def lcdsleep(): led.value(1) lcd.qp_12864()

def pdlcd(ok):
lcd.qp_12864()
if ok:
lcd.lcd_write_string(0x89,"Allow entry",0)
lcd.lcd_write_string(0x92,"允许进入",4)
else :
lcd.lcd_write_string(0x89,"Access DenIEd","拒绝进入",4)

def lcdsd():
lcd.lcd_write_string(0x92,"请稍后",3)

def pdcard(ID):
for i in range(5):
if(ID[i]!=tab_ID[i]):
return 0
return 1
def main():
while True:
(status,backBits)=rc52.SeekCard(0x52)
if(status==0):
(status,ID,)=rc52.Anticoll()
led.value(0)
if pdcard(ID):
syn6288.sendspeak(6,9600,'张三来访'.encode('utf-16'))
else :
syn6288.sendspeak(6,'陌生人来访'.encode('utf-16'))
lcdsd()
pyb.Pin('X4',pyb.Pin.IN)
nec = NecIr()
while True:
nec.callback(nec_cb)
if necbm()==0xa0:
pdlcd(1)
syn6288.sendspeak(6,'门已打开'.encode('utf-16'))
break
if necbm()==0xa1:
pdlcd(0)
syn6288.sendspeak(6,'拒绝访问'.encode('utf-16'))
break
pyb.delay(3000)
nec_cs()
lcd.init_12864()
lcdsleep()
if name == 'main':
main()

成果分享

我们把程序写入后,工作就完成啦,下面是我录的一个小视频,大家可以see一下,视频的地址:可以在我发表的视频里面看到效果哦!

效果还是不错的哦,由于我为了录制视频,距离比较近,大家可以远程控制哦!!!

总结

以上是内存溢出为你收集整理的室友总不锁门!丢了很多东西!用Python写个远程门禁控制系统!全部内容,希望文章能够帮你解决室友总不锁门!丢了很多东西!用Python写个远程门禁控制系统!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1208703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存