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功能。
编译 qt 界面应用程序
①导入 sdk
sdk 位置在【08-Qt 综合项目开发教程\工具软件\sdk\arm-fsmp1x-linux-gnueabihf_sdk-buildroot.tar.gz】,将源码拷贝到虚拟机中进行解压并进入到工程目录下
②获取应用程序源码
源码位置【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 章节开始操作,去实现我们相应的模块。
05 硬件平台
《环境监测》是一个Linux+Qt的综合项目,硬件平台是华清远见FS-MP1A开发板(主控STM32MP157)
开发板简介
FS-MP1A开发板是华清远见自主研发的一款高品质、高性价比的Linux+单片机二合一的嵌入式Linux教学级开发板,也是ST官方推荐的一款STM32 Linux开发板。
搭配仿真器、显示屏、摄像头、资源扩展板等丰富的扩展模块,可拓展物联网、人工智能等相关技术学习,还可以拓展丰富的项目实战,非常贴合企业当下开发需求,是一款嵌入式Linux入门进阶必备开发板!
配套学习路线推荐