刊名:智能城市
曾用名:现代生活用品
主办:辽宁省科学技术情报研究所
主管:辽宁省科学技术厅
ISSN:2096-1936
CN:21-1602/N
语言:中文
周期:半月刊
影响因子:0
被引频次:9440
数据库收录:
国家哲学社会科学学术期刊数据库;期刊分类:自科综合
期刊热词:
施工技术,建筑工程,城市,高速公路,建筑,施工管理,水利工程,智慧城市,建筑设计,大数据,施工技术,建筑工程,施工管理,大数据,城市,公路工程,物联网,城市轨道交通,BIM技术,人工智能,智慧城市,智能建筑,BIM技术,城市,BIM,城市建设,物联网,智能化,智能设计,城市规划,
一、引言
近年来,随着各种电子设备向集成化、智能化、网络化方向发展,物联网技术也随之发展壮大。物联网(IoT,Internet of things)技术是指在互联网基础上进行延伸和扩展,将各种设备通过互联网连接起来构成一个物物相连的互联网,实现物物互联互通[1],极大地方便了信息交流和共享。传统的信息化管理系统仅停留在管理数据的智能存储、分析、统计上,缺乏物对物、人对物等的信息交流,尤其是不具有随时随地进行信息交流的特点。结合云数据和物联网技术的基于IoT的智能化管理系统应运而生,实现对物的远程运行状态监控,对物的远程数据传输和修改,提升对物的管理效能。
目前许多高校实验室数量众多,在开关门、实验运行、维护、日常管理方面都是人工操作、人工记录,实验室管理工作效率低。本文将研究基于IoT的实验室智能化管理系统,使用人通过手机即可实现实验室门锁的开关,同时后台记录开关门时间、使用人、使用时长、使用用途,旨在提高实验室管理工作的效率。
二、系统总体设计
本实验室智能化管理系统结构框图如图1所示。实验室使用人手持手机通过网络向云服务器(阿里云)申请登录、开锁、关锁等请求信息,云服务器验收后向移动端反馈请求,并通过网络向锁端发送控制命令,实现智能开关锁,同时云服务器在数据库里对开关锁记录时间、人员信息、房间及房间使用用途等信息。
三、系统设计
(一)锁端硬件设计
锁端硬件核心控制模块为树莓派。树莓派支持无线网卡,可以利用Wi-Fi功能实现网络数据传输。本系统采用型号为Raspberry Pi 3 Model B的树莓派,实现对电动锁的开关动作控制以及数据通讯功能。门锁采用电控模式,由树莓派控制12V继电器提供门锁的开关信号,当开锁控制信号来时,锁舌收缩即门锁打开,锁舌会一直保持收缩状态,直到关门门锁信号来时,才将锁舌伸出锁门,并一直保持该状态。
图1 实验室管理系统结构组成框图
图2 数据库关系描述
(二)网站搭建
网站通过Django这个开放源代码的Web应用框架搭建而成,用于云数据处理与交互。Django遵循 MTV 设计模式的框架,即模型(Model)、模板(Template)和视图(Views)模式[2],减少了代码编写,提升了工作效率。
Django服务需要部署到阿里云云服务器上,实现外网访问,打破局域网的限制。部署方式为uWSGI+Nginx+WebSocket,uWSGI是一个Web服务器,实现Web的接收请求以及转发响应。Nginx是一个高性能的HTTP和反向代理web服务器,当访问量过大时,用来分配客户的请求连接和Web服务器,同时解析客户端发来的Http请求。服务器实现了门锁的控制信息的发布,对数据库数据的增删改查以及二维码的生成。与树莓派建立WebSocket的双向通信连接,实现开关锁命令能及时下发到树莓派。
(三)二维码生成
实验室使用人需要通过手机端扫描二维码来识别门锁信息,实现与特定门锁互联通信,进而登录服务器对特定门锁(特定实验室)进行信息交互。
二维码是通过Python的三方包(qrcode)中的QRCode方法生成的。该方法只需要提供几个基本的参数,即可生成对应的二维码。在本项目中,该二维码的内容是一个网址,服务端如果收到该请求,会提取网址中特定门锁的参数,根据该参数对相应的门锁发送开锁命令。管理员可以通过Django服务所提供的接口下载该二维码。
(四)MySQL数据库的设计
MySQL数据库表由用户表users、门锁表doorlock、开门理由表resion、开门记录表record组成。数据库关系描述如图2所示。
四、系统实现
实验室使用人通过微信扫一扫扫描门锁上的二维码,微信就会解析所扫描二维码的内容为网址,并向该网址发送请求,Django服务收到该请求会返回登录界面让用户登录,用户输入账号密码进行登录,登录后服务端会主动判断使用人及锁的状态,如果锁的状态为关,即可开门,页面如图3所示,用户必须选择开锁原因,才能点击开锁按钮。
此时会向服务端发送ajax请求实现开锁功能,服务端收到要开锁的锁名和开锁原因参数,根据锁名到数据库查询该锁的数据,并向锁名所对应的锁发送开锁命令该命令,树莓派收到该数据会解析出执行操作,同时反馈数据给服务端,服务端收到回复将门锁名保存到开门用户的door_name字段,在开门记录表保存一条数据,这条数据的关锁字段在关锁成功后才会存储对应的关锁时间,开门原因,开门用户等,由于关锁的操作和开锁类似,这里就不一一赘述。
文章来源:《智能城市》 网址: http://www.zncszz.cn/qikandaodu/2021/0522/1601.html