提示:记录毕设

文章目录

  • 前言
  • 一、任务书
    • 1.1设计(研究)目标:
    • 1.2设计(研究)内容:
  • 二、代码思路
  • 三、硬件
  • 四、联系我们
  • 五、设计
  • 六、框图代码等资料
  • 喜欢请点赞哦!

前言

基于STM32的温度控制系统,主控使用STM32F103ZET6,在正点原子的精英板上开发(本人也在野火板子上测试成功)。


一、任务书

1.1设计(研究)目标:

我们研究一种基于STM32的智能温度控制系统。该系统以STM32F103作为主控芯片﹐配备了PTC加热器、测温模块﹑等一系列模块。本文设计的温度控制系统主要目标是实现温度的设定值显示、实际值实时测量及显示,通过单片机连接的温度调节装置由软件与硬件电路配合来实现温度实时控制 ;显示可由软件控制在 LCD1602 中实现 ;比较采集温度与设定阈值的大小,然后进行循环控制调控,做出降温或升温处理 ;同时也可根据判断发出警报,用以提高系统的安全性。同时,单片机通过esp8266无线传输到手机上,以便管理人员查看。

1.2设计(研究)内容:

1、题目的意义;
2、各种传感器及设备的一般技术和特殊技术的学习:
3、通信以及控制器的技术要求;
4、总体方案的选型设计;
5、STM32单片机及其外围设备的软硬件系统的技术开发:
6、系统的调试和总体运行原理
7、其他设计内容;具体要求:
1、硬件要求1张1号以上的大图:
2、软件以流程图方式表示:
3、有调试的说明。

二、代码思路

打开定时器4,作为系统运行时间;
为了保证通讯:ESP8266每1S刷新一次;

三、硬件

  • ESP826601s
  • PTC模块
  • OLED
  • 按键
  • 蜂鸣器(板子自带)
  • DS18B20测温模块

四、联系我们

  • 承接stm32单片机、STC系列单片机设计、嵌入式。问题咨询联系QQ:2424644692
  • 我们在某宝有店铺噢~,搜店铺名:“晖亿科创”

五、设计

  • 主控制器
    主控制模块是由 STM32F103单片机最小系统构成,该控制器具有高性能、低成本、低功耗等特点,采用性能较高的ARMCortex-M3 的 32 位的 RISC 内核,工作频率是 72MHz,内部有高速存储器 ( 高达 128K 字节的闪存和 20K 字节的 SRAM),丰富的增强型 I/O 端口和联接到两条 APB 总线的外设。
  • 数字温度测量模块
    模拟信号在远距离传输过程中,由于所需引线较长,系统会产生误差补偿、多点切换及放大电路的零点误差等问题。此外,考虑到测量现场的电磁环境十分不确定,干扰信号可能比较强,模拟信号易受到干扰因素导致产生测量误差,影响测量的精度。因此,本系统采用一种抗干扰能力较强的新型数字温度传感器 DS18B20 来避免发生上述问题
  • 温度显示模块
    显示模块主要用于显示状态以及温度值,本设计选用简单易用的 LCD1602。它是一种专门用来显示英文字母、阿拉伯数字、标点符号等的点阵型液晶模块,由 2*16 个 5X7 点阵字符位组成,每个点阵块都可以显示一个字符,每位点阵块之间有一个点距的间隔,两行之间也有间隔,起到了字符间距和行间距的作用。由于 LCD1602 所需电压为 5V,因此它与3.3V 的单片机连接需要将 STM32 设置为开漏输出,且连接 5V的上拉电阻提高电平
  • 温度控制模块
    温度控制模块是由 TC4427A、PTC 热敏电阻、半导体制冷片以及 N 沟道 MOS 管构成。TC4437A 的功能是电平转换,用以控制 N 沟道 MOS 管是否通断。当单片机给出 3.3V 高电平,TC4427A 输出端会转换为 12V 高电平,然后连接到场效应管的栅极,此时场效应管处于导通状态,漏极会和源极接地连接并且连接到接线端子,与其 12V 的电压形成一个完整通路,则器件启动。反之当单片机给出 0V 低电平,TC4427A输出端也为 0V 低电平,然后连接到场效应管的栅极上,于是场效应管处于断开状态(漏极和源极断开),此时接线端子的12V 电压和场效应管的漏极不能形成完整通路,则器件关闭
  • 电源模块
    由于单片机供电电压为 3.3V,而 LCD1602 为 5V,其余器件所需电压皆为 12V,故而电源模块主要是有适配器输出 12V的电压,然后通过 7805 转换的 5V 电压以及 AMS1117 转换的3.3V 电压

六、框图代码等资料

  • DS18B20的测温代码
#include "ds18b20.h"
#include "delay.h"//复位DS18B20
void DS18B20_Rst(void)
{                 DS18B20_IO_OUT();   //设置为输出DS18B20_DQ_OUT=0;  //拉低DQdelay_us(750);      //拉低750usDS18B20_DQ_OUT=1;  //DQ=1 delay_us(15);       //15US
}//等待DS18B20的回应
//返回1:未检测到DS18B20的存在
//返回0:存在
u8 DS18B20_Check(void)
{   u8 retry=0;DS18B20_IO_IN();    //设置为输入while (DS18B20_DQ_IN&&retry<200){retry++;delay_us(1);};  if(retry>=200)return 1;else retry=0;while (!DS18B20_DQ_IN&&retry<240){retry++;delay_us(1);};if(retry>=240)return 1;      return 0;
}//从DS18B20读取一个位
//返回值:1/0
u8 DS18B20_Read_Bit(void)
{u8 data;DS18B20_IO_OUT();   //设置为输出DS18B20_DQ_OUT=0; delay_us(2);DS18B20_DQ_OUT=1; DS18B20_IO_IN();    //设置为输入delay_us(12);if(DS18B20_DQ_IN)data=1;else data=0;     delay_us(50);           return data;
}//从DS18B20读取一个字节
//返回值:读到的数据
u8 DS18B20_Read_Byte(void)
{        u8 i,j,dat;dat=0;for (i=1;i<=8;i++) {j=DS18B20_Read_Bit();dat=(j<<7)|(dat>>1);}                          return dat;
}//写一个字节到DS18B20
//dat:要写入的字节
void DS18B20_Write_Byte(u8 dat)     {             u8 j;u8 testb;DS18B20_IO_OUT();     //设置为输出for (j=1;j<=8;j++) {testb=dat&0x01;dat=dat>>1;if(testb)       // 写1{DS18B20_DQ_OUT=0;delay_us(2);                            DS18B20_DQ_OUT=1;delay_us(60);             }else            //写0{DS18B20_DQ_OUT=0;delay_us(60);             DS18B20_DQ_OUT=1;delay_us(2);                          }}
}//开始温度转换
void DS18B20_Start(void)
{                                          DS18B20_Rst();      DS18B20_Check();  DS18B20_Write_Byte(0xcc);// skip romDS18B20_Write_Byte(0x44);// convert
}//初始化DS18B20的IO口 DQ 同时检测DS的存在
//返回1:不存在
//返回0:存在
u8 DS18B20_Init(void)
{GPIO_InitTypeDef GPIO_Initure;__HAL_RCC_GPIOB_CLK_ENABLE();            //开启GPIOB时钟GPIO_Initure.Pin=GPIO_PIN_12;           //PB12GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;  //推挽输出GPIO_Initure.Pull=GPIO_PULLUP;          //上拉GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速HAL_GPIO_Init(GPIOB,&GPIO_Initure);     //初始化DS18B20_Rst();return DS18B20_Check();
}//从ds18b20得到温度值
//精度:0.1C
//返回值:温度值 (-550~1250)
short DS18B20_Get_Temp(void)
{u8 temp;u8 TL,TH;short tem;DS18B20_Start ();           //开始转换DS18B20_Rst();DS18B20_Check();     DS18B20_Write_Byte(0xcc);   // skip romDS18B20_Write_Byte(0xbe);   // convert      TL=DS18B20_Read_Byte();     // LSB   TH=DS18B20_Read_Byte();     // MSB   if(TH>7){TH=~TH;TL=~TL; temp=0;//温度为负  }else temp=1;//温度为正         tem=TH; //获得高八位tem<<=8;    tem+=TL;//获得底八位tem=(double)tem*0.625;//转换     if(temp)return tem; //返回温度值else return -tem;
}

喜欢请点赞哦!

基于STM32的温度控制系统相关推荐

  1. 毕业设计 基于stm32的灯光控制系统 物联网

    基于stm32的灯光控制系统 本次设计的是基于STM32F103C8T6单片机设计的一款教室灯光控制系统 系统内有光敏电阻模块采集教室内的光照强度,光电管检测教室内是否有人 通过按键可以直接控制开灯和 ...

  2. c语言单片机温度调节系统设计,基于单片机的温度控制系统的设计

    熊浚儒 何文孝 摘  要:该文在详细分析单片机应用于温度控制系统可实现功能及其工作原理后,提出一种合理的应用方法,使得将单片机应用于温度控制系统中成为可能.同时结合传感器理论分析研究单片机的实际应用, ...

  3. 基于STM32的温度遥测系统

    文章目录 前言 一.实际效果图 二.系统总体结构图 三.模块使用说明 1.NRF24L01 2.DS18B20 四.模块程序 1.NRF24L01程序 2.DS18B20程序 五.总结 六.详细代码 ...

  4. 基于STM32楼梯层控制系统

    1.项目需求分析 项目目标意义: 随着社会的发展. 科技的进步以及人们生活水平的逐步提高, 各种方便于生活的遥控系统开始进入了人们的生活. 电梯的发展是由于需要从山坡上运输包括煤和材在内的原材料而引发 ...

  5. 基于单片机的温度控制系统

                              摘 要:     本文从硬件和软件两方面介绍了MCS-51单片机温度控制系统的设计思路,对硬件原理图和程序框图作了简捷的描述.     关键词:MC ...

  6. 智能家居—基于STM32的温湿度控制系统(WIFI模块)

    基于App控制的STM32温湿度控制系统(WIFI模块) ESP8266WIFI模块 模块使用说明 常用AT指令 DHT11温湿度传感器 简介 模块数据的发送流程 代码实现 μs级的延时配置 HAL库 ...

  7. 基于单片机的温度控制系统(max6675)

    设计简介: 本设计是基于单片机的MAX6675温度控制,主要实现以下功能: 可实现LCD1602显示当前温度 可通过按键设置温度上下限 温度超过限值制冷或制热,并通过蜂鸣器报警 标签:51单片机.LC ...

  8. 基于MAX31865的温度控制系统

    系统介绍 这是之前写的关于MAX31865测温相关的文章,本次在此基础上又实现了一些新功能. 总结--STM32F103C8T6通过MAX31865读取PT100电阻值 STM32控制max31865 ...

  9. 基于STM32的农业灾害监测系统设计

    毕业论文(设计) 基于STM32的农业灾害监测系统设计 院:XX 学院(三号黑体字,下同) 业:XXXX 班 级:XXXX 班 名:X X X 号:2006XXXXXXX 指导教师:X X X 20X ...

最新文章

  1. python语言的翻译方式是什么-python自动翻译实现方法
  2. tomcat架构分析(概览)【转】
  3. java输入流读取几行文本_Java基础笔记Day_16
  4. git pull不同步_git回退版本,再返回最新分支git pull失败的解决经验
  5. 多学一招总没错吧?SpringBoot解决前后端分离的跨域问题
  6. 利用Split函数进行多关键字检索
  7. Centos7---1708 Linux上安装ZooKeeper 以及JDK1.8安装
  8. android 调出键盘表情_Android--如何优雅的切换表情和键盘(原理)
  9. Java网络编程之实现HTTP断点续传下载工具(附源代码)
  10. Ubuntu命令技巧
  11. js获取当前卫星云图url并播放
  12. 免费PDF下载网站 Free Pdf Download Engine
  13. 一个08届毕业的学长写给即将毕业的09届的学弟学妹们
  14. 转:QQ上最酷的留言消息
  15. word怎么取消目录
  16. 华为鲲鹏HCIA考试-练习02
  17. 利用python可视化散点图及其计算欧式距离分析相关性
  18. A visval git reference实践记录
  19. 解决Sklearn ValueError: empty vocabulary; perhaps the documents only contain stop words
  20. 将中文汉字转换成拼音(全拼)

热门文章

  1. 怎么从服务器上文件拷贝下来
  2. 2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
  3. 几种常见窗函数及其MATLAB实现
  4. 2021年 证券 考试 答案 后续培训 投资 基金 合规 政策 从业人员
  5. react版数组遍历
  6. Redis6客户端工具——Jedis
  7. 码农被3年资深程序员狂喷:根本不懂代码!
  8. 【MySQL基础知识】查询、过滤数据关键字
  9. 细说网络负载均衡技术
  10. TreeMap用法 示例