毕业设计,基于STM32空气质量监测系统(实物+资料+APP)!

发布时间:2024-11-23 00:20

科技环保:空气质量监测系统实时监控污染情况 #生活知识# #科技生活# #科技改变生活# #科技环保#

1, 前言

本文将给大家介绍一个项目,基于STM32空气质量监测系统,希望大家有所收获,拉到文末可以领取资料哈~
产品成品图

2, 器件准备

STM32F103C8T6单片机使用DHT11模块检测温湿度使用MQ-7传感器检测一氧化碳浓度使用BH1750传感器检测光照强度使用GP2Y1014AU传感器检测PM2.5浓度OLED显示温度,湿度,一氧化碳浓度,光照强度等数据一氧化碳浓度、PM2.5浓度超标时蜂鸣器报警,同时打开风扇通风ESP8266模块实现 WIFI通讯数据传输,wifi通讯需借助一个有网络wifi热点有APP可实时查看传感器数据,控制风扇,蜂鸣器和LED

使用的模块

下面是APP的截图,有显示界面,也可以远程控制风扇,蜂鸣器和LED。数据是通过onenet平台对数据进行收集的,而界面也是可以动态根据需求进行修改的。

在这里插入图片描述

3, 原理图

原理图使用立创EDA平台进行制作的,这个平台很适合新手入门。而且每月还有免费打板次数,简直不要太爽!
在这里插入图片描述

4, 示例代码

由于代码内容过多,给大家展示部分代码。

1.main文件

#include "led.h" #include "delay.h" #include "LCD1602.h" #include "stmflash.h" #include "adc.h" #include "OLED_I2C.h" #include "usart.h" #include "timer.h" #include "MHZ14.h" #include "dht11.h" #include "PM2.h" #include "MQ.h" #include "bh1750.h" //网络设备 #include "net_device.h" //协议文件 #include "onenet.h" #include "fault.h" //C库 #include <string.h> #include <stdlib.h> #include <stdio.h> u16 MQ2,PM25,light,CO;//烟雾浓度 //extern unsigned short CO2;//二氧化碳浓度 u8 mode = 0;//模式:0自动模式 根据环境控制风扇 1:手动控制风扇 u8 temp,humi,water; //数据流 DATA_STREAM dataStream[] = {{"Mode", &mode,TYPE_UCHAR, 1},{"LED1", &gpioStatus.Led1Sta, TYPE_BOOL, 1},{"Beep", &gpioStatus.BeepSta, TYPE_BOOL, 1},{"JD0", &gpioStatus.Jd0Sta, TYPE_BOOL, 1}, //{"CO2", &CO2,TYPE_USHORT, 1},{"CO", &CO,TYPE_USHORT, 1},{"MQ2", &MQ2,TYPE_UCHAR, 1}, //{"water", &water,TYPE_UCHAR, 1},{"light", &light,TYPE_UCHAR, 1},{"PM25", &PM25,TYPE_UCHAR, 1},{"temp", &temp,TYPE_UCHAR, 1},{"humi", &humi,TYPE_UCHAR, 1},{"errType", &faultTypeReport, TYPE_UCHAR, 1},}; unsigned char dataStreamLen = sizeof(dataStream) / sizeof(dataStream[0]); int main(void) {u16 adcx;char buf[20];unsigned char *dataPtr;unsigned int runTime = 0;_Bool sendFlag = 0;unsigned int Num = 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级delay_init();//延时函数初始化 LED_Init();//初始化与控制设备连接的硬件接口uart_init(115200);//串口初始化为9600DHT11_Init();BH1750_Init(); //鍒濆鍖朾h1750;printf( "开始\r\n");I2C_Configuration();OLED_Init();OLED_Fill(0x00); //OLED_ShowCN(0,2,4);//烟雾 //OLED_ShowCN(16,2,5); //OLED_ShowStr(32,2,":--%",2);OLED_ShowCN(0,0,17);//温度OLED_ShowCN(16,0,19);OLED_ShowStr(32,0,":--C",2);OLED_ShowCN(64,0,18);//湿度OLED_ShowCN(80,0,19);OLED_ShowStr(96,0,":--%",2);OLED_ShowCN(0,2,9);//光照强度OLED_ShowCN(16,2,21);OLED_ShowCN(32,2,22);OLED_ShowCN(48,2,19);OLED_ShowStr(64,2,":--Lux",2);OLED_ShowCN(0,4,20);//一氧化碳OLED_ShowCN(16,4,1);OLED_ShowCN(32,4,2);OLED_ShowCN(48,4,3);OLED_ShowStr(64,4,":--ppm",2); //OLED_ShowStr(0,4,"Water",2); //OLED_ShowStr(40,4,":--mm",2);OLED_ShowStr(0,6,"PM2.5",2);OLED_ShowStr(40,6,":--ug/m^3",2);

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 2. onenet模块

//单片机头文件 #include "stm32f10x.h" //网络设备 #include "net_device.h" //协议文件 #include "onenet.h" #include "fault.h" //硬件驱动 #include "usart.h" #include "delay.h" #include "led.h" #include "OLED_I2C.h" #include "timer.h" //图片数据文件 //#include "image_2k.h" //C库 #include <string.h> #include <stdlib.h> #include <stdio.h> EdpPacket *send_pkg;//协议包 ONETNET_INFO oneNetInfo = {"1083535530", "vJgsIms24zojT1Y0ylvhfz=nyUg=", 0, 0, 0, 0}; extern DATA_STREAM dataStream[]; /* ************************************************************ *函数名称:OneNet_DevLink * *函数功能:与onenet创建连接 * *入口参数:devid:创建设备的devid *auth_key:创建设备的masterKey或apiKey * *返回参数:无 * *说明:与onenet平台建立连接,成功或会标记oneNetInfo.netWork网络状态标志 ************************************************************ */ void OneNet_DevLink(const char* devid, const char* auth_key) {unsigned char *dataPtr;printf( "OneNet_DevLink\r\n" "DEVID: %s, APIKEY: %s\r\n" , devid, auth_key); #if 1send_pkg = PacketConnect1(devid, auth_key);//根据devid 和 apikey封装协议包 #elsesend_pkg = PacketConnect2(devid, auth_key);//根据产品id 和 鉴权信息封装协议包 #endifNET_DEVICE_SendData(send_pkg->_data, send_pkg->_write_pos);//上传平台dataPtr = NET_DEVICE_GetIPD(250);//等待平台响应if(dataPtr != NULL){oneNetInfo.netWork = OneNet_EDPKitCmd(dataPtr);//解析数据}DeleteBuffer(&send_pkg);//删包if(oneNetInfo.netWork)//如果接入成功{printf( "Tips:NetWork OK\r\n");oneNetInfo.errCount = 0;NET_DEVICE_Set_DataMode(DEVICE_DATA_MODE);//设置为数据收发模式}else{printf( "Tips:NetWork Fail\r\n");if(++oneNetInfo.errCount >= 5)//如果超过设定次数后,还未接入平台{oneNetInfo.netWork = 0;faultType = faultTypeReport = FAULT_NODEVICE;//标记为硬件错误}} }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596

5, 应用场景

这个基于STM32的空气质量检测系统的应用场景相当广泛,尤其是在对室内空气质量要求较高的场所,具体可能包括:

智能家居环境:在家庭环境中,它可以作为智能家居系统的一部分,实时监测家中的空气质量,并根据一氧化碳浓度、PM2.5浓度等指标自动调整空气净化器、新风系统或智能窗户等设备的工作状态,从而确保家庭成员呼吸到健康、清新的空气。办公室和会议室:在封闭的办公环境中,空气质量同样重要。该系统可以实时检测空气质量,并在超标时自动开启通风设备,避免员工因空气质量不佳而感到不适,提高工作效率。学校和教育机构:在教室、图书馆等场所,学生的健康和学习效率都与空气质量息息相关。安装该系统可以确保学生在一个舒适、安全的环境中学习和生活。博物馆和艺术品展馆:在这些对空气质量要求较高的场所,该系统可以实时监测并控制空气质量,避免空气中的污染物对文物和艺术品造成损害。工业车间和仓库:在一些可能存在有毒有害气体或粉尘的工业车间和仓库中,该系统可以作为安全监测系统的一部分,及时发现并处理危险情况,确保工人的安全和生产的顺利进行。公共场所:如商场、医院、酒店等公共场所,人流量大,空气质量容易受到影响。安装该系统可以实时监测并改善空气质量,提高顾客的舒适度和满意度。

=======================================

6,资料领取

资料可以点击链接进行获取:免费领取单片机资料

在这里插入图片描述

网址:毕业设计,基于STM32空气质量监测系统(实物+资料+APP)! https://www.yuejiaxmz.com/news/view/200249

相关内容

基于STM32开发的智能空气质量监测系统
基于 STM32 空气质量检测装置设计
基于STM32的智能家居环境监测与控制系统毕业设计
基于stm32室内空气质量监测
基于STM32的宠物远程投喂和监测系统设计
基于STM32单片机室内环境检测空气质量PM2.5检测报警系统
基于stm32的家庭安全监测系统
STM32毕业设计——基于STM32+MQTT+WiFi技术的智能家居系统设计与实现(毕业论文+程序源码)——智能家居系统
基于stm32的室内空气质量检测的意义
基于Lora通讯加STM32空气质量检测WIFI通讯

随便看看