【单片机毕业设计】基于传感器数据采集的室内智能通风照明控制系统 基于 STM32 的 OLED 环境数据显示与继电器控制设计(012801)

21 硬件工程师笔面试高频考点真题解析——单片机 本文系统介绍了单片机的核心概念与应用知识,包括:单片机定义与选型要点(性能、存储、外设等);核心参数(主频、I/O、通信接口等);最小系统组成(电源、复位、晶振、BOOT);常见外设(GPIO、ADC、定时器等);GPIO工作模式(输入/输出);死机原因分析(硬件干扰、软件错误等);上电故障排查流程(电源、时钟、程序等);与DSP、FPGA的对比(控制vs运算vs可编程);常用通信总线特点(UART、I2C、SPI、CAN);看门狗功能(超时复位防死机)。内容涵盖单片机硬件设计关键要点,适合嵌入式开发者参考 阅读详情

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战
✌️技术范围::单片机,STM32单片机,51单片机,小程序、SpringBoot、SSM、JSP、Vue、PHP、Java、python、爬虫、数据可视化、大数据、物联网、机器学习等设计与开发。
主要内容:免费开题报告、任务书、全bao定制+中期检查PPT、代码编写、🚢文编写和辅导、🚢文降重、长期答辩答疑辅导、一对一专业代码讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。
特色服务内容:答辩必过班 (全程一对一技术交流,帮助大家顺利完成答辩,小白必选)
全网粉丝50W+,累计帮助2000+完成优秀毕设
🍅文末或主页侧边栏获取源码🍅
👉👉👉👉点击获取源码 👈👈👈👈
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及🚢文编写等相关问题都可以给我留言咨询,希望帮助更多的人

在这里插入图片描述

20 个相关毕业设计备选题目

  1. 基于 STM32 的室内环境监测与智能家电控制系统
  2. 基于 STM32 的温湿度光照采集与设备自动调控设计
  3. 基于 STM32 的多传感器环境感知与智能家居控制装置
  4. 基于单片机的室内环境参数监测与电器自动控制系统
  5. 基于 STM32 的自动手动双模式环境调控系统设计
  6. 基于 STM32 的阈值可调型环境监测与设备驱动装置
  7. 基于传感器数据采集的室内智能通风照明控制系统
  8. 基于 STM32 的 OLED 环境数据显示与继电器控制设计
  9. 基于嵌入式单片机的室内温光湿智能管控系统
  10. 基于 STM32 的多参数监测与家电自动启停控制系统
  11. 基于 DHT11 与 GL5506 的环境监测与智能控制设计
  12. 基于 STM32 的按键可调阈值环境自动控制系统
  13. 基于嵌入式技术的室内环境感知与设备联动装置
  14. 基于 STM32 的智能家居环境监测与本地控制系统
  15. 基于多传感器采集的室内空调风扇灯光智能控制器
  16. 基于 STM32 的双运行模式环境监测控制系统开发
  17. 基于单片机的室内环境预警与家电自动调控装置
  18. 基于 STM32 的本地阈值配置与环境设备联动系统
  19. 基于嵌入式平台的室内多参数监测与智能执行系统
  20. 基于传感器数据的室内环境智能管控硬件系统设计

项目研究背景

随着物联网嵌入式技术快速普及,智能家居逐步走进普通室内场景,利用单片机完成环境感知与设备自动控制成为低成本智能化改造的主流方案。当前传统室内环境管理大多依靠人工手动开关空调、风扇与照明设备,人工值守模式效率低下,无法实时感知温湿度、光照变化,设备启停全凭人为判断,调控滞后且能源浪费严重。市面上部分简易监测设备仅能完成数据采集,缺少自动控制功能,无法联动家电执行排风、除湿、开灯操作;部分智能系统模式单一,缺少手动、自动、阈值修改多模式切换,参数无法本地灵活调整,人机交互能力较弱。随着嵌入式单片机技术不断成熟,低成本传感器、继电器执行模块已经实现量产,为小型本地智能控制系统提供了硬件基础。在此背景下,本课题以 STM32 单片机为核心,搭建多传感器数据采集链路,设计多运行模式与按键交互逻辑,实现环境监测与家电自动联动,弥补传统人工管控的短板,完成一套低成本、可本地调试、兼具手动与自动控制能力的室内环境智能管控装置,满足小型室内场景的自动化使用需求。

摘要

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。本设计完成硬件电路搭建与嵌入式程序开发,实现多传感器数据读取、人机按键交互、多模式逻辑判断与继电器设备驱动,系统运行稳定,可实现室内环境自主调控,具备成本低廉、本地可配置、实用性强的特点,适用于小型室内场景的智能化改造。

总体方案

  1. 主控硬件:STM32F103C8T6 最小系统板。选型理由:该型号为本科嵌入式课程主流芯片,外设资源充足,成本低廉,支持 GPIO 引脚采集传感器信号与驱动外设,完全满足本课题数据处理与逻辑运算需求,作为整个系统的数据处理核心,负责接收传感器数据、处理按键指令、输出控制电平。
  2. 温湿度采集硬件:DHT11 数字温湿度传感器。选型理由:单总线通信,接线简单,无需复杂 AD 转换,能够稳定采集空气温度与湿度数值,适配室内环境检测场景,负责向主控芯片实时传输温湿度数据。
  3. 光照采集硬件:GL5506 光敏电阻搭配 AD 转换电路。选型理由:该光敏电阻阻值随光照强度线性变化,配合单片机 AD 引脚可以完成光照强度采集,硬件电路简单,适合本科项目开发,用于感知环境明暗程度。
  4. 显示硬件:0.96 寸 I2C 接口 OLED 显示屏。选型理由:占用引脚少,功耗低,可清晰刷新实时温湿度、光照数据,负责可视化展示所有采集到的环境参数。
  5. 执行硬件:四路 5V 继电器模块 + 蜂鸣器 + LED 灯。选型理由:继电器可以隔离强弱电,用来模拟控制空调、风扇设备;蜂鸣器用于参数超标时发出警报,LED 模拟室内照明设备,接收单片机电平信号完成启停动作。
  6. 交互硬件:独立轻触按键 4 个。选型理由:独立按键响应稳定,用于模式切换、设备选中、阈值增减,实现三种工作模式下的人机交互操作。
  7. 上位开发硬件:台式计算机,配置 Windows 系统,用于程序编写、编译、下载与调试,是嵌入式开发的基础运行环境。

核心功能

一、数据采集基础功能

  1. 环境参数采集功能:主控单片机定时读取 DHT11 传感器数据,获取实时温度、湿度数值;通过 AD 引脚读取 GL5506 光敏电阻的电压信号,换算为光照强度,保证每秒刷新一次环境数据,为后续自动控制提供原始数据。
  2. 数据可视化显示功能:将采集到的温度、湿度、光照三项实时数据稳定输出到 OLED 屏幕,屏幕内容随传感器数值同步更新,保证用户可以直观查看当前环境状态。

二、多模式切换核心功能

  1. 模式切换控制功能:第一个独立按键作为总切换键,循环切换自动模式、手动模式、阈值设置模式,每按下一次完成一次模式跳转,屏幕同步显示当前所处工作模式,防止模式混淆。
  2. 手动模式设备操控功能:进入手动模式后,第二个按键循环选中风扇、空调、灯光三项设备,第三个按键对当前选中设备执行开启 / 关闭操作,继电器对应动作,支持人工自由管控所有外设,不受环境参数限制。
  3. 阈值参数配置功能:进入阈值设置模式后,第二个按键切换待修改项目(温度阈值、湿度阈值、光照阈值),第三个按键数值加 1,第四个按键数值减 1,所有阈值修改后实时保存,作为自动模式的判定标准。

三、自动联动控制功能

  1. 温度超标联动控制:自动模式下,当采集温度高于设定阈值时,单片机输出电平信号,驱动风扇对应的继电器闭合,自动开启风扇完成排风降温。
  2. 湿度超标联动控制:自动模式下,当环境湿度高于设定阈值时,空调继电器闭合开启除湿设备,同时触发蜂鸣器持续鸣叫,发出环境异常警报。
  3. 光照不足联动控制:自动模式下,当检测到光照强度低于设定阈值时,自动点亮 LED 照明灯,实现天黑自动开灯的效果。

四、辅助稳定功能

系统全程实时扫描按键状态,防止按键抖动造成误触发;所有设备动作状态同步保存在程序寄存器中,模式切换时保持设备当前运行状态,避免频繁启停。

技术路线

  1. 编程语言:C 语言。选型理由:是 STM32 嵌入式开发的主流语言,执行效率高,寄存器操作灵活,完全适配单片机底层开发,用于编写传感器读取、按键扫描、逻辑判断、外设驱动全部代码。
  2. 开发框架:STM32 标准库固件库。选型理由:本科嵌入式教学通用开发库,封装完善,不用手动配置寄存器,降低开发难度,快速完成 GPIO、I2C、AD 外设初始化。
  3. 开发软件:Keil MDK5。选型理由:ARM 单片机专用开发 IDE,支持代码编写、编译、在线下载与断点调试,适配 STM32 全系列芯片,为本项目的核心开发工具。
  4. 电路绘图工具:Altium Designer。选型理由:绘制硬件原理图与 PCB 接线图,完成最小系统、传感器、继电器之间的电路设计,输出硬件接线图纸。
  5. 硬件调试工具:ST-Link 下载器 + 万用表。选型理由:ST-Link 负责把程序烧录进单片机;万用表用来排查线路通断、电压信号,完成硬件电路排错。
  6. 仿真测试工具:Proteus(可选)。选型理由:可在实物焊接前进行电路与程序联合仿真,提前验证控制逻辑,减少硬件焊接失败问题。
  7. 运行环境:Windows10 操作系统,搭配 STM32 最小系统硬件实物,保证程序稳定运行,实现所有控制逻辑。

项目演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

关于我们

博主本身从事开发软件开发、有丰富的编程能力和水平、累积给上千名同学进行辅导、有自己的独立工作室,目前只专注做自己专业领域的事。团队人员有多年架构师设计经验、多人有参加校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业讲师以及同行交流合作。

项目案例

下面是我们团队最新的定制开发的项目平台,广受到大家客户的喜爱!大家看看我们开发出来的部分效果图吧!!!
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码获取

👉👉👉👉 点击我获取源码 -> 进我个人主页 👈👈👈👈

⬇️⬇️⬇️⬇️

IDEA类和方法注释模板设置(非常详细) 阅读详情

相关推荐

「免费开源」从 OCR 识别到结构化输出:合同文本高效比对的完整解决方案!

本文将系统拆解这一解决方案的技术逻辑、实施步骤与落地价值,为企业合同管理数字化转型提供实操指南。字段提取:自动识别并提取预设的关键字段(如 “甲方”“乙方”“合同金额”“履约期限” 等),若遇到模糊表述(如 “付款时间为合同签订后 30 个工作日内”),系统可自动解析为 “履约期限:合同签订日 + 30 工作日”;预设结构化字段:根据合同类型(如采购合同、服务合同、租赁合同),定义需提取的关键字段(如 “甲方名称”“乙方名称”“合同金额”“有效期起 / 止日期”“履约地点”“违约金比例” 等);

qxsz_yyh的博客 837

【计算机毕业设计单片机案例】基于多传感器采集的室内空调风扇灯光智能控制器 基于 STM32 的双运行模式环境监测控制系统开发(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

78

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6311

【单片机毕业设计】基于 STM32 的室内环境监测与智能家电控制系统,基于 STM32 的温湿度光照采集与设备自动调控设计(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。本设计完成硬件电路搭建与嵌入式程序开发,实现多传感器数据读取、人机

bishe7_is_vx的博客 194

Linux 隐藏进程

这种方式属于DKoM(Direct Kernel Object Manipulation)攻击方式了,即直接内核对象操作技术。关于第一种hook方式可以参考上一篇文章。最后推荐一个rootkit工具。

chi's blog 2051

PINN内嵌物理知识神经网络入门及文献总结

内嵌物理知识深度学习方法(PINN)已经成功用于解决各类科学计算问题,其本质是将物理先验知识嵌入神经网络训练中,将一个求解PDE的问题转化为一个优化问题。这篇博客主要记录PINN相关论文

山里娃的博客 7万+

单片机毕业设计-基于 STM32 的多传感器环境感知与智能家居控制装置 基于单片机的室内环境参数监测与电器自动控制系统(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

我的个人博客:https://bishe666.top 76

优化NEXYS A7开发板(Xilinx Artix-7)Microblaze核的FLASH读写性能实战

本文针对NEXYS A7开发板(Xilinx Artix-7)上Microblaze核读写FLASH速度慢的问题,提供了系统性的优化实战指南。通过深入分析SPI控制器配置、Flash指令模式选择、Microblaze核的Cache与硬件加速器优化,以及程序运行位置(BRAM vs DDR)的调整,有效将FLASH读写性能从“龟速”提升至接近理论峰值。文章结合实测数据,为FPGA嵌入式开发者提供了清晰的性能瓶颈分析与解决方案。

carrot的博客 259

单片机毕设项目:基于单片机的室内环境预警与家电自动调控装置 基于 STM32 的本地阈值配置与环境设备联动系统(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

2501_91703032的博客 195

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 576

基于Simulink的电力电子系统电磁兼容性(EMC)仿真

在电力电子系统中,由于高频开关器件的存在,会产生大量的电磁干扰(EMI),这对系统的稳定性和可靠性提出了挑战。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证电力电子系统的电磁兼容性。本教程将详细介绍如何使用 Simulink 进行电力电子系统的电磁兼容性仿真。通过本教程,我们详细介绍了如何使用 Simulink 进行电力电子系统的电磁兼容性仿真。为了模拟电力电子系统中的电磁干扰(EMI),我们需要添加噪声源模块。为了更好地分析系统的电磁兼容性特性,可以在模型中添加频谱分析工具。

amy_mhd的博客 1127

单片机计算机毕设之基于 DHT11 与 GL5506 的环境监测与智能控制设计 基于 STM32 的按键可调阈值环境自动控制系统(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

150

计算机视觉 | 面试题:01、过拟合和欠拟合的表现与解决方法

问题 过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合,还有一种是适度拟合,适度拟合就是我们模型训练想要达到的状态,不过适度拟合这个词平时真的好少见,在做酷狗音乐的笔试题时还懵逼了一会,居然还真的有这样的说法。 这应该是基础中的基础了,笔试题都做烂了。那就当做今天周末,继续放个假吧…… 过拟合 过拟合的表现 模型在训练集上的表现非常好,但是在测试集、验证集以及新数据上的表现很差,损失曲线呈现一种高方差状态。(高方差指的是训练集误差较低,而测试集误差比训练集大较多) 过拟合的原因 从两个角度去分析

Mrrunsen的博客 869

【单片机课程设计/毕业设计】基于嵌入式技术的室内环境感知与设备联动装置 基于 STM32 的智能家居环境监测与本地控制系统(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

63

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【单片机毕设案例分享】基于嵌入式平台的室内多参数监测与智能执行系统 基于传感器数据的室内环境智能管控硬件系统设计(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

QQ_2876970413的博客 73

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【单片机课设毕设项目】基于嵌入式平台的室内多参数监测与智能执行系统 基于传感器数据的室内环境智能管控硬件系统设计(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

64

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

单片机毕设选题推荐:基于嵌入式单片机的室内温光湿智能管控系统 基于 STM32 的多参数监测与家电自动启停控制系统(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

项目帮 63

计算机单片机毕设实战-基于 STM32 的自动手动双模式环境调控系统设计 基于 STM32 的阈值可调型环境监测与设备驱动装置(012801)

本课题以 STM32F103C8T6 单片机为核心控制器,设计一套室内环境监测与家电智能控制系统。系统通过 DHT11、GL5506 传感器采集环境温湿度与光照数据,利用 OLED 屏幕实时展示采集信息。系统设计自动、手动、阈值设置三种运行模式,支持按键切换工作状态。自动模式下,当环境参数超出设定阈值时,自动驱动继电器开启风扇、空调与 LED 灯,并触发蜂鸣器报警;手动模式下可通过按键自由选中并启停各类设备;阈值模式支持按键增减各项临界数值。

项目帮 73

基于单片机的温控风扇控制

具体功能: 1.DS18B20采集温度,数码管显示当前温度值,采用三极管驱动数码管显示; 2.采用PWM调速的原理来实现风扇速度的控制: 当温度低于温度的下限值时,电机不转, 当温度介于上限和下限之间时电机转速缓慢, 当温度大于上限值时,电机全速转动; 3.三个按键可以设置温度上下限; 4.温度测量范围:0-99.9度;

2401_82402501的博客 197

基本定时器(TIM6/TIM7)

基本定时器最简单,就干一件事:到点了触发中断。定时器本质就是计数器,每个时钟脉冲加1,数到ARR就溢出、产生中断、清0重来。三个核心寄存器:PSC(预分频器):对输入时钟分频CNT(计数器):从0往上数ARR(自动重装载值):数到这个值就溢出,CNT清0,产生更新中断公式:  定时周期 = (PSC+1) × (ARR+1) / 定时器时钟  更新事件频率 = 定时器时钟 / ((PSC+1) × (ARR+1)) 例:TIM6时钟84MHz,要定时0.5秒(2

2401_89890233的博客 283

7-2 按键控制LED流水灯(SDCC + Notepad++ + STC-ISP/普中ISP)

本节基于上节定时器T0设计,实现按键控制LED流水灯。通过配置12MHz晶振下16位定时器模式,初值设为64536(0xFC18),每1毫秒溢出一次,替代原有Delay方法。启用定时器中断,设置TR0启动,TF0标志自动置位触发中断,配合外部按键控制流水灯状态,提升系统实时性与效率。

xunyan6234的博客 92

TMS320F28335 学习笔记(二):系统时钟、PLL 与看门狗

本文系统介绍F28335的时钟架构与看门狗应用,涵盖外部晶振、PLL倍频生成系统时钟(SYSCLKOUT)、高速/低速外设时钟分频配置,以及看门狗的启用、关闭与喂狗机制。强调时钟配置准确性对延时、PWM、通信等外设的重要性,指出常见错误如晶振不匹配、未等待PLL锁定、随意修改PLL或喂狗周期过长等问题,并提供初始化框架与验证方法,帮助开发者正确配置时钟系统,确保程序稳定运行。

2403_83044722的博客 378

代码小白笔记:江科大 51 单片机 LCD1602 课程详解

本文为单片机新手梳理江科大51课程中LCD1602的驱动逻辑,聚焦“看懂代码”而非深究寄存器。通过解析接线、底层函数(延时、写命令/数据)、初始化流程及光标定位,详解字符、字符串、数字(十进制、十六进制、二进制)的显示原理,核心在于理解“RS控制指令/数据”、“地址映射规则”及“数字转字符”的位运算技巧,帮助读者快速上手并自定义显示内容。

2301_81429079的博客 631

MCU复位电路不加单片机可行吗?PCB踩坑记

第一版板子长按偶发不触发,经查为Key脚走线穿越DC-DC电感下方,受开关噪声干扰导致判定失败。改用丽晶微EY407-383329(SOT23-6)专用复位ASIC,硬件实现3秒长按、1秒双路互补脉冲输出,无需MCU参与,省去软件消抖与定时器资源。关键点:Key线避开通路、就近加104P去耦、低有效接法正确、输出极性匹配、RESET上拉可靠、扩流器件靠近输出。全靠硬件实现稳定复位,主控死机仍可工作。建议依8项排查清单验证,量产前索取规格书并打样验证。

ELITECHIP_ECM的博客 282

MCU 启动流程解析:从 SRAM 到 DDR

MCU 的性能瓶颈通常不在 DDR 带宽,而在访问延迟与确定性。因此,关键代码、中断向量、栈以及功能安全数据应放在片内 SRAM;大块传感器数据缓冲、堆和冷数据则放在 DDR。启动流程的核心可以概括为三步:Boot ROM 搬运、Remap 切换、SRAM 执行。

Where there is life, there is hope. 297

HAL库基本定时器框架分析

这部分是在main.c里面调用的,使能定时器外设和中断位。实时真正干活的操作在中断处理函数里进行。流程1 定时器外设初始化和中断配置。流程2 使能定时器中断相关位。流程3 中断处理函数。

tecoes的博客 34
上一篇: 【单片机毕业设计】基于 STC89C52 的环境监测与风扇自动调速系统 基于单片机的温湿度阈值可调风扇控制系统设计(012701)
下一篇: 【单片机毕业设计】基于 STM32 的 OLED 显示智能药盒控制系统开发 基于红外传感的智能用药提醒硬件系统设计(012901)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值