当前位置: 首页 > 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;绿色企业形象有助于赢得市场和客户的认可与信任。 能源体系认…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...