个人介绍
计算机基础、物联网工程导论、JAVA、网络配置、数据库应用技术、C#、WEB前端、无线传感网络等。
本人热爱单片机,熟悉8051单片机、CC2530单片机、STM32单片机开发,具备良好的编码规范;熟悉物联网硬件传感器、中间件和网关等元素;具备良好的学习能力和团队合作精神;沟通能力佳,并具备一定的文档编写能力;性格随和,沉着冷静,独立性较强,注重细节。做事认真细致,思路清晰主次分明。责任心与上进心较强,具有良好的沟通协调能力与合作的团队精神。
工作经历
2019-01-01 -2022-01-01遵义职业技术学院学生助理
2018年9月就读遵义职业技术学院,本人在学习期间表现优秀,完成了物联网工程,JAVA,C语言,C#,WEB前端,计算机基础等专业学科的学习。 在校期间获得国家奖学金,学院三好学生,优秀干部,积极参加技能比赛,并获得国际级1个、国家级4个、省级2个、校级6个奖项; 学习方面上,学习刻苦,积极参加各项技能大赛,积极配合老师工作,按时完成作业,不旷课,成绩优异,学习成绩专业靠前; 思想方面,具有良好道德修养,并有坚定的政治方向。热爱祖国,热爱人民,坚决拥护领导和社会主义制度,遵纪守法,积极进取,阳光向上; 工作方面,认真负责,职责心强,为人诚恳、细心、乐观、稳重,有良好的团队精神和人际关系。
教育经历
2018-09-01 - 2021-07-01遵义职业技术学院物联网应用技术专科
主修课程: 计算机基础、物联网工程导论、JAVA、网络配置、数据库应用技术、C#、WEB前端、无线传感网络等。 个人荣誉: 2020国家奖学金、贵州省省优秀毕业生、遵义职业技术学院三好学生、遵义职业技术学院优秀毕业生、遵义职业技术学院优秀社长 第十一届蓝桥杯全国软件和信息技术专业
技能
基于STM32智能小车灭火系统 摘 要 火灾的发生是现实生活中最常见、危害最大的灾难之一,灭火的最佳时机是火灾发生的初期阶段。 此课题根据设计任务的设想、市场调研、实际考察等方案进行了设计任务方案的论证,并且设计了相应的硬件电路和系统总结构分析以及嵌入式编程开发等工作。主要通过查阅电路基础,学习面包板制作的现有案例,通过自身的理解与条件制作遥控灭火小车主要模块功能,首先在51(STC89C52)单片机IO口、定时器、串口、ADC、中断等的知识储备的基础上学习STM32F103型微控制器,收集电子元件、相关模块原理,分析此系统的需求。其次采购物资,对元器件、模块进行焊接和组装。最后通过嵌入式编程以及场景模拟与数据分析,以及在51(STC89C52)单片机IO口、定时器、串口、ADC、中断等的知识储备的基础上学习STM32F103型微控制器。 基于STM32F103的遥控小车灭火系统是在传统灭火设备上进行延升而实现的。利用Zigbee无线传感网络技术为基础,安全灭火为目标实现,目前改设计可以模拟检测室内、室外是否有火,火势大小,以及安全灭火等一系列问题。 关键词:灭火系统;智能控制;无线通信; Based On STM32 Intelligent Car Fire Extinguishing System Abstract Fire is one of the most common and harmful disasters in real life. The best time to put out fire is the early stage of fire. This design is based on the design task of the idea, market research, actual investigation and other schemes to carry out the demonstration of the design task, and design the corresponding hardware circuit and system structure analysis and embedded programming development. Mainly through consulting circuit basis, learning the existing cases of bread board production, through their own understanding and conditions to make remote control fire extinguishing car main module functions, On the basis of 51 (STC89C52) microcontroller IO port, timer, serial port, ADC, interrupt and other knowledge reserve, learn the first step of STM32F103 microcontroller to collect electronic components, related module principle, analyze the requirements of this system. The second step is to purchase materials, weld and assemble components and modules. The third step is embedded programming, scene simulation and data analysis, and learning STM32F103 microcontroller based on the knowledge of IO port, timer, serial port, ADC and interrupt of 51 (STC89C52) microcontroller. The remote control car fire extinguishing system based on STM32F103 is realized by extending the traditional fire extinguishing equipment. Using Zigbee wireless sensor network technology as the basis, safe fire extinguishing as the goal to achieve, is committed to solving indoor and outdoor fire, fire size, and a series of problems such as safe fire extinguishing. Keywords:Extinguisher System;Intelligent Control;Wireless Communication; 前 言 通过在校四年大学的学习与实践,了解到嵌入式开发是在嵌入式操作系统下进行开发,包括设计硬件、软件相结合的综合研发,能够独立进行运作的器件。嵌入式是现科学发展的一种重要新兴产业,是新一代信息技术重要组成部分,嵌入式的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较热门的信息技术行业[1]。 近年来,火灾的发生是现实生活中最常见、危害最大的灾难之一,近年来我国火灾发生较多,不管是人员伤亡还是经济损失都比较严重。 基于STM32F103的遥控小车灭火系统是在传统灭火设备上进行延升而实现的。利用Zigbee无线传感网络技术为基础,安全灭火为目标实现的,致力于解决室内、室外是否有火,火势大小,以及安全灭火等一系列问题。 STM32作为嵌入式工程师入门级微控制器,是嵌入式工程师技术成长的重要学习路线。选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有37个自定义管脚,性能是DSP的66%、多串口、多ADC、定时器多、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做入门级嵌入式产品[2]。 无线通信尤其重要,在Zigbee通信方面使用CC2530单片机是最为广泛的,CC2530具备了8051内核RF收发器的优良性能。CC2530(Zigbee)模块是基于STM32F103的遥控小车灭火系统的主要模块之一,主要用途为与小车与遥控器之间的通信功能。 完成本次设计意义一是巩固在校期间学习的硬、软件专业知识,扩充课外专业知识,促进知识向能力的转化。二是设计属于自己的产品,为了今后职场考验的锻炼,面对未来的工作有了底气和骄傲。三是希望自己的产品能够进入市场,走向人们的身边,保障国家利益、人民、消防员安全等问题。 1 系统分析 1.1 总体需求分析 目前,国内火灾频频,火灾危害之烈,损失之巨。产生此灾难的主要原因是用火管理不当、没有及时发现、处理,且目前市场上仍旧采用较为传统的人为发现及人为处理火灾,传统方式可能会错过最佳灭火时机,导致生命安全和财产安全问题。如何能有效解决实时监测火焰及最佳时机灭火问题? 持续围绕国家重点产业布局,小型智能监测灭火装置是一种最新、较为安全的新型灭火方式。根据实际的需求,小型智能监测灭火装置应具有实时监测、报警、灭火、移动、照明等功能,所以灭火装置上需安装4个轮子便于移动,同时配备小车遥控器对其进行无线控制;在灭火小车内部还需安装具有120°实时监测的火焰传感器;为了实现智能照明功能,还需安装光照传感器用于监测当前场景光照强度;灭火装置将采用风力灭火和水力方式进行灭火。 在室内默认情况下,灭火小车能够对室内(120°)进行实时监测是否有火焰产生,如有火焰产生则灭火小车上的蜂鸣器会立即发出警报。相关人员在听到报警声后便于立即对灭火小车进行无线控制,前往火灾目的地,并按下遥控器上的灭火功能进行灭火。 1.2 性能需求 该系统在功能模块上应达到如下需求: 遥控小车灭火系统装置方面应具有水蓄、水力灭火、风力辅助灭火、照明、火焰检测、光照检测以及报警功能。另外该系统装置需具有无线传感网络通信功能,可以利用小车遥控器对小车进行移动控制,同时可以按下小车遥控器上的抽水电机、直流风扇、蜂鸣器、照明灯等执行器。智能控制方面应合理运用各个传感器采集数据,运用一定的算法处理数据,通过处理好的数据可以实现智能逻辑判断进行智能控制或智能报警。例如,遥控小车检测到周围有火焰发生,则小车上的蜂鸣器会自动以100MS周期响起,以达到智能报警的目的;光照传感器可以实时对灭火小车的周边环境进行光照强度进行采集,采集到的采样值通过公式进行流明值运算,通过数据平滑处理算法处理流明值。当流明值小于200LUX,则自动开启照明灯,从而达到智能控制的目的。 该系统在硬件装置上应达到如下需求: 小车遥控器方面应操作简单,电路布局简洁,电池蓄电能力高、复用性强,可用常见的充电器进行充电;灭火小车方面元器件应布局规整、整洁,安全系数高,能够有效实时监测周围环境是否有火,及时报警、照明、灭火等功能; 该系统在主控芯片性能上应达到如下需求: 单片机是整个遥控小车灭火系统的控制中枢,它控制每个子功能模块协调工作,进而完成整个遥控小车灭火系统的所有功能。该遥控小车灭火系统选用价格低廉且性能可靠的STM32F103单片机作为主控芯片,它属于STM32F系改进增强型单片机,集成了向上或向下计数器和时钟输出等更多功能。STM32F103的另一个特点是可以工作于低功耗模式,可选择空闲模式和掉电模式。在掉电模式下,时钟停止,RAM数据不丢失,同时其他功能都停止;空闲模式下,虽然CPU停止工作,但RAM、串行口、定时器和中断系统仍能正常工作。STM32F103的这些特点成为了众多嵌入式控制应用系统首选的单片机[2]。 1.3 运行环境 1.3.1硬件设备 开发PC机:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 64 MB 内存,最小 2.1 GB 硬盘。 主控单片机:具有STM32F103处理器以上且满足以下要求的单片机:ARM 32位的Cortex-M3,最高72MHz工作频率,在存储器的等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1),单周期乘法和硬件除法,最小 64K 硬盘,集成定时器Timer,CAN,ADC,SPI,I2C,USB,UART等多种外设功能。 主控单片机程序仿真器:ST-LINK/V2 - ST-LINK/V2。 辅助单片机:具有CC2530处理器以上且满足以下要求的单片机:8位的ARM,最低64KB 内存,最小256KB硬盘,具有IEEE 802.15.4 兼容无线收发器。[3] 辅助单片机程序仿真器:SmartRF04EB 外部设备:12*12*MM微动开关,5.8*6.8MM自锁开关,2路5V继电器,5V直流风扇,5506光敏电阻,3.3V有源蜂鸣器,发光二极管,全向麦克纳姆轮,直流减速电机。 1.3.2程序开发 操作系统:Windows 98/NT/2000/XP或更高版本 电路设计:Altium Designer 9或更高版本 电路模拟仿真软件:CZ_OpenSpice 数据分析:串口调试助手 算法测试:Dev-C++ 芯片设计:STM32CubeMX STM32F103单片机程序设计:Keil uVision5 CC2530单片机程序设计:IAR 取字模软件:PCtoLCD2002 程序底层驱动生成:STC-ISP 2 系统总体框架 2.1 模型结构 系统的模型结构如图2.1所示: 图2.1遥控小车灭火系统的模型结构图示 该系统结构分为三个逻辑层: 系统配置层:系统配置层主要根据功能需求对单片机的各个引脚IO口进行定义、单片机内、外部时钟、ADC模数转换、IIC、SPI、外部中断、串口等配置。这一层是用STM32CubeMX软件始化代码生成器来进行实现的,大大缩短了开发时间。 业务逻辑层:业务逻辑层包含系统功能的规则和逻辑的实现。主控芯片方面,如引脚的输出、输入、ADC采集,解析、处理等这样的任务。无线通信方面,必须合理运用组合键,当逻辑较为复杂时,只靠单片机内部的轮询方式远远不够,可以进行开启多个外部中断或多个定时器中断以及STM32F103内部的滴答定时器等功能同时处理多个功能模块。 数据通信协议层:数据通信协议层为业务逻辑层提供指令,这一层是运用串口通信和Zigbee通信作为解决方案文件实现多板通信任务。无线通信协议通过数据传输协议封装,如帧头、设备地址、事件类型、数据长度、数据高八位、数据低八位、帧尾、校验位[4]。 2.2 功能模块简介 图2.2 系统的模型结构图示: 图2.2遥控小车灭火系统的模型结构图示 工作流程为: 打开该系统电源开关,灭火小车主控单片机自动对各个功能的引脚、ADC模数转换、串口通信、中断和定时器进行初始化,主控单片机电源LED指示灯亮起,主控芯片初始化完毕后对辅助单片机A节点串口发送初始化命令进行A节点初始化,A节点初始化完毕后对B节点无线发送初始化命令,B节点初始化完毕后无线反馈该系统成功初始化命令。整个系统初始化完毕,主控单片机与辅助单片机将创建任务事件,主控单片机上的火焰传感器及光照传感器实时采集当前环境数据,并实时无线发送给辅助单片机。 灭火小车启动时,对周围进行火焰监测,若有明火发生,灭火小车立即报警,操作员在听到蜂鸣器报警声后,利用小车遥控器对小车进行无线控制[5]。 灭火小车上的LED将以小车遥控器发送的指令进行相应的操作,除此之外,光照传感器可以实时对灭火小车的周边环境进行光照强度进行采集,采集到的采样值通过公式进行流明值运算,通过数据平滑处理算法处理流明值。当流明值小于200LUX,则自动开启照明灯,系统判定为夜间,并自动开启照明灯,用于模拟消防车上的远光灯;若光照强度大于200LUX,系统则判断为白日,并自动关闭照明灯。 灭火小车到底目的地后,操作者可以使用遥控器的灭火功能键,选择风力灭火或水力灭火,若火势较大时,可以同时使用风力、水力进行灭火。 如果小车超出遥控器通信范围,小车将自动发出警报声、且原地等待,LED灯快速闪烁便于操作者寻找。重新进入遥控器通信范围,小车将回到初始状态,等待操作者的命令。 3 技术介绍 3.1 STM32与单片机简介 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统[6]。 单片机主要目前应用在常见的电子产品,例如LED滚动屏、无线开关、数据记录,自动洗衣机、冰箱、电磁炉。作为一个把微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成在一块芯片上形成的单片系统的单片机。当单片机与传感器两者结合后,就可以设计出大量的、实用的系统。 3.2 CC2530单片机简介 CC2530 结合了领先的RF收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能[7]。 CC2530内置的RF收发器可以作为短距离无线通信(30m2),另外CC2530具有一系列通信标准,ZigBee组网的首选协议栈,特点是近距离、低复杂度、自组网、低功耗。 3.3 串口通信简介 3.3.1 通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构[8]: ①包头——指示数据包的开始,有利于包完整性检测,有时可省略; ②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略; ③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合; ⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。 3.3.2 通信流程 首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方。[9] 如果需要另一块单片机发送的话,只需交换一下操作上述过程即可。 3.4 通信协议 该系统使用RS-232串口通信和ZigBee无线通信,作为主控单片机和辅助单片机A节点以及辅助单片机B节点的数据交互。建立了4个异步并行全双工串口通信,使用了2.4GHz频段进行无线通信。主控单片机用于分析命令,处理事件,辅助单片机A节点用于ZigBee无线透传功能,辅助芯片B节点用于执行小车动作。 3.5 主要数据包 本系统设计了8位数据包,在此介绍其中8位数据的作用。 (1)数据包。该表中的数据,所有单片机会自动识别,并作出对应功能,在通信时可能会发送丢包,使用利用校验位进行计算,判断出此包数据是否正常,若正常不做如何操作,若异常,则发送数据错误命令,相应的单片机重新发送数据包。(见表3.1)[10]。 表3.1 数据包设计 帧头 设备地址 事件类型 长度 高八位 低八位 帧尾 校验位 0x00 0x01 0x01 0x08 0x10 0x0A 0xFF 0x0F5 3.6 算术平均滤波法 算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动,如测量光照、液位[11]; 基本方法:按输入的N 个采样数据 ,寻找这样一个 Y ,使得 Y 与各个采样值之间的偏差的平方和最小。(见表3.2) An=(a1+a2+……+an)/n 3.2 算术平均滤波法 4 系统详细设计 4.1 灭火小车总体电路原理图 此系统装置硬件部分采用STM32F103最小系统板与CC2530单片机进行组合。采用2000mA可蓄5V电池供电,两者通过3,3V降压芯片进行降压处理,同时共VCC和GND,并配备两个10PIN口的接线端子共给两块单片机作为源代码的下载入口,以及两个MX232芯片作电平转换,作为两个单片机的串口通信向PC端发送数据,便于数据分析与调试[12]。 灭火小车总体电路原理图如图4.1 所示: 图4.1灭火小车总体电路原理图图示 4.2 串口通信电路 此系统两块单片机相隔距离近,属于近距离串口通信,所以无需MX232芯片进行电平转换,共VCC和GND即可。STM32F103单片机与CC2530单片机若要和PC开发机进行串口通信则需要使用MX232芯片进行电平转换,且必须通过TTL仿真器转换成USB与PC通信。 STM32F103与CC2530串口通信电路如图4.2所示: 图4.2 STM32F103与CC2530串口通信电路图示 4.4 时钟树配置 此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了IIC、SPI、串口等通信协议,2个ADC采集和6个输入、15个输出引脚、2个定时器[13]。 ADC:用于模数转换光照强度。 IIC:使用串行总线通信协议读取火焰传感器。 SPI:作用于数据交互和显示。 串口:用于两块单片机的串口通信以及PC开发机的数据分析。 输入IO口:用于人体红外传感器和微动开关按键输入功能(低电平为有人和按键按下,高电平为无人和按键抬起)。 输出IO口:用于LED灯、继电器、蜂鸣器的输出。 定时器:定时器设置为PWM输出功能,对舵机进行占空比调速和输出电压等操作。 STM32F103时钟树配置如图4.3所示: 图4.3 STM32F103时钟树配置图示 4.5 管脚配置 此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了串口1、ADC和9个输、16个输出引脚、2个定时器。 IIC管脚为:PB7、PB6 SPI管脚为:PD0、PD1、PA13、PA14 串口管脚为:PA2、PA3、PA9、PA10 ADC管脚为:PA0、PA1(ADC1中断查询,2个通道分别为Rank1、Rank2) 输入管脚为:PC13、PC14、PC15、PB8、PB13 输出管脚为:PA5、PA6、PA7、PB12、PB15、PA11、PA15、PB3、PB4、PB5 PWM输出管脚为:PAB 系统管脚配置如图4.5所示: 图4.5系统管脚配置图示 5系统实现 5.1 系统设计内容介绍 灭火小车处于开启状态,可以对周围(120°)场景进行实时监测是否有火灾发生,如有火灾发生则通过蜂鸣器自动报警。 用户可以通过遥控器对灭火小车进行控制,到达火灾目的地,通过遥控器开启灭火器,火势较小时通过直流风扇进行灭火,火势较大时则通过直流水泵喷水灭火。 Zigbee灭火小车与遥控器通过Zigbee透传通信模式,灭火小车检测到有火灾发生时通过指令发送给遥控器进行报警。遥控器按下键位时,发送相应的指令控制灭火小车。 5.1.1 小车主体介绍 小车主体分为三个板块,分别为底层、中层、顶层板块,每个板块都有相应的事件处理,和任务作业[14]。 小车底层板块内设300ml的蓄水装置和5V直流水泵。蓄水装置采用间断续水水池设计,其目的为了防止内部压强过小,无法合理的进行水分配,导致灭火过程中的意外。 小车中层板块配备了火焰传感器、1000mA直流5V可蓄电池。火焰传感器可对周围(120°)场景进行实时监测 小车顶层主要由STM32F103单片机、CC2530单片机、光照传感器、蜂鸣器、LED灯、按键、电机驱动模块、5V直流风扇组成。两块单片机功能分别作为小车主控与遥控器通信功能。光照传感器则与LED灯进行联动交互。 小车主体如图5.1所示: 图5.1小车主体图示 5.1.2 遥控器介绍 此系统遥控器由CC2530作为数据通信模块,内置200mA可蓄电池,外观主要由按键、LED灯组成。功能可分为两类事件任务,一类是用于发送数据,如左边的四个方向控制键和右边执行灭火命令事件任务。另一类是接收数据,如接收到报警事件,蜂鸣器则报警,超出通信范围,通信灯会亮起等事件任务。(见表5.13) 按键序号 功能 数据包 校验位 结束符 KEY1 向前移动 0X01 0X00 数据包+结束符+1 取低八位 FF KEY2 向左移动 0X02 0X00 数据包+结束符+2 取低八位 FF KEY3 向后移动 0X04 0X00 数据包+结束符+3 取低八位 FF KEY4 向右移动 0X08 0X00 数据包+结束符+4 取低八位 FF KEY5 打开或关闭照明灯 0X00 0X01 数据包+结束符+9 取低八位 FF KEY6 打开或关闭抽水机 0X00 0X02 数据包+结束符+10 取低八位 FF KEY7 打开或关闭风扇 0X00 0X04 数据包+结束符+11 取低八位 FF KEY8 打开或关闭蜂鸣器 0X00 0X08 数据包+结束符+12 取低八位 FF 表5.2 数据包设计 遥控器左面:KEY1、KEY2、KEY3、KEY4分别为白色、蓝色、黄色、红色 遥控器右面:KEY5、KEY6、KEY7、K
基于STM32智能加湿系统 摘 要 随着计算机技术和通信技术的飞速发展,人类的生活水平有着日新月异的变化,“以人为本、舒适、便利、智能化”已成为家居系统的重要设计理念,家居智能化控制系统力求创造安全、舒适的生活环境的设计理念,成为当今众多开发商高度关注的卖点之一。 智能控制是自动控制发展的高级阶段,是自动控制和计算机等多种学科的高度综合与集成是一门新兴的边缘交叉学科。智能控制是当今国内、外自动化学科中的一个十分活跃和具有挑战性的领域,代表着当今科学和技术发展的最新方向之一,正在成为自动化领域中最兴旺和发展最迅速的一个分支学科。 此设计根据设计任务的设想、市场调研、实际考察等方案进行了设计任务方案的论证,并且设计了相应的硬件电路和系统总结构分析以及嵌入式编程开发等工作。 此设计采用STM32F103微控制器与其他外部设备相结合。外部设备包含SG90型舵机(180°)、108KHz雾化片驱动、5V直流风扇、Water Sensor水位传感器以及DHT11温湿度传感器等模块,合理分配STM32F103微控制器的IO口,有效运用智能控制与算法处理实现智能加湿系统,致力于完善或代替现阶段的传统加湿器。 关键词:单片机;加湿器;智能;无线通信; Based on the STM32 intelligent humidifier system Abstract With the rapid development of computer technology and communication technology, the human life level has a rapid change, the "people-oriented, comfortable, convenient, intelligent" has become an important design concept of household system, intelligent home control system seeks to create a safe and comfortable living environment of the design concept, become one of the selling point of many developers high attention today. Intelligent control is the advanced stage of the development of automatic control, automatic control and computer and other disciplines are highly integrated and integrated is a new interdisciplinary edge. Intelligent control is a very active and challenging field in the field of automation at home and abroad. It represents one of the newest directions in the development of science and technology, and is becoming the most prosperous and developing branch of automation. This design is based on the design task of the idea, market research, actual investigation and other schemes to carry out the demonstration of the design task, and design the corresponding hardware circuit and system structure analysis and embedded programming development. This design uses STM32F103 microcontroller to combine with other external devices. External devices include SG90 steering gear (180°), 108KHz atomizing disc drive, 5V DC fan, Water Sensor and DHT11 temperature and humidity Sensor modules. IO port of STM32F103 microcontroller is allocated reasonably, and intelligent control and algorithm processing are effectively used to realize intelligent humidification system. Committed to perfect or replace the current stage of the traditional humidifier. Keywords:MCU;Humidifier;Intelligent;Wireless communication 前 言 当下,全球迎来数字化转型的大发展、大变革时期,新一代信息技术加速引领技术应用突破,带来了产业形态、组织管理、社会治理等方面的重大变革,物联网等新一代技术的发展为数字经济发展带来新动力和新机遇[1]。物联网作为新时代高新技术的重要代表[2],具有创新性强、先导性突出、成长性好等巨大优势,已经成为促进经济社会可持续发展的重要增长点[3]。 物联网背景旗下的智能家居是物联网现阶段的一个关键组成部分。智能家居是指通过家庭总线把家庭内的各种信息传输设备、家居用电器、家居安防设备全部接入到网络当中,对家居状态进行远程的监控和管理,并使家居中的设施与住宅环境保持协调,提供工作、学习、休闲等服务项目,构造出多功能、智能化的家居环境。家居智能化强调以人为本,把人和居住环境的协调放在首位,从多方面方便居住者的生活环境,全面提高居住者生活的质量[4], 智能加湿器是体现智能家居兴起的一种方式,是一种科技创新,以传统加湿器为基础而设计的智能化系统,具有安全、可靠、自动控制、数据可视化、节能等特点。可以完全替代传统加湿器,构建一个更舒适,更健康,更环保,更节能,更智慧、更安全的智能科技方式。 1 系统概述 1.1 选题依据 物联网是现阶段科技发展的一种新兴产业,新一代信息技术重要组成部分,物联网的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较热门的信息技术行业。 物联网背景旗下的智能家居解决方案可以对室内、室外不同的场景实现实时数据监测、数据处理、电器管理以及电器控制,以智能化、数据可视化、安全为目标,替代传统家居,实现一种全新的智能科技方式。 1.2 选题目的 智能家居旗下的智能加湿系统是在传统家居的加湿器上进行延升而实现。利用STM32F103微控制器为基础结合智能控制技术,以智能控制为目的实现的,致力于解决室内湿度过高、低、传统加湿器只能局部加湿,不能全局加湿、数据不能可视化、人为控制、加湿器干烧等一系列问题。 1.3 选题意义 推进国内物联网建设政策,深化物联网的探索与研究,完善智能家居的重要指标,对国家基础建设和发展具有重要价值。同时结合电子信息工程、计算机应用技术学科的相关理论,从新的角度研究,为IT行业的发展提供理论基础,为IT行业进一步提供一定的参考价值。 1.4 国内外研究现状 物联网旗下的智能家居是现今国际上备受关注的,由多门学科高度集中的新兴前沿研究热点领域。智能家居网络是融合了传感器技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术等,能够通过各类集成化的微型传感器协作地实时监测、感知和采集各种环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式将所感知信息传送到用户终端。从而真正实现“无处不在的计算”理念。传感器网络具有十分广阔的应用前景,在军事国防、工农业、城市管理、生物医疗、环境监测、抢险救灾、防恐反恐、危险区域远程控制等许多领域都有重要的科研价值和巨大实用价值,已经引起了世界许多国家军界、学术界和工业界的高度重视,并成为进入2000年以来公认的新兴前沿热点研究领域,被认为是将对二十一世纪产生巨大影响力的技术之一。[5] 1.5 主要研究内容 此毕业设计主要硬件研究对象为电子产品的外观设计,电路布局设计,以及单片机的功耗问题。锂电池充电放电的电路设计、继电器的原理、舵机的应用、HDT11温湿度传感器的采集、光敏电阻的模数转换、有源蜂鸣器的应用、发光二极管的应用、Water Sensor水位传感器的原理、人体红外传感器的采集、直流风扇的研究以及数字集成电路原理与应用。 此毕业设计主要软件研究对象为STM32作为嵌入式编程,选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有32个自定义管脚,性能是DSP的66%、多串口、多ADC、定时器多、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做智能家居的小产品。 1.6 论文组织结构 本文主要从以下6个部分进行简述: 第一部分:主要叙述该系统的选题依据和目的以及意义。根据国内外研究现状分析该系统是否可行,是否能实现,以及设计思路。 第二部分:主要对该系统设计进行该系统的需求分析和系统性能情况以及运行的开发软件环境和开发硬件性能需求以及硬件型号需求。 第三部分:主要介绍该系统的总体框架,通过Visio制图方式对该系统结构进行构思以及叙述该系统的全部功能模块和各个功能模块的工作流程以及数据之间的交互。 第四部分:主要通过查阅该系统的相关的单片机微控制器和串口通信技术资料,结合自身所学知识,数据分析与实验操作,设计该系统需要用到的技术方案等,来进行叙述。 第五部分:主要描述该系统装置的硬件部分,包含PCB制图、总电路设计、通信电路设计,时钟树配置和引脚配置,有根据性、目的性的运用32个IO口引脚巧妙合理的结合该系统需要的功能模块进行分析配置。 第六部分:一方面描述该系统的系统设计内容与该系统装置使用说明和源代码分析实现。另一方面主要具体描述系统屏幕的两个界面、事件逻辑判断、数据指令、通信交互等应用层模块的介绍。 2 系统分析 2.1 总体需求分析 目前在加湿器的领域上,传统的加湿器仅支持室内局部加湿,不能进行室内全局加湿,不仅数据不能可视化而且功能单一,市场上大部分加湿器仍在使用传统人为控制。普通加湿器在使用不规范时还会产生漏电危害,起雾片干烧导致驱动电路不稳定,从而引发的火灾等一系列问题。如何能够有效解决上述问题? 在围绕国家全面推进物联网建设政策上,智能家居旗下智能加湿系统是在传统家居的加湿器上进行延升而实现的。利用单片机控制技术为基础,结合自动控制技术为一体,以智能控制为目标,致力于解决室内湿度过高,过低,水位不足干烧以及控制加湿器的安全等一系列问题。 根据实际的需求,智能加湿系统装置应具有实时室内温度、湿度、光照强度,蓄水容器的水位高度等传感器以及起雾装置、水雾扩散装置、舵机、红蓝雾状灯、LED指示灯、照明灯、蜂鸣器、按键、可蓄直流电源等执行装置。 智能方面应具有一定的数据算法,通过数据算法与自动控制结合,能够对加湿器装置进行智能控制,安全、可靠、且智能的使用。 2.2 性能需求 该系统在功能模块上应达到如下需求: 智能加湿系统装置方面应具有加湿功能,应运用风扇作为作为水雾扩散器,且可以180°进行扩散(摇头)。另外该系统装置需具有通信功能,可以使用该系统装置上的按键进行加湿的开启和关闭,同时可以设置湿度阈值。装置的OLED屏幕上可以显示当前的水位值、温度值、湿度值、光照值、报警信息等数据。智能方面应可以根据用户在该装置上的按键设置的阈值进行判断,实现智能操作。例如,用户设置37%RH湿度,该装置通过湿度传感器获取当前环境湿度未到达设置的湿度阈值,且蓄水池内有水的情况下,就会自动打开智能加湿器进行加湿,等待智能加湿器加湿到37%RH湿度时,会自动关闭智能加湿器,实现智能控制效果。 该系统在性能功能上应达到如下需求: 智能加湿系统装置方面应操作简单,电路布局合理并简洁,起雾装置与水雾扩散装置应耐用,电池蓄电能力高、复用性强,可用常见的充电器进行充电;OLED屏幕方面界面应布局整洁、易用、数据安全等,能够有效实时获取室内温湿度、光照强度,湿度高度,且能够及时上报、信息推送、智能控制等功能。 该系统主控单片机功能应达到如下需求: 单片机是整个智能加湿系统的控制中枢,它控制每个子功能模块协调工作,进而完成整个智能加湿系统的所有功能。本智能加湿系统选用价格低廉且性能可靠的STM32F103单片机,它属于STM32F系改进增强型单片机,集成了向上或向下计数器和时钟输出等更多功能。STM32的另一个特点是可以工作于低功耗模式,可选择空闲模式和掉电模式。在掉电模式下,时钟停止,RAM数据不丢失,同时其他功能都停止;空闲模式下,虽然CPU停止工作,但RAM、串行口、定时器和中断系统仍能正常工作。STM32F103的这些特点成为了 众多嵌入式控制应用系统首选的单片机[6]。 2.3 运行环境 2.3.1硬件设备 开发PC机:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 64 MB 内存,最小 2.1 GB 硬盘。 主控单片机:具有STM32F103处理器以上且满足以下要求的单片机:ARM 32位的Cortex-M3,最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1),单周期乘法和硬件除法,最小 64K 硬盘,集成定时器Timer,CAN,ADC,SPI,I2C,USB,UART等多种外设功能[7]。 程序仿真器:ST-LINK/V2 - ST-LINK/V2。 外部设备:12*12*MM微动开关,5.8*6.8MM自锁开关,2路5V继电器,5V直流风扇,直流红蓝雾状灯,RD-624人体红外传感器,5506光敏电阻,DHT11温湿度传感器,Water Sensor水位传感器,128*64蓝色OLED屏幕,3.3V有源蜂鸣器,发光二极管,SG90型舵机(180°)、108KHz雾化片驱动。 2.3.2程序开发 操作系统:Windows 98/NT/2000/XP或更高版本 电路设计:Altium Designer 9或更高版本 电路模拟仿真软件:CZ_OpenSpice 数据分析:串口调试助手 算法测试:Dev-C++ 芯片设计:STM32CubeMX STM32F103程序设计:Keil uVision5 取字模软件:PCtoLCD2002 程序底层驱动生成:STC-ISP 3 系统总体框架 3.1 模型结构 系统的模型结构如图3.1所示: 图3.1智能加湿的模型结构图示 该系统结构分为三个逻辑层: 系统配置层:系统配置层主要根据功能需求对单片机的各个引脚IO口进行定义、单片机内、外部时钟、ADC模数转换、IIC、SPI、外部中断、串口等配置。这一层是用STM32CubeMX软件始化代码生成器来进行实现的,大大缩短了开发时间。 业务逻辑层:业务逻辑层包含系统功能的命令规则和逻辑的实现,如温度、湿度采集、水位采集、光照采集、IO口输出、输入、信号解析、逻辑判断、中断处理、事件处理等工作任务。逻辑较为复杂时,只靠单片机内部的轮询方式远远不够,可以进行开启多个外部中断或多个定时器中断以及STM32F103内部的滴答定时器等功能同时处理多个功能模块。 数据通信协议层:数据通信协议层为业务逻辑层提供指令,这一层是运用串口通信和OLED屏幕通信作为解决方案文件实现显示任务。STM32F103作为主控单片机,主控单片机实时获取数据后通过串口发送给OLED屏幕。 3.2 功能模块简介 图3.2 系统的模型结构图示: 图3.2智能加湿系统的模型结构图示 工作流程为: 打开该系统装置电源开关,STM32F103主控单片机会自动进行系统初始化,各个IO口的输入和输出、SPI、ADC模数转换、PWM脉宽输出、串口通信、外部中断、滴答定时器、T1定时器等功能进行初始化。STM32F103单片机主控单片机初始化完毕后,ULED通信指示灯进行200MS周期闪烁,同时与OLED屏幕模块串口对接,进行屏幕初始化,屏幕轮询显示STM32F103主控单片机的系统初始化滚动界面。 整个系统初始化完毕后,STM32F103主控单片机创建任务事件,首先通过DHT11温湿度复合数字传感器为实时数据采集单元,将采集数据与24C02A为存储器模块设定存储的阈值进行比较,控制单元对比较结果进行分析处理,同时对水位传感器和光照传感器以及人体红外传感器进行实时采集室内环境数据,且与设定存储的阈值进行比较,进行事件消息提醒,显示在屏幕上,并开启相应的指示灯作为提醒作用。采集数据的同时以500MS为周期,通过串口把数据发送给OLED屏幕模块,OLED屏幕模块通过串口接收到数据后,通过OLED屏幕驱动芯片进行屏幕显示。 与此同时,用户也可以直接使用该系统装置上的微动开关按键进行设置,设定室内温度、湿度、光照、水位完毕后,该系统装置的主控单片机数据与OLED屏信息同步,自动开启逻辑判断功能、智能事件处理。例如,当前室内湿度是否到达设定的湿度阈值,若未达到,且蓄水池达到水位阈值,加湿器开启,进行加湿。若已达到设定值湿度阈值,系统则自动进入待机模式。 4 技术介绍 4.1 STM32与单片机简介 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统[8]。 单片机主要目前应用在常见的电子产品,例如LED滚动屏、无线开关、数据记录,自动洗衣机、冰箱、电磁炉。作为一个把微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成在一块芯片上形成的单片系统的单片机。当单片机与传感器两者结合后,就可以设计出大量的、实用的系统。 单片机开发其实就是把一个计算机系统嵌入到一个非电子产品,从而变成了电子产品,而这个变化的过程主要使用的嵌入式技术。 4.2温湿度传感器 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点[9]。 4.3 CAN外围收发电路 TJA1050是CAN控制器和物理总线之间的接口,是一种标准的高速CAN收发器。输入级可与STM32的3.3V输出电压兼容,可以至少连接110个节点。本系统的CAN外围电路如图3所示,其中在芯片的S端口设置切换开关,用来选择正常/静默模式,发送接收端口直接与STM32的CAN控制器映射端口相连[10]。 4.5.2 通信流程 首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方[11]。 4.4 OLED屏幕 OLED显示原理与LCD有着本质上的区别,主要是通过电场驱动,有机半导体材料和发光材料通过过载流子注入和复合后实现发光。从本质上来说,就是通过ITO玻璃透明电极作为器件阳极,金属电极作为阴极,通过电源驱动,将电子从阴极传输到电子传输层,空穴从阳极注入到空穴传输层,之后分迁移到发光层,二者相遇后产生激子,让发光分子激发,经过辐射后产生光源。简单来说,一块OLED屏幕,就是由百千万个“小灯泡”组成[12]。 4.5 串口通信简介 4.5.1 通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构[13]: ①包头——指示数据包的开始,有利于包完整性检测,有时可省略; ②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略; ③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合; ⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。 5 系统详细设计 5.1 基于STM32智能加湿系统总体电路原理图 此系统装置硬件部分采用STM32F103最小系统板与OLED屏幕驱动模块进行组合。采用2000mA可蓄5V电池供电,两者通过3,3V降压芯片进行降压处理,同时共VCC和GND,并配备两个10PIN口的接线端子共给两块单片机作为源代码的下载入口,以及两个MX232芯片作电平转换,作为两个单片机的串口通信向PC端发送数据,便于数据分析与调试[15]。 为了此系统装置的电路简洁,LED指示灯、微动按键开关采用共阴接线方案,此方案可以避免电流灌流、回吸等问题。每个功能模块在接入STM32F103最小系统板时,都合理的搭配电容、电阻、点解等元器件,如LED指示灯、蜂鸣器等执行器搭配下拉电阻;微动按键开关、信号输入模块搭配上拉电阻;水位、温湿度、湿度、光照、人体等传感器将根据不同的应用效果,搭配上拉或下拉电阻。目的是消除人为对系统装置的抖动、减小数据误差、提高系统装置稳定性。 智能加湿系统总体电路原理图如图5.1 所示: 图5.1智能加湿系统总体电路原理图图示 5.2 串口通信电路 此系统两块单片机相隔距离近,属于近距离串口通信,所以无需MX232芯片进行电平转换,共VCC和GND即可。STM32F103与OLED屏幕若要和PC开发机进行串口通信则需要使用MX232芯片进行电平转换,且必须通过TTL仿真器转换成USB与PC通信。 STM32F103与OLED屏幕串口通信电路如图4.2所示: 图5.2 STM32F103与OLED屏幕串口通信电路图示 5.3 时钟树配置 此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了IIC、SPI、串口等通信协议,2个ADC采集和6个输入、15个输出引脚、2个定时器[16]。 ADC:用于模数转换光照强度和水位值。 IIC:使用串行总线通信协议读取DHT11温湿度传感器的采样值。 SPI:作用于OLED屏幕的数据交互和显示。 串口:用于两块单片机的串口通信以及PC开发机的数据分析。 输入IO口:用于人体红外传感器和微动开关按键输入功能(低电平为有人和按键按下,高电平为无人和按键抬起)。 输出IO口:用于LED灯、继电器、蜂鸣器的输出。 定时器:定时器设置为PWM输出功能,对舵机进行占空比调速和输出电压等操作。 STM32F103时钟树配置如图5.3所示: 图5.3 STM32F103时钟树配置图示 5.4 管脚配置 此系统
基于STM32水温控制系统 摘 要 随着计算机应用技术与计算机通信技术的快速发展,人类的生活水平有着显著的巨大变化。大数据和云计算物联网进入我们的生活。 智能控制是自动控制发展的高级阶段,他是一门自动化控制与计算机等高度集成的综合学科,一门新兴的边缘交叉学科。智能控制硬件方面是由单片机微控制器、传感器、执行器构成,软件方面是通过逻辑判断、智能算法结合组成。利用传感器、执行器、单片机功能模块互相协作,传感器主要获取环境数据转交给单片机进行分析,通过分析后的数据进行执行器智能处理。 此设计采用STM32F103微控制器与其他外部设备相结合。外部设备包含直流5V加热棒、Water Sensor水位传感器、光敏电阻、人体红外传感器以及DHT11温湿度传感器等模块,合理分配STM32F103微控制器的IO口。由于传感器在获取数据时,会出现一定的数据误差与外界产生的波动,以及数据突变,运用滤波算法可增加数据的稳定性。此设计致力于完善或取代现阶段的传统加热器。 关键词:智能家居;单片机;水温控制;传感器; Based on STM32 water temperature control system Abstract With the rapid development of computer technology and communication technology, the living standards of human beings are changing with each passing day. Intelligent control is the advanced stage of the development of automatic control. It is the highly integrated and integrated of automatic control and computer and other disciplines. Intelligent control hardware is composed of microcontroller, sensors, actuators, software is composed of logical judgment, intelligent algorithm. The graduation project according to the design task and the actual operation of the scheme design and demonstration, and design the corresponding hardware circuit. The sensor, actuator and microcontroller function modules cooperate with each other. The sensor mainly obtains environmental data and transfers it to the microcontroller for analysis. The intelligent processing of the actuator is carried out through the analyzed data. This design uses STM32F103 microcontroller to combine with other external devices. External equipment includes DC 5V heating rod, Water Sensor, Water level Sensor, photosensitive resistance, human infrared Sensor and DHT11 temperature and humidity Sensor modules, reasonable allocation of IO port of STM32F103 microcontroller, effective use of intelligent algorithm to achieve intelligent Water temperature system, committed to improve or replace the traditional heater at the present stage. Keywords:Smart Home;MUC;Water Temperature Control;Sensor; 前 言 经过大学四年的理论学习与实际操作,深度的学习了物联网(Internet of Things)知识,了解了物联网是由硬件、软件相结合来实现的。物联网是现阶信息技术发展的一种新兴产业,信息技术的组成部分,是国家战略的目标之一[1]。物联网的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较为热门的行业[2]。 物联网背景下的智能家居是物联网现阶段的一个关键组成部分。智能家居目的是可以对室内、室外不同的场景变化进行实时数据监测、数据处理、数据可视化、数据安全、电器安全为目标,替代传统家居,创造一个更舒适,更健康,更智能的生活,STM32作为嵌入式工程师入门级微控制器,是嵌入式工程师技术成长的重要学习路线。选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有37个自定义管脚,性能是DSP的66%、多串口、多ADC、定时器多、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做智能家居的小产品[3]。 完成本次设计意义一是巩固在校期间学习的硬、软件专业知识,扩充课外专业知识,促进知识向能力的转化。二是设计属于自己的作品,为了今后职场考验的锻炼,面对未来的工作有了底气和骄傲。三是希望自己的作品能过进入市场,走到人们的身边,给人们提供一个更舒适,更健康,更环保,更节能,更智慧的科技居住环境。 1 系统概述 1.1 选题依据 物联网是新产业,物联网的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较热门的信息技术行业[4]。 物联网背景旗下的智能家居解决方案可以对室内、室外不同的场景实现实时数据监测、数据处理、电器管理以及电器控制,以智能化、数据可视化、安全为目标,代替传统家居,实现一种全新的智能科技生活方式。 1.2 选题目的 智能水温控制系统是在传统家居的热水器上进行延升而实现的。利用STM32F103微控制器为基础结合智能控制技术,智能控制为目标实现的,完善传统热水器的不足,功能单一、数据不能可视化、人为控制、干烧等一系列问题。 1.3 选题意义 推进国内物联网建设政策,深化物联网的探索与研究,完善智能家居的重要指标,对国家基础建设和发展具有重要价值。同时结合物联网工程、电子信息工程、计算机应用技术学科的相关知识,从新的角度研究,为IT行业的发展提供理论基础,为IT行业进一步提供一定的参考价值。 1.4 国内外研究现状 物联网的发展在我看来,和其他高端领域不同。我国走在世界各国的前面,比如今年的一个新闻,德国引进我国的快递智能分件系统,有效提高了快递分件的效率,原来10个人干的活,现在只需要这么一台机器就可以解决。其实这套分件系统就是使用的物联网技术,在快递上有可识别的标签,传感器识别标签,然后信息交给电脑控制处理,再通过机械臂一一分流,整个过程不超过2秒,即节省人力又节省时间。物联网的到来,就是把万物相连,让每个事件都通过传感器获得信息,然后网络层传输数据,然后电脑处理信息,再由电脑下达指令给智能操作层,不需要人为操作,达到最高的效率[5]。 1.5 主要研究内容 本毕业设计主要硬件设计研究对象为电子产品的外观设计,电路布局设计,以及单片机的功耗问题。锂电池充电放电的电路设计、继电器的原理、加热棒的应用、HDT11温湿度传感器的采集、DS18B20温度探头、光敏电阻的模数转换、有源蜂鸣器的应用、发光二极管的应用、Water Sensor水位传感器的原理、人体红外传感器采集等研究以及数字集成电路原理与应用。 此毕业设计主要软件开发研究对象为STM32作为嵌入式编程,选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有32个自定义管脚,性能是DSP的66%、多串口、多ADC、多定时器、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做智能家居的小产品。 1.6 论文组织结构 本文主要从以下6个部分进行简述: 第一部分:主要叙述该系统的选题依据和目的以及意义。根据国内外研究现状分析该系统是否可行,是否能实现,以及设计思路。 第二部分:主要对该系统设计进行该系统的需求分析和系统性能情况以及运行的开发软件环境和开发硬件性能需求以及硬件型号需求。 第三部分:主要介绍该系统的总体框架,用图片的方式介绍系统结构和系统功能,还有工作流程和数据的传输。 第四部分:主要通过查阅该系统的相关的单片机微控制器和串口通信技术资料,结合自身所学知识,数据分析与实验操作,设计该系统需要用到的技术方案等,来进行叙述。 第五部分:主要描述该系统装置的硬件部分,包含PCB制图、总电路设计、通信电路设计,时钟树配置和引脚配置,有根据性、目的性的运用32个IO口引脚巧妙合理的结合该系统需要的功能模块进行分析配置。 第六部分:一方面描述该系统的系统设计内容与该系统装置使用说明和源代码分析实现。另一方面主要具体描述系统屏幕的两个界面、事件逻辑判断、数据指令、通信交互等应用层模块的介绍。 2 系统分析 2.1 总体需求分析 现阶段热水器的领域上,绝大部分传统的热水器仅支持手动控制,不仅数据不能可视化而且功能单一。根据调研了解,广大用户在使用传统热水器时,热水器基本上都是24小时处于工作的状态;若不及时开启情况下,有时候想用热水又用不上,这一问题从始至终一直是广大用户的烦恼之一。且传统热水器在使用不规范时还会产生漏电危害,干烧导致的驱动电路不稳定,从而引发的火灾等一系列问题。如何能够有效解决上述问题? 跟着国家政策走,从制造强国变为智造强国。智能家居旗下智能热水器孕育而生,智能水温控制系统是在传统的热水器上进行延升而实现的。利用STM32F103微控制器为基础结合智能控制技术,智能控制为目标实现的,完善传统热水器的不足,功能单一、数据不能可视化、人为控制、干烧等一系列问题。 根据实际的需求,智能水温控制系统装置应具有实时室内温度、湿度、光照强度,蓄水容器的水位高度等传感器以及热水装置、红蓝雾状灯、LED指示灯、照明灯、蜂鸣器、按键、可蓄直流电源、OLED屏幕显示、继电器等执行装置。 智能方面应具有一定的数据算法,通过数据算法与自动控制结合,能够对热水装置进行智能控制,安全、可靠且智能的使用。 2.2 性能需求 该系统在功能模块上应达到如下需求: 智能水温控制系统装置方面应具有加热功能,可以使用该系统装置上的按键进行加热的开启和关闭,同时可以设置环境温度、水温、光照、水位阈值。装置的OLED屏幕上可以显示当前的水位值、水温值、温度值、湿度值、光照值、报警信息等数据。智能方面应可以根据用户在该装置上的按键设置的阈值进行判断,实现智能操作。例如,用户设置37℃水温,该装置通过DS18B20水温传感器探头获取水容器的水温,若未到达设置的湿度阈值,且蓄水池内有水的情况下,就会自动打开加热装置进行加热,等待水温至37℃时,则会自动关闭加热装置,实现智能控制效果。 该系统在性能功能上应达到如下需求: 智能水温控制系统装置方面应操作简单,电路布局合理并简洁,加热装置应耐用,电池蓄电能力高、复用性强,可用常见的充电器进行充电;OLED屏幕方面界面应布局整洁、易用、数据精确等,能够有效实时获取室内温湿度、水温、光照强度,水位高度,且能够及时上报、信息推送、智能控制等功能。 该系统主控单片机功能应达到如下需求: 单片机是整个智能水温控制系统的控制中枢,它控制每个子功能模块协调工作,进而完成整个智能水温控制系统的所有功能。本智能水温控制系统选用价格低廉且性能可靠的STM32F103单片机,它属于STM32F系改进增强型单片机,集成了向上或向下计数器和时钟输出等更多功能。STM32的另一个特点是可以工作于低功耗模式,可选择空闲模式和掉电模式。在掉电模式下,时钟停止,RAM数据不丢失,同时其他功能都停止;空闲模式下,虽然CPU停止工作,但RAM、串行口、定时器和中断系统仍能正常工作。STM32F103的这些特点成为了 众多嵌入式控制应用系统首选的单片机[6]。 2.3 运行环境 2.3.1硬件设备 开发PC机:AMD锐龙 R5 2600X 32G内存 2TB容量 主控单片机:具有STM32F103处理器以上 程序仿真器:ST-LINK/V2 - ST-LINK/V2。 外部设备:12*12*MM微动开关,5.8*6.8MM自锁开关,2路5V继电器,5V加热棒,直流红蓝雾状灯,RD-624人体红外传感器,5506光敏电阻,DHT11温湿度传感器,Water Sensor水位传感器,128*64蓝色OLED屏幕,3.3V有源蜂鸣器,发光二极管。 2.3.2程序开发 操作系统:win10 电路设计:Altium Designer 9 电路模拟仿真软件:CZ_OpenSpice 数据分析:串口调试助手 算法测试:Dev-C++ 芯片设计:STM32CubeMX STM32F103程序设计:Keil uVision5 取字模软件:PCtoLCD2002 程序底层驱动生成:STC-ISP 3 系统总体框架 3.1 模型结构 系统的模型结构如图3.1所示: 图3.1水温控制系统的模型结构图示 该系统结构分为三个逻辑层: 系统配置层:系统配置层主要根据功能需求对单片机的各个引脚IO口进行定义、单片机内、外部时钟、ADC模数转换、IIC、SPI、外部中断、串口等配置。这一层是用STM32CubeMX软件始化代码生成器来进行实现的,大大缩短了开发时间[7]。 业务逻辑层:其中有系统功能的实现和命令和逻辑,如温度、湿度采集、水位采集、光照采集、IO口输出、输入、信号解析、逻辑判断、中断处理、事件处理等工作任务。逻辑较为复杂时,只靠单片机内部的轮询方式远远不够,可以进行开启多个外部中断或多个定时器中断以及STM32F103内部的滴答定时器等功能同时处理多个功能模块。 数据通信协议层:数据通信协议层为业务逻辑层提供指令,这一层是运用串口通信和OLED屏幕通信作为解决方案文件实现显示任务。STM32F103作为主控单片机,主控单片机实时获取数据后通过串口发送给OLED屏幕。 3.2 功能模块简介 图3.2 系统的模型结构图示: 图3.2智能水温控制系统的模型结构图示 工作流程为: 打开该系统装置电源开关,STM32F103主控单片机会自动进行系统初始化,各个IO口的输入和输出、SPI、ADC模数转换、PWM脉宽输出、串口通信、外部中断、滴答定时器、T1定时器等功能进行初始化。STM32F103单片机主控单片机初始化完毕后,LED通信指示灯进行200MS周期闪烁,同时与OLED屏幕模块串口对接,进行屏幕初始化,屏幕轮询显示STM32F103主控单片机的系统初始化滚动界面。 整个系统初始化完毕后,STM32F103主控单片机创建任务事件,首先通过DS18B20温度传感器为实时数据采集单元,同时对水位传感器和光照传感器以及人体红外传感器进行实时采集室内环境数据,且与设定存储的阈值进行比较,进行事件消息提醒,显示在屏幕上,并开启相应的指示灯作为提醒作用。采集数据的同时以500MS为周期,通过串口把数据发送给OLED屏幕模块,OLED屏幕模块通过串口接收到数据后,通过OLED屏幕驱动芯片进行屏幕显示。 同时,用户也可以直接使用该系统装置上的微动开关按键进行设置,设定室内温度、光照、水位、蓄水池水温完毕后,该系统装置的主控单片机数据与OLED屏信息同步,自动开启逻辑判断功能、智能事件处理。 4 技术介绍 4.1 STM32与单片机简介 其实单片机就是一个简单的中央处理器,也是一个芯片,我们叫做CPU。我们可以对单片机进行编程,设定程序,给它任务让它在我们设定的规则下处理信息,然后输出信息,交给下一层,进行实际操作。STM32就是单片机的一类型号,它有低功耗,系统稳定,质量可靠,可编程程度高等优点,所以我选用STM32进行设计实现。 4.2 CAN外围收发电路 CAN收发器我采用的是TJA1050。本系统的CAN外围电路如图4.1所示,其中在芯片的S端口设置切换开关,用来选择正常/静默模式,发送接收端口直接与STM32的CAN控制器映射端口相连[8]。 图4.1CAN外围收发电路图示 4.3 串口通信简介 数据包结构: ①包头——每个数据包的前一段字符,就是数据包的头部分,它的作用是告诉接收方开始传输数据了,或者是进行数据,地址的匹配; ②地址——数据信息要传输到的目的地; ③包长度——指示整个数据包的长度; ④命令——指示本数据包的作用; ⑤参数——需要传送的数据与参数; ⑥校验——有一组或多组验证字符,就像我们登录某网页的时候,需要用验证码一样; ⑦包尾——告诉接收方,数据已经传输完毕,就相当于一种外包装,告诉你这个数据包已经传输完成了。 5 系统详细设计 5.1 基于STM32智能水温控制系统总体电路原理图 此系统装置采用STM32F103最小系统板与OLED屏幕驱动模块进行组合。采用2000mA可蓄5V电池供电,两者通过3,3V降压芯片进行降压处理,同时共VCC和GND,并配备两个10PIN口的接线端子共给两块单片机作为源代码的下载入口,以及两个MX232芯片作电平转换,作为两个单片机的串口通信向PC端发送数据,便于数据分析与调试[9]。 为了此系统装置的电路简洁,LED指示灯、微动按键开关采用共阴接线方案,此方案可以避免电流灌流、回吸等问题。每个功能模块在接入STM32F103最小系统板时,都合理的搭配电容、电阻、点解等元器件,如LED指示灯、蜂鸣器等执行器搭配下拉电阻;微动按键开关、信号输入模块搭配上拉电阻;水位、温湿度、水温、光照、人体等传感器将根据不同的应用效果,搭配上拉或下拉电阻。目的是消除人为对系统装置的抖动、减小数据误差、提高系统装置稳定性[10]。 智能水温控制系统总体电路原理图如图5.1 所示: 图5.1水温控制系统的电路原理图示 5.2 串口通信电路 STM32F103最小系统板与OLED屏幕相隔距离近,属于近距离串口通信,所以无需MX232芯片进行电平转换,共VCC和GND即可实现近距离串口通信[10]。若要和PC开发机进行串口通信则需要使用MX232芯片进行电平转换,且必须通过TTL仿真器作为数据中转处理、电平转换、接口更变为USB才能与PC通信[11]。 STM32F103与OLED屏幕串口通信电路如图5.2所示: 图5.2 STM32F103与OLED屏幕串口通信电路图示 5.3 时钟树配置 此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了IIC、SPI、串口等通信协议,2个ADC采集和6个输入、15个输出引脚、2个定时器[12]。 ADC:用于模数转换光照强度和水位值。 IIC:使用串行总线通信协议读取DHT11温湿度传感器的采样值。 SPI:作用于OLED屏幕的数据交互和显示。 串口:用于两块单片机的串口通信以及PC开发机的数据分析。 输入IO口:用于人体红外传感器和微动开关按键输入功能(低电平为有人和按键按下,高电平为无人和按键抬起)。 输出IO口:用于LED灯、继电器、蜂鸣器的输出。 定时器:定时器设置为PWM输出功能,改变加热模块的输出电压操作。 STM32F103时钟树配置如图5.3所示: 图5.3 STM32F103时钟树配置图示 5.4 管脚配置 IIC管脚为:PB7、PB6 SPI管脚为:PD0、PD1、PA13、PA14 串口管脚为:PA2、PA3、PA9、PA10 ADC管脚为:PA0、PA1(ADC1中断查询,2个通道分别为Rank1、Rank2) 输入管脚为:PC13、PC14、PC15、PB8、PB13 输出管脚为:PA5、PA6、PA7、PB12、PB15、PA11、PA15、PB3、PB4、PB5 PWM输出管脚为:PAB 系统管脚配置如图5.4所示: 图5.4水温控制系统的引脚图示 5.5 算法分析实现 在数据的接收中,每秒都会获得很多数据,而我们不能把每个数据都采用或者说叫都展示出来,一秒钟在显示屏上变化50次甚至更多,那没有意义,我们就要想办法获得更接近真是数值的数据,排除数据的波动,这就是滤波法的意思。其中我们有中位值滤波法、算术平均滤波法、递推平均滤波法[13]。 5.5.1中位值滤波法 虽然温度、湿度等数据都是缓慢变化,但直接读入的数据依然不可直接作为有效数据,若当数据发生突变时,直接读入的数据会导致产生相应的事件错误,导致错误处理发生。 中位值滤波法就是一段数据按大小排列,取中间个数据作为有效数据,如果为两个数,则取这两个数的平均数。 中位值滤波法如图5.5所示: 图5.5中位值滤波法图示 5.5.2算术平均滤波法 光照传感器的硬件结构是通过电阻的阻值的变化而变化的,所以光敏电阻很灵敏,读入数据时产生的波动非常大,不能因为发生突发事件(光照传感器突然被人遮住),产生的错误逻辑判断,导致之后执行事件错误,引发的元器件损坏。 算术平均滤波法,就是把这一段数据全部加起来,然后除以数据的个数,取得他们的平均数,然后以这个平均数作为有效数据[14]。 算术平均滤波法如图5.6所示: 图5.6算术平均滤波法 5.5.3递推平均滤波法 递推平均滤波法其实就是算术平均滤波法的升级,当一段数据已经完成了算术平均的计算和有效值的取用,接收到了新的数据时,重新进行算术平均计算会数据会不准确,这时候我们会采用递推平均滤波法。在前一段算术平均计算完的基础上去掉第一个数据,加上新收到的这个数据,如果接收到的是多个数据,那就去掉前面多个数据,然后进行算术平均。当再出现新的数据,再进行相同的操作,一直推下去,这就是递推平均滤波法了[15]。 递推平均滤波法如图5.7所示: 图5.7算术平均滤波法 6系统实现 6.1 系统设计内容介绍 1.智能水温控制系统电源接通开机状态下,水温控制系统进行时钟频率、GPIO、串口、IIC、ADC、SPI、定时器、按键、传感器、OLED屏幕等系统初始化,OLED屏幕显示当前环境数据界面。 2.通过手动按下按键可以进行加热器模块的开启和关闭;OLED屏幕数据界面、阈值设置界面切换;蜂鸣器发声和勿扰模式以及系统手动、智能模式的切换功能。 3.智能水温控制系统通过STM32F103单片机实时读取和处理传感器获取的值,同时与OLED屏幕数据同步,进行实时显示当前温度、水温、光照、湿度值、消息事件、任务事件等数据,进而实现数据可视化。 4.当STM32F103单片机没有读取到智能水温控制系统装置其任何传感器发送的数据时,自动判定该传为异常或视为损坏,产生相应的报警信息显示在OLED屏幕上,同时,亮起相应报警指示灯,有效及时提醒系统使用者,便于重新调试该系统。 智能水温控制系统如图6.1所示: 图6.1智能水温控制系统图示 6.2 系统使用说明 1)系统初始化说明: 智能水温控制系统接入电源时,并处于开机状态下,智能水温控制系统默认关闭所有LED指示灯