【单片机毕业设计4-基于stm32c8t6的红外测温系统】
- 前言
- 一、功能介绍
- 二、硬件部分
- 三、软件部分
- 总结
前言
🔥这里是小殷学长,单片机毕业设计篇4基于stm32的红外测温系统
🧿创作不易,拒绝白嫖可私
一、功能介绍
------------------------------------------红外测温系统-----------------------------------------
1.OLED可实时显示当前所测温度以及温度阈值 测温时间
2.可通过按键进行温度阈值的调节,按键按下一次测温一次
3.超过阈值蜂鸣器发出警报
4.温度正常舵机旋转模拟开门
5.数据(实时温度、温度阈值、测温时间)可通过蓝牙实时上传到手机 以及蓝牙进行参数调节
6.语音模块进行温度播报
功能可定制
🔥 实物展示
二、硬件部分
下面为该毕设中所用到的相关硬件说明,具体参数不做细节描述
硬件材料
PCB和原理图
三、软件部分
main.c部分代码
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
delay_init();
LED_Init();
Buzzer_Init();
Init_Usart();
Exit_Init();
servo_init();
SMBus_Init();
OLED_Init();
OLED_Clear(0);
printf("<G>欢迎使用红外测温系统");//发送语音合成指令
USART1_SendString((unsigned char *)"======HardWare Init Finished======\r\n");
Buzzer_Voice();
while(1)
{
Interface_Task(index_mode); //界面显示
Logical_Task(); //逻辑处理
Usart_Task(); //串口任务
}
}
//1 蓝牙 RX- PA9 TX-PA10
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
Usart_cmd = USART_ReceiveData(USART1);
USART_ClearFlag(USART1, USART_FLAG_RXNE);
}
}
//中断20ms进一次
void TIM3_IRQHandler(void) //TIM3中断
{
static unsigned char count = 0;
static unsigned char clear = 0,t = 0;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
if(start_temp == 1) //开始测温
{
t_temp = SMBus_ReadTemp();
temp = t_temp*10; //转成整数方便显示
OLED_ShowNum(58,3,temp/100,1,16);
OLED_ShowNum(70,3,temp/10%10,1,16);
OLED_ShowChar(80,3,'.',8);
OLED_ShowNum(86,3,temp%10,1,16);
printf("<G>当前温度为%d%d.%d\r\n",temp/100,temp/10%10,temp%10);
t_hour = hour,t_min = min,t_sec = sec; //保存测温时间
send_flag = 1; //数据发送到手机
start_temp = 0;
logical_flag = 1;
servo_flag = 1;
flag = 1;
clear = 1;
}
//下面为定时清除温度
if(clear == 1 )
{
t++;
if(t >= 100) //2s后temp清0
{
t = 0;
temp = 0;
clear = 0;
}
}
//下面为实时时间处理
if(timer_flag == 1)
{
count++;
if(count == 50) //1s
{
count = 0;
sec++;
if(sec == 60)
{
sec = 0;
min++;
if(min == 60)
{
min = 0;
hour++;
if(hour == 24)
{
hour = 0;
}
}
}
//sprintf(str_t,"%02d:%02d:%02d\r\n",hour,min,sec);
//printf("%s\r\n",str_t);
}
}
TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx更新中断标志 //10ms
}
}
总结
上面为基于stm32f103c8t6的红外测温系统相关的大致介绍,源码,pcb和原理图以及相关文档说明做了详细说明,有需可私
🧿创作不易,拒绝白嫖