QT的温湿度显示系统

时间:2024-03-27 07:44:12
大家好,这里是石侃侃的博客,欢迎前来讨论

这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用


基于单片机系统的温湿度监测系统构成框图如图2-1所示。

QT的温湿度显示系统

图2-1  系统构成框图

该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一个文本框,记录了程序执行开始所有的温度,湿度数据。

其次,我们在设计中采用了QT作为界面GUI开发,QT以界面优美,代码优雅而广为人知,Qt是一个1991年由QtCompany开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展以及一些宏,Qt很容易扩展,并且允许真正地组件编程。

QT的温湿度显示系统

 

图2-2  界面功能图

实时显示功能

在设计方面贯彻了驱动和应用分层的原则,在加载了DHT11,已经注册DHT11设备的基础上,进行GUI  APP设计 。

在app设计中通过调用定时器实现100ms的界面刷新速度,在读取设备信息后,把当前时间的温度,湿度参数显示到GUI界面的第一行。

历史最高值设置

在实时监测当前温度与湿度的基础上,记录上一次的温度与湿度数据并进行比较,以便更新最高值数据到用户界面。

查看历史数据

   在文本框中存储系统的每一次接收到的温度和湿度数据,以供用户查看,可以通过FTP服务将数据传送到电脑。

温湿度监控系统的工作过程

整个温湿度监控系统的工作过程如下:单板上电首先执行BootLoader,初始化RAM、串口,检测处理器类型,调用 Linux内核映像。

启动kernel,创建异常向量表和初始化中断处理函数,初始化系统核心进程调度器和时钟中断处理机制;初始化串口控制台(serial-console);ARM-Linux在初始化过程中一般都会初始化一个串口做为内核的控制台,这样内核在启动过程中就可以通过串口输出信息以便开发者或用户了解系统的启动进程。创建和初始化系统cache,为各种内存调用机制提供缓存,包括;动态内存分配,虚拟文件系统(VirtualFile System)及页缓存。初始化内存管理,检测内存大小及被内核占用的内存情况;初始化系统的进程间通信机制(IPC)。

启动文件系统,文件系统启动QT应用程序,运行test。

这是用户可以通过界面观察到当前和历史的温度湿度数据,并且通过触摸屏滑动滚动条查看历史信息。断电程序结束。

根据上述内容的描述,先进行主程序流程图的构思:

主程序设计流程图如图4-2所示:

                                                             QT的温湿度显示系统

图 4-2 主程序设计流程图

    首先我们进行系统软件的设计,上图是主程序流程图设计,进行系统初始化,然后读取传感器数据,对数据进行相应处理,得到历史最高值,在进行数据的保存操作,其次进行计时处理,最后是显示处理,每0.1S刷新一次界面。从读取数据到显示处理是一个循环的过程,进行显示处理判断后,来回反复地进行读取功能处理。
资源链接:https://download.csdn.net/download/zxpcus/10280117