【基于stm32c8t6的智能加湿系统】

这篇具有很好参考价值的文章主要介绍了【基于stm32c8t6的智能加湿系统】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

🔥这里是小殷学长,单片机毕业设计篇1 基于stm32的智能加湿系统
🧿创作不易,拒绝白嫖 可私

stm32智能加湿系统,DIY作品,stm32,智能加湿系统


一、功能介绍

------------------------------------------智能加湿系统-----------------------------------------
1.按键进行界面模式切换和参数阈值调节(定时时间、温湿度值)
2.蓝牙进行界面模式切换和参数阈值调节(定时时间、温湿度值)
3.语音进行界面模式切换和参数阈值调节(定时时间、温湿度值)
4.通过Oled和Onenet数据上传云端两种形式实时显示
5.蜂鸣器进行阈值报警提示,以及红绿led进行不同状态显示
6.实时采集环境温湿度值
功能可定制


🔥 实物展示

stm32智能加湿系统,DIY作品,stm32,智能加湿系统

stm32智能加湿系统,DIY作品,stm32,智能加湿系统
stm32智能加湿系统,DIY作品,stm32,智能加湿系统

stm32智能加湿系统,DIY作品,stm32,智能加湿系统

stm32智能加湿系统,DIY作品,stm32,智能加湿系统

二、硬件部分

下面为该毕设中所用到的相关硬件说明,具体参数不做细节描述

硬件材料

stm32智能加湿系统,DIY作品,stm32,智能加湿系统

PCB和原理图

stm32智能加湿系统,DIY作品,stm32,智能加湿系统
stm32智能加湿系统,DIY作品,stm32,智能加湿系统

三、软件部分

stm32智能加湿系统,DIY作品,stm32,智能加湿系统

main.c部分代码

int main(void)
{		
	 unsigned char *dataPtr = NULL,flag = 0;
	 unsigned short timeCount = 0;	//发送间隔变量
     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4	  
	 delay_init();            //延时初始化
	 LED_Init();              // led初始化
	 Buzzer_Relay_Init();     //蜂鸣器和继电器初始化
	 KEY_Exit_Init();         //按键初始化
	 Init_Usart();            //串口初始化
	 DHT11_Init();            //温湿度初始化
	 TIM3_PWM_Init();         //定时器初始化
	 OLED_Init();			        //初始化OLED  
	 delay_ms(500);
	 OLED_Clear(0);	          //清屏
	 Oled_WIFI();             //显示wifi连接
	 printf("wait wifi connect...\r\n");
	 ESP8266_Init();					//初始化ESP8266 
	//printf("8266_INIT_END\n");
	 while(OneNet_DevLink())			//接入OneNET
	 delay_ms(500);
	 printf("接入onenet成功");
	 delay_ms(500);
	 OLED_Clear(0);	          //清屏
	 Interface_Init();        //主界面
	 Buzzer_Voice();          //开机蜂鸣器提示
	 Buzzer_Voice();
	flag = 1;
	while(flag)
	{
		DHT11_Read_Data(&temp,&humi);          //温湿度获取
		Interface_Task(work_mode);             //界面显示任务
		Data_Task();                           //数据处理任务
		Logical_Task();                        //逻辑处理任务
		Usart_Task();                          //串口处理任务
		
		if(++timeCount >= 150)		//时间间隔1s
		{
				OneNet_SendData();//发送数据给onenet	
				//printf("send_data_end\n");
				timeCount = 0;
				
				ESP8266_Clear();
		}	
		dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据
		if(dataPtr != NULL)//如果返回数据不为空
			OneNet_RevPro(dataPtr);//平台返回数据检测		
		delay_ms(10);
	}
}

/*-------------------------------串口中断服务函数-------------------------*/
//串口1接收  PA9 PA10   蓝牙模块
void USART1_IRQHandler(void)
{
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
	{
		usart_cmd = USART_ReceiveData(USART1);
		//USART_SendData(USART1,Usart1_cmd);    //打开可通过串口观察接收的数据
		USART_ClearFlag(USART1, USART_FLAG_RXNE);
	}
}

//语音 RX-  PA2  TX-PA3
void USART2_IRQHandler(void)
{
    if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
    {
       usart_cmd = USART_ReceiveData(USART2);				
	   USART_ClearFlag(USART2, USART_FLAG_RXNE);
    }
}

void TIM3_IRQHandler(void)   //TIM3中断
{
	static unsigned char temp_t = 0,t = 0,send_t = 0,time = 0;
	if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
		{
			//时间
			time++;
			if(time == 100) //1s
			{
				time = 0;
				sec++;
				if(sec == 60)
				{
					sec = 0;
					min++;
					if(min == 60)
					{
						min = 0;
						hour++;
						if(hour == 24)
						{
							hour = 0;
						}
					}
				}
			}
			send_t++;
			if(send_t == 200)  //2s将数据发送到手机一次
			{
				send_flag = 1;
				send_t = 0;
			}
			if(time_flag)
			{
				t++;
				if(t == 100) //1s
				{
					t = 0;
					if(set_time-- == 0)  //定时时间到
					{
						time_flag = 0;     //重置标志位
						set_time = 5;      //重置默认值
					}
				}
			}
			//下面为温度刷新周期控制
			if(temp_t++ == 10)  //100ms更新一次温度数据
			{
				temp_t = 0; 
				
				//下面写更新温度功能函数
				if(DHT11_Read_Data(&temp,&humi) == 1)
				{
					//delay_ms(200);
					//printf("temp:%02d  humi:%02d \r\n",temp,humi);
				}
				
			}
			TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  //清除TIMx更新中断标志  //10ms	
		}
}

总结

上面为基于stm32f103c8t6的智能加湿系统功能相关的大致介绍,源码,pcb和原理图以及相关文档说明做了详细说明,有需可私

stm32智能加湿系统,DIY作品,stm32,智能加湿系统
🧿创作不易,拒绝白嫖文章来源地址https://www.toymoban.com/news/detail-604562.html

到了这里,关于【基于stm32c8t6的智能加湿系统】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32C8t6 驱动激光雷达实战(二)

    数据格式为:角度(°):距离(mm)。 STM32C8t6驱动激光雷达 前面我们了解了激光雷达的原理,下面用C8T6驱动激光雷达 激光雷达一共有 6 个引脚,其中 2 个 GND,2 个 5V,一对 RX 和 TX 引脚, 按照下表 1-1 的接线要求接在 STM32 单片机上。其中 2 个 5V 因为电流要求, 可以接在

    2024年02月02日
    浏览(31)
  • 学习笔记——STM32C8T6如何配置普通IO口

     最近使用stm32f103c8t6时,想要使用PA15端口作为普通io口输出电平信号,但是发现配置不生效,于是就去网上查,发现要关闭初始状态下芯片默认的专用复位功能,于是总结了一下几个配置普通io口的引脚: 有: PA13  PA14  PA15  PB3  PB4 同时,这些引脚主功能(复位后)的功能

    2024年02月02日
    浏览(34)
  • STM32学习笔记(三)端口复用与重映射(stm32c8t6)

    记录一下学习过程 1.端口复用 STM32有很多内置外设,这些外设的外部引脚是与GPIO复用的。默认情况下,这些GPIO口只能作为普通的IO口输入输出,把一个GPIO口的引脚复用为内置外设的功能引脚,通过这些GPIO口就可以使用内置外设了,这个过程叫做复用。但不是每一个引脚都用

    2023年04月27日
    浏览(35)
  • 实现语音识别系统:手把手教你使用STM32C8T6和LD3320(SPI通信版)实现语音识别

            本文实际是对LD3320(SPI通信版)的个人理解,如果单论代码和开发板的资料而言,其实当你购买LD3320的时候,卖家已然提供了很多资料。我在大学期间曾经多次使用LD3320芯片的开发板用于设计系统,我在我的毕业设计作品中也有添加这个系统功能,用于添加整个系

    2024年02月06日
    浏览(29)
  • STM32学习笔记(五)串口空闲中断+DMA实现不定长收发(stm32c8t6)

    记录一下学习过程 DMA DMA,全称为: Direct Memory Access,即直接存储器访问, DMA 传输将数据从一个 地址空间复制到另外一个地址空间。 这一过程无需cpu的参与,从而提高cpu使用的效率 DMA相关的参数:1 数据的源地址、2 数据传输的目标地址 、3 传输宽度,4 传输多少字节,5 传

    2024年02月14日
    浏览(33)
  • 使用stm32c8t6和mpu6050制作一台穿越机

    介绍:使用stm32c8t6和mpu6050制作一款低价飞控,固件用的是开源的betaflight_3.2.5_NAZE,飞行噪声很小,可能是桨叶好,乾丰5寸3叶桨。 原理图: PCB: 拿到嘉立创打样后: 焊接: 飞控需要单独5v供电,随便找了各降压模块,某宝大概3元钱,插入3s电池,调节旋钮,电源稳压到5v,

    2024年02月02日
    浏览(25)
  • STM32C8T6I2C驱动OLED显示汉字版本(江科大基础改编)

    最近突然想显示汉字,然后翻了一圈发现版本好多,所以就挑了一个合适的。然后我的目的主要是驱动OLED0.96寸显示汉字,所以很简单,就是先配置驱动的模型库 在font.h添加这一段库,直接在代码下面添加即可。然后如果想要自己取模就下载PctolLCD2002这个取模软件,搜索百度

    2024年02月10日
    浏览(43)
  • 【基于STM32F103C8T6的智能风扇控制】

    本次分享的是基于STM32F103的智能风扇的制作,相关的硬件和部分源码可看下面哦,需要成品的可私(创作不易,拒绝白嫖) 喜欢就给小殷一个关注和点赞吧 演示视频链接 1、按键模式下通过按键进行风扇档数改变一共设置为4档 2、自动模式下根据环境温度而改变温度的转速和

    2024年02月12日
    浏览(62)
  • [STM32F103C8T6]基于stm32的循迹,跟随,避障智能小车

    目录 1.小车驱动主要是通过L9110S模块来驱动电机 motor.c 2.我们可以加入串口控制电机驱动(重写串口接收回调函数,和重定向printf) Uart.c main.c  3.点动功能 uart.c main.c 为什么使用的是HAL_Delay()要设置滴答定时器的中断优先级呢? 4.小车PWM调速,  6.跟随功能 7.避障功能 超声波测距

    2024年02月13日
    浏览(44)
  • 【STM32】基于STM32F103C8T6的水质检测系统设计(声光报警、多级菜单)

    1.检测参数:水温、TDS、浊度、PH 2.超出阈值声光报警 3.LCD显示目标参数的测量结果 4.测量模式:单参数测量、所有参数表同时测量 切换方式:按键切换 单总线技术 单总线技术采用单根信号线实现时钟、数据的传输,且数据的传输是双向的,能够控制一个或多个从机设备。主

    2024年02月01日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包