基于物联网的智能地板设计
吴光栋 张程皓 马伟锋 张科红
摘要:为了减少滑倒事件并及时报警,本文设计了一款基于物联网技术的智能地板。该地板系统以STM32为核心,通过传感器采集所处环境下的温湿度信息并判断地面的湿滑度,再使用加热模块进行快速的加热、烘干表面的水渍以降低摔倒的可能性。系统通过重力检测模块检测摔倒事件的发生,同時使用MQTT协议将发生的摔倒事件汇报给OneNET服务器,并发送报警邮件。实验证明,该系统稳定性好,能达到预期效果,具有良好的实用价值。
关键词:物联网;STM32;传感器;MQTT;智能地板
中图分类号:TP273
Abstract:In order to reduce slip events and alarm in time,an intelligent floor based on IOT technology is designed.This floor system takes STM32 as the core,collects the temperature and humidity information of the environment and judges the slippery degree of the ground through the sensor,and then uses the heating module to quickly heat and dry the water stains on the surface to reduce the possibility of slipping.The system detects the occurrence of the slip event through the gravity detection module,and reports the event to oneNET server by using MQTT protocol,and sends the alarm email through oneNET server.Experiments show that the system has good stability,can achieve the desired effect,and has good practical value.
Key words:IOT;STM32;sensor;MQTT;intelligent floor
下雨天,当人们走进食堂、商店等公共场所时,鞋子上难免会带上些水渍,一方面这些水渍会让地面显得脏乱潮湿,但更严重的是容易引起摔倒事故。据2001年美国儿童协会与美国国家安全协会调查报告中显示,在美国每年平均900万人滑倒受伤,约1.6万人死于滑倒事故,因滑倒受伤而引起的诉讼、纠纷、赔偿和损失每年已高达一千亿美元[1]。所以从保障安全的角度来说,一款能自动除湿防滑的地砖是为市场所需要的。随着信息化技术的不断进步,物联网技术在通信应用、环境监控、工业生产及农业科技等多个行业领域获得了显著的应用[2]。将物联网技术与防滑地砖相结合,构造一个“会说话”的智能地砖,从而更好地保障人们的安全,将会是个不错的主意。
1 系统整体架构
本产品的系统架构是以单片机作为地板的智能控制核心,接收处理传感器(温度、重力、湿度)获取的相应数据,控制加热模块的输出,再采用网络通信模块esp8266模块将数据传输至第三方物联网络平台,最终可以使得此产品在判断表面温湿度情况后实现自动制热烘干,且方便用户观察重力、温度等数据,当特定摔倒事件发生时能及时发送邮件到关联账户进行提醒。该智能地板总体框架如图1所示。
2 系统主要硬件设计
本系统采用模块化的设计方法来构建,主要由电源模块、传感器模块、加热模块、微控制器模块、网络通信模块及物联网平台组成。电源模块为线性可调电源3.3V和外置开关电源12V,其中线性可调电源为单片机供电,开关电源直接给加热控制电路供电。
控制核心选用单片机STM32F103C8T6,它是ARM32位的内核架构,程序存储器容量是64KB,支持的外设丰富,包括ADC、SPI、USB、IIC和UAR等[3],可以很好地满足课题的要求。网络通信模块采用ESP8266,属于低功耗的32位微控制器,支持USART进行通信,支持AT指令对其进行网络功能的操作。[4]本次的设计中其引脚RXD与TXD通过串口与控制器STM32相连,采用AT指令进行网络操作。
传感器模块主要包括温度检测模块、湿度检测模块以及重力检测模块。温度检测模块采用采用DS18B20数字温度传感器,精度为±0.5摄氏度[5]。湿度检测模块采用的是雨滴传感器,是一个基于运放LM393构建的兼容模拟量与数字量输出的检测模块。重力检测模块采用的传感器HX711是一款24位高精度电子秤A/D转换模块[6],拥有10HZ和80HZ的输出数据速率,低功耗,检测重力范围根据应变片材料性质而定。
加热控制模块部分是保障地板能除湿防滑的核心单元,主要采用MOSFET来对半导体制冷片进行控制,采取了IR2101作为MOS管的前级驱动,结合前半部分的二极管和电容组成一个BOOST的升压电路来控制MOS管的导通,更甚者IR2101本身是个半桥式驱动,可以通过两个IR2101与MOS管形成H桥式驱动电路对半导体制冷片进行加热制冷的处理[7]。本次的设计中其引脚接口在PA0、PB9、PA1、PB8。PA0控制MOS管Q1导通输出高电平,PB8控制MOS管Q4导通输出低电平,其余MOS管关闭,此时OUT+、OUT-端产生高电平致使半导体制冷片加热;PA1控制mos管Q3导通输出高电平,PB9控制MOS管Q2导通输出低电平,其余MOS管关闭,此时OUT+、OUT-端电平反转输出低电平致使半导体制冷片制冷。MOSFET驱动电路如图2所示。
3 系统软件设计
3.1 系统总体工作流程图
系统的功能主要为硬件平台的初始化、传感器数据获取与处理、网络的连接。实行流程分为6步,包括S0:单片机、外设初始化;S1:传感器开始工作,单片机获取传感器数据;S2:通过MQTT发送物联网平台所需数据;S3:重力传感器检测行人经过;S4:加热模块开始工作;S5:判断是否发生摔倒时间,发生时发送报警邮件通知。总体工作流程图如图3所示。
3.2 通信协议介绍及部分程序实现
本系统编程采用模块化的方式完成,主要是实现各模块之间的通信,微控制器需要控制各个器件就得使用诸如IIC、1-WIRE、UART等通信协议。
3.2.1 HX711重力感应模块
HX711是一个基于AD转换得到重力值的一个模块,使用的是IIC协议,由四根线GND、VCC、SCL、SDA完成,以八位(一个字节)为传输单位。IIC协议有四种状态:起始状态、终止状态、数据发送状态、应答状态。IIC读取数据代码实现:
3.2.2 加热控制模块
IR2101s是美国IR公司推出的一款板桥驱动芯片,可以将输入端电平放大后输出。本次设置定时器为PWM输出模式,分频值为72,计数模式向上计数,自动装载值为100,设定输出频率10KHZ。使用HAL_TIM_PWM_Start()开启PWM工作模式,设置温度阈值和湿度阈值,当温度小于20摄氏度或者湿度达到一定阈值时,使用__HAL_TIM_SET_COMPARE()调节占空比,从而控制MOS管的工作状态,达到调节温度的作用。
3.2.3 ESP8266网络通信模块
ESP8266是一款超低功耗的UART Wi-Fi传输模块,可将智能设备连接到无线网络上,进行网络通信。该模块支持串口转Wi-Fi STA、串口转AP和Wi-Fi STA+Wi-Fi AP的模式,可通过AT指令对系统参数进行更改设置。本次设计使用AT指令集来实现无线网络的接入操作,使用的AT指令如下:
(1)CWJAP:设置ESP8266要接入无线网络的账户和密码指令,具体命令格式为AT+CWJAP="账户","密码";
(2)CIPMUX:配置多连接模式,本次使用的只有单连接模式,具体命令格式AT+CIPMUX=1;
(3)CIPSERVER:配置服务器指令,指令为1则开启服务器模式,指令为0则关闭服务器模式,本次的配置具体命令格式为AT+CIPMUX=1;
(4)CIPSTO:配置链接超时的等待时间,具体命令格式为AT+CIPSTO=1200;
(5)CIPSTART:建立网络链接的IP和端口号,因为esp8266本身并无MQTT固件,所以选择TCP协议,本次链接的平台为OneNET,IP地址为183.230.40.39,端口号为6002,具体命令格式为AT+CIPSTART=0,"TCP","183.230.40.39",6002;
(6)CIPSEND:发送命令,因本次的链路为0,设数据长度为x,具体格式为AT+CIPSEND=1,x。
3.2.4 MQTT连接物联网平台
MQTT是一种轻量级的网络通信协议,具有轻量、简单、开放和易于实现的特点,适用范围十分之广泛,在物联网(IoT)的应用中十分之常见[8]。ESP8266使用MQTT接入物联网平台OneNET的第一步为请求连接(CONNECT),平台接入成功后第二步为发布消息(PUBLISH)。在实际的使用过程中,为了保证数据在传输中的可靠性,将使用数组形式通过TCP连接到OneNET。
4 智能地板的实测效果
微控制器通过通信协议采集的各种数据可以通过MQTT显示在OneNET上,OneNET自备图形化界面设计软件,可以通过组件实现数据的显示,此处将要上传的数据id“h”绑定在重力或温度等,就能通过MCU改变数值来控制图形界面的折线图和仪表盘。实验界面的物联网应用显示如图4所示,其中左图表示重力数据,右图表示温度数据。
本次实验测量原本室内温度为23摄氏度,当附着在地板缝隙处的雨滴传感器感应到水渍时,加热系统启动,通过控制加热输出模块可实现温度的上涨,进而烘干水漬。经由约10分钟的加热,地板温度上升到33摄氏度。本次实验测量通过改变铁饼重量模拟重力突变测试情况,扔铁饼模拟摔倒产生冲击力的情况,此时重力数据的突变成功触发了OneNET自带的触发器,实现报警邮件的发送。摔倒报警图如图5所示。
5 结论
本文介绍了一款基于微控制器STM32F103C8T6的智能地板系统,其集成有重力检测模块、温湿度模块、加热模块、网络通信模块等,通过物联网平台OneNET能为用户提供数据支持,实现如重力检测、温湿度检测及摔倒报警等。该地板产品样机试制成功,具有成本低、灵敏度好、稳定性好等特点,作为大学生创新项目在浙大城市学院2020创新创业大赛中荣获一等奖。
参考文献:
[1]招邵赟.浅析陶瓷防滑釉的研制[J].佛山陶瓷,2017(8):27-29+37.
[2]杨成.物联网技术及其应用前景探索[J].信息通信,2020(1):245-247.
[3]林松华,王战庆,汪文海,等.基于STM32的脉搏自动检测系统设计[J].电子质量,2018,(10):24-27.
[4]沈华刚,吕刚磊.基于ESP8266串口WiFi的智能插座关键技术的实现[J].河南科技,2019(8):17-19.
[5]徐美霞,史道玲,王敏.基于物联网的智能温控衣研制[J].产业与科技论坛,2020(1):42-43.
[6]葛海江.基于HX711的高精度电子称重研究[J].电子测试,2019(10):31-32.
[7]王成刚,许翻凡.半导体制冷温度控制系统的设计研究[J].自动化与仪表,2019(7):15-17.
[8]张雪华,项雪琰.基于MQTT通信协议的智慧家居系统研究与设计[J].电子制作,2020(Z1):37-38.