基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)
文章目录
- 一、前言
- 1.1 项目介绍
- 【1】开发背景
- 【2】项目实现的功能
- 【3】项目硬件模块组成
- 【4】ESP8266工作模式配置
- 1.2 设计思路
- 【1】整体设计思路
- 【2】整体构架
- 【3】上位机开发思路
- 1.3 项目开发背景
- 【1】选题的意义
- 【2】可行性分析
- 【3】参考文献
- 【4】摘要
- 1.4 开发工具的选择
- 【1】设备端开发
- 【2】上位机开发
- 1.5 系统框架图
- 1.6 系统功能总结
- 1.7 设备原理图
- 1.8 硬件实物图
- 二、硬件选型
- 2.1 STM32开发板
- 2.2 USB下载线
- 2.3 杜邦线(2排)
- 2.4 OLED显示屏
- 2.5 ESP8266 WIFI
- 2.6 28BYJ4步进电机
- 2.7 PCB板
- 2.8 水流量检测
- 2.9 SHT30温湿度模块
- 2.10 太阳能充电板(可选)
- 2.11 监控摄像头
- 2.12 红外限位检测模块(买2个)
- 2.13 水位模块
- 2.14 稳压模块
- 2.15 电源插头
- 三、部署华为云物联网平台
- 3.1 物联网平台介绍
- 3.2 开通物联网服务
- 3.3 创建产品
- (1)创建产品
- (2)填写产品信息
- (3)产品创建成功
- (4)添加自定义模型
- (5)添加完成
- 3.4 添加设备
- (1)注册设备
- (2)根据自己的设备填写
- (3)保存设备信息
- (4) 设备创建完成
- 3.5 MQTT协议主题订阅与发布
- (1)MQTT协议介绍
- (2)华为云平台MQTT协议使用限制
- (3)主题订阅格式
- (4)主题发布格式
- 3.6 MQTT三元组
- (1)MQTT服务器地址
- (2)生成MQTT三元组
- 3.7 模拟设备登录测试
- (1)填入登录信息
- (2)打开网页查看
- (3)MQTT登录测试参数总结
- 3.8 创建IAM账户
- 3.9 获取影子数据
- 3.10 修改设备属性
- 四、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 设计UI界面与工程配置
- 【1】打开UI文件
- 【2】开始设计界面
- 5.4 设计代码
- 【1】获取token
- 【2】开启与关闭闸门
- 【3】获取影子数据
- 【4】解析数据更新界面
- 【5】判断设备是否离线
- 【6】获取设备最新数据上传时间
- 【7】界面的数据更新
- 5.5 编译Windows上位机
- 5.6 模拟设备联调
- 5.7 增加视频播放功能
- 5.8 配置Android环境
- 【1】选择Android编译器
- 【2】创建Android配置文件
- 【3】配置Android图标与名称
- 【3】编译Android上位机
- 六、视频监控
- 6.1 购买ECS服务器
- 6.2 登录ECRS服务器
- 6.3 部署NGINX服务器
- (1)先安装一些工具
- (2)获取Nginx二进制源码
- (3)获取nginx-rtmp-module
- (4)编译nginx
- (5)修改Nginx的配置文件
- (6)设置开机启动
- (7)控制nginx服务的3个命令: 启动、停止、重启
- (8)进行rtmp推流
- (9)nginx保存推流视频文件
- (10)rtmp直播流转为hls直播流
- 6.4 视频推流测试
- 6.5 配置监控摄像头
- 6.6 配置监控摄像头2
- 七、STM32设备端代码设计
- 7.1 硬件连线
- 7.2 取模软件使用
- 7.3 通信协议
- 7.4 按键的功能说明
- 7.5 自动模式控制逻辑
- 7.6 下发数据处理
- 7.7 ESP8266-WIFI初始化
- 7.8 KEIL工程
- 7.9 串口打印效果
- 八、使用STM32代码的流程以及注意事项
- 8.1 第1步
- 8.2 第2步
- 8.3 第3步
- 九、制作过程
- 十、STM32完整代码
基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)
一、前言
1.1 项目介绍
【1】开发背景
随着智慧农业和精细化水资源管理理念的不断深入,对于农田水利设施尤其是水渠闸门的自动化控制与远程监管的需求日益增强。传统的人工手动调节方式已无法满足现代高效、精准的水资源调度与环境监测需求。开发一种基于STM32微控制器为核心,并结合华为云IOT物联网技术的水渠闸门远程控制系统,对于提高水资源利用率、保障农业灌溉效果、以及实现水资源优化配置等方面具有重大意义。
该项目聚焦于设计并实现一套集成了环境监测、智能控制、能源自给等功能于一体的水渠闸门管理系统。系统利用高性价比、强大处理能力的S
相关文章:
基于STM32设计的水渠闸门远程控制系统(华为云IOT)(226)
文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…...
鸿蒙开发(NEXT/API 12)【响应校验】远场通信服务
本协议栈框架支持校验响应功能,应用添加了响应校验器后,可在ResponseValidationCallback中判断响应是否符合预期,不符合那么框架会抛异常。 开发步骤 导包。 import { rcp } from kit.RemoteCommunicationKit;添加响应校验器并且发起请求。 …...
2024最新!!!iOS高级面试题,全!(二)
iOS应用是如何启动以及如何优化 pre-main阶段 加载动态链接器dyld到App进程 加载动态库(包括所依赖的所有动态库) Rebase 修正内部的指针指向 Bind 修正外部指针指向 初始化Objective C Runtime 包括oc的类、分类的注册,selector唯一性检查等…...
【C#生态园】构建你的C#操作系统:框架选择与实践
探秘C#操作系统开发框架:从框架选择到实际应用 前言 在当今信息技术高度发达的时代,操作系统开发框架为软件工程师提供了全新的可能性。本文将介绍一系列用于C#的操作系统开发框架,探讨它们的核心功能、使用场景、安装与配置方法以及API概览…...
ADB 安装教程:如何在 Windows、macOS 和 Linux 上安装 Android Debug Bridge
目录 一、ADB 介绍 二、Windows 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 验证 ADB 安装 4. 配置环境变量 5. 验证全局 ADB 使用 三、macOS 系统安装 ADB 1. 下载 ADB 2. 解压文件 3. 配置环境变量 4. 验证 ADB 安装 四、Linux 系统安装 ADB 1. 使用包管理器安装…...
java(2)方法的使用
目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊,今天博主继续带领大家学习java的基本语法,java的基础语法部分打算用六到七篇博文完…...
基于对数变换的图像美白增强,Matlab实现
博主简介:matlab图像处理(QQ:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强,用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…...
MySQL高阶1873-计算特殊奖金
目录 题目 准备数据 分析数据 总结 题目 编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…...
Ngnix 在windows上的简单使用
安装 下载链接: nginx: download 选择页面中 Stable version 下的windows版本直接下载解压到本地。 运行nginx: 解压到本地后,结构如图: cmd 进入到上图的根目录,运行 start nginx ,即可开启。 打开 http://localhost 进行查看,如果正常打开nginx的测试页面,则说…...
嵌入式开发--STM32延时函数重构
在做嵌入式开发的时候,经常需要用到延时函数,STM32为我们提供了一个标准的毫秒级延时函数:HAL_Delay()。这个函数用起来很方便,括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢,这玩意需要经常喂的…...
OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?
近日,OpenAI又出新作,正式推出了名为o1的新模型,这是其“推理”系列的首个成员,自然引起了业界的广泛关注。本文旨在全面剖析o1模型的核心特征、独特优势,并通过与先前版本GPT-4o的细致对比,为读者揭示这一…...
基于Python+SQLite的课程管理系统
系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库,尽量模拟现有专业课程一个学期的选课排课原型实际情况。(注:本系统由本人单独设计、开发完成) 1.2 数据结构需求分析 课程管理…...
每日一练 | USG系统默认安全区域
01 真题题目 关于USG系统(华为的安全网关产品)的安全防火墙的默认安全区域的描述,正确的是: A. 默认安全区域可以删除 B. 默认安全区域可以修改安全级别 C. 默认安全区域不能删除,但可以修改安全级别D. 默认安全区域…...
技术老总眼中的品宣与促销:挑战与对策
在许多技术驱动的企业中,技术老总们往往对产品研发和技术创新拥有深刻的理解,然而当涉及市场营销,特别是“品宣”(品牌宣传)与“促销”时,他们的观念可能相对简单,有时甚至认为这两者没有本质的…...
[全网首篇]关于 VMSA-2024-0019 安全公告(CVE-2024-38812、CVE-2024-38813)的说明与解决方案
漏洞说明: CVE-2024-38812 CVE 描述: vCenter Server 在实现 DCERPC 协议时存在堆溢出漏洞。VMware 已将此问题的严重性评估 为临界严重性范围,CVSSv3 的最高基本分数为 9.8。 已知攻击: 具有 vCenter Server 网络访问权限…...
监控易监测对象及指标之:全面监控GBase数据库
在数字化时代,数据库作为企业核心数据资产的管理中心,其稳定性和性能直接关系到业务的连续性和企业的运营效率。GBase数据库作为高性能的分布式数据库系统,广泛应用于各类业务场景。为了确保GBase数据库的稳定运行和高效性能,对其…...
推荐五种msvcr71.dll丢失的解决方法,msvcr71.dll为什么会丢失?
当你的电脑提示msvcr71.dll丢失时是什么情况?为什么会出现这样的问题?msvcr71.dll丢失和什么有关呢?那么msvcr71.dll丢失应该如何解决呢?今天就和大家聊聊msvcr71.dll丢失的解决办法的详细解决步骤。 msvcr71.dll丢失是否与系统更…...
Java 内存模型(JMM)
JMM,全称 Java Memory Model ,中⽂释义Java内存模型 1. 概述 对于 Java 程序员来说,在虚拟机⾃动内存管理机制下,不再需要像 C/C 程序开发程序员这 样为每⼀个 new 操作去写对应的 delete / free 操作,不容易出现内存…...
用于安全研究的 Elastic Container Project
作者:来自 Elastic Andrew Pease•Colson Wilhoit•Derek Ditch 使用 Docker 启动 Elastic Stack 序言 Elastic Stack 是一个模块化数据分析生态系统。虽然这允许工程灵活性,但建立开发实例进行测试可能很麻烦。建立 Elastic Stack 的最简单方法是使用…...
STM8L101低功耗的理解
一.通过降低时钟频率来降低功耗: 规格书如图 1.code 从flash启动,主频率是16Mhz时,功耗测量2.51ma左右,对应程序如下: 2.code从flash启动,主频率是2Mhz时(上电默认值),功…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
