首页/新闻资讯/正文详情

[开源]基于STM32单片机WiFi智能教室设计 Onenet智能教室管理系统 云平台智慧教室监控系统 APP多功能教室设计HK-012

发布时间:2026/9/23 18:36:16 来源:云帆数科 栏目:资讯中心
[开源]基于STM32单片机WiFi智能教室设计 Onenet智能教室管理系统 云平台智慧教室监控系统 APP多功能教室设计HK-012
1、前言本设计以STM32F103C8T6单片机为主控芯片WIFI模块ESP8266-01S作为通信模块连接onenet云平台通过DHT11温湿度传感器采集温度和湿度、MQ-2烟雾传感器检测烟雾浓度是否正常、BH1750光照传感器检测光照数据、火焰传感器检测是否发生火灾OLED屏幕显示当前温度、湿度、烟雾浓度、是否发生火灾和手自动模式。通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围。操作简单易懂手把手教小白完成整套设计UniAPP开发环境搭建非常简单可打包生成手机APP。2、元器件组成本设计由STM32F103C8T6单片机WIFI模块ESP8266-01SOLED屏幕SNR9813语音识别模块JQ8400语音播报模块DHT11温湿度传感器MQ-2烟雾传感器BH1750光照传感器火焰传感器ULN2003步进电机SG90舵机风扇灭火水泵继电器LED电源电路组成组成3、功能简介1、环境采集DHT11温湿度传感器采集温度和湿度、MQ-2烟雾传感器检测烟雾浓度是否正常、BH1750光照传感器检测光照数据、火焰传感器检测是否发生火灾。2、屏幕显示OLED屏幕显示当前温度、湿度、烟雾浓度、是否发生火灾和手自动模式3、阈值设置可设置温度、湿度、烟雾和光照阈值4、火灾检测通过火焰传感器检测是否发生火灾当检测到发生火灾时自动开启灭火器灭火5、温度报警温度大于设置的阈值时语音播报提醒6、湿度报警湿度大于设置的阈值时语音播报提醒7、模式切换可切换选择手动模式和自动模式8、语音识别可通过语音识别切换模式控制窗帘、窗户、风扇和照明的开关9、风扇降温自动模式下当温度大于设置的温度阈值时自动开启风扇降温反正关闭风扇。10、自动照明自动模式下通过光敏传感器检测光照强度当光照强度小于阈值自动点亮LED灯照明当光强度大于阈值自动关闭LED照明灯。11、窗帘控制可通过app控制窗帘开启和关闭12、窗户控制可通过app控制窗户开启和关闭13、远程控制通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围4、设计实现效果哔哩哔哩视频链接https://www.bilibili.com/video/BV1owYu6BEyo/?spm_id_from333.1387.homepage.video_card.click资料分享看文章末尾5、设计原理图6、设计PCB图7、程序设计#include stm32f10x.h #include delay.h #include usart.h #include USART2/usart2.h #include timer.h #include menu.h #include key.h #include modules.h #include oled.h #include usart3.h #include play.h #include voice.h #include adc.h #include mq2.h #include fire.h #include DHT11/dht11.h #include bh1750.h #include led.h #include relay.h #include uln2003.h #include sg90.h /****************洪科单片机工作室******************* *** 破晓单片机 *** 项目:STM32单片机WiFi智能教室 *** BILIBILI:洪科单片机 *** 小红书:洪科单片机 *** 授权IP:洪科单片机 *** 淘宝:洪科单片机 *** 闲鱼:洪科单片机 *** 版本:V01.01 *** MCU:STM32F103C8T6 ******************洪科单片机***********************/ //显示界面 CaiDanJieGouTi KeyTab[SIZE_CAIDAN] { {0 ,0 ,0 ,0 ,0 ,Main_Menu0}, / {1 ,1 ,1 ,1 ,1 ,Main_Menu1}, {2 ,2 ,2 ,2 ,2 ,Main_Menu2}, {3 ,3 ,3 ,3 ,3 ,Main_Menu3}, {4 ,4 ,4 ,4 ,4 ,Main_Menu4}, {5 ,5 ,5 ,5 ,5 ,Main_Menu5}, {6 ,6 ,6 ,6 ,6 ,Main_Menu6}, {7 ,7 ,7 ,7 ,7 ,Main_Menu7}, {8 ,8 ,8 ,8 ,8 ,Main_Menu8}, {9 ,9 ,9 ,9 ,9 ,Main_Menu9}, {10,10,10,10,10,Main_Menu10}, {11,11,11,11,11,Main_Menu11}, {12,12,12,12,12,Main_Menu12}, } ; //传感器变量声明 typedef struct { u8 temp;// u8 humi;// uint16_t smoke;// uint16_t fire;// uint16_t light;// uint16_t yuyin; }SensorModulesValue; typedef struct { uint8_t tempTV;//阈值 uint8_t humiTV;//阈值 uint16_t smokeTV;//阈值 uint16_t lightTV;//阈值 }SensorThresholdValue; typedef struct { uint8_t MODEFlag; uint8_t MOTORFlag; uint8_t MOTORKZFlag; uint8_t RELAY1Flag; uint8_t RELAY2Flag; uint8_t LEDFlag; uint8_t SG90Flag; uint8_t BEEPFlag; uint8_t BJ1Flag; uint8_t BJ2Flag; uint8_t BJ3Flag; uint8_t BJ4Flag; uint8_t BJ5Flag; uint8_t BJ6Flag; uint16_t sendcount; }DriveFlag; int main(void) { delay_init(); TIM3_Int_Init(499,7199);//1MS系统定时 OLEDGUI_Config(); //OLED初始化 OLEDGUI_DispString(30,0,Init...,16,1); key_Init();//按键初始化 Adc_Init();//Adc初始化 MQ2_Init();//初始化MQ2 FIRE_Init(); DHT11_Init();//DHT11初始化 GY_Init(); Single_Write_BH1750(0x01); Single_Write_BH1750(0x01); Single_Write_BH1750(0x10); delay_ms(100); led_Init();//led初始化 relay_Init();//relay初始化 ULN2003_IO_Init();//ULN2003初始化 SG90_Init(); SG90_SetAngle(0); delay_ms(100); uart2_init(115200); delay_ms(100); uart1_init(115200); delay_ms(100); OLEDGUI_DispString(0,0,Hardware init OK,16,1); //WiFi初始化 ESP8266_Init(); //初始化ESP8266 OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Connect MQTTs Server...,16,1); while(ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT)) DelayXms(500); OLEDGUI_DispString(0,16,Connect MQTT Server Success,16,1); DelayXms(500); OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Device login ...,16,1); while(OneNet_DevLink()) //接入OneNET { OLEDGUI_DispString(0,32,CONNECT,16,1); ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT); DelayXms(500); OLEDGUI_DispString(0,32,CONNECT,16,1); } OneNET_Subscribe(); OLEDGUI_Clear(); //OLED清屏 SensorThresholdSet();//阈值设置 SensorDataGet(); //获取传感器数据 OLEDGUI_Clear(); while(1) { //获取按键值 key_scan(); //进入菜单界面显示处理数据 GetKeylnput(Keystatus); //获取传感器数据 SensorDataGet(); delay_ms(100); } }8、设计包含内容

相关推荐

sed命令最佳实践:5个高频坑点与高效替代方案深度对比
sed命令最佳实践:5个高频坑点与高效替代方案深度对比

sed命令最佳实践:5个高频坑点与高效替代方案深度对比 官方文档翻了三遍还是没看懂 -i 参数到底怎么加空格?别急,这不是你的问题,是 GNU sed 和 BSD sed 的文档写得确实让人头大。很多老鸟都栽在同一个地方:在 macOS… · 2026/9/23 18:36:16

PHPStan 错误标识符 new.noConstructor 详解:无构造函数类实例化传参的检测与修复
PHPStan 错误标识符 new.noConstructor 详解:无构造函数类实例化传参的检测与修复

开发工具代码质量静态分析 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 点击查看 免费下载 new.noConstructor 是 PHPStan 在检测到"实例化一… · 2026/9/23 18:36:16

2026最新RedHat Linux 9.0面试通关指南:API变更与实战解析
2026最新RedHat Linux 9.0面试通关指南:API变更与实战解析

2026最新RedHat Linux 9.0面试通关指南:API变更与实战解析 版本升级后 API 全变了,这是无数后端工程师在从 RHEL 8 迁移到 RHEL 9 时踩下的第一个大坑。很多老手习惯用的 systemctl… · 2026/9/23 18:36:10

避坑指南:员工聘用合同范本图解原理与3大实操雷区
避坑指南:员工聘用合同范本图解原理与3大实操雷区

避坑指南:员工聘用合同范本图解原理与3大实操雷区 复制来的合同模板直接发出去,第二天就被法务打回来,甚至被员工投诉?这种“拿来主义”在HR圈子里太常见了。很多人以为合同就是套个格式,改个名字和日期就能用,结果因为一个条款缺失或者表述模糊,导… · 2026/9/23 19:08:52

Hi3559A上YOLOv5 C源码移植实战:NNIE硬件约束与嵌入式部署
Hi3559A上YOLOv5 C源码移植实战:NNIE硬件约束与嵌入式部署

简介:本资源是面向计算机、人工智能、物联网等专业学生与工程师的嵌入式AI实战项目,聚焦海思Hisi3559A平台上的YOLOv5算法C语言级移植与部署,解决边缘端目标检测模型落地难、环境适配复杂等实际问题。压缩包共834个文件,涵盖358个… · 2026/9/23 19:08:45

Chalice 中间件(Middleware)完全指南:自定义 Lambda 请求与响应生命周期的标准做法
Chalice 中间件(Middleware)完全指南:自定义 Lambda 请求与响应生命周期的标准做法

后端ServerlessCLI 【免费下载链接】chalice Python Serverless Microframework for AWS 项目地址: https://gitcode.com/gh_mirrors/ch/chalice 点击查看 免费下载 导读 本文以 AWS Chalice 官方中间件文档为骨架,系统讲解 Chalice 中间件的定义、注册… · 2026/9/23 19:08:39

电脑和电脑怎么传文件保姆级教程:3秒搞懂底层原理,面试不再慌
电脑和电脑怎么传文件保姆级教程:3秒搞懂底层原理,面试不再慌

电脑和电脑怎么传文件保姆级教程:3秒搞懂底层原理,面试不再慌 面试被问“两台电脑传文件底层是怎么跑的”,90%的人只会说“复制粘贴”或“用U盘”。面试官皱眉,你大脑一片空白。别慌,这篇保姆级教程不讲虚的,直接扒开系统底层,从网络协议到内存拷… · 2026/9/23 19:08:39

5分钟搞定高少星环境配置,保姆级教程避坑指南
5分钟搞定高少星环境配置,保姆级教程避坑指南

5分钟搞定高少星环境配置,保姆级教程避坑指南 版本升级后 API 全变了,是不是让你对着文档发呆,代码报错连成串?别慌,这份 保姆级教程 就是为你准备的,专治各种“环境依赖地狱”和“版本不兼容”的疑难杂症。很多转岗过来的小伙伴,尤其是从… · 2026/9/23 19:08:32

MemOS 检索记忆(Search Memory)接口深度解析:基于 Readable Cubes 的跨 Cube 多租户 RAG 召回
MemOS 检索记忆(Search Memory)接口深度解析:基于 Readable Cubes 的跨 Cube 多租户 RAG 召回

人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-plugin 【免费下载链接】MemOS Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support. 项目… · 2026/9/23 19:08:26

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码