APP下载

基于NB-IoT的洗手液智能出液装置设计

2022-07-21曾文军

物联网技术 2022年7期
关键词:洗手液阿里指令

邓 凯,曾文军

(1.常州纺织服装职业技术学院 创业学院,江苏 常州 213164;2.江苏省常州市武进区信息中心,江苏 常州 213159)

0 引 言

近年来,随着边缘计算、5G、区块链、人工智能、无人驾驶、物联网等技术与应用的不断发展,新技术、新应用的引入对工农业生产、商业、家庭日常生活方式都产生了积极的影响。在此背景下,各种各样的智能产品层出不穷,不断满足了人们日益增长的生产生活需求。自新冠疫情爆发以来,洗手液、消毒液成了医院、机场、商场、学校等公共场所出入口的必备防疫物资。洗手液载具通常由瓶体和泵头组成,通过挤压泵头,从泵头喷嘴出液。按照新冠疫情的防控指南要求,应尽可能避免接触公共部位。但由于人们频繁使用公共场所的洗手液,传统的按压方式增加了病毒传播的机会。因此迫切需要设计一款可以自动出液的洗手液装置,对于新冠疫情防控有积极的意义。本文设计了一种基于NB-IoT的洗手液智能出液装置;同时结合云端技术,使传统的洗手液真正实现智能化,对于提升人们日常家居生活水平也有重要意义。

1 总体设计

通过分析传统洗手液的使用特点,总结出将其改造成智能化装置的主要需求如下:

(1)感应自动出液,即手靠近洗手液喷嘴时能自动出液;

(2)自动报告洗手液余量,以便及时更换,并记录喷液次数,作为数据参考;

(3)洗手液大多数时候应用于车站、商场、学校等人员密集场所,使用过程中一旦发生掉落、侧翻等情形,须及时告知物业管理部门处理;

(4)采集洗手液装置附近的温湿度、气压等环境参数;

(5)计时:一方面用于显示年月日等时间信息,另一方面显示洗手倒计时,提醒用户养成良好的洗手习惯;

(6)设置本地显示屏,用来显示相关信息;

(7)从物业管理的集中性角度出发,需要方便监测到某幢大楼所有的洗手液装置的实时使用情况,因此需要设计一个数据集中监控平台;

(8)从管理人员工作便利性的角度出发,需要提供手机端APP,方便其在手机上查看所管理楼层洗手液的实时使用情况。

其中需求(1)是洗手液智能出液装置的最基本功能,也是一款智能产品的初阶需求;需求(2)~(6)体现了一款智能产品的附加值;需求(7)和(8)是把智能产品作为万物互联的一个节点,体现了智能产品的发展趋势。

基于以上分析,本文设计了如图1所示的总体框架。

图1 总体设计框架

微控制器是整个装置的控制核心,在微控制器的操作下超声波测距模块和接近监测传感器作为感应单元负责感知人手的靠近,称重单元负责测量洗手液的余重,加速度传感器负责监测装置的翻转状态,环境参数传感器报告温度、湿度和气压数据,计时单元显示当前的时间信息和洗手倒计时,显示屏负责呈现当前的装置状态信息,装置的相关状态数据通过NB-IoT周期性上传至阿里云物联网平台。

2 硬件设计

2.1 装置总控制板硬件设计

从显示倒计时到上传数据至物联网云端均需要有一个微控制器的参与,因此装置的硬件系统中最重要的是控制板硬件设计。为了便于实验和扩展功能,本文基于总体设计方案,从控制舵机转角、自动感应入手,硬件采用分立模块的设计思路,即微控制器最小系统外加各个功能模块。整个装置总控制板硬件原理如图2所示。

图2 装置总控制板原理

2.1.1 微控制最小系统设计

微控制器选择使用意法半导体公司生产的32位高性能STM32F407ZET6芯片(以下简称STM32),该微控制器以ARM公司的Cortex-M4为内核,主频达168 MHz,自带浮点运算单元FPU(Floating Point Unit),支持DSP指令集,拥有1 MB的FLASH存储器、192 KB的SRAM存储器;提供了丰富的外设接口,包括多路ADC转换以及带PWM输出的12个16位定时器、2个32位定时器、6个USART/UART接口等。

2.1.2 各个功能模块接口设计

STM32的UART1(PA9、PA10)用于打印系统运行信息,便于系统调试;UART3(PB9、PB10)连接NB-IoT模块的AT命令接口,PF8作为通用输出功能引脚连接NB-IoT的复位引脚;PA0、PA1连接超声波测距模块,其中PA0作为超声波返回输入捕获引脚功能使用,PA1作用通用输出引脚功能使用。PF9作为定时器14的PWM输出1通道连接舵机提供PWM信号。PA5、PA6、PA7作为SPI功能引脚连接BME280温度、湿度、气压传感器,PB6作为通用输出引脚功能连接BME280的片选信号脚。PA13、PA14、PA15、PB3、PB4作为程序固件下载接口。PB0、PB1作为通用输出输入引脚连接称重传感器HX711,PE4作为外部中断引脚上拉使能实现HX711的去皮功能。PB8、PB9作为IC功能引脚连接APDS9930接近传感器,PE2作为外部中断引脚功能连接APDS9930的接近中断触发引脚。PB13、PB14、PB15作为SPI功能引脚连接DS3234实时时钟芯片引脚,PD8作为通用输出引脚功能连接DS3234的片选引脚。PD9、PD10作为IC功能引脚连接第一个OLED显示屏的数据引脚,PD11作为通用输出引脚连接OLED的复位引脚,PD12作为通用输出引脚连接OLED的数据命令引脚DC,PD13作为通用输出引脚连接OLED的片选引脚。PE3、PE5作为IC引脚功能连接加速计传感器MMA8452,PC1和PC3作为外部中断引脚连接MMA8452Q翻转监测触发引脚。PE7、PE8作为通用输出输入功能引脚连接倒计时显示模块TM1637。PD5、PG12作为IC功能引脚连接第二个OLED显示屏的数据引脚,PG15作为通用输出引脚连接OLED的复位引脚,PG15作为通用输出引脚连接OLED的数据命令引脚DC,PG13作为通用输出引脚连接OLED的片选引脚。

3 软件设计

在完成系统硬件物理层设计的基础上,根据系统需求,本文设计了系统整体软件框架结构,编程具体实现各个功能模块代码。

3.1 软件系统整体结构

软件系统设计主要在两个应用层面进行:一是STM32端,作为一个物联网节点的应用层软件设计,主要是驱动各个硬件模块,采集相关传感器数据,发送NB-IoT命令等;二是阿里云物联网平台端应用层软件设计,主要包括云端设备、产品、功能等定义以及IoT Studio的开发与设计等。两个应用层之间通过MQTT协议通信。软件整体结构如图3所示。

图3 软件系统整体结构

3.2 STM32端软件设计

STM32端软件设计主要分为两部分:主程序和中断程序。借助STM32的卓越性能和丰富外设,主程序首先对各个功能模块初始化,设定相关参数,确保其能够按照要求正常工作,然后进入实时监测阶段。各个模块的中断程序配合主程序完成监测触发、数据上报等工作。STM32端程序设计流程如图4所示。

图4 STM32端程序流程

STM32通过串口2与NB-IoT模组BC20收发数据,通过发送AT指令操作BC20模块。AT指令的语法结构是:任何一条指令都以“AT”或“at”开头,以结束指令输入。发出AT指令后,返回的响应通常为,其中表示回车符,用“ ”表示,表示换行符。AT指令的发出和响应类型见表1所列。

表1 AT指令发出和响应类型

NB-IoT程序流程如下:

(1)NB-IoT模组的RST脚置高后拉低实现硬件复位。

(2)发送“AT+QRST=1”指令实现NB-IoT模组软件复位。

(3)发送“AT+QMTDISC=0”指令断开装置节点端与阿里云物联网平台服务端的连接。加入该指令主要是为了在装置运行一段时间后,如果由于某些原因自己重启,并且Keeplive时间未到,阿里云物联网平台端认为装置节点端仍旧在线,则执行该指令,节点端先主动断开连接。

(4)发送“AT+QMTCLOSE=0”指令关闭装置节点端的MQTT网络。加入该指令的原因同第3步。

(5)发送“AT”指令,返回OK,表示节点BC20模块工作正常,返回ERROR则重启系统。

(6)发送“AT+CFUN=1”指令,设置BC20为全功能模式运行。

(7)发送“AT+CIMI”指令,获取SIM卡的唯一国际移动用户识别码,该识别码作为后面通过MQTT登录阿里云物联网平台的登录名称,保证节点登录标识的唯一性。

(8)发送“AT+CGATT=1”指令,附着PS(Packet Switch)域分组交换网络,激活所有PDP(Packet Data Protocol)分组报文协议上下文。

(9)发送“AT+CGATT?”指令查询当前PS域服务状态,返回“+CGATT:1”表示成功附着网络。

(10)发送“AT+CESQ”指令查询网络信号质量,信号质量过低时输出相关提示信息并重启系统。

3.3 阿里云物联网平台端软件设计

阿里云物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云、规则引擎流转数据和云端数据下发设备端。此外,还提供方便快捷的设备管理能力,支持物模型定义、数据结构化存储以及远程调试、监控、运维。节点端(阿里云端称为设备,为方便描述,以下统称为设备)可通过MQTT协议与物联网平台建立长连接,上报数据(通过Publish发布Topic和Payload)到阿里云物联网平台,称之为上行数据链路。阿里云与物联网通过MQTT协议,使用Publish发送数据(指定Topic和Payload)到设备端,称之为下行指令链路。

3.3.1 阿里云端建立实例

设备要上阿里云物联网平台,首先需要建立实例,主要操作步骤如下:(1)登录阿里云物联网平台,进入控制台(https://iot.console.aliyun.com/),首次进入须注册账号后登录控制台。(2)创建产品。阿里云物联网平台的产品与现实生活中产品的概念有差别,表示相同一类设备的集合,同一个产品下的设备具有相同的功能。(3)添加设备。创建产品后,可以直接添加设备,输入设备名称autosanitiser,设备名称不支持中文,且在同一类设备名称中需要唯一标识。(4)为产品定义物模型。(5)物联网平台端订阅设备消息。在设备端通过物模型通信topic实现属性、事件等上报。

3.3.2 移动端应用开发

采用阿里云物联网平台提供的IoT Studio可以快速、方便地实现移动端应用开发,进入“https://studio.iot.aliyun.com/”,把洗手液智能出液装置下的设备autosanitiser与移动应用结合起来。发布到手机移动端,效果如图5所示。

图5 手机端显示效果

4 结 语

伴随着华为鸿蒙操作系统的发布,万物互联开始从理想逐渐走向现实,越来越多的智能单品走入现实生活,并成为万物互联的节点。本文在新冠疫情的背景下,以大量使用的传统洗手液为研究对象,从降低传统洗手液使用方式下病毒传播可能性的实际需求出发,通过对洗手液装置进行改造,以伺服电机作为实现其自动化的驱动装置,简单易用、成本可控。结合物联网的发展趋势,对比了目前主流的无线通信技术,选取NB-IoT技术上传装置的各项系统状态参数至阿里云物联网平台,使其完全成为一款自动化、智能化、网络化装置。硬件实物如图6所示。

图6 硬件实物

猜你喜欢

洗手液阿里指令
云上阿里
辰辰带你游阿里
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
一种新型环保洗手液的制备
阿里战略
当心公共场所洗手液越洗越脏
洗手液是否含致癌物质
阿里是个好榜样
坐标系旋转指令数控编程应用