0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

华清远见工控 2024-12-23 10:50 次阅读

01 引言

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

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

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

02 项目介绍

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

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

wKgZO2do0AaAH_MdAABatCNmd4g62.jpeg

03 项目涉及技术点

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

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

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

04 项目实现

项目总体设计

wKgZO2do0AaABsC-AAC1lxDCgeY376.png

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

  • M4部分功能概述

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

  • cubeIDE功能配置

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

wKgZO2do0AeAKiS4AAHd11Q2GM0084.png

(配置 IPCC)

wKgZPGdo0AeAUWrqAAIrMqsmExA854.png

(配置OPENAMP)

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

wKgZPGdo0AeAbibBAAImkEpNsqY096.png

(配置 I2C1)

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

wKgZO2do0AeAX11LAAJYuT86KpI790.png

(配置SPI4)

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

wKgZPGdo0AeADuTCAAQtassoXIQ158.png

(配置引脚为输出)

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

wKgZO2do0AeALzqNAAQTQp_F4sw761.png

(配置外部中断)

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

wKgZO2do0AmAalLyAADBszrSSTU366.png

(选择Cortex-M4)

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

wKgZPGdo0AeAWEeyAAIFBgTDMt8784.png

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

wKgZO2do0AeALLguAAKBUpIN5Fw256.png

(配置 TIM4)

wKgZPGdo0AeAfAVhAAJYJuBxPB0633.png

(配置 TIM1)

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

wKgZPGdo0AeAB04tAAGqDxS3_oE099.png

(配置 UART5)

wKgZO2do0AiANgTbAABHhVNiCd0150.png

(配置 UART5)

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

wKgZO2do0AiAQNwDAAIO8y5xBPs384.png

(配置 FreeRTOS)

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

wKgZO2do0AiAZIkiAABafls0Iuo891.png

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

wKgZPGdo0AiAflU6AAA56RXirdc954.png

编译 qt 界面应用程序

①导入 sdk

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

wKgZO2do0AiAAZnJAAASazacCbo406.pngwKgZPGdo0AiADJGfAAAsHlHveO0691.png

(示例图)

重定向 sdk 位置

wKgZPGdo0AiAYE5rAAAHHtf_qm0306.png

获取应用程序源码

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

wKgZO2do0AiAIp3iAAAQ8EBY5N8880.png

打开 qt 工程编译

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

wKgZPGdo0AmAaObRAAMvItipmo0341.png

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

wKgZPGdo0AiAOAjlAABhB2wvRvI791.png

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

wKgZO2do0AiAHtPXAABL26jX-74473.png

(查看 build 文件)

wKgZPGdo0AiADE1MAADAv1eO1-E430.png

(查看 build 文件)

拷贝可执行文件

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

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

wKgZO2do0AmAMl8LAADd8w3pYEw257.png

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

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

wKgZPGdo0AmABfo8AAAZyWMAPdE377.png

(示例图)

应用程序运行

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

wKgZO2do0AmAIfsxAAAZSmzkA5Q855.pngwKgZPGdo0AmAHP3fAABoV8KiFsU261.png

(运行可执行程序)

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

wKgZPGdo0AmAZSMSAAMm7TNMLSA000.png

(示例图)

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

wKgZO2do0AmAJvxPAAJOExNajYA14.jpeg

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

05 硬件平台

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

开发板简介

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

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

wKgZPGdo0AmAHnvPAAJzoqvEfCo910.png

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

配套学习路线推荐

wKgZO2do0AqAaWpsAAJmmDgBodw73.jpeg

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

wKgaoWc8PGiAea6SAACAtA6-hks792.png

对于初学者,在找工作前,也可以多做一些项目案例练手,在实战中去理解并应用技术。有精力的话,最好可以基于我们的开发板去拓展一些功能更丰富的项目,做更多技术上的创新拓展,去参加一些竞赛,DIY一些更接近实际产品的项目,这样的经历,也会为你的简历及面试加分不少。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19111

    浏览量

    304841
  • Linux
    +关注

    关注

    87

    文章

    11296

    浏览量

    209348
  • 监测
    +关注

    关注

    2

    文章

    3598

    浏览量

    44509
  • 毕业设计
    +关注

    关注

    7

    文章

    226

    浏览量

    15493
收藏 人收藏

    评论

    相关推荐

    毕业设计竞赛选题推荐 | 嵌入式Linux用之智能猫眼项目实战文档源码

    01引言在智能家居日益普及的今天,智能猫眼作为一项新兴的安全监控解决方案,正逐渐成为家庭和商业环境中的重要组成部分。它不仅继承了传统猫眼的基本功能,还融合了现代通信技术、图像处理技术以及
    的头像 发表于 12-23 14:12 64次阅读
    <b class='flag-5'>毕业设计</b><b class='flag-5'>竞赛</b><b class='flag-5'>选题</b>推荐 | <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>应<b class='flag-5'>用之</b>智能猫眼<b class='flag-5'>项目</b><b class='flag-5'>实战</b>(<b class='flag-5'>含</b><b class='flag-5'>文档</b>及<b class='flag-5'>源码</b>)

    【毕设项目参考】嵌入式Linux 10+项目推荐,附项目文档/源码/视频

    又是一年毕设季,针对即将开始毕业设计的大学生,我们汇总了10+嵌入式linux项目,供同学们参考。这些项目覆盖了多个领域,希望可以为同学们提
    的头像 发表于 11-19 15:21 442次阅读
    【毕设<b class='flag-5'>项目</b>参考】<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> 10+<b class='flag-5'>项目</b>推荐,附<b class='flag-5'>项目</b><b class='flag-5'>文档</b>/<b class='flag-5'>源码</b>/视频

    入门?毕设?竞赛项目练手?STM32/嵌入式/物联网学习,有这几款开发板就够了!

    针对STM32单片机、嵌入式Linux、物联网初学者,我们精心梳理了从“入门到项目进阶”完整学习路径,并配有详细的教程、视频讲解、源代码以及丰富的实战案例资料。可广泛用于高校教学、学生
    的头像 发表于 10-10 16:31 313次阅读
    入门?毕设?<b class='flag-5'>竞赛</b>?<b class='flag-5'>项目</b>练手?STM32/<b class='flag-5'>嵌入式</b>/物联网学习,有这几款开发板就够了!

    【免费分享】嵌入式Linux开发板【入门+项目,应用+底层】资料包一网打尽,附教程/视频/源码...

    ​想要深入学习嵌入式Linux开发吗?现在机会来了!我们为初学者们准备了一份全面的资料包,包括原理图、教程、课件、视频、项目源码等,所有资料全部免费领取,课程视频可试看(购买后看完整
    的头像 发表于 09-05 10:45 273次阅读
    【免费分享】<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>开发板【入门+<b class='flag-5'>项目</b>,应用+底层】资料包一网打尽,附教程/视频/<b class='flag-5'>源码</b>...

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始
    的头像 发表于 09-02 09:11 480次阅读

    嵌入式linux开发板怎么操作

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台。它通常包括一个处理器、内存、存储器、输入/输出接口等硬件组件,以及一个基于L
    的头像 发表于 09-02 09:09 375次阅读

    嵌入式linux开发板芯片的工作原理

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台,它广泛应用于工业控制、智能家居、智能交通、医疗设备等领域。 嵌入式
    的头像 发表于 09-02 09:07 382次阅读

    什么是光伏环境监测

    光伏环境监测站是一种专门为太阳能光伏发电系统设计的综合监测设备,它具备监测多种气象数据的能力,以提供全面、精确的环境信息,确保光伏系统的高效运行。首先,光伏
    的头像 发表于 06-24 10:42 569次阅读
    什么是光伏<b class='flag-5'>环境监测</b>?

    触翔工业嵌入式工控主板在环境监测的应用

    触翔工业嵌入式工控主板在环境监测领域的应用极为广泛,主要得益于其在恶劣环境下的高可靠性、稳定性以及对复杂数据处理能力,以下是一些关键应用示例:
    的头像 发表于 05-22 16:57 388次阅读
    触翔工业<b class='flag-5'>嵌入式</b>工控主板在<b class='flag-5'>环境监测</b>的应用

    嵌入式学习-飞凌嵌入式ElfBoard-项目分享|基于ELF 1S开发板完成的物联网开源项目

    ,与ELF 1S开发板边缘中控进行端对端通信的,开发板边缘中控可以转发手机APP的控制指令到无线网络模块,以及接收边缘中控上报的环境监测数据。 整个项目已经开源到Gitee,欢迎各位嵌入式初学者或爱好者
    发表于 05-16 09:19

    飞凌嵌入式-ElfBoard-项目分享|基于ELF 1S开发板完成的物联网开源项目

    ,与ELF 1S开发板边缘中控进行端对端通信的,开发板边缘中控可以转发手机APP的控制指令到无线网络模块,以及接收边缘中控上报的环境监测数据。 整个项目已经开源到Gitee,欢迎各位嵌入式初学者或爱好者
    发表于 05-16 09:12

    环境监测的革新者:UWB模块在环境监测系统中的应用研究

    随着环境污染和气候变化等问题日益突出,环境监测成为了保护生态环境和人类健康的重要手段。超宽带(UWB)技术以其高精度、低功耗的特点,为环境监测系统的发展提供了新的解决方案。UWB模块作
    的头像 发表于 04-12 15:03 409次阅读

    嵌入式人工智能的就业方向有哪些?

    操作系统使用及C高级编程 数据结构与算法 二:嵌入式Linux应用工程师,Linux网络开发工程师 文件IO 并发程序设计 项目实战:基于
    发表于 02-26 10:17

    嵌入式自学好书推荐

    令、编辑器VI、编译器GCC、调试器GDB以及Make项目管理工具、Shell和Makefile脚本编写等知识,并搭建嵌入式开发环境。推荐书籍:《Linux从入门到精通》。 无论从就
    发表于 01-11 15:13

    基于树莓派的环境监测系统

    作为环境监测系统的核心 树莓派是一款低成本的单片机计算机,支持各种操作系统,如Linux等。它具有强大的处理能力和丰富的输入输出接口,使得它成为一个理想的环境监测系统的核心。树莓派可以通过传感器获取
    的头像 发表于 01-04 15:15 2549次阅读