单片机智能测温系统深度解析

摘要

与农业发达国家相比,我国的现代化信息农业技术还处在刚刚起步的阶段,多数的自动化农业设备仍然掌握在科研人员手中。目前在温室环境数据监测方面,自动化设备比较落后。为了达成在灌溉过程中减少水资源浪费及人力消耗的目的,我将设计一款运用传感器技术采集田间信息后进行数据比对,可以按情况自动灌溉的系统。本文介绍了以STM32F103RCT6为核心微控制器,结合多种微传感器设计的智能温控系统。本设计的测量模块是温湿度传感器和土壤湿度传感器、执行机构为继电器模块、人机交互模块则以基本的按键输入和OLED显示屏输出信息联合构成。程序设计方面则使用keil平台进行编写。此系统可以全自动运行,减少人力的参与,具有节约资源、减少人力消耗、实时高效等优点。
关键词:STM32,温室环境,数据监测,传感器

2 总体方案设计

本设计以农田节水灌溉系统为研究对象,采用合适的硬件和软件资源,完成温室环境数据监测系统。

2.1 总体架构设计

温室环境数据监测系统由单片机、空气温湿度检测模块、按键输入模块、电源模块、继电器模块、土壤湿度传感器模块、OLED液晶显示器七部分组成 。土壤湿度检测模块检测土壤的湿度并把信息传给单片机,按键模块可以对土壤的湿度范围进行设置,显示模块使用的是液晶显示屏,可以将当前土壤湿度、空气温湿度范围显示出来,继电器模块用于加水。当湿度传感器检测到土壤湿度低于设定值,并且空气温度大于设定值时,单片机发出控制指令将继电器打开。电源模块由DC电源插座、自锁开关和外接USB电源组成,如下图2.1为系统总的原理架构。

图2.1 系统总体框图

2.2 核心控制器选择

主控制器的选择,主要考虑性价比、功能性。本产品有两种选择对象,分别为AT89C51、STM32F103RCT6,主要利用单片机实现PWM(脉冲宽度调制)波的输出与控制。
方案一:以单片机AT89C51作为主控制器,因此只能通过其他方式实现输出功能。在本方案设计中,我们可以利用软件延时函数,控制电平持续的时间,达到模拟PWM的效果。主要通过一个定时器和一个IO口实现PWM的输出,在一个周期内,首先让输入输出口输出一个高电平,并通过delay函数延时一段时间,之后再将IO口输出低电平,再次对其使用delay函数延时一段时间,最后在while循环语句中循环输出即可,如果需要更占空比的话,只需要更改高电平与低电平的时间比。 但是这种方法的缺点也相当明显,就是当单片机既要输出PWM波又要执行其他操作时,会占用单片机一定的机械周期。这样就会影响PWM的准确度。
方案二:选用ST厂商生产的MCU STM32作为本设计的主控制器,本款产品在各单片机的比对中,其性价比以及功能在行业中都具有很高的声望。单片机的内核为ARM Cortex-M,它具有高性能,低功耗的优点。STM32单片机共有8个定时器,除了两个基本定时器TIM6和TIM7,其他定时器都可以输出PWM波。同时STM32有十分完善的外设部分,如:ADC(A/D转换模块)、UART(通用异步收发传输器)、SPI(串行外设接口)、IIC(集成电路总线)等。本设计所使用的单片机最小系统原理图如下图2.2所示。

2.3 电源电路

方案一:使用LM7805作为电路稳压芯片。LM7805是常用的三端稳压芯片,其输入电压范围为7V~36V,输出电压为5V。LM7805的缺点是稳压时的功率比较低,发热量大。
方案二:采用HT7333模块设计稳压电路,由于HT7333模块的功率小,其功耗为2uA,压差仅为5mV,适合一般电池供电的装置。
方案三:采用HT7335模块设计稳压电路,输出电压精度为2%,输入输出电压差为40mV,功耗为2uA。
根据上述分析,结合各方案功耗高低、输入输出电压范围及精度,决定选取HT7333作为电源稳压芯片。

3 整体硬件电路设计

3.1 主控制器电路

本次系统的设计是以STM32F103C8T6作为核心控制器,这是意法半导体公司ST旗下的一款增强型的微控制器。具体的实物如图3.1所示。

图3.1 STM32_mini开发板实物图
STM32C8T6具有很优良的性能。使用外部的8MHZ精准晶振,经过PLL倍频后能够达到72MHZ的工作频率,能够极大的提高系统的运行性能。(表述不是很通顺)外部晶振如图3.2。

图3.2 系统时钟晶振
除此之外,微控制器集成了其他很多外设,有ADC/DAC转换器。在控制系统的设计中,除了部分传感器自带AD转换功能,绝大多数传统传感器都是输出模拟量,需要接AD转换模块。STM32C8T6有4个通用的定时器,可以用来提供有关计数定时、输出PWM波、捕获输入等功能,另外还有两个IIC和三个SPI接口,可以用来作为显示屏、读取传感器、读写FLASH存储芯片等模块的通信接口。

4 主程序设计

在本次设计中我使用了时间片轮转的设计思想,设计了一个多任务并行的控制系统。这一设计思想的具体实现是在一个时间片内设置多个时间点,在每一个时间点执行相应的任务,由于控制器极高的运行频率,一次任务并不会对其他的任务造成影响,也就造成了多任务并行的现象。
以下将介绍main函数中的各个任务:
下图4.3所示的是检测控制任务,顾名思义该任务的作用是检测环境参数和控制继电器。该任务调用Soil_read和Read_DHT11函数检测环境参数后与湿度设定值setnum和温度设定值settem相互比较,条件满足湿度低于设定值并且温度高于设定值时,则打开水泵进行灌溉。我将LED_0作为水泵的开关指示灯,水泵打开时LED_0亮。

图4.3 主程序设计流程图

5 系统调试与结果

5.1 各个模块的调试结果显示

本设计显示的主界面为数据采集信息,包括空气温度,空气湿度,土壤湿度和光照强度,分别通过相应的传感模块读取进行实时显示,如图5.1所示。

图5.1 OLED屏幕调试主界面

5.2 总体调试结果

为方便展示,本设计利用面包板作为底板,将各模块通过焊接的方式与主控制芯片连接在一起。将主控制器通电,电源指示灯常亮,同时OLED屏幕显示空气温度,空气湿度,土壤湿度和光照强度实时数据。整体调试图片如图5.4所示。

图5.4 总体调试效果

6 结论

在硬件方面使用STM32C8T6与相关外设设计农田温室环境数据监测系统是可行的。
首先STM32微控芯片的基本功能完全可以满足系统设计的需要。作为一个工业级的控制芯片能够有足够的的I/O口用于外接各种外设。在此之外,微控芯片高达72MHZ的处理速度能够相当迅速的对信息判断进行处理,这对于系统性能的优化提供了先决条件。再利用DHI11、土壤湿度传感器的过程中,高集成的微控制器提供了便利的开发环境。其次是本系统采用OLED屏幕以及蜂鸣器作为报警装置,相比较于传统的人工监测更加智能化。在软件方面,使用将系统工作过程具象化的状态机思想可以及为具体的分析,完善程序逻辑。除此之外,使用模块化编程,将每一个模块当成一个任务描写,将模块的信息详尽的编写,在以后改进修改时能更简单。
由于本人水平有限,控制系统也处于维形状态,需要对硬件电路进一步进行开发研究,同时在程序设计上也缺乏灵活性。只有不断地改进并完善控制系统,才能真正的将本设计的温室环境数据监测系统应用到实际中。比如在未来我们可以运用NB-IOT技术,将各温室的数据上传至后台服务器,对各个温室建立档案,对其进行数据跟踪调查,使其更加人性化。
近些年,尽管我国科技发展迅速,可是同国外依旧存在很大的差距,还需要不断进步。只有这样,才能打破国外的垄断,实现自主化技术,实现中国创造。

作者:启初科技

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机智能测温系统深度解析

发表回复