当前位置: 首页 > news >正文

STM32项目之环境空气质量检测系统软件设计

目录

  • 前言
  • 一、软件需求概述
  • 二、需求实现思路
    • 1.软件开发工具准备
    • 2.温湿度实时监测功能
    • 3.空气质量实时监测功能(目前硬件没有买该模块,暂未实现)
    • 4.实时时间功能
    • 5.视觉、听觉报警功能
    • 6.WIFI云平台连接,远程查看数据功能(待完成)
    • 7.按键与UI交互功能
  • 总结
  • 功能演示视频


前言

去年闲着没事想做一个环境空气质量检测系统,硬件和3D外壳早就做好了,但是由于工作原因,一直没有抽出时间来写程序,只有一点点进行,最近终于有时间完善该项目了,本文主要分享关于该项目的软件设计思路介绍。


硬件部分可参考我去年的设计:STM32项目之环境空气质量检测系统硬件设计

一、软件需求概述

  • UI界面需求
    包含状态栏、两个主界面、一个设置界面:
    状态栏:显示时间(精确到分)、WIFI链接状态、SD卡插入状态、电池电量等。
    主界面1:显示温湿度、TVOC、CH2O、CO2等。
    主界面2:显示年月日、星期、时间(精确到秒)。
    设置界面:时间、日期、背光、静音开关、wifi开关、字库更新等设置内容。

  • 功能需求
    按键与UI交互功能;
    温湿度实时监测功能;
    空气质量实时监测功能;
    实时时间功能;
    WIFI云平台连接,远程查看数据功能;
    视觉、听觉报警功能;

二、需求实现思路

1.软件开发工具准备

STM32CubeMx、Keil5、STLINKV2、示波器/逻辑分析仪、串口调试助手等;

2.温湿度实时监测功能

设计思路:温湿度模块使用的是SHT20,需要准备SHT20的驱动程序,网上关于SHT20的驱动程序一搜一大把,随便找一个根据自己的硬件设计修改对应引脚即可。
数据处理:温湿度数据采集后需要根据实际情况进行滤波设计、由于正常情况下环境温湿度不会变化不特别快,所以温度读取的间隔时间可以拉长,最终结合滤波得出一个稳定的温湿度值;这里我使用采用均值滤波方式。
数据校准:可根据现有的温湿度计进行校准。

3.空气质量实时监测功能(目前硬件没有买该模块,暂未实现)

设计思路:空气质量检测使用的事SGP30模块,该模块可以采集TVOC、CH2O、CO2等数据非常适合我的需求,网上也有SGP30的驱动程序可以参考。
数据处理:SGP30采集的数据也需要进行滤波。
数据校准:根据现有的气体质量测量计进行校准。

4.实时时间功能

设计思路:使用单片机内部自带的RTC,虽然精确度不高,但是完全够用,驱动就不细说了,自己去网上找一个。
数据校准:可根据网络时间校准或者手动设置时间校准。

5.视觉、听觉报警功能

设计思路:视觉为显示提示、听觉为声音提示,需完成LCD驱动、蜂鸣器驱动。

6.WIFI云平台连接,远程查看数据功能(待完成)

设计思路:把ESP8266当成副单片机使用,而不是当成WIFI模块,ESP8266完成单独的程序与云平台对接,然后ESP8266通过串口与主STM32单片机进行通信,完成主单片机采集的数据传输到ESP8266再上传到平台,这样做可控制功耗。

7.按键与UI交互功能

设计思路:上下按键切换主界面1、主界面2,在主界面可按确认按键进入设置界面、在设置界面可通过上下、确认、返回按键进行对应设置操作,设置界面通过返回按键返回主界面。

总结

根据需求实现功能,无需重复造轮子,适当的可以做一下搬运工,学会借鉴驱动程序,但功能程序需要自己完成,按照以上设计思路就能完成该项目,当然本文只适合有点基础的同学。

功能演示视频

目前项目还未全部完成,只演示部分功能:

主界面演示

设置界面背光设置演示

设置界面时间日期设置演示

使用SD卡进行字库更新演示

http://www.lryc.cn/news/509794.html

相关文章:

  • 重温设计模式--原型模式
  • 输变电资质分一级、二级,新办从二级开始,三级已取消
  • 浏览器http缓存问题
  • 结构化Prompt:让大模型更智能的秘诀
  • 威联通NAS部署openwrt软路由保姆级教程附镜像文件
  • 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  • windows和mac共享文件夹访问教程
  • 【PPTist】网格线、对齐线、标尺
  • Leetcode3218. 切蛋糕的最小总开销 I
  • ECCV-2024 | 指令不够用、大模型来生成!BEVInstructor:基于BEV感知和大模型的视觉语言导航指令生成
  • 【UE5.3.2 】引擎中安装RiderLink插件
  • 【HarmonyOS 5.0】第十二篇-ArkUI公共属性(一)
  • 京准电钟解读,NTP网络授时服务器如何提升DCS系统效率
  • 4.银河麒麟V10(ARM) 离线安装 MySQL
  • Redis四种模式在Spring Boot框架下的配置
  • Golang的性能监控指标
  • 基于GAN和DenseNett组合的调制信号分类网络(源码)
  • uniapp 项目基础搭建(vue2)
  • 中关村科金外呼机器人智能沟通破解营销难题
  • 【Linux】处理用户输入
  • flask后端开发(1):第一个Flask项目
  • Highcharts 饼图:数据可视化利器
  • 黑马商城项目—服务注册、服务发现
  • 【ES6复习笔记】Map(14)
  • 15-makefile
  • yii2 手动添加 phpoffice\phpexcel
  • 使用 AI 辅助开发一个开源 IP 信息查询工具:一
  • HNUST-数据分析技术课堂实验
  • P3456 [POI2007] GRZ-Ridges and Valleys BFS-连通块思想
  • WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型