基于物联网的花卉养殖监控设计系统与研究

news2024/11/25 4:17:31

目 录
1、绪论 1
1.1课题背景 1
1.2 本课题研究意义 2
2、 系统总体方案设计 3
2.1、传感器部分 3
2.2、主控制部分 4
3、系统硬件设计 6
3.1 STC89C52RC单片机主控模块设计 6
3.2单片机最小系统 9
3.2.1时钟电路 9
3.2.2复位电路 10
3.2.3 STC89C52RC中断技术概述 10
3.3 温度采集模块DS18B20 11
3.4按键模块设计 13
3.5蜂鸣器报警电路 13
3.6 LCD1602液晶显示 14
4、软件设计 16
4.1软件介绍 16
4.2 主程序流程图设计 17
4.3各子程序设计 18
4.3.1按键设置子程序 18
4.3.2 DS18B20温度检测子程序 19
4.3.3 LCD1602液晶显示子程序 20
4.3.3 按键设置子函数 22
5、总结与展望 23
6、 参考文献 24
7、致谢 25
附录一 系统原理图 26
附录二 系统部分源程序 27
2、系统总体方案设计
温度检测系统有着共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。
2.1、传感器部分
方案一:采用热敏电阻,利用其感温效应,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂,一定程度上也增加了软件实现的难度。
方案二:在花卉养殖监控系统中,传统的测温方法是将模拟信号远距离采样进行A/D转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输、放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化,便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器STC89C52RC构成的温度测第一章总体设计方案4量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于STC89C52RC可以带多个DSB1820,可实现多点测量,轻松的组建传感器网络,本次设计用于大棚温度检测比较适合方便。
2.2、主控制部分
方案一:此方案采用PC机实现,它可在线编程,可在线仿真的功能,这让调试变得方便,且人机交互友好。但是PC机输出信号不能直接与DS18B20通信,需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦。
方案二:此方案采用STC89C52RC八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信,运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)实现温度数据采集,组成两级分布式温度测量的巡回检测系统,实现远程控制。另外STC89S51在农业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
总体设计综上所述,温度传感器以及主控部分都采用第二方案。首先由温度传感器DS18B20采集温度数据,经单片机I/O模拟单总线读取后送入STC89C52RC单片机中进行运算处理,并LCD1602液晶显示当前温度,同时与键盘输入的设定温度值(上限)进行比较,由单片机控制是否发出报警信号。在整个过程中,温度始终都能得以显示。设定温度过程中显示设定温度值,以便于操作。
本系统的总体设计方框图如图2-1所示,它主要由五部分组成:
①主控制部分主芯片采用单片机STC89C52RC(包括时钟和复位电路);
②显示部分采用3位LED数码管以动态扫描方式实现温度显示;
③温度采集部分采用DS18B20温度传感器;
④按键输入部分主要功能是实现设定温度值的输入;
⑤人体红外传感器用来检测人体信息
DS18B20检测温度,将温度信息传送到单片机内,单片机检测到温度信号,对其进行处理,将处理得到的数据在LCD1602液晶上显示出来。可以通过按键来设置温度的上下限值,当温度超过范围时,单片机控制蜂鸣器报警,同时当人体红外传感器检测到人体时,也会触发蜂鸣器报警。
在这里插入图片描述
图2-1 系统总体设计框图

#include "reg51.h"
#include "LCD.h"
#include "DS18B20.h"
#include "KEY.h"
void main()
{
	P1=0X0F;
	LCD_Init();  //lcd1602初始化

	write_string(0,0,"Temp:          ");
	write_string(0,1,"up:    dowm:   ");	
	while(1)
	{
		 disp_ds18b20();  //读取并显示温度
		 Key_borad();		//按键设置函数
		 if(temp>tmpup)  //得到温度值 大于上限设置值
		 	BEEP(1);
		 else if(temp<tmpdowm) //得到温度值 小于下限设置值
			BEEP(1);
		 else 
		 {_nop_();}

	}
}
int tmpup=25;     // 预设上限温度
int tmpdowm=10;   // 预设下限温度

void Key_borad()		//按键设置函数
{
	if(KEY0==0)	   //如果按下加按键
	{
		while(KEY0==0); //释放
	    tmpup++;		  //预设温度加一
	}
	if(KEY1==0)	   //如果按下减按键
	{
		while(KEY1==0); //释放
	    tmpup--;		  //预设温度减一
		if(tmpup<0)
			tmpup=0;
	}

	if(KEY2==0)	   //如果按下加按键
	{
		while(KEY2==0); //释放
	    tmpdowm++;		  //预设温度加一
	}
	if(KEY3==0)	   //如果按下减按键
	{
		while(KEY3==0); //释放
	    tmpdowm--;		  //预设温度减一
		if(tmpdowm<0)
			tmpdowm=0;
	}
	write_com(0xc0+3);

	write_dat(tmpup%100/10+0x30);
	write_dat(tmpup%10+0x30);
	write_dat(0xDF);	//write_dat('C');//	℃

	write_com(0xc0+12);

	write_dat(tmpdowm%100/10+0x30);
	write_dat(tmpdowm%10+0x30);

	write_dat(0xDF);	//write_dat('C');//	℃
} 

void BEEP(uchar t)
{
 	uchar i;
	for(i=0;i<100;i++)
	{
	 	SPK = ~SPK;
		delay_ms(t);
	}
	SPK = 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于最小误差阈值法的特定医学图像分割算法研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、阈值分割原理✳️ 三、最小误差阈值法✳️ 四、基于最小误差阈值法图像分割的实验分析✳️ 4.1 图像分割结果✳️ 4.2 边缘曲线提取结果✳️ 五、参考文献✳️ 六、Matlab代码获取✳️ 一、引言 图像是人们所熟悉的&#xff0c;但是图像…

服务器稳定性测试-LTP压力测试方法及工具下载

简介 LTP&#xff08;LinuxTest Project&#xff09;是SGI、IBM、OSDL和Bull合作的项目&#xff0c;目的是为开源社区提供一个测试套件&#xff0c;用来验证Linux系统可靠性、健壮性和稳定性。LTP测试套件是测试Linux内核和内核相关特性的工具的集合。 该工具的目的是通过把测…

【HMS Core】构建SplitBill应用集成多个HMS Core服务,助力您更好的了解华为生态组成

一、介绍 Duration: 3:00 总览 通过构建本次的SplitBill应用&#xff0c;您可以更好地了解华为生态的组成部分&#xff0c;包括认证服务、云存储和云数据库等Serverless服务。此外您还可以了解如何使用近距离数据通信服务的Nearby Connection功能分享文件。无需使用现金&…

重回synchronized(源码解读与实战解析篇)

读前必知 文中锁&#xff0c;也称为对象锁&#xff0c;而锁对象就是指的承载这个锁的对象&#xff0c;如下面&#xff0c;用法中所指的Object o&#xff0c;在print3中就是锁对象。 以下源码分析仅适用于jdk8&#xff0c;版本未知&#xff0c;因为源码提供者的源码版本访问地址…

金仓数据库KingbaseES GIN 索引

目录 一、索引的逻辑结构 二、索引的物理结构 三、GIN索引使用例子 1、前后模糊查询 2、全文检索 四、gin 索引可用于超长的字段 GIN(Generalized Inverted Index, 通用倒排索引) 是一个存储对(key, posting list)集合的索引结构&#xff0c;其中key是一个键值&#xff0c…

【uniapp】利用Vuex实现购物车功能

实战项目名称&#xff1a;实现购物车功能 文章目录一、实战步骤1. 先编辑store.js文件2. 定义方法和基本的结构3. 编写SETSHPPING二、在项目中调用1. 触发相应的mutations2. 利用computed计算数量和总价的方法提示&#xff1a;本实战内容大部分为具体实现的思路&#xff0c;界面…

C语言 2 —— 常量

常量是什么&#xff1f; 常量就是在程序运行过程中&#xff0c;值不会发生改变&#xff0c;而且一眼可以辨识出值的量。 如&#xff1a; 20&#xff0c;‘a’ , 3.1415926 , "helloworld" 常量的分类&#xff1a; 整形&#xff0c;浮点型&#xff0c;字符型&#…

成电860考研专业课考前划重点-学长课程音频转文字-用科大讯飞花钱买的-三万五千字

成电860考研专业课考前划重点-学长课程音频转文字。 这个是我2021年把视频的音频扒下来后用科大讯飞音频转文字网站上花了几十块钱买的。 说话人1 03:04 对有回放&#xff0c;我这边开回放了&#xff0c;大家可以让大家下载&#xff0c;然后我怕这边回放有问题&#xff0c;大家…

Airtest poco 入门小结

目录 一、poco介绍 1、poco能做什么 2、三种定位方式 1&#xff09;基本选择器 2&#xff09;相对选择器 3&#xff09;空间顺序选择器 4&#xff09;正则表达式方式 3、poco支持平台 二、Airtest介绍 1、Airtest能做什么 2、Airtest不能做什么 3、Airtest的图像识别…

发挥数字化平台优势,电子元器件采购商城系统助力企业改变固有低效流程

我国是全球最大的电子元器件生产国&#xff0c;电子元器件在国民经济发展中占据着重要地位。近年来&#xff0c;随着数字经济的快速发展&#xff0c;电子元器件的需求量也在不断升高&#xff0c;但疫情与国际环境对电子元器件产业要素流通仍然造成了一定困扰。在此背景下&#…

win10系统下使用onnxruntime部署yolov5模型

文章目录前言一、环境1、硬件2、软件二、YOLO模型三、新建Qt项目1、pro文件2、mainwindow.h3、mainwindow.cpp四、YOLO 类封装1、yolov5.h2、yolov5.cpp3、class.names五、效果前言 上一篇介绍过使用opencv-dnn模块实现模型推理部署&#xff0c;但视频效果较差&#xff0c;本篇…

ps2023最新版免费滤镜插件Exposure安装下载教程

滤镜插件是ps的重要功能之一&#xff0c;它主要是用来制作不同的图片特效。那么&#xff0c;ps滤镜插件哪些好用&#xff0c;ps滤镜插件如何获取&#xff0c;下面我们一起来学习这些内容。 ps滤镜插件是比较多的&#xff0c;下面对几款常见的ps滤镜插件进行讲解&#xff0c;看…

TIA博途中的TRACE功能具体使用方法示例

TIA博途中的TRACE功能具体使用方法示例 我们可以利用TRACE曲线来监控程序、排查故障,那么具体怎样使用呢,可以参考以下内容。 如下图所示,打开TIA博途,新建项目后,在左侧项目树中可以看到TRACES, 如下图所示,双击添加新轨迹,然后在右侧窗口中,添加需要监视的信号,…

TOUGH2系列建模方法及在CO2地质封存、水文地球化学、地热、地下水污染等领域中的技术

TOUGH2系列软件是由美国劳伦斯伯克利实验室开发的&#xff0c;旨在解决非饱和带中地下水、热运移的通用模拟软件。和传统地下水模拟软件Feflow和Modflow不同&#xff0c;TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法&#xff0c;通过配合不同EOS模块&#xff0c;软件…

【矩阵论】3. 矩阵函数——矩阵函数求导

3.6 矩阵函数求导 3.6.1 积分与求导定义 设 mnm\times nmn 阶矩阵 A(x)(aij(x))mnA(x)\left(a_{ij}(x)\right)_{m\times n}A(x)(aij​(x))mn​ 中的元素都是 x 的可导函数&#xff0c;则 A(x)A(x)A(x) 为关于 xxx 的求导为&#xff1a; A′(A)dA(x)dx(daij(x)dx)mnA(A)\frac{…

正点原子stm32F407学习笔记5——串口通信实验

一、串口通信实验1 上位机给开发板发送数据&#xff0c;开发板将收到的数据发回给上位机 串口设置的一般步骤可以总结为如下几个步骤&#xff1a; 串口时钟使能&#xff0c;GPIO 时钟使能。设置引脚复用器映射&#xff1a;调用 GPIO_PinAFConfig 函数。GPIO 初始化设置&#…

数据库性能翻3倍:Redis on Flash分层存储技术是如何做到的?

Redis on flash简介&#xff1a;Redis on Flash 涉及到的是Redis的分层存储技术&#xff0c;即将数据存放在不同地方。Redis自2016年以来支持Redis on Flash。从2019年开始, Redis企业版&#xff08;Redis Enterprise&#xff09;宣布支持英特尔Optane DC持久性内存&#xff0c…

基于NB-IoT的智能垃圾桶系统设计与实现

本设计是基于物联网的智能垃圾桶&#xff0c;主要实现以下功能&#xff1a; 1&#xff0c;压力传感器模块采集垃圾重量数据&#xff1b; 2&#xff0c;GPS定位模块采集垃圾桶所在的经纬度数据&#xff1b; 3&#xff0c;人体红外模块检测人体并返回是否有人通过的数据&#xf…

会议管理系统SSM记录(二)

目录&#xff1a; &#xff08;1&#xff09;整合Freemarker &#xff08;2&#xff09;用户登录 &#xff08;3&#xff09;提取头部 &#xff08;4&#xff09;提取菜单抽取 &#xff08;1&#xff09;整合Freemarker 在pom.xml中加入Freemark依赖&#xff1a; 创建free…

HTML+CSS大作业:基于HMTL校园学校网页设计题材【我的学校网站】

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…