如何实现物联网楼宇访客门禁管理

电子说

1.3w人已加入

描述

01 实现功能介绍

安装在门禁上的RFID读卡器读取到访客手持的射频标签后,将标签号码通过Wifi传输至机智云,云端通过一系列认证后下发开锁命令,控制开发板上的继电器吸合以达到开锁的目的,该方案有以下几个优势:

访客射频标签成本极低,只有几毛钱,为每个访客发一张也不会有太大的成本负担

访客射频标签是可写入的,这样我们就可以控制访客在楼宇中的到访时限,以及不同级别访客的开门权限

访客到访的每个门禁都会将访客记录通过Wifi上传到云端,这样就可以监控每个访客到访的轨迹

硬件选择ShineBlink 是一款零门槛、零开发环境、低代码的万能物联网智能硬件开发板

机智云 为开发者提供傻瓜式硬件上云、接App/小程序的能力

结合 ShineBlink 和 机智云 开发者即使不懂嵌入式物联网开发、云和App开发,也能很快实现一款包含硬件、云和App的物联网智能硬件。

03 材料清单

机智云

04 硬件端完整代码

--配置D3为普通输出,控制控制门锁的继电器LIB_GpioOutputConfig(“D3”,“STANDARD”)LIB_GpioWrite(“D3”,1)--控制继电器断开--设置R200读卡器模块占用TX1和RX1引脚,EN引脚占用D7引脚,并开始扫描工作--工作国家区域:China2区 (920.125~924.875MHz)--工作信道:0通道,即工作频率为920.125MHz--发射功率:设置为最大的20.00dBmLIB_R200ReaderConfig

(“UART1”,“D7”,“CHINA2”,0,2000)--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PSPK = “baa7394638a7427b931e3c84da5f2bdd”PS = “437665aced3b46d9b8c416321b50a926”--初始化Wifi模块LIB_GizWifiConfig(PK,PS,6000,120,“UART0”,“D5”,“D10”,“D8”)--定义一个64元素的table用来向机智云发送HEX字节流数据SendData = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}

num = 0while(GC(1) == true)

do --扫描标签的演示程序 Cnt, R = LIB_R200GetCard()if Cnt 》= 1 then --打印Cnt张扫描到的标签卡号 n = 0 --Print打印出扫描到的Cnt张标签的卡号 --[[for i=1, Cnt doprint(string.format(“%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x”,R[1+n],R[2+n],R[3+n],R[4+n],R[5+n],R[6+n],R[7+n],R[8+n],R[9+n],R[10+n],R[11+n],R[12+n])) n = n + 12 end]]-- --这里我们只将扫描到的第一张标签的卡号(12字节)上传给机智云 --至于多张标签的去重,去重后的上传请发挥您的聪明才智 SendData[1]

= R[1] SendData[2] = R[2] SendData[3] = R[3] SendData[4] = R[4] SendData[5]

= R[5] SendData[6] = R[6] SendData[7] = R[7] SendData[8] = R[8] SendData[9]

= R[9] SendData[10] = R[10] SendData[11] = R[11] SendData[12] = R[12] SendData[13]

= num&0x000000ff --这里是为了确保每包发送的数据不同 num = num + 1 LIB_SendToGizCloud(“RawData”, SendData) end --查询机智云是否下发了写“Sw1”开关量数据点的动作 flag,recv_data = LIB_RecvFromGizCloud(“Sw1”)if flag == 1 thenif recv_data == 1 then -- 云下发了1 LIB_GpioWrite(“D3”,0)

--控制继电器导通 LIB_DelayMs(1000)--这里只给了一秒钟开门的时间,麻溜的 LIB_GpioWrite(“D3”,1)

--控制继电器断开 endelse LIB_DelayMs(1000) endend

上面代码中出现的“LIB_”开头的库函数的详细介绍可以在shineblink.com网站上的API文档中查询。

05 机智云接入和APP开发

选择一:机智云+通用版App访问设备(难度最低)

通过《Wifi设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。缺点就是通用版App的UI页面看起来不够专业。本例中我们使用了“Sw1”布尔值型数据点和“RawData”透传数据点,记得在机智云平台修改相应的数据点的名称。

选择二:机智云+零代码定制版App访问设备(难度较低)

在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(Wifi版)》教程实现定制版App访问设备,不过这个App对于《楼宇访客门禁管理系统》来说也不是必须的。开发好以后的页面如下:

选择三:定制化开发App或微信小程序(难度较高)

如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。

如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请点击docs.gizwits.com

如果开发者希望开发一个专属的微信小程序应用,可以点击docs.gizwits.com

责任编辑:haq

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

全部0条评论

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

×
20
完善资料,
赚取积分