STM32项目开源:图书馆环境监测系统(代码+原理图+仿真)

STM32项目开源:图书馆环境监测系统(代码+原理图+仿真) 文章目录一、前言二、项目功能简介三、PCB设计四、原理图设计五、程序设计六、包含内容七、资料分享一、前言实物项目成品仿真项目成品哔哩哔哩开源视频链接复制浏览器打开https://www.bilibili.com/video/BV1ETYs6nE2v/?vd_source10da4d04d580bd6b34f7298120737c50资料分享见文末二、项目功能简介【开源】STM32单片机图书馆环境监测系统代码原理图仿真-编号CY26016功能介绍1采用 STM32F103C8T6 最小系统板作为核心控制器。2环境检测功能实时采集图书馆内环境的温湿度、空气质量浓度、光照强度等环境参数。3显示功能OLED 显示屏实时展示各类传感器采集数据、系统工作模式、窗帘状态等信息。4手动模式通过实体按键实现手动控制图书馆设备可手动操控台灯、风扇、窗帘步进电机的开启与关闭。5自动模式系统根据环境参数自动调控设备当温湿度超标时自动开启风扇进行环境调节当空气质量浓度超标时自动打开窗帘并触发蜂鸣器声光报警提醒当环境光照低于预设阈值自动开启补光灯。6语音控制功能支持语音指令可实现模式切换以及台灯、风扇、窗帘的开关控制。7断电记忆功能系统保存各项环境阈值参数设备断电重启后阈值设置不会丢失。8机智云 APP 远程功能手机 APP 可以远程查看图书馆环境传感器实时数据同时远程下发指令控制台灯、风扇、窗帘的开关。三、PCB设计四、原理图设计五、程序设计代码如下#includestm32f10x.h// Device header#includeDelay.h#includeled.h#includeOLED.h#includebeep.h#includedht11.h#includeoleddispaly.h#includekey.h#includeADc.h#includeflash.h#includeusart.h#includemotor_bujin.h#includestdlib.h#includestdio.h#includestring.h#includestdbool.h#defineFLASH_SAVE_ADDR((u32)0x0800F000)//设置FLASH 保存地址(必须为偶数)intmain(void){NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组22位抢占优先级2位响应优先级Delay_Init();OLED_Init();//OLED初始化OLED_Clear();//清屏OLED_ShowCHineseString(byte(4),line3,jiudian1,4);Step_Motor_Init();//步进电机初始化DHT11_Init();//温湿度传感器MQ2_Init();//烟雾传感器uart1_Init(9600);//串口初始化Key_Init();//按键初始化BEEP_Init();//蜂鸣器初始化uart2_Init(9600);CheckNewMcu();// 检查是否是新的单片机是的话清空存储区否则保留Delay_ms(1000);OLED_Clear();//清屏while(1){key_deal();//按键处理函数if(mode0){if(Mod1_Flag1)//阈值设置界面{BEEPBEEP_OFF;OLED_ShowCHineseString(byte(2),line1,State_value,6);//显示中文参数阈值设置OLED_ShowCHineseString(byte(0),line3,wendu,2);OLED_ShowCHineseString(byte(4),line3,yuzhi,3);OLED_ShowNum(80,2,temperature_value,2,8);//显示温度阈值}elseif(Mod1_Flag2)//湿度阈值设置界面{OLED_ShowCHineseString(byte(2),line1,State_value,6);//显示中文参数阈值设置OLED_ShowCHineseString(byte(0),line3,shidu,2);OLED_ShowCHineseString(byte(4),line3,yuzhi,3);OLED_ShowNum(80,2,humidity_value,2,8);//显示湿度阈值}elseif(Mod1_Flag3)//烟雾阈值设置界面{OLED_ShowCHineseString(byte(2),line1,State_value,6);//显示中文参数阈值设置OLED_ShowCHineseString(byte(0),line3,GZ_dis,2);//显示中文光照OLED_ShowCHineseString(byte(4),line3,yuzhi,3);OLED_ShowNum(80,2,light_min,4,8);//显示烟雾阈值}elseif(Mod1_Flag4)//烟雾阈值设置界面{OLED_ShowCHineseString(byte(1),line1,State_value,6);//显示中文参数阈值设置OLED_ShowCHineseString(byte(0),line3,yanwu,2);OLED_ShowCHineseString(byte(4),line3,yuzhi,3);OLED_ShowNum(80,2,MQ2_value,2,8);//显示烟雾阈值}else//主界面{crl_flag1;if(crl_flag11){crl_flag10;OLED_Clear();//清屏}DHT11_Read_Data(temperature,tempd,humidity,humi);//获取温湿度Adc_value(float)Get_Adc_Average(ADC_Channel_1,2)/41.36;//采集烟雾light_value(float)Get_Adc_Average(ADC_Channel_4,2)/1.023;//采集烟雾OLED_ShowCHineseString(byte(0),line1,wendu,2);//显示中文温度OLED_ShowCHineseString(byte(9)-8,line1,shidu,2);//显示中文湿度OLED_ShowCHineseString(byte(0),line3,GZ_dis,2);//显示中文光照OLED_ShowCHineseString(byte(0),line5,yanwu,2);//显示中文烟雾OLED_ShowChar(32,0,:,8);OLED_ShowChar(96,0,:,8);OLED_ShowChar(32,2,:,8);OLED_ShowChar(32,4,:,8);OLED_ShowChar(56,0,C,8);OLED_ShowChar(120,0,%,8);OLED_ShowNum(40,0,temperature,2,8);//显示温度整数OLED_ShowNum(104,0,humidity,2,8);//显示湿度整数OLED_ShowNum(40,2,light_value,4,8);//显示光照OLED_ShowString(80,2,Lux,8);OLED_ShowNum(40,4,Adc_value,2,8);OLED_ShowString(64,4,ppm,8);if(chuangflag1)OLED_ShowCHineseString(byte(10),line7,dakai,2);//打开elseOLED_ShowCHineseString(byte(10),line7,guanbi,2);//关闭OLED_ShowCHineseString(byte(0),line7,mode_value1,4);//自动if(mode0){if(temperaturetemperature_value||humidityhumidity_value)//温湿度和烟雾大于阈值{FengS1;//风扇开}else{FengS0;//风扇关}if(Adc_valueMQ2_value){if(flag_bujin_state0){flag_bujin_foreward1;flag_bujin_reversal0;}chuangflag1;BEEPBEEP_ON;}else{if(flag_bujin_state1){flag_bujin_foreward0;flag_bujin_reversal1;}chuangflag0;BEEPBEEP_OFF;}if(light_valuelight_min)light_led0;//关照明elselight_led1;//开照明}Delay_ms(100);}}else//手动界面{crl_flag11;if(crl_flag1){crl_flag0;OLED_Clear();//清屏}select(Num);OLED_ShowCHineseString(byte(0),line1,chuangliang,3);//显示中文窗帘OLED_ShowCHineseString(byte(0),line3,FenfS,3);//显示中文风扇OLED_ShowCHineseString(byte(0),line5,zhaom,3);//显示中文照明OLED_ShowCHineseString(byte(3),line7,mode_value2,4);//手动模式if(fen_flag){FengS1;//风扇开OLED_ShowCHineseString(byte(7),line3,kai,1);}else{FengS0;//风扇关OLED_ShowCHineseString(byte(7),line3,guan,1);}if(zaom_flag){light_led1;//开照明OLED_ShowCHineseString(byte(7),line5,kai,1);}else{light_led0;//关照明OLED_ShowCHineseString(byte(7),line5,guan,1);}if(CL_flag){if(flag_bujin_state0){flag_bujin_foreward1;flag_bujin_reversal0;}OLED_ShowCHineseString(byte(7),line1,kai,1);}else{if(flag_bujin_state1){flag_bujin_foreward0;flag_bujin_reversal1;}OLED_ShowCHineseString(byte(7),line1,guan,1);}}}}六、包含内容七、资料分享资料获取请查看主页介绍搜索或观看开源视频获取