当前位置: 首页 > news >正文

基于STM32设计的智能鱼缸_带鱼儿数量视觉识别(华为云IOT)(202)

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】项目功能介绍
      • 【2】设计实现的功能
      • 【3】项目硬件模块组成
    • 1.2 设计思路
      • 【1】整体设计思路
      • 【2】ESP8266工作模式配置
      • 【3】自动换水原理
    • 1.3 项目开发背景
      • 【1】选题的意义
      • 【2】可行性分析
      • 【3】参考文献
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 系统框架图
    • 1.6 系统功能总结
    • 1.7 系统原理图
    • 1.8 硬件实物图
    • 1.9 摘要
    • 1.10 研究内容拟解决的主要问题
    • 1.11 研究方法技术路线
  • 二、硬件选型
    • 2.1 STM32开发板
    • 2.2 PCB板
    • 2.3 USB下载线
    • 2.4 ESP8266 WIFI
    • 2.5 杜邦线(2排)
    • 2.6 稳压模块
    • 2.7 电源插头
    • 2.8 水温检测传感器
    • 2.9 水质检测传感器
    • 2.10 继电器
    • 2.13 舵机SG90(买2个)
    • 2.14 水位模块
    • 2.15 抽水马达
    • 2.16 监控摄像头
    • 2.17 监控摄像头2
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
    • 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登录测试参数总结
  • 四、视频监控
    • 4.1 购买ECS服务器
    • 4.2 登录ECRS服务器
    • 4.3 部署NGINX服务器
      • (1)先安装一些工具
      • (2)获取Nginx二进制源码
      • (3)获取nginx-rtmp-module
      • (4)编译nginx
      • (5)修改Nginx的配置文件
      • (6)设置开机启动
      • (7)控制nginx服务的3个命令: 启动、停止、重启
      • (8)进行rtmp推流
      • (9)nginx保存推流视频文件
      • (10)rtmp直播流转为hls直播流
    • 4.4 视频推流测试
    • 4.5 配置监控摄像头
    • 4.6 配置监控摄像头2
  • 五、上位机开发
    • 5.1 Qt开发环境安装
    • 5.2 创建IAM账户
    • 5.3 获取影子数据
    • 5.4 修改设备属性
    • 5.5 新建上位机工程
    • 5.6 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
      • 【3】配置pro工程文件
      • 【4】配置软件图标
    • 5.7 设计代码
      • 【1】获取token
      • 【2】时间校准
      • 【3】获取影子数据
      • 【4】解析数据更新界面
      • 【5】下面命令给设备端
    • 5.8 编译Windows上位机
    • 5.9 配置Android环境
      • 【1】创建Android配置文件
      • 【2】配置Android图标与名称
      • 【3】编译Android上位机
    • 5.10 交互命令
  • 六、STM32设备端代码设计
    • 6.1 硬件连线
    • 6.2 取模软件使用
    • 6.3 通信协议
    • 6.4 按键的功能说明
    • 6.5 自动模式控制逻辑
    • 6.6 手机APP远程控制
    • 6.7 MQTT物联网服务器参数设置
    • 6.8 KEIL工程
  • 七、使用STM32代码的流程以及注意事项
    • 7.1 第一步
    • 7.2 第二步
    • 7.3 第三步
    • 7.4 第四步
    • 7.5 第五步
  • 八、鱼儿数量识别训练
    • 8.1 简介
    • 8.2 创建数据集
    • 8.3 训练模型
    • 8.4 发布模型
    • 8.5 下载模型进行测试
    • 8.6 开发软件集成识别功能
    • 8.7 Qt调用SDK代码
    • 8.8 运行训练好的鱼儿模型
  • 九、制作过程
    • 【1】接线组装
    • 【2】串口调试
  • 十、STM32完整代码

基于STM32设计的智能鱼缸支持鱼儿视觉识别(202)

一、前言

1.1 项目介绍

【1】项目功能介绍

随着现代科技的快速发展,智能家居产品逐渐渗透到生活的各个角落,人们对宠物养护的需求也在不断升级。在观赏鱼养殖领域,传统鱼缸的维护和管理方式已经不能满足用户对于便利性、精确性和智能化的要求。基于此背景,本项目设计并实现一款基于STM32微控制器为核心的智能鱼缸系统,该系统集水质监测、水位控制、温度调控、自动换水、食物投放智能规划等功能于一体,并通过物联网技术实现远程操控与数据上云。

随着生活节奏加快,养鱼爱好者往往无法时刻关注鱼缸环境变化,而鱼类健康状况又高度依赖于水质、水温及适宜的喂食量等因素。因此,这款智能鱼缸能够实时监测各项关键指标,不仅有助于保持鱼缸生态环境的稳定,更能有效预防因环境突变导致的鱼类疾病或死亡,大大提升了观赏鱼的存活率和生活质量。

此外,项目还利用先进的图像识别技术,通过摄像头捕捉鱼缸内情况,自动统计鱼的数量并据此调整投食策略,既避免了过度投食造成的水质污染,也确保了每条鱼都能得到恰当的食物供应。

硬件选型方面,选用性能强劲且广泛应用的STM32F103RCT

相关文章:

基于STM32设计的智能鱼缸_带鱼儿数量视觉识别(华为云IOT)(202)

文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置【3】自动换水原理1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献1.4 开发工具的选择【1】设备端开发【2】上位…...

立体连接模式下的传播与沟通:AI智能名片小程序的创新应用与深度剖析

摘要:在数字化浪潮的推动下,信息传播与沟通方式正经历着前所未有的变革。立体连接模式,作为这一变革的重要产物,通过整合物理空间、虚拟网络空间与社群心理空间的三维联动,实现了信息的深度传播与高效互动。AI智能名片…...

基于Python的Scrapy爬虫的个性化书籍推荐系统【Django框架、超详细系统设计原型】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍系统分析系统设计展示总结 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 近年来,随着互联网的蓬勃发展,企事业单…...

二叉树bst

二叉搜索树的中序遍历结果有序 ,二叉搜索树性质,左小右大,二叉搜索树中序遍历的结果应该是从小到大的。 题目描述二叉树是从上到下,从左到右描述,并非前中后序中的一种。 99. 恢复二叉搜索树 class Solution:first …...

elasticsearch的使用(二)

DSL查询 Elasticsearch的查询可以分为两大类: 叶子查询(Leaf query clauses):一般是在特定的字段里查询特定值,属于简单查询,很少单独使用。 复合查询(Compound query clauses)&am…...

YOLOv8由pt文件中读取模型信息

Pytorch的pt模型文件中保存了许多模型信息,如模型结构、模型参数、任务类型、批次、数据集等 在先前的YOLOv8实验中,博主发现YOLOv8在预测时并不需要指定任务类型,因为这些信息便保存在pt模型中,那么,今天我们便来看看…...

js遍历效率

1w条数据&#xff0c;遍历效率 1、for 15s let t(new Date()).getTime()let a[]for(var i 0; i < 100000; i){a.push({id:i,val:i})}let ts[]for(var i 0; i < a.length; i){if(a[i].val!2 && a[i].val!4 && a[i].val!8){ts.push(a[i])}}let c(new D…...

QModbus例程分析

由于有一个Modebus上位机的需要&#xff0c;分析一下QModbus Slave的源代码&#xff0c;方便后面的开发。 什么是Modbus Modbus是一种常用的串行通信协议&#xff0c;被广泛应用于工业自动化领域。它最初由Modicon&#xff08;目前属于施耐德电气公司&#xff09;于1979年开发…...

Vue万字学习笔记(入门1)

目录 简介 Vue是什么 渐进式框架 单文件组件 API 风格​ 选项式 API (Options API)​ 组合式 API (Composition API)​ 创建一个 Vue 应用 挂载应用 DOM 中的根组件模板​ 应用配置 多个应用实例​ 模板语法​ 文本插值​ 原始 HTML​ Attribute 绑定​ 简写​…...

Cesium手动建模模型用Cesiumlab转3D Tiles模型位置不对,调整模型位置至指定经纬度

Cesium加载3Dtiles模型的平移和旋转_3dtiles先旋转再平移示例-CSDN博客 Cesium 平移cesiumlab生产的3Dtiles切片模型到目标经纬度-CSDN博客 【ArcGISCityEngine】自行制作Lod1城市大尺度白膜数据_cityengine 生成指定坐标集指定区域的白模-CSDN博客 以上次ArcGISCityEngine制…...

学习C语言第23天(程序环境和预处理)

1. 程序的翻译环境和执行环境 在ANSIC的任何一种实现中&#xff0c;存在两个不同的环境 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境&#xff0c;它用于实际执行代码。 2. 详解编译链接 2.1 翻译环境 每个源文件单独经过编…...

Ubuntu22.04安装

使用Vmware安装好后 首先执行下面命令&#xff0c;不然每次打开终端会出现To run a command as administrator (user root)… touch ~/.sudo_as_admin_successful换源 参考 sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list清空…...

从入门到自动化:一篇文章掌握Python的80%

Python作为一种高级编程语言&#xff0c;以其简洁明了的语法和强大的功能性&#xff0c;在全球编程社区内享有极高的声誉。本文将带领你从Python的基础语法入手&#xff0c;介绍其常用库的应用&#xff0c;以及如何将Python用于数据分析、网络爬虫和简单的自动化任务&#xff0…...

开源的主流机器学习框架

主流的开源机器学习框架包括&#xff1a; 1. TensorFlow&#xff1a;由Google开发和维护的深度学习框架&#xff0c;广泛用于生产环境和研究。支持多种平台&#xff0c;并具有丰富的工具和库支持。 2. PyTorch&#xff1a;由Facebook开发的深度学习框架&#xff0c;以其动态计…...

RabbitMQ:发送者的可靠性之配置发送者重试机制

文章目录 为什么需要重试机制&#xff1f;如何配置重试机制&#xff1f;测试重试机制使用重试机制的注意事项 在使用消息队列&#xff08;MQ&#xff09;系统时&#xff0c;网络故障是不可避免的问题&#xff0c;尤其是在与RabbitMQ等服务交互时。如果生产者在发送消息时遇到网…...

基于深度学习的大规模MIMO信道状态信息反馈

MIMO系统 MIMO系统利用多个天线在发送端和接收端之间建立多条独立的信道&#xff0c;从而使得同一时间可以传输多个数据流&#xff0c;从而使得同一之间可以传输多个数据流&#xff0c;提高数据传输速率。 优势 增加传输速率和容量&#xff0c;提高信号覆盖范围和抗干扰能力…...

在Docker中部署Rasa NLU服务

最近因为项目需要将rasa nlu配置到docker容器中供系统调用&#xff0c;本篇主要整理该服务的docker配置过程。 本篇的重点在于docker的使用&#xff0c;不在Rasa NLU。 系统环境&#xff1a;Ubuntu 18.04.6 1. Rasa介绍 Rasa是一个开源的机器学习框架&#xff0c;专为构建基于文…...

SQL语句创建数据库(增删查改)

SQL语句 一.数据库的基础1.1 什么是数据库1.2 基本使用1.2.1 连接服务器1.2.2 使用案例 1.2 SQL分类 二.库的操作2.1 创建数据库2.2 创建数据库示例2.3 字符集和校验规则2.3.1 查看系统默认字符集以及校验规则2.3.2查看数据库支持的字符集2.3.3查看数据库支持的字符集校验规则2…...

微信小程序-Vant组件库的使用

一. 在app.json里面删除style&#xff1a;v2 为了避免使用Vant组件库和微信小程序组件样式的相互影响 二.在app.json里面usingComponents注册Vant组件库的自定义组件 "usingComponents": {"van-icon": "./miniprogram_npm/vant-weapp/icon/index&qu…...

为什么企业需要进行能源体系认证?

通过能源体系认证&#xff0c;企业可以向公众和利益相关方展示其在节能减排方面的承诺和成就。这不仅提升了企业的社会责任形象&#xff0c;还增强了品牌的信誉度。在当今消费者更加关注环境问题的背景下&#xff0c;绿色企业形象有助于赢得市场和客户的认可与信任。 能源体系认…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...