136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序

2023-12-05

资料编号:136

一:功能介绍

1、采用stm32单片机+LCD1602显示屏+独立按键+DHT11传感器+蜂鸣器,制作一个基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真;

2、通过DHT11传感器检测当前温湿度,并且显示到LCD1602显示屏上面;

3、通过超声波传感器测量漏水水位的高度,并且显示到LCD1602显示屏上面;

4、通过按键设置水位报警阈值,显示到LCD1602屏幕上面;

5、当实际检测漏水的水位大于设置报警水位,开启蜂鸣器报警提醒;

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真 演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压 !( 建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

db7540b7c07c5e57748cde7ebd05f95b.png

c85d8502d95dd59ec745cd7d38cbe1b2.png

程序部分展示,有中文注释,新手容易看懂
void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);


  //LCD1602 管脚      
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8| GPIO_Pin_9| GPIO_Pin_10| GPIO_Pin_11| GPIO_Pin_12| GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 |GPIO_Pin_6|GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);  


}
int main(void)
{
  int set=30;
  DHT11_Data_TypeDef DHT11_Data;
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
  
  
  /* 配置SysTick 为1us中断一次 */
  SysTick_Init();
  LED_GPIO_Config();
  GPIO_Configuration();
  Init1602();
  //NVIC_Configuration();
  TIM2_Configuration();
  UltrasonicWave_Configuration();


//  USART_Config();//初始化串口1
  NVIC_Configuration();


  /*初始化DTT11的引脚*/
  DHT11_Init();


  UltrasonicWave_StartMeasure();
  Key_GPIO_Config();


  WrByte1602(0,1,'T'); //符号显示
  WrByte1602(0,2,'='); 
  WrByte1602(0,7,'H'); 
  WrByte1602(0,8,'=');
  WrByte1602(1,1,'D'); 
  WrByte1602(1,2,'I'); 
  WrByte1602(1,3,'S'); 
  WrByte1602(1,4,'='); 
  WrByte1602(1,8,'m');
  WrByte1602(1,9,'m');
  while(1)
  {
      //调用DHT11_Read_TempAndHumidity读取温度,若成功则输出该信息
      if( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS)
      {
      
      WrByte1602(0,3,AsciiCode[DHT11_Data.temp_int%1000/100]);//温度
      WrByte1602(0,4,AsciiCode[DHT11_Data.temp_int%100/10]);
      WrByte1602(0,5,AsciiCode[DHT11_Data.temp_int%10]);
      
      WrByte1602(0,9,AsciiCode[DHT11_Data.humi_int%1000/100]);//湿度
      WrByte1602(0,10,AsciiCode[DHT11_Data.humi_int%100/10]);
      WrByte1602(0,11,AsciiCode[DHT11_Data.humi_int%10]);


      }      


      UltrasonicWave_StartMeasure();//超声波测水位
        
      WrByte1602(1,12,AsciiCode[set%1000/100]);//设置值
      WrByte1602(1,13,AsciiCode[set%100/10]);
      WrByte1602(1,14,AsciiCode[set%10]);


      WrByte1602(1,5,AsciiCode[UltrasonicWave_Distance%256/100]);
       WrByte1602(1,6,AsciiCode[UltrasonicWave_Distance%256%100/10]);//水位显示
      WrByte1602(1,7,AsciiCode[UltrasonicWave_Distance%256%10]);     
      if(UltrasonicWave_Distance%256>set) //测量水位大于设置值 开启蜂鸣器报警
      {
        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
      }
      else GPIO_SetBits(GPIOB,GPIO_Pin_5);  




      if( key1 == 1  )//设置+
      {      
          set++;
          if(set>99) set=99;
        while(key1!=0);
      } 
      if( key2 == 1  )//设置-
      {      
          set--;
          if(set<1) set=1;
        while(key2!=0);
      } 
      
  }

:仿真文件(采用Prot e us打开)

bfeb82c996255adb358d59b20d3ec0d5.png

f561202857918564c6dfe76989db9592.png

8b8767e898a85cfa7144cbca33a4fd0e.png

六:资料清单展示(文件中包含的相关资料)

74de09fd4146d69a1fdfc723ed29e09c.png

资料分享下载链接(可点击)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序 的相关文章

  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • 世微AP9196 DC-DC 升压恒流电源管理芯 电解水驱动电源应用线路

    AP9196 是一系列外围电路简洁的宽调光比升压调光恒流驱动器 适用于 3 40V 输入电压范围的 LED照明领域 AP9196 采用我司专利算法 可以实现高精度的恒流效果 输出电流恒流精度 3 电压工作范围为5 40V 可以轻松满足锂电池
  • 为什么C语言没有被C++所取代呢?

    今日话题 为什么C语言没有被C 所取代呢 C 的复杂编译器实现和嵌入式平台的限制 使C语言保持了其地位 嵌入式系统多数仅支持C 即使支持C 也会限制某些功能 尤其是异常处理和RTTI 此外 C 引入的功能增加了二进制文件大小和运行时内存占用
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 物联网项目分享 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 5 部分核心代码 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • 库函数点亮Led

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • STM32 上的 ADC 单次转换

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

    考虑以下 Contiki 程序 include
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

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

随机推荐

  • 140-基于stm32单片机智能晾衣杆控制系统Proteus仿真+源程序

    资料编号 140 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 光敏传感器 蜂鸣器 LED灯 制作一个基于stm32单片机智能晾衣杆控制系统Proteus仿真 2 通过光敏传感器
  • 通过mount命令挂载另一台linux服务器的目录到本机

    说明 本次操作的目的是将另一台机器 192 168 1 100 的 backup目录挂载到本机的新建目录 back 1 在被挂载目录的机器上开启NFS服务并编辑 etc exports文件 1 1 查看是否已安装nfs 查看知道已安装 rp
  • 使用docker切换任意版本cuda使用GPU

    1 现存问题 在主机上运行很多下载来的机器学习代码时 这些大都运行在不同版本的tensorflow gpu或者pytorch等的包下的 但是 运行代码的过程中 存在匹配的问题 1 不同的版本的tensorflow gpu或pytorch对c
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • 【经典蓝牙 SSP协议介绍】

    协议定义 SSP Secure Simple Pairing 安全简单配对 协议目的 1 为用户简化配对过程 2 维护或提高蓝牙无线技术的安全性 安全性指两点目标 1 被动窃听保护 2 中间人 MITM 攻击保护 协议流程 下面说下我认为的
  • 133-基于stm32单片机停车场车位管理系统Proteus仿真+源程序

    资料编号 133 一 功能介绍 1 采用stm32单片机 4位数码管 独立按键 制作一个基于stm32单片机停车场车位管理系统Proteus仿真 2 通过按键进行模拟车辆进出 并且通过程序计算出当前的剩余车位数量 3 将剩余的车位数量显示到
  • 【网络安全】网络安全的标准和规范

    网络安全的标准和规范是网络安全领域的重要组成部分 它们为网络安全提供了技术依据 规定了网络安全的技术要求和操作方式 帮助我们构建安全的网络环境 下面 我们将详细介绍一些主要的网络安全标准和规范 以及它们在实际操作中的应用 一 ISO IEC
  • Elasticsearch-Kibana使用教程

    1 索引操作 1 1创建索引 PUT employee settings index refresh interval 1s number of shards 1 max result window 10000 number of repl
  • el-table 删除某行数据时 删除语句包含行号/序号

    el table可展示每行数据的序号列 在点击删除按钮的时候 会获取到该行所有的数据值 但是要想删除时提示到具体的序号 如 是否确认删除序号为1的数据项 我是这样写的 删除按钮操作 handleDelete row index用来存储该项数
  • Android中的Banner轮播图的使用

    目录 效果图 介绍 3 XML中banner常用的属性 使用 导入依赖 xml文件 活动代码 本文在碎片中使用 效果图 Banner效果图 介绍 Banner轮播图是一种常见的移动应用界面设计元素 用于展示多张图片或广告 并支持自动切换 它
  • “我,大三,寒假靠Python兼职赚了7567.6元。”

    目前很多同学已经结束期末考试 进入寒假 有很多同学问我 有什么兼职可以线上做的吗 最好还能提高自己的一些技能 以前周末或假期经常去当服务员 导购 发传单之类 最后发现 只是在无畏地消磨自己的时间 对本身技能并不能得到任何提高 所以 不想再重
  • 【王道】计算机组成原理笔记 第四章 指令系统

    前三章讲的分别是概述 运算器和存储器 接下来的第四章和第五章内容都是关于控制器的 我们知道 控制器通过指令来控制计算机 所以这一章介绍指令 下一章介绍控制器如何通过指令来控制计算机 4 1 1 指令格式 1 指令 操作码和地址码 1 1 指
  • linux内核机制之设备树

    设备树 Device Tree 基本概念及作用 在内核源码中 存在大量对板级细节信息描述的代码 这些代码充斥在 arch arm plat xxx和 arch arm mach xxx目录 对内核而言这些platform设备 resourc
  • 视频压缩怎么操作?看完这篇你就知道了

    亲们 你们是否经常为了视频文件过大而烦恼呢 别担心 现在有了视频压缩软件 我们可以轻松解决这个问题 视频压缩软件不仅在日常生活中大放异彩 也在工作和娱乐中发挥着重要的作用 无论是想要分享视频给朋友 还是上传到社交平台或视频网站 视频压缩软件
  • 企业如何为自己的未来做准备?

    如果企业不为未来做准备 就要为出局做准备工作 德鲁克 随着市场需求的不断变化 企业面对着激烈的市场竞争 其该如何为自己的未来做准备 具体企业面临着 建立竞争优势 管理多元化员工队伍 应用新的信息系统与技术 首先 企业在市场竞争中想要建立自己
  • 强化元学习算法在机器人控制中的应用研究

    随着人工智能和机器学习的快速发展 强化学习作为一种重要的机器学习方法 被广泛应用于机器人控制领域 然而 传统的强化学习算法在面对复杂任务和多样化环境时往往需要大量的训练时间和样本 为了解决这个问题 强化元学习算法应运而生 本文将探讨强化元学
  • 微信小程序自定义数据实现级联省市区组件

    前言 在微信小程序中 官方文档提供的省市区组件 可以让用户更加方便快捷地选择省市区 但是官方提供的组件有一个缺点 无法自定义数据 但如果项目中需要使用自己的数据 显然就得寻找其它的组件实现 官方组件 优点 使用官方组件具有稳定性和兼容性 可
  • 137-基于stm32单片机智能保温杯控制装置Proteus仿真+源程序

    资料编号 137 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DS18B20传感器 电机 制作一个基于stm32单片机智能保温杯控制装置Proteus仿真 2 通过DS18b20传感器检测当前保温杯水的温度 并且
  • C++单例模式

    pragma once namespace utility 需要拼接一下命名空间 utility define SINGLETON x friend class utility Singleton
  • 136-基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真+源程序

    资料编号 136 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 蜂鸣器 制作一个基于stm32单片机家庭温湿度防漏水系统设计Proteus仿真 2 通过DHT11传感器检测当前温湿度 并且显示到L