毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

2023-12-17

1、项目简介

  • 演示视频
  • https://www.bilibili.com/video/BV1Ry4y1P7A6/?spm_id_from=333.999.0.0

1.1 系统构成

本设计由STM32单片机+指示灯电路+风扇控制电路+温湿度传感器电路+lcd1602液晶显示电路+蓝牙模块电路+按键电路+电源电路组成。

1.2 系统功能

  • 1、通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示
  • 2、通过按键可修改温湿度报警阈值
  • 3、湿度超过最大报警阈值时,向APP发送“Shidu High”报警信息
  • 4、湿度小于最小报警阈值时,向APP发送“Shidu Low”报警信息
  • 5、湿度介于最大与最小之间,发送“Shidu Normal”
  • 6、温度大于最大阈值,使用蜂鸣器报警,温度小于最小阈值,使用LED报警
  • 7、系统运行指示灯,周期闪烁
  • 8、通过APP发送指令“O”,风扇启动;通过APP发送指令“C”,风扇关闭

2、部分电路设计

2.1 stm32f103c8t6单片机最小系统电路设计

STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装。

具体参数为:

  • 64K x 8bit的Flash
  • 20K x 8bit的SRAM
  • 37个GPIO,分别为PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1
  • 2个12bit ADC合计12路通道,外部通道:PA0到PA7以及PB0到PB1
  • 内部通道:温度传感器通道ADC_Channel_16和内部参考电压通道ADC_Channel_17
  • 4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4
  • 2个看门狗定时器(独立看门狗IWDG、窗口看门狗WWDG)
  • 1个24bit向下计数的滴答定时器systick
  • 2个IIC,2个SPI,3个USART,1个CAN
  • 内部8MHz时钟HSI最高可倍频到64MHz,外部8MHz时钟HSE最高可倍频到72MHz

Cortex-M3是ARM公司推出的基于ARMv7架构的MCU内核,ST公司在此内核的基础上完成了USART、DMA、GPIO等外围电路的设计。

STM32单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

2.2 LCD1602液晶显示电路设计

LCD1602是一种字母数字液晶显示模块,可以显示16个字符和2行文本,因此被命名为LCD1602。它通常用于各种电子项目,特别是基于微控制器系统。该模块包含一个驱动电路,简化了与微控制器或其他数字信号源的接口过程,因此成为业余爱好者和工程师的流行选择。LCD1602由+5V DC供电,可以使用并行或串行通信协议与微控制器通信。它可以显示字母数字字符、符号和图标,并可用于许多应用,包括显示传感器数据、消息和菜单。

LCD1602采用标准的16脚接口,具体定义如下:

  • 第1脚:VSS为地电源。
  • 第2脚:VDD接5V正电源。
  • 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的可调电阻调整对比度。
  • 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
  • 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
  • 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行数据写入或读取命令。
  • 第7~14脚:DB0~DB7为8位双向数据线。
  • 第15~16脚:空脚或背光电源端接口。

电路设计

LCD1602模块实物图:

2.2 风扇控制电路设计

  • 风扇控制电路使用NPN三极管对风扇进行控制

  • 三极管8050是非常常见的NPN型晶体三极管,在各种放大电路中经常看到它,主要由硅制成,应用范围很广,主要用于高频放大。也可用作开关电路。一般由硅制成。

  • 电路图如下:

  • 8050三极管实物图

  • 5V风扇模块实物图:

2.3 HC05蓝牙通信电路设计

  • HC-05蓝牙串口模块是一种基于蓝牙2.0协议的串口通信模块,它的数据传输速率高达2Mbps,能够满足绝大部分实际应用。它主要通过串口通信的方式,实现了与各种单片机(如STM32、Arduino等)以及其他蓝牙设备的通信。相对于传统串口通信,使用HC-05蓝牙模块可以实现无线传输,有效地解决了传输距离等问题。

  • HC-05蓝牙模块由两部分组成:蓝牙串口模块和底板电路板。蓝牙串口模块是实际完成数据传输的核心部分,而底板电路板主要负责提供稳定的电源以及与单片机的连接。HC-05蓝牙模块既可以作为主机,也可以作为从机。

  • hc05蓝牙模块实物图:

3、部分代码展示

3.1 系统外设初始化

  delay_init();	    	 //延时函数初始化	  
  uart_init(9600);	 	//串口初始化为9600
  TIM3_Int_Init(499,7199);//50ms  	 
  FengShanInit();		  		//初始化与LED连接的硬件接口    
  Beep_Init();    //蜂鸣器初始化
  KEY_Init();     //按键初始化
  LedInit();      //LED初始化
  Lcd_GPIO_init();  //1602接口初始化
  Lcd_Init();	
  fengshan = 1;	 //上电风扇转一下
  PowerLed = 0;
  WarnLed = 0;
  BUZZER_ON    //蜂鸣器上电响一下
  delay_ms(200);
  BUZZER_OFF

3.2 LCD1602液晶显示屏引脚初始化

void Lcd_GPIO_init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;   //声明结构体
	RCC_APB2PeriphClockCmd(RCC_GPIO_DATA, ENABLE);  //打开端口B时钟   
	GPIO_InitStructure.GPIO_Pin  = GPIO_DATA_0_PIN|GPIO_DATA_1_PIN|GPIO_DATA_2_PIN|GPIO_DATA_3_PIN|GPIO_DATA_4_PIN|GPIO_DATA_5_PIN|GPIO_DATA_6_PIN|GPIO_DATA_7_PIN; //  DB8~DB15
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
	GPIO_Init(GPIO_DATA_0, &GPIO_InitStructure);      //初始化端口
  
	RCC_APB2PeriphClockCmd(RCC_GPIO_EN, ENABLE);    	//打开端口时钟 
	GPIO_InitStructure.GPIO_Pin =  GPIO_EN_PIN;     	// 使能端口
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
	GPIO_Init(GPIO_EN, &GPIO_InitStructure);

	RCC_APB2PeriphClockCmd(RCC_GPIO_RW, ENABLE);    //打开端口时钟 
	GPIO_InitStructure.GPIO_Pin =  GPIO_RW_PIN;     // 使能端口
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
	GPIO_Init(GPIO_RW, &GPIO_InitStructure);


	RCC_APB2PeriphClockCmd(RCC_GPIO_RS, ENABLE);    //打开端口时钟 
	GPIO_InitStructure.GPIO_Pin =  GPIO_RS_PIN;     // 使能端口
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽复用输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度
	GPIO_Init(GPIO_RS, &GPIO_InitStructure);
}

3.3 DHT11读取温湿度数据程序设计

/**
  * @brief  读取40bit数据
  * @param  none.
  * @retval 1 读取成功,0读取失败.
  */
int DHT11_ReadData(void)
{
	unsigned int cout = 1;
	unsigned int T_H, T_L, H_H, H_L, Check;

	//设置为IO口输出模式
	DHT_Set_Output();
	
	//1、MCU开始起始信号
	DHT_ResetBit();
	delay_ms(25);		//拉低至少18ms
	DHT_SetBit();		
	delay_us(20);		//拉高20~40us
	
	//设置为IO口输入模式
	DHT_Set_Input();
	
	//2、读取DH21响应
	if(DHT_ReadBit() == Bit_RESET)
	{
		//等待80us的低电平
		cout = 1;
		while(!DHT_ReadBit() && cout++);
		
		//等待80us的高电平
		cout = 1;
		while(DHT_ReadBit() && cout++);
		
		//读取8bit的湿度整数数据
		H_H = DH21_ReadByte();
		
		//读取8bit的湿度小数数据
		H_L = DH21_ReadByte();
		
		//读取8bit的温度整数数据
		T_H = DH21_ReadByte();
		
		//读取8bit的温度小数数据
		T_L = DH21_ReadByte();
		
		//读取8bit的校验和
		Check = DH21_ReadByte();
		
		if(Check == (H_H + H_L + T_H + T_L))
		{
			DHT11.Hum_H = H_H;
			DHT11.Hum_L = H_L;
			DHT11.Tem_H = T_H;
			DHT11.Tem_L = T_L;	
			return 1;
		}
		else
		{
			return 0;
		}
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计 的相关文章

  • 毕业设计:python图书管理系统+可视化+Django框架(附源码+论文)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】线上招聘问答系统

    计算机网络发展到现在已经好几十年了 在理论上面已经有了很丰富的基础 并且在现实生活中也到处都在使用 可以说 经过几十年的发展 互联网技术已经把地域信息的隔阂给消除了 让整个世界都可以即时通话和联系 极大的方便了人们的生活 所以说 线上招聘问
  • 【计算机毕业设计】学生就业管理系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统学生就业信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难题开
  • 【计算机毕业设计】Java图书馆智能选座系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本图书馆智能选座系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管
  • python新闻评论情感分析可视化系统 Flask框架 NLP情感分析 计算机毕业设计(源码)✅

    计算机毕业设计 基于python热门旅游景点数据分析系统 可视化 django框架 博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业
  • 毕业设计:python美食菜谱数据分析可视化系统 爬虫+Echarts 可视化 Django框架 大数据(源码+文档)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 【计算机毕业设计】电影院订票信息管理系统

    当今社会已经步入了科学技术进步和经济社会快速发展的新时期 国际信息和学术交流也不断加强 计算机技术对经济社会发展和人民生活改善的影响也日益突出 人类的生存和思考方式也产生了变化 传统电影院订票采取了人工的管理方法 但这种管理方法存在着许多弊
  • 基于springboot+vue实现汽车改装方案网站演示【附项目源码+论文说明】

    基于springboot vue实现汽车改装方案网站演示 摘要 本文主要讲述了基于SpringBoot MySql开发技术开发的汽车改装方案网站的设计与实现 这里的汽车改装方案网站是通过一个平台使所有的汽车爱好者们可以不用出门就可以体验到专
  • 基于springboot+vue实现流浪动物救助平台演示【附项目源码+论文说明】

    基于springboot vue实现流浪动物救助平台演示 摘要 随着人们对于动物及环境保护的意识越来越强 流浪动物的救助与保护涉及到了健康卫生以及城市容貌等多个方面 流浪动物保护是一个全球性的问题 不同的国家和地区都出台了形式多样的保护办法
  • 基于springboot+vue实现食品安全管理系统演示【附项目源码+论文说明】

    基于springboot vue实现食品安全管理系统演示 摘要 食品行业同其他行业有很多的差别 食品行业不仅要管食品的生产和销售 还要管食品的库存和保质期 那么对于食品管理者来说 就存在着一定的难度 况且食品的种类复杂 存储条件各不相同 存
  • java课程设计

    包含部署视频 1 基于ssh的婴幼儿产品销售系统毕业设计 项目报告 答辩PPT 源代码 数据库 截图 部署视频 2 基于jsp的医院管理住院系统毕业设计 项目报告 答辩PPT 源代码 数据库 部署视频 3 基于ssh的医院在线挂号系统毕业设
  • systick定时器

    systick定时器 文章目录 前言 一 前期疑惑 二 解答 1 关于systick是阻塞的吗 2 非阻塞 三 软件编写 总结 前言 这边记录systick相关知识点 一 前期疑惑 在学习systick志气啊 其实对于systick还是一脸
  • java毕业设计

    包含部署视频 1 基于ssh的婴幼儿产品销售系统毕业设计 项目报告 答辩PPT 源代码 数据库 截图 部署视频 2 基于jsp的医院管理住院系统毕业设计 项目报告 答辩PPT 源代码 数据库 部署视频 3 基于ssh的医院在线挂号系统毕业设
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能

随机推荐

  • 【RBF分类】基于蜣螂算法优化径向基神经网络DBO-RBF实现故障诊断附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • CNN-LSTM-Adaboost回归预测 | Matlab基于卷积神经网络-长短期记忆神经网络Adaboost回归预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 【计算机毕设文章】新闻资讯微信小程序开发后端+php

    摘 要 随着我国经济迅速发展 人们对手机的需求越来越大 各种手机软件也都在被广泛应用 但是对于手机进行数据信息管理 对于手机的各种软件也是备受用户的喜爱 新闻资讯被用户普遍使用 为方便用户能够可以随时进行新闻资讯的数据信息管理 特开发了基于
  • 【计算机毕设文章】基于微信小程序的科创微应用平台

    基于微信小程序的科创微应用平台 摘要 随着信息技术在管理上越来越深入而广泛的应用 管理信息系统的实施在技术上已逐步成熟 本文介绍了基于微信小程序的科创微应用平台的开发全过程 通过分析基于微信小程序的科创微应用平台管理的不足 创建了一个计算机
  • 从零开始搭建自动化测试平台,构建自动化测试平台的最全指南!

    前言 随着软件开发的不断进步 测试工程师也需要跟上趋势并适应新的测试方法 自动化测试已成为现代测试领域中不可或缺的一部分 它可以提高测试效率 减少测试成本 并且可以避免人为错误对测试结果的影响 在这篇文章中 我们将介绍如何构建一个自动化测试
  • 每天花2小时复习Java面试指南,高级架构视频,我进了阿里定级P7

    Java进阶架构师必备 基础 容器 并发 JVM Java8 计算机网络 计算机操作系统 Linux 数据结构 算法 mysql 优化思路 系统设计 分布式 线上问题调优 虚拟机 tomcat 面试指南 工具 添加图片注释 不超过 140
  • NAT场景案例分析

    目录 问题现象一 NAT Server故障排错思路 问题现象二 NAT Server问题 问题现象三 NAT Server问题 问题现象四 LAN LAN映射 问题现象一 NAT Server故障排错思路 NAT Server故障排查思路
  • GA-LSTM分类预测 | Matlab遗传算法(GA)优化长短期记忆网络的数据分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 冗余备份组网——HSRP和GLBP协议

    目录 HSRP 思科私有协议 HSRP基本概念 HSRP工作过程 HSRP的状态 HSRP的可靠性 HSRP相关配置 GLBP协议 HSRP 思科私有协议 HSRP基本概念 HSRP Host Standby Router Protocol
  • 每日一练2023.12.16——吃火锅【PTA】

    题目链接 L1 070 吃火锅 题目要求 以上图片来自微信朋友圈 这种天气你有什么破事打电话给我基本没用 但是如果你说 吃火锅 那就厉害了 我们的故事就开始了 本题要求你实现一个程序 自动检查你朋友给你发来的信息里有没有 chi1 huo3
  • 基于卷积神经网络结合注意力机制的长短记忆网络CNN-LSTM-Adaboost实现风电功率回归预测附matlab实现

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 目前最火的大模型训练框架 DeepSpeed 详解来了

    目前 大模型的发展已经非常火热 关于大模型的训练 微调也是各个公司重点关注方向 但是大模型训练的痛点是模型参数过大 动辄上百亿 如果单靠单个GPU来完成训练基本不可能 所以需要多卡或者分布式训练来完成这项工作 一 分布式训练 1 1 目前主
  • SpringMVC上传下载文件解读

    知识点 文件上传 File Upload 创建一个控制器方法 使用 MultipartFile 参数来接收上传的文件 在 Spring 配置文件中配置一个 MultipartResolver 常用的实现类是 CommonsMultipart
  • 【计算机毕设文章】模拟考试小程序

    摘 要 随着我国经济迅速发展 人们对手机的需求越来越大 各种手机软件也都在被广泛应用 但是对于手机进行数据信息管理 对于手机的各种软件也是备受用户的喜爱 模拟考试被用户普遍使用 为方便用户能够可以随时进行模拟考试的数据信息管理 特开发了基于
  • 【计算机毕设文章】微信阅读小程序的设计与实现

    毕 业 设 计 论 文 题目 微信阅读小程序的设计与实现 摘 要 由于APP软件在开发以及运营上面所需成本较高 而用户手机需要安装各种APP软件 因此占用用户过多的手机存储空间 导致用户手机运行缓慢 体验度比较差 进而导致用户会卸载非必要的
  • 双非本科进不了大厂?阿里技术四面+交叉面+HR面,成功拿到offer

    前言 前两天 我收到了阿里巴巴的实习offer 从学长内推开始面试到拿到最后offer经历了4面技术 一面交叉面和一面HR面 经过了漫长的等待和几次几乎折磨的面试之后 终于拿到了实习offer 自我介绍 本人来自西南某双非本科学校 该校学的
  • 这应该是最全的大模型训练与微调关键技术梳理

    作为算法工程师的你是否对如何应用大型语言模型构建医学问答系统充满好奇 是否希望深入探索LLaMA ChatGLM等模型的微调技术 进一步优化参数和使用不同微调方式 现在我带大家领略大模型训练与微调进阶之路 拓展您的技术边界 通过阅读文章 你
  • 【计算机毕设文章】微信点餐小程序

    微信点餐小程序 摘 要 随着社会的发展 社会的方方面面都在利用信息化时代的优势 互联网的优势和普及使得各种系统的开发成为必需 本文以实际运用为开发背景 运用软件工程原理和开发方法 它主要是采用java语言技术和mysql数据库来完成对系统的
  • 第三章 Linux的目录结构

    第三章 Linux的目录结构 学习目标 1 熟悉Linux目录的组织习惯 2 熟悉一些Linux的常见目录及作用 第一节 Linux中的常见目录 Linux常见的目录结构 不同版本的Linux目录结构可能略有不同 Centos7的文件目录结
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风