新闻中心

EEPW首页 > 设计应用 > 基于Onenet及微信小程序的校园运动场地预约系统

基于Onenet及微信小程序的校园运动场地预约系统

作者:岳增霖,金浩轩,张伟豪时间:2019-11-29来源:电子产品世界收藏

  岳增霖,金浩轩,张伟豪,汤 毅(上海大学机电工程与自动化学院 工程训练国家级实验教学示范中心,上海  200044)

本文引用地址:http://www.eepw.com.cn/article/201911/407672.htm

  摘 要:校园内师生进行体育运动时,时常遭遇到达现场,却由于同一时间场馆人员较多,无足够场地进行活动的问题,其中篮球运动场馆情况尤为最严重。该研究以篮球场为例,采用中国移动智能开放平台作为数据交互服务器,作为用户终端,小程序作为信息记录存储中心,建立运动场馆使用、预约、实时场地查看为一体的智能化球场预约系统。该系统的实现利于师生合理安排时间进行体育运动,提高运动场馆利用率,具有现实意义及推广价值。

  关键词: 

  0 引言

  近年来,随着科技水平的迅速提升,物联网技术取得了迅速的发展,物联网相关产品大量走入人们的日常生活,为人们的生活提供便捷。体育运动是人们日常生活中不可或缺的一部分,市面上体育相关的物联网应用大多集中于可穿戴设备领域,在整个体育场馆进行硬件改造部署及使用方法的智能化方向应用并不成熟。对于公共场所而言,预约系统的构建对场地使用率提升、场馆资源合理分配有着极为重要的意义,本研究以场馆使用智能化高效化及信息可视化为目标,以市面广泛应用的、小程序智能开放物联平台为基础,进行整个系统设计及搭建。

  1 系统设计及实现

  1.1 系统总体概述

  运动场地智能预约系统功能主要包含预约及实时数据查看功能,用户模块功能包括远程场地预约、场地当前人数、场地使用情况及环境参数查看,依托微信小程序进行功能实现。

  硬件系统分为本地控制、采集及数据上传部分,控制部分包含,继电器,电磁门锁,UART电容触摸屏,温湿度传感器,GM65二维码扫描模块,上传部分由ESP8266无线模块实现。系统运行过程中,二维码扫描器识别到符合条件的二维码后,采用继电器控制电磁门锁进行开门,由安装于门两侧的红外传感器进行人数计数工作,当检测到门关闭后,中断计数,UNO通过UART串口将上传数据传输至8266无线模块,进行人数实时上传更新。在无二维码信息输入时,进行数据循环监测,并与最后发送状态参数进行对比,数据发生变动时,通过UART串口与8266无线模块通信,进行场地参数上传。

  整个系统通信流程及硬件线路连接设计如图1所示。

1575353385763591.jpg

图1

  1.2 本地系统与onenet平台间通讯

  上传实现以arduino为IDE进行编写,通过加载无线模块8266对应的ESP8266WiFi.h、ESP8266WiFiMulti.h两个库文件,调用相应功能函数进行wifi连接,http服务请求等行为,简化程序工作量。

  程序设计时,首先进行wi-fi连接,采用库函数Wi-Fi.begin(wi-fi_name, wi-fi_key);实现wi-fi连接,而后通过WiFiClient client;建立基于wifi的客户端口以进行网络通讯,程序头部设定onenet平台服务器IP地址,平台账号的设备编号,平台注册提供的apikey,将其命名为server_host、devidGet 、apiKey,分别按照格式包含在http请求指令中,调用库中的client.print()函数进行http请求发送。

  数据上传采用http中的post方法,以json格式进行数据更新。将上传部分代码封装为void类型datasend_function(String id,String value)子函数形式,调用使用时,在id,value位置填入相应内容即可便捷调用,将数据上传至指定数据流点进行后续数据调用及其它相关操作。

  根据平台开发文档要求,http上传json格式形式如下:

POST /devices/所注册设备编号/datapoints

HTTP/1.1

api-key: //(平台注册时数据流api密钥)

Host: api.heclouds.com // 固定(此为onenet服务器域名)

Content-Length: length // 发送httppost指令长度

{“datastreams”:

[{“id”:”对应数据点名”,”datapoints”:[{“v

alue”:””}]}]}

//value后填入数据点的实时数值

  http上传需严格按照平台定义形式进行,包括标点、空格、换行等细节,否则数据将上传失败。数据上传成功,短暂延迟后可在onenet平台上实时查看管理对应数据流。

  1.3 小程序数据可视化

  球场实时数据显示,通过微信小程序和onenet平台协作进行达成。Onenet平台负责存储采集到的数据,小程序通过http指令,以get方式从onenet平台请求数据流,从而将体育馆内的人数、环境指标、使用情况等数据显示给用户。

1575353360796143.jpg

  得到场馆内相应的信息之后,将其赋值给变量,调用console.log()函数,在wxml内置文件中将得到的内容再显示到界面上,完成场馆信息显示功能。

  1.4 小程序预约系统实现

  小程序云开发数据库:实现预约系统的过程中,小程序采用微信小程序的云开发数据库。云开发提供了一个JSON 数据库,数据库中的每条记录都是JSON 格式的对象。一个数据库可有多个集合(相当于关系型数据中的表),集合可作为JSON数组,数组中的每个对象即为一条记录,记录格式以JSON格式进行。

  微信小程序数据库相较于市面同类数据库,有着开发成本低,易于操作的优势,尤其针对微信小程序,适配性高,配套函数调用极为便捷,内置相关组件可便捷进行数据库数据分析及可    视化处理处理,针对小程序开发者,小程序数据库的使用能够提供极大的便利。

  预约系统实现逻辑

微信截图_20191203140536.jpg

  小程序预约系统运行逻辑:通过小程序来对场馆的类别和时间段进行预约,再由小程序从数据库读取相应的用户预约记录,转而生成二维码,再由门禁系统扫取二维码,根据二维码内容进行识别,从而判断用户能否进入场馆。

  小程序预约系统通过基于数据库的查询与添加进行展开,小程序以查询数据库方式,获取所有已预约时间和未预约时间,由此更新用户端时间预约列表。用户进行预约后,小程序再次对预约时间进行审核,核对用户所预约的时间为无人预约后,将这个数据通信更新至数据库。随后他人打开预约界面的时候会再次访问数据库进行信息读取刷新,由此实现预约信息的实时更新。

1575353303594135.jpg

  查询数据库更新列表状态采用db.collection.where与.get条件查询语句,查询在用户的可预约时间段内,数据库内是否已经含有预约记录。若查询到某个时间已经被预约,则将列表中对应的时间从时间文本更改为“请选择其他时间”的文本。由此对用户可预约时间内的每一个时间进行查询,完成对列表状态更新。

  用户可在预约界面选择预约日期并点击预约进行场馆预订。单击预约后,程序会再次判断该时间是否可预约,如果可预约,则使用db.collection.add语句来向数据库发送信息,信息包含日期、时间、场地号、使用方式,以“查询”的方式显示到小程序上“我的订单”模块。

  1.5 门禁系统的识别实现

  根据数据库存储的信息,转化为包含“密钥+日期+时间+场馆号”信息的二维码。每个场地对应特有场地号作为不同场地识别,由本地控制系统,经过GM-65二维码扫描模块,对小程序生成的二维码信息进行扫描进而进行身份验证。系统本地时间信息获取通过gps模块获取实时UTC信息,进行转换后获取。

  2 结论

  本系统采用时下使用较为广泛的Onenet开放式智能平台,微信小程序及其数据库,物联网信息技术结合硬件传感设备,实现远程场地状态查看及预约功能,为校园师生日常生活中合理规划体育运动提供了便利,使得运动场地的使用更加智能高效便捷,系统的构建为预约功能在小程序中的实现、远程设备信息上传及开放式智能平台搭建使用提供了可参考的解决方案,本系统具备一定现实意义及推广价值。

  [1] 张新程.物联网关键技术[M].北京:人民邮电出版社,2011.

  [2]中国移动.Onenet开发者文档中心https://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=536&fromuid=23569.

  [3] 张学记.智慧城市:物联网体系架构及应用[M].北京:电子工业出版社,2014.

  [4] 任志玲,张广全,林冬,等.无线传感器网络应用综述[J].传感器与微系统,2018,(3) : 165-166.

  [5] 陈晨.基于无线传感器网络的高校智慧图书馆研究与展望[J].轻工科技,2017,(12) : 68-69.

  [6] 杨洋.基于无线传感器的智能电网线路传感器系统的研制[J].贵州电力技术,2013,03 : 50-52.

  [7] 龚建华.JSON格式数据在Web开发中的应用[J].办公自动化,2013,20 : 46-48.[8]徐斌,诸葛斌,等.基于微信小程序的智能学习平台的设计与实现[EB/OL].北京:中国科技论文在线 [2018-11-19].

  本文来源于科技期刊《电子产品世界》2019年第12期第55页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭