张少凤
(宝鸡职业技术学院,宝鸡 721000)
在科技发展迅猛的今天,我国农村地区的传统农业面临转型升级。传统大棚在面临棚内温度过高时,高温引起蒸发量大增,会造成果蔬等农产品局部温度过高而影响农产品出售。并且一般的农产品适应温度最高为34℃,如果高于这个温度,会促成叶螨的适合大量繁殖的条件,蔬菜出现叶螨时,叶片会发生卷曲的现象,影响蔬菜正常的生长,甚至会造成其停止发育,从而导致蔬菜的大量减产。所以解决棚内温度过高要从农业大棚的环境实时监测做起,做到监测并报警,提醒工作人员做出处理,及时采取通风透气等措施来避免灾害的发生[1]。
“农业大棚环境监测系统的设计与实现”体现了智慧农业理念在生产环境监测方面的应用。基于移动端的开发,无线通信技术的应用,以及大棚环境监测平台的搭建,通过大量的传感器节点采集大棚内的信息,帮助管理人员及时发现问题,通知并处理,指导农民高效、方便的生产。由此,将只依靠人工经验的农业生产逐步转变为结合物联网的现代化生产模式,从而,通过大量的使用智能的机械化、自动化设备,提高农业生产率,降低劳动成本[2]。
本设计采用单片机、温湿度传感器和APP相结合的设计方式,传感器实时采集温湿度,把温湿度数据进行数模转换,然后将转换好的数据发送给单片机,在硬件模块的屏幕上进行显示,并通过蓝牙模块与APP交互,当温度超过预先设定值时,APP发出警示,工作人员通过APP发送指令,打开风扇,当温度低于预先设定值后可以选择关闭风扇[3]。
Keil是兼容C语言的开发工具,提供包括C编译器、库管理、仿真调试器等为一体的开发方案,通过集成开发环境将其组合在一起。因为该系统将采用STM32,所以选择了支持ARM芯片的Keil μ Vision5的开发工具。Keil5的开发界面,如图1所示。
系统采用Eclipse作为移动端软件开发的工具,Eclipse是一种可扩展的开放源代码的IDE,具备免费、纯Java语言编写、免安装、扩展性强等特点。
图1 Keil 5开发界面
农业大棚环境监测系统是可以采集大棚内的温度和湿度信息,通预设值比和蓝牙模块对管理人员进行预警,再处理的装置。本设计由基本电路和移动端组成。基本电路分为:温湿度检测采集电路、单片机控制处理电路、LCD1602显示电路等。
温湿度传感器可以将所处环境中的温度、湿度信息进行采集并发送给单片机,在LCD上显示的同时,单片机会分析处理得到的数据,判断数据是否大于预设值,如果大于预设值,通过蓝牙模块向移动端的APP发送提示信息,管理员通过APP打开或关闭风扇。设计分为6个模块,包括温湿度采集模块、STM32单片机模块、LCD显示模块、蓝牙模块、APP模块和风扇控制模块。STM32单片机为核心数据处理层,其他部分配合单片机完成功能,如图2所示。
图2 农业大棚环境监测系统结构
系统设计中使用到了温湿度传感器、单片机、液晶显示屏、蓝牙、风扇等硬件。
(1)DH11温湿度传感器
温湿度传感器是一种将温湿度信号转换为电信号的传感器。它将采集到的温湿度转化为电信号,再由数模电路将温湿度的电信号转化为单片机可识别的数字信号。选择温湿度传感器主要是为了其是否能够适应监测环境的温度要求、温湿度范围的大小和精度的要求,本系统采用DH11温湿度传感器[4]。该部分的主要代码如下。
uart_init(9600);//蓝牙初始化 包含开启中断
TIM3_Int_Init(499,7199);//50 ms
LED_Init();// 风扇初始化
Lcd_GPIO_init();
Lcd_Init();
delay_ms(20);
sprintf(dis1,"My designer ! ");
Lcd_Puts(0,0,(u8 *)dis1);
fengshan = 1;
while(1)
{
if(DHT11_ReadData()) //是否读取到温湿度[8]
{
sprintf(dis0,"Temp:%02dCDH:%02d%%",
(u16)DHT11.Tem_H,(u16)DHT11.Hum_H);//打印温湿度
Lcd_Puts(0,1,(unsigned char *)dis0);//LCD显示
Lcd_1Put(7,1,0xdf);
printf(dis0);
printf(" ");
if(DHT11.Tem_H>34)//温度>34°
{
printf("Temp High ");//发送温度过高
}
else
{
printf("Temp Normal ");//发送温度正常
}
delay_ms(800);//延时
}
}
(2)STM32F103C8T6核心板
单片机作为本设计的核心部分主要有四个功能,接收传感器传送的温湿度数据;将温湿度在LCD上显示;通过蓝牙模块发送数据;通过蓝牙模块接收到的数据控制风扇。根据本次系统设计的要求,采用STM32F103C8T6单片机[5]。
(3)LCD1602
LCD1602是一种工业字符液晶,最多可以一次显示16*02(即32)个字符,是专门用来显示数字、字母、标点符号等多种字符的点阵型液晶显示模块本系统的液晶显示模块,将温湿度传感器采集到的数据,通过由STM32单片机对接收到的数据处理后,通过LCD1602显示[5]。
(4)蓝牙模块
根据系统需求,选用HC-06作为蓝牙模块,引脚接口主要包括RXD、TXD、GND、VCC。可以连接各种型号的单片机(51、ARM、STM32),并且可以与带有蓝牙功能的手机、电脑等设备通信[6]。
(5)风扇
风扇作为本设计的控制模块。在接收到相关指令时,单片机通过三极管驱动,控制风扇打开或关闭。部分代码如下。
void USART1_IRQHandler(void)
{
u8 Res;
#ifdef OS_TICKS_PER_SEC
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
Res=USART_ReceiveData(USART1);//获取APP发来的数据
if(Res=='O')
{fengshan = 0;}//打开风扇
else if(Res=='C')
{fengshan = 1;}//关闭风扇
}
#ifdef OS_TICKS_PER_SEC
OSIntExit();
#endif
}
系统软件设计主要包括部分代码控制硬件,和APP设计代码。根据代码量现将APP主要功能加以介绍。
(1)进入APP的主界面,如图3所示。
(2)点击连接按钮后,如图4所示。
(3)当手机接收到“Temp High”温度过高的提醒后,点击open按钮打开风扇,点击close按钮关闭风扇[7-8],如图5、图6所示。
农业大棚环境监测系统的设计与实现主要完成了接收数据、显示数据、发送数据、蓝牙连接等功能。该系统的测试用例,从测试的结果来看与期望的结果完全相同,如表1所示。
图3 主界面
图4 点击连接按钮
图5 蓝牙连接成功
功能特性系统测试测试目的验证否能够连接蓝牙设备,数据接收、发送、显示。测试内容操作描述期望结果实际结果测试状态1打开设备电源开关设备上电成功,液晶屏显示数据设备上电成功,液晶屏显示数据与期望结果相同2APP点击连接按钮弹出可连接设备列表弹出可连接设备列表与期望结果相同3APP连接蓝牙设备弹出Toast,提示用户连接成功弹出Toast,提示用户连接成功与期望结果相同4APP等待数据接收数据成功显示数据成功显示。与期望结果相同5APP点击open按钮风扇打开风扇打开与期望结果相同6APP点击close按钮风扇关闭风扇关闭与期望结果相同
在代码编写的过程中只能发现语法部分的错误,而测试是在程序成功运行后,通过不同的操作方式,发现漏洞。只用通过测试发现代码细节部分存在的问题,并加以修改,才能使程序更具有健壮性,满足系统功能需求的同时。
本次设计主要由单片机、温湿度传感器、LCD液晶屏、蓝牙、风扇、APP构成。系统的优势包括:传感器具有长期稳定工作、对其他因素有耐受性等优良特性;STM32F103C8T6具备高性能、低成本、低功耗等特点;开发板的代码采用C语言编写,代码执行效率高,代码占用空间小;移动APP利用自身优势,对数据随时查看并控制风扇的开闭。
本次系统设计也存在一些有待改进的问题,比如环境监测的范围有限。空间过大的大棚就会出现监测不及时等问题。后期需要完善的地方,比如加入多个传感器分布在仓库的各个角落,把他们进行组网操作。这样就能实现对各个角落的数据精准采集。