一种领导在岗状态指示系统的设计
2021-01-14周世航林木泉
周世航,林木泉,张 勇
(闽南理工学院电子与电气工程学院,福建 泉州362700)
0 引言
日常工作中,在一些没有使用OA 办公系统的单位,要拜访领导签署相关文件,又不方便提前打电话的情况下,经常出现领导处于忙碌状态而不方便接待的情况。甚至多次拜访均如此,无形中耗费了不少的时间和精力。由于双方的信息不互通,导致了过程变得繁琐。急需开发显示领导在岗状态的系统。虽然大部分公司、单位正在使用的OA 软件系统可实现类似功能,但需要缴纳各种运行费用和投入维护成本,对一些中小企业仍是一笔较大的经费支出。而市场化上专门针对领导在岗状态指示系统较少,目前只有重庆锦声科技有限公司公布了一种的在岗状态指示系统,但需要超声波传感器和压力传感器的配合,结构相对较复杂,除此之外,还出现了基于人工智能的摄像头方案的在岗状态监测系统,但造价较高。为此,本文针对访客与领导之间信息不互通的问题,面向于中小型企业或者单位需求,提出了一种领导在岗状态指示系统,该系统电路结构简单,不需要复杂的软件运行,只需要一个小型硬件设备,易维护,使用门槛低。当需要拜访领导时,使用手机或者电脑打开网页,即刻查看领导是否处于方便接待的情况。
1 总体方案设计
如图1 所示,该系统由子端系统和终端系统组成,子端设备根据实际情况可扩展多个。所有子端通过Lora 无线方式与终端通信,形成多对一的通信方式。子端系统主要功能为采集开关状态数据信息并发送给终端系统,且在子端设备电池供电不足时进行灯光提示。终端系统的主要功能为接收子端系统的数据,并将数据通过ESP8266 模块以HTTP 协议方式上传至 OneNet 云平台[1]。
将子端设备摆放于领导办公桌面,若领导方便接待访客,则拨动子端设备开关,则所有用户访问OneNet 网页查看的信息即显示领导目前处于方便待客状态,此时即可前往。终端设备放置于办公区中心位置。
图1 方案结构图
2 硬件设计
如图2 所示,在子端系统中,以STC15W4K32S4作为主控芯片,锂电池经过TLV1117 低压差低功耗稳压芯片给子端系统供电,使用TP4056 芯片对锂电池进行充电管理。主控芯片P3.4 引脚在不需要采集AD 数据时断开两个串联分压的电阻以节省能耗。P1.5 引脚为AD 输入口,用于采集电池电压数据。拨动开关接入主控芯片的P3.5、P3.2 引脚,主控芯片通过检测P3.5 引脚的电压来判断开关的导通或断开两种状态,以此来对应领导此时处于忙碌还是空闲状态,开关状态的改变会产生中断信号通过P3.2 引脚传输给主控芯片,从而唤醒主控芯片,LED 灯通过单片机 P1.0 引脚控制。Lora 模块 RXD、TXD 引脚接入单片机 P0.1、P0.0 引脚进行 UART 通信,MD0、AUX引脚接单片机P3.3、P3.7 引脚控制模块运行模式。
图2 子端系统线图
如图3 所示,在终端系统中,Lora 模块接线方式与子端系统相同。ESP8266 模块的 RXD、TXD 引脚接入单片机P0.3、P0.2 引脚进行UART 通信,其他控制引脚悬空。
图3 终端系统线图
3 软件设计
系统的软件设计分两部分,一部分功能为实现开关状态和电量的检测,另一部分为数据的无线传输。
开关状态的检测实现过程为:按键触发外部中断唤醒处于休眠状态的单片机,然后通过引脚IO 电压判断开关状态。电量的检测实现过程为:主控芯片开启定时器,每5 min 进行一次A/D 采集,判断电池电量是否过低,若过低则开启LED 灯闪烁提示。
所有子端设备的数据都发往终端设备,使用Lo ra 无线组网方式实现。所有子端设备主动上传数据,终端设备接收到子端设备数据后回馈一个应答信号,子端设备接收到应答信号进入休眠状态[2,3]。为避免通信冲突,当子端设备发送数据后,5 s 内接收不到应答信号则随机延时一个时间段(设置为100 ms~1 000 ms 之间) 后重新发送一次数据,若等待5 s后仍接收不到数据,则判定子端设备掉线。
子端设备和终端设备使用自定义通信协议。协议帧如表1 所示。
表1 通信协议帧
表1 中,第一字节0XFF 为数据帧帧头,第二字节数据0X01 表示设备地址,地址表示的范围从0X00 到0XFF,网络可容纳256 个设备。第三字节数据0 为0X11 表示按键关闭,0X22 表示按键开启,数据1 和数据2 为预留字节,方便后期功能扩展,目前数据皆为0X00,最后一字节为除帧头外数据的和。例如,子端设备地址为0X02,开关处于开的状态,子端设备上传数据发送的协议帧为0XFF 0X02 0X22 0X00 0X00 0X24。终端主机接收到数据后回复应答数据帧与子端发送的数据一致。
4 系统测试
整个系统中的子端系统与终端系统的主控板如图4 所示。
图4 主控板图
通过终端系统的主控芯片的串口发送AT 指令对ESP8266 模块进行配置后才可接入云平台[4]。以下使用A 代指终端主控芯片,B 代指ESP8266 模块。A发送指令AT+CWMODE=3,配置模块工作模式为STA+AP 模式,随后重启模块,A 发送给B 指令AT+CWJAP="a","b"(a 为无线用户名 ssid,b 为 wifi 密码),B 则自动连接名称为“a”的 WIFI 网络。连接完成后,A 发送指令 AT+CIPMUX=0,把 B 配置为单链接模式,只有在此模式下,才能进行透传模式,随后A 发送AT+CIPMODE=1,设置透传模式,在此模式下B 可以连接云端服务器[5]。A 发送指令 AT+CIPSTART="TCP","183.230.40.33",80 来连接 ONENET 云端服务器,连接成功后A 送AT+CIPSEND 开启透传模块,此时已经可以给云平台发数据了。此时编辑HTTP 协议的数据,通过HTTP 协议接入ONENET 云平台的设备[6]。
以下为A 发送的发送http post 请求:
其中“59145xxxx” 为ONENET 云平台设备ID,api-key 后面的内容为设备所对应的API-KEY,Content-Length:15 中的15 为发送内容整个数据流的长度,{"no.1":"free"} 为发送的内容no.1 为数据流名称,free 为发送至云端的数据内容,当发送成功时候,B 会返回发送成功的消息,此时登陆网站即可看到发送的数据。在网站上可以用接收到的数据编辑用户查询界面,将数据流分别自动对应领导的名字与信息,如“no.1”数据流对应“张三”,状态数据“free”/“busy”可以简化为界面的开关on/off,更加直观显示状态。当拨动开关,云平台接收到数据,界面显示如图5 所示。
图5 ONENET 平台数据查询
5 结束语
本文设计了一套低成本、易量产、适合各类人群使用的一套访客查询系统,该系统为主动触发方式,不涉及用户隐私。该系统实现了人——云端——人的联网模式。在实物上,系统体积小,基本不占用工作空间,只需要在桌子上面放置一个装有开关的小盒子即可,简约美观,具备一定的实用价值。