基于STM32设计的大棚育苗管理系统(4G+华为云IOT)_265

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】项目开发背景
      • 【2】设计实现的功能
      • 【3】项目硬件模块组成
      • 【4】设计意义
      • 【5】国内外研究现状
      • 【6】摘要
    • 1.2 设计思路
    • 1.3 系统功能总结
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 参考文献
    • 1.6 系统框架图
    • 1.7 系统原理图
    • 1.8 实物图
    • 1.9 模块的技术详情介绍
      • 【1】Air724UG-4G模块
      • 【2】SGP30传感器
      • 【3】SHT30模块
      • 【4】土壤湿度检测模块
      • 【5】MQTT协议
      • 【6】继电器模块
  • 二、硬件选型
    • 2.1 STM32开发板+LCD显示屏
    • 2.2 USB下载线
    • 2.3 Air724UG 4G模块
    • 2.4 4G模块专用杜邦线
    • 2.5 继电器
    • 2.6 SHT30温湿度模块
    • 2.7 PCB板
    • 2.8 BH1750光敏传感器
    • 2.9 土壤湿度传感器
    • 2.10 抽水马达
    • 2.11 SGP30模块
    • 2.12 电源扩展板
    • 2.13 母对母杜邦线
    • 2.14 稳压模块
    • 2.15 电源插头
    • 2.16 LED白色补光灯模块
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】环境温度 SHT30_T 浮点数
          • 【3】环境湿度 SHT30_H 浮点数
          • 【4】环境光照强度 BH1750 整型
          • 【5】补光灯开关 LED_SW Bool类型
          • 【6】土壤湿度 SOIL 浮点数
          • 【7】灌溉电机开关 MOTOR_SW Bool类型
          • 【8】运行模式 mode_type Bool类型
          • 【9】土壤湿度阀值 SOIL_MIN 整数
          • 【10】二氧化碳检测 SGP30 整型
      • (5)创建完成
    • 3.4 添加设备
      • (1)注册设备
      • (2)根据自己的设备填写
      • (3)保存设备信息
      • (4)设备创建完成
      • (5)设备详情
    • 3.5 MQTT协议主题订阅与发布
      • (1)MQTT协议介绍
      • (2)华为云平台MQTT协议使用限制
      • (3)主题订阅格式
      • (4)主题发布格式
    • 3.6 MQTT三元组
      • (1)MQTT服务器地址
      • (2)生成MQTT三元组
    • 3.7 模拟设备登录测试
      • (1)填入登录信息
      • (2)打开网页查看
      • (3)MQTT登录测试参数总结
    • 3.8 项目凭证
    • 3.9 创建IAM账户
    • 3.10 获取影子数据
    • 3.11 修改设备属性
  • 四、Qt开发入门与环境搭建
    • 4.1 Qt是什么?
    • 4.2 Qt版本介绍
    • 4.3 Qt开发环境安装
    • 4.4 开发第一个QT程序
    • 4.5 调试输出
    • 4.6 QT Creator常用的快捷键
    • 4.7 QT帮助文档
    • 4.8 UI设计师使用
    • 4.9 按钮控件组
    • 4.10 布局控件组
    • 4.11 基本布局控件
    • 4.12 UI设计师的布局功能
  • 五、上位机开发
    • 5.1 Qt开发环境安装
    • 5.2 新建上位机工程
    • 5.3 切换编译器
    • 5.4 编译测试功能
    • 5.5 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 5.6 设计代码
      • 【1】获取token
      • 【2】获取影子数据
      • 【3】解析数据更新界面
      • 【4】判断设备是否离线
      • 【5】获取设备最新数据上传时间
      • 【5】界面的数据更新
    • 5.5 编译Windows上位机
    • 5.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【3】编译Android上位机
    • 5.7 设备仿真调试
  • 六、 Air724UG 模块调试过程
    • 6.1 官方文档
    • 6.2 模块调试接线
    • 6.3 串口调试过程
      • 【1】AT命令
      • 【2】读取模块厂商信息
      • 【3】读取详细的固件版本
      • 【4】查询卡是否插好
      • 【5】查询信号质量
      • 【6】查询网络注册状态
      • 【5】查询模组是否注册上GPRS网络
      • 【6】查询附着GPRS网络
  • 七、STM32代码设计
    • 7.1 硬件连线说明
    • 7.2 硬件原理图
    • 7.3 硬件组装过程
    • 7.4 硬件实物图
    • 7.5 KEIL工程
    • 7.6 程序下载
    • 7.7 程序正常运行效果
    • 7.8 取模软件的使用
    • 7.9 4G模块与服务器通信
    • 7.10 硬件初始化
      • (1)`KEY_Init()`
      • (2)`LED_Init()`
      • (3)`USART1_Init(115200)`
      • (4)`AdcInit()`
      • (5)`Init_SHT30_1()`
      • (6)`HardwareInit()`
      • (7)`BH1750_Init()`
      • (8)`USART2_Init(115200)`
      • (9)`TIMER2_Init(72,20000)`
      • (10)`Lcd_Init()`
      • (11) `Lcd_Clear(0)`
      • 总结
    • 7.11 4G模块-初始化
      • (1)清屏与显示初始信息
      • (2)重试次数初始化
      • (3)检测Air724UG 4G模块
      • (4)4G模块存在时的初始化逻辑
      • (5)清屏
      • 总结
    • 7.12 LCD界面显示
    • 7.13 按键逻辑代码
      • (1)按键检测
      • (2)模式切换
      • (3)控制灌溉电机
      • (4)控制补光灯
      • 总体总结
    • 7.14 数据采集与显示
      • (1)轮询计时器检查
      • (2)采集温湿度数据
      • (3)光照强度采集
      • (4)采集土壤湿度
      • (5)读取SGP30传感器的CO2和TVOC数据
      • (6)显示湿度阈值
      • (7)显示运行模式
      • (8)显示灌溉开关状态
      • (9)自动模式下的运行逻辑
      • (10)组合数据上传至MQTT云端服务器
      • 总体代码逻辑总结
      • 运行逻辑:
      • 自动模式控制逻辑:
      • 代码的设计优势:
    • 7.16 处理上位机下发的数据
      • 代码逻辑分析:
      • 代码总结:
  • 八、使用STM32代码的流程以及注意事项
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
  • 九、代码移植更改
    • 【1】STM32代码
    • 【2】Qt上位机代码
  • 十、完整STM32代码
  • 九、总结

一、前言

1.1 项目介绍

【1】项目开发背景

随着现代农业技术的发展,智能农业逐渐成为提升农业生产效率、保障作物品质的重要手段之一。尤其是在设施农业领域,如温室大棚种植中,智能化管理系统的应用越来越广泛。这类系统能够通过精确控制环境参数,为作物提供最适宜的生长条件,从而提高产量和质量。在这样的背景下,基于STM32微控制器设计的大棚育苗管理系统应运而生,通过集成先进的传感技术和物联网技术,实现对育苗过程中关键环境因素的有效监控与调节。

该系统的设计初衷是解决传统育苗方式中存在的几个核心问题:

人工监测和调整环境参数不仅耗时费力,而且准确性难以保证,特别是在大规模种植情况下,这往往成为制约生产效率的关键瓶颈。随着消费者对农产品品质要求的不断提高,如何确保每株幼苗都能在最优条件下成长变得尤为重要。

面对日益严峻的水资源短缺问题,合理利用水资源也成为现代农业必须考虑的问题之一。因此,构建一个既能实现精准灌溉又能节约用水的自动化管理系统显得尤为迫切。

本项目所提出的解决方案是建立一套集成了多种环境感知能力与远程操控功能于一体的智能育苗管理系统。它不仅能够持续监测大棚内的温度、湿度、光照强度以及二氧化碳浓度等重要指标,并将这些信息实时展示给用户,还允许用户根据实际情况通过本地或远程方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量规范化与ResNet-paddle

批量规范化与ResNet——paddle部分 本文部分为paddle框架以及部分理论分析,torch框架对应代码可见批量规范化与ResNet import paddle print("paddle version:",paddle.__version__)paddle version: 2.6.1批量规范化 批量规范化(Batch Norma…

从零开始快速构建Vue3项目

一、技术选型 组件大类 具体插件 vue3插件 相关插件开发文档 基础架构搭建 初始项目搭建、打包构件工具:vite开始 | Vite路由管理及菜单权限封装vue-router介绍 | Vue Router状态管理Pinia介绍 | Pinia 中文文档API请求及异常封装axiosUI框架 element-uihttps…

74HC245

74HC245:典型的CMOS型缓冲门电路 在这里用于增加电压

BFS 算法专题(三):BFS 解决边权为 1 的最短路问题

目录 1. 迷宫中离入口最近的出口 1.1 算法原理 1.2 算法代码 2. 最小基因变化 ★★★ 2.1 算法原理 2.2 算法代码 3. 单词接龙 3.1 算法原理 3.2 算法代码 4. 为高尔夫比赛砍树 (hard) 4.1 算法原理 4.2 算法代码 1. 迷宫中离入口最近的出口 . - 力扣(…

「数据要素」行业简报|2024.11.上刊

纵观数据要素行业动态,洞察行业风向,把握行业脉搏! 一、政策发布 1、《山东省公共数据资源登记管理工作规范(试行)》公开征求意见 11月7日,为认真贯彻落实《中共中央办公厅 国务院办公厅关于加快公共数据资源开发利用的意见》《…

有什么好用的 WebSocket 调试工具吗?

在开发和测试 WebSocket 应用程序时,确保客户端能够正确地与服务器建立连接、发送和接收消息是非常重要的。 市面上有许多通用的 API 测试工具,它们大多专注于 HTTP 请求,而对于 WebSocket 的支持则显得较为有限。这种局限性使得开发者在寻找…

MQTT协议解析 : 物联网领域的最佳选择

1. MQTT协议概述 1.1 MQTT协议是什么 MQTT : Message Queuing Telemetry Transport 模式 : 发布 / 订阅主题优点 : 代码量小、低带宽、实时可靠应用 : 物联网、小型设备、移动应用MQTT 常用端口 : 1883 MQTT是一个网络协议,和HTTP类似,因为轻量简单&…

鸿蒙HarmonyOS 网络请求获取数据Http

注意的是;要为接口返回值指定类型 ,以及定义接口数据类型 index.ets import { http } from kit.NetworkKit;interface createAtType {date: number,}interface dataListType {createAt: createAtType;imgUrl: }Component export default struct TabBar {State dat…

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美 《飞鸟集》[印]泰戈尔,一本有意思的诗集,中英文对照着读更有意思。“你是谁,读者,百年后读着我的诗?”让我觉得有些久别重逢,忽…

ROS Action

在 ROS 中,Action 是一种支持长时间异步任务的通信机制。与 Service 不同,Action 允许客户端发起一个请求,并在任务执行的过程中不断接收反馈,直到任务完成。这种机制非常适用于可能需要较长时间来完成的任务,比如机器…

约束(MYSQL)

not null(非空) unique(唯一) default(默认约束,规定值) 主键约束primary key(非空且唯一) auto_increment(自增类型) 复合主键 check&#xff08…

笔记 | image may have poor performance,or fail,if run via emulation

在Docker Desktop中现象如图: 当你运行 AMD64 平台代码时(Intel 和 AMD 芯),你的 Mac 必须模拟其CPU架构(因为你自身是ARM)。这通常会非常吃性能。 Docker Desktop 警告你在模拟 Intel/AMD x64 CPU 时性能可…

【C++】C++11特性(上)

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:C 个人主页:Celias blog~ 目录 一、列表初始化 二、std::initializer_list 三、右值引用和移…

24/11/7 算法笔记 PCA主成分分析

假如我们的数据集是n维的,共有m个数据(x,x,...,x)。我们希望将这m个数据的维度从n维降到k维,希望这m个k维的数据集尽可能的代表原始数据集。我们知道数据从n维降到k维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这k维的数据尽可能表…

JS 实现SSE通讯和了解SSE通讯

SSE 介绍: Server-Sent Events(SSE)是一种用于实现服务器向客户端实时推送数据的Web技术。与传统的轮询和长轮询相比,SSE提供了更高效和实时的数据推送机制。 SSE基于HTTP协议,允许服务器将数据以事件流(…

C/C++每日一练:查找链表的中间节点

链表(Linked List) 链表是一种线性数据结构,由一系列节点(Node)通过指针链接在一起。与数组不同,链表中的元素在内存中不需要连续存储,每个节点包含两部分: 数据部分:存…

对称加密与非对称加密:密码学的基石及 RSA 算法详解

对称加密与非对称加密:密码学的基石及 RSA 算法详解 在当今数字化的时代,信息安全至关重要。对称加密和非对称加密作为密码学中的两种基本加密技术,为我们的数据安全提供了强大的保障。本文将深入探讨对称加密和非对称加密的特点、应用场景&…

PH47代码框架全局函数及功能类

PH47代码框架全局函数及功能类 概述 全局函数及功能类体系是PH47框架当中除了4个逻辑层之外最重要的组成部分之一,它们可以在 整个PH7 代码框架及用户代码中使用。常用全局函数及功能类为 PH7 代码框架提供了最常用和最基础的功能实现。 全局函数主要包含了对时间…

力扣 LeetCode 203. 移除链表元素(Day2:链表)

解题思路: 方法一:头节点和非头节点分开处理 方法二:定义一个dummy虚拟节点,后面的节点就可以采用相同的处理方式 注意: cur需要指向要删除的节点的上一个节点,因为要越过这一个被删除的节点 class Sol…

IEC60870-5-104 协议源码架构详细分析

IEC60870-5-104 协议源码架构 前言一、资源三、目录层级一二、目录层级二config/lib60870_config.hdependencies/READMEexamplesCMakeLists.txtcs101_master_balancedcs104_client_asyncmulti_client_servertls_clienttls_server说明 make这些文件的作用是否需要导入这些文件&a…