当前位置:首页 > 电子 > 微信小程序 连接ZKT中控指纹打卡机

微信小程序 连接ZKT中控指纹打卡机


1.在Centos环境下安装必要的库

项目地址:https://github.com/fananimi/pyzk

里面有安装教程

www.feelsight.cn 版权所有


需要安装flask

 yum install python-flask

2.安装python3环境


可以参考http://www.cqroom.cn/post/118.html

3.新建一个python脚本


import sys
import os
import logging
from flask import Flask, request
# www.feelsight.cn 版权所有
app = Flask(__name__)
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='zkt_log.log',
                    filemode='a')
sys.path.insert(1,os.path.abspath("/usr/local/lib/python3.6/site-packages"))
from zk import ZK, const
# 设备列表
dooriplist = ('192.168.1.50','192.168.1.51','192.168.1.52','192.168.1.53','192.168.1.54')
# 微信小程序用户ID列表,代表控制门的权限
weixinid = ('otLcT5ITB6ubK4-RkAe8T0','')
def zktopen(ipadd,times):
    conn = None
    # 需要修改相应的端口号和通讯密码
    zk = ZK(ipadd, port=4370, timeout=5, password=, force_udp=False, ommit_ping=False)
    try:
        # connect to device
        conn = zk.connect()
        if conn.unlock(time=times):
            return True
    except Exception as e:
        print ("Process terminate : {}".format(e))
        return False
    finally:
        if conn:
            conn.disconnect()
def DataCheck(id,num,times):
    for idstr in weixinid:
        if idstr == id:
            if int(num) < len(dooriplist) :
                if int(times) < 100 :
                    return True
    return False
@app.route('/')
def hello_world():
    # zktopen('192.168.1.53',5)
    return 'hello world'
@app.route('/register', methods=['POST'])
def register():
    # print (request.headers)
    # print (request.form)
    doornum = request.form['num']
    userid = request.form['id']
    times = request.form['time']
    logging.info('From:'+str(request.form)+' id:'+userid+' doornum:'+doornum+' time:'+times)
    print('doornum:'+doornum+' id:'+userid)
    print(dooriplist[int(doornum)])
    if DataCheck(userid,doornum,times) :
        print('check ok')
        if True == zktopen(dooriplist[int(doornum)],int(times)) :
            print('open ok')
            return 'welcome'
    else:
        print('check err')
        return 'check err'
    # print (request.form.get('name')) www.feelsight.cn 版权所有
    # print (request.form.getlist('name'))
    # print (request.form.get('nickname', default='little apple'))
    #do something else
    #
    #
if __name__ == '__main__':
    app.run(host='0.0.0.0',port=80,debug=True)

4.运行脚本测试服务是否正常

www.feelsight.cn 版权所有

直接在浏览器输入服务器地址看看浏览器是否有hello word字符串

如果出现则表示成功一半了


5.测试锁是否能正常打开

本连接使用的是post请求方式,  www.feelsight.cn 版权所有

num: "0",//门锁的索引,前面门锁的IP地址列表里面的第几个 
id: this.data.openid,//微信用户的ID 
time: this.data.opentime,//开门时间  www.feelsight.cn 版权所有

6.微信小程序代码

http://www.cqroom.cn/zb_users/upload/2021/07/20210726161840_44528.zip


除特别注明外,本站所有文章均为视觉电子科技原创,转载请注明出处来自http://www.cqroom.cn/post/119.html

赞 (0

发表评论

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信