毕业设计竞赛选题推荐 | 嵌入式Linux应用之环境监测项目实战(含文档及源码)

 01 引言

在当今快速发展的科技时代,环境监测已经成为众多领域中不可或缺的一部分。从城市规划到工业生产,从农业管理到健康生活,环境监测技术的应用无处不在,为人类提供了对自然环境变化的实时洞察,帮助我们做出更加科学合理的决策。

环境监测的核心在于通过各类传感器收集温度、湿度、光照、空气质量、气体成分、水质和噪声等数据,并传输至嵌入式终端设备进行处理和分析。嵌入式终端设备作为系统的“大脑”,不仅负责读取传感器数据,还能够根据预设算法执行智能判断,触发相应的控制命令或预警机制,从而实现自动化管理和优化资源配置。

举例来说,在智慧农业领域,土壤湿度传感器和光照传感器被广泛应用于灌溉系统和光合作用辅助系统,在智能家居环境中,温湿度传感器与空气净化器相结合,可以根据室内空气状况自动调节工作模式,保持舒适的居住环境;而在工业场景中,有害气体检测传感器能够及时发现并报告异常排放,防止环境污染事件的发生。

02 项目介绍

《环境监测项目》是一个智能传感器控制系统,项目实战平台是基于华清远见自主研发的嵌入式Linux教学级开发板——FS-MP1A开发板。该开发板主控为STM32MP157,集成2个Cortex-A7核和1个Cortex-M4核。A7核上可以跑Linux操作系统,在本项目中主要是Linux+Qt应用开发,M4核要通过A7核启动,在本项目里,M4主要是用于实现对传感器的控制和数据读取。

项目可以通过软件指令轻松管理传感器,让它们按照我们的需求工作。M4芯片收集传感器的数据,并将这些信息显示在屏幕上,让我们一目了然。而且,系统还能根据我们设定的条件自动做出反应,比如温度高了就自动开风扇,让传感器变得更加智能和方便。

03 项目涉及技术点

①通过STM32CubeIDE,配置A7启动M4的程序

②通过虚拟串口进行下发消息,实现功能

③接收消息,呈现到UI界面上

04 项目实现

项目总体设计

以下内容主要讲解,如何使用我们提供的项目源码,将项目在开发板上运行起来。

  • M4部分功能概述

M4 核部分主要实现两个功能,首先可以接收 A7 核发送的指令,根据指令控制风扇、蜂鸣器以及 LED灯工作,同时 M4 部分可以采集环境光、温湿度传感器数据,将采集数值打包成 JSON 字符串然后发送给 A7。另外,通过按键可以控制数码管显示采集的温湿度、环境光数据。

  • cubeIDE功能配置

首先打开cubeIDE,创建一个新工程,进入cubeMX 配置界面,因为需要实现A7与M4 通信,需要配置IPCC与OPENAMP部分,如下图所示:

配置I2C1用于采集温湿度、环境光传感器数据,这里分别选择PF14、PF15 引脚用作I2C1_SDA 和I2C1_SCL功能。

因为需要用到数码管显示采集的传感器数值,这里通过 SPI 进行控制,使用 SPI 默认引脚,分别对PE11、PE12、PE13 和 PE14 配置为 SPI4_NSS、SPI4_SCK、SPI4_MISO 和 SPI4_MOSI。切换到 SPI4 标签,勾选给“M4”,“Mode”选择“Full-Duplex-Master”,使用硬件片选,选择“Hardware NSS Output Signal”,其配置如下图所示。

扩展板 LED 灯对应的GPIO 引脚分别为PE8、PE10、PF10,这里左键点击设置为GPIO_Output

可以通过按键中断控制数码管显示的数值,这里配置扩展板的按键为 PF9,如下所示

另外,这里还需要对刚才配置的 I/O 引脚设置“ Pin Reservation”给“ Cortex-M4”,否则 STM32CubeMX不会生生成 GPIO 初始化相关代码。具体操作:在刚才选择的引脚上,鼠标右键选择“ Pin Reservation”->“ Cortex-M4”。

打开GPIO 标签,对 PF9 引脚进行配置

实验中还用到了蜂鸣器与风扇,查看原理图得,对应管脚分别为 PB6 与 PE9,分别配置为 TIM4 与TIM1 功能,在本次实验中,系统默认时钟频率为 64MHz,TIM 配置如下所示

如果实现开发板与电脑串口通信,这里可以通过 485 总线实现,即配置UART5,如下所示

另外,在本次实验中,A7 与 M4 数据通信和数码管显示相当于同时运行,可以通过配置 FreeRTOS 实现多任务运行。切换到中间件“Middleware”的“FREERTOS”,默认自动勾选给 M4 了,然后接口“Interface”选择“CMSIS_V2”。为了运行其他任务,这里需要切换到“Tasks and Queues”标签,可以看到看到默认有个“defaultTask”任务,我们点击“Add”再新增一个任务,如图所示

上述配置完成以后,还要注意一点,因为用到 FreeRTOS,这里我们不能为每一种外设生成头文件,如下所示

配置完成以后保存,然后生成初始化代码,其间会出现如下提示框,选择“Yes”

编译 qt 界面应用程序

①导入 sdk

sdk 位置在【08-Qt 综合项目开发教程\工具软件\sdk\arm-fsmp1x-linux-gnueabihf_sdk-buildroot.tar.gz】,将源码拷贝到虚拟机中进行解压并进入到工程目录下

重定向 sdk 位置

②获取应用程序源码

源码位置【08-Qt 综合项目开发教程\08-环境监测项目\01-环境监测项目配套示例代码\7 寸屏幕程序源码】中的 8_EnvironmentalTest 文件,将源码拷贝到虚拟机中进行解压并进入到工程目录下(这里以 7 寸屏幕为例)

③打开 qt 工程编译

在 qt 中导入 8_EnvironmentalTest 文件中的.pro 文件,导入完成,如下图所示:

选择好自己配置的编译器,点击如图所示左下角图标进行编译。

编译完成会生成编译好的文件,和工程文件在相同目录下。

④拷贝可执行文件

通过有线直连的方式将路由器和开发板用网线连接,电脑连接路由器的 wifi,让开发板和电脑是同一网段。

首先我们在开发板上使用 ifconfig 命令获得 ip

可以看到我的开发板 ip 为 192.168.3.18,再通过 scp 命令将可执行文件拷贝到开发板当中,将命令中的 ip 换为你的开发板 ip

传输成功后会在开发板的【~】目录下看到可执行文件

应用程序运行

使用下面的命令执行可执行程序

可以看到下面的界面。然后我们可以参照 2.4.1 章节开始操作,去实现我们相应的模块。

除了上面如何将项目在板子上跑起来外,项目说明文档内容还包括项目功能演示、项目源码分析以及SQLite安装及系统命令等,详细项目文档目录如下图。

后台私信小雯老师(备注:环境监测),免费领取《环境监测》项目完整文档、项目源码。

05 硬件平台

《环境监测》是一个Linux+Qt的综合项目,硬件平台是华清远见FS-MP1A开发板(主控STM32MP157)

开发板简介

FS-MP1A开发板是华清远见自主研发的一款高品质、高性价比的Linux+单片机二合一的嵌入式Linux教学级开发板,也是ST官方推荐的一款STM32 Linux开发板。

搭配仿真器、显示屏、摄像头、资源扩展板等丰富的扩展模块,可拓展物联网、人工智能等相关技术学习,还可以拓展丰富的项目实战,非常贴合企业当下开发需求,是一款嵌入式Linux入门进阶必备开发板!

FS-MP1A开发板配套丰富的学习资源,包括开发教程、视频课程及Linux+Qt综合项目案例。可实战“音乐播放器、智慧家庭、智能工业电表、智能出行助手、智能猫眼、环境监测、智能安防、智能语音识别”等10余个项目案例,涉及家居、医疗、农业多种应用方向,在案例中使用了多种物联网和嵌入式技术,包括Qt开发、linux应用开发、linux驱动开发、物联网云端接入、MQTT协议、json字符串等知识点。“硬件+项目”的优势,也使其广泛应用于高校教学、学生毕设以及个人开发学习。 

配套学习路线推荐 

嵌入式linux开发建议从应用层开始学起,因为容易快速上手并获得成就感。这个方向主要是依靠经验,不断地积累不同行业的项目开发经验,会让你在职场上更有优势。

资源下载: