河南科技大学本科毕业设计(论文)
图3-23 复位电路
§3.4.4 执行控制电路设计
本智能农业监测系统不但可以监测温室大棚内各项环境指标,还要做到环境调节功能。由于材料限制先用LED灯代表相应的调控信息。LED1代表增湿,LED2代表升温/降温(常量升温,闪烁降温),LED3代表增加光照,LED4代表增加CO?浓度。LED熄灭代表停止调控。其控制电路图如图3-23所示:
图3-23 控制电路
26
河南科技大学本科毕业设计(论文) 第4章 智能农业监测系统软件设计
要做一款智能农业监测系统,单单只有硬件是不够的。如果说硬件是“身体”的话,那么软件就是“灵魂”。计算机在进行信息处理时,都是在硬件平台的支持下,由软件控制完成的。所以软件的设计很大程度上决定了系统的性能。本智能农业监测系统是在Keil uvision4环境下,利用C语言编写和调试的。
Keil系列软件使用方便、功能强大,具有良好的调试界面和有益的编译效果,应用非常广泛。C语言不但具备高级语言的基本结构和语句,同时有拥有低级语言的实用性,是一款应用非常广泛的编程语言。
§4.1 程序设计的基本框架
本智能农业监测系统运行过程中主要包括AD采集,数码显示,反馈控制,检测报警四大模块,其基本框架如图4-1所示:
开始DHT11温度TSL2561光照强度MH-410D5CO?浓度MQ-2烟雾浓度P35屏数码显示判断是否发生火灾否是否判断各项数据是否超标报警复位是环境调节图4-1 程序设计框架
27
河南科技大学本科毕业设计(论文) §4.2 软件流程分析
主程序流程图:
开始参数初始化延时各传感器AD采集并传回数据判断是否发生火灾是报警否数码显示否判断温室环境是否超标复位是环境调控
图4-2 程序主流程图
主程序是一个while(1)循环,其主要流程是:系统上电首先对主控各个IO口进行配置,设置各个环境变量,并对环境变量阈值进行赋值,以及调用各个模块的初始化函数,然后在while(1)循环中调用各个模块的数据采集函数,LCD屏显示函数,然后对各环境数据进行判断,看是否触发中断进行调控,或者进行火灾报警。
§4.3 各模块程序设计
§4.3.1 数据采集模块程序设计
1. DHT11模块
DHT11模块程序设计流程如图4-3所示:
28
河南科技大学本科毕业设计(论文) 开始初始化温湿度采集延时等待转换结束读取串口数据并计算温湿度结束 图4-3 DHT11模块程序流程
DHT11能够以数字的形式将温湿度信号直接通过单线串口传送出来,所以程序的设计主要考虑相关寄存器的配置,本系统选择GPF0与DHT11的DATA引脚相连。
2. TSL2561模块
TSL2561模块程序设计流程如图4-4所示:
开始初始化延时等待转换结束读取通道寄存器值计算光照强度值设置积分时间设置中断门限值设置中断寄存器结束
图4-4 TSL2561模块程序流程
TSL2561可以通过标准I2C协议与主控进行通信。当主控往TSL2561内部写数据时,首先发送起始信号、器件地址,然后发送要写的数据。读数据亦然,同样是主控现发送起始信号、器件地址,然后器件向主控发送数据。
29
河南科技大学本科毕业设计(论文) TSL2561的程序设计主要是先往器件内输入光照强度下线阈值,然后再根据I2C协议读取SDA端口数据。
3. MH-410D5模块
MH-410D5模块程序设计流程如图4-5所示:
开始初始化CO?浓度采集延时等待转换结束读取串口接收端数据结束 图4-5 MH-410D5模块程序流程
MH-410D5传感器具备标准UART管脚的TXD、RXD引脚,并且能够直接将模拟量转化为相应的数据量,所以该模块的程序设计主要考虑串口相关寄存器配置,和串口TXD端的数据读取。
4. MQ-2模块
MQ-2模块程序设计流程如图4-6所示:
开始初始化延时采集烟雾信号延时接收烟雾信号信号AD转换延时结束
图4-6 MQ-2模块程序流程
30