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

发布时间:2026/9/11 19:53:27

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);}}}}六、包含内容七、资料分享资料获取请查看主页介绍搜索或观看开源视频获取
延伸阅读

更多相关文章

2026/9/11 19:53:27

网络毕设项目|网络毕设|车载通信 V2X 的传播模型和拥塞控制性能分析

第一章 绪论1.1 研究背景与意义城市化的不断推进让机动车的保有量有了持续的上涨,交通拥堵、事故频发还有环境被污染的问题也变得越来越突出,全球每年因为道路交通事故失去生命的人数能达到 135 万左右,相关的经济损失被带到了数千亿美元的规…

2026/9/11 20:33:31

YOLOv8工业级钻井设备检测:强光锈蚀油污下的鲁棒识别方案

简介:本资源是一套面向计算机、人工智能及自动化等相关专业学生的毕业设计级项目,聚焦石油钻井平台关键设备的智能状态监测,基于YOLOv8实现高精度目标检测与可视化分析。项目开箱即用,涵盖完整训练流程、部署方案与交互式界面&…

2026/9/11 20:33:31

计算机毕业设计之jsp小区物业管理系统的设计与实现

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

2026/9/11 20:33:31

情感分析在量化投资中的应用与优化策略

1. 情感因子在量化投资中的核心价值金融市场中存在着两种截然不同的分析方法:基本面分析和技术分析。而近年来,第三种力量正在崛起——情感分析(Sentiment Analysis)。这种通过自然语言处理技术从新闻、社交媒体等文本数据中提取市…

2026/9/11 20:33:31

计算机毕业设计之jsp小区物业管理系统

随着信息化时代的到来,管理系统都趋向于智能化、系统化,小区物业管理系统也不例外,但目前不少小区仍都使用人工管理,小区规模越来越大,小区信息量也越来越庞大,人工管理显然已无法应对时代的变化&#xff0…

2026/9/11 20:33:31

xAI与SpaceX深度整合:AI如何重塑火箭设计与深空探测

消息发酵那天晚上,我的几个行业群几乎同时炸了锅。搞 AI 的人开始研究火箭的回收时序,搞航天的人开始讨论大模型的推理能力边界。这种跨圈式的讨论在以前很少见,但这一回大家不是在闲聊,而是认真在掂量一件事:xAI 和 S…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码