基于物联网设计的人工淡水湖养殖系统(华为云IOT)_253

文章目录

  • 一、前言
    • 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】ESP8266-WIFI模块
      • 【2】SHT30模块
      • 【3】MQTT协议
      • 【4】继电器模块
      • 【5】28BYJ4步进电机
      • 【6】TDS检测传感器
      • 【7】浑浊度检测传感器
      • 【8】PH值检测传感器
  • 二、硬件选型
    • 2.1 STM32系统板与LCD显示屏
    • 2.2 PCB板
    • 2.3 蜂鸣器模块
    • 2.4 电源扩展接口(x2)
    • 2.5 ESP8266-WIFI(ESP-01S)
    • 2.6 母对母杜邦线(X2)
    • 2.7 继电器(x3)
    • 2.8 稳压模块
    • 2.9 5V2A电源插头
    • 2.10 5V 28BYJ4 步进电机
    • 2.11 增氧泵
    • 2.12 TDS检测传感器
    • 2.13 浑浊度检测传感器
    • 2.14 抽水马达(X2)
    • 2.15 USB母头(接电机使用的)
    • 2.16 PH值检测传感器
    • 2.17 水位模块
    • 2.18 水温检测传感器
    • 2.19 USB下载线
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】水体PH值 water_PH 浮点数
          • 【3】水体浑浊度 water_quality 浮点数
          • 【4】水体水温 temperature 浮点数
          • 【5】当前水位 water_pos 浮点数
          • 【6】换水电机(出水) water_motor_out BOOL类型
          • 【7】换水电机(入水) water_motor_input BOOL类型
          • 【8】充氧电机 oxygen_motor BOOL类型
          • 【9】定时充氧 oxygen_time 整型(分钟单位)
          • 【10】定时投喂 oxygen_food 整型(分钟单位)
          • 【11】水体TDS值 water_TDS 浮点数
          • 【12】水温上限 temp_max 整数
          • 【13】水温下限 temp_min 整数
      • (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 设备仿真调试
  • 六、 ESP8266-WIFI模块调试过程
    • 6.1 接电脑USB口调试
    • 6.2 ESP8266的STA+TCP客户端配置
  • 七、STM32代码设计
    • 7.1 硬件连线说明
    • 7.2 硬件原理图
    • 7.3 硬件组装过程
    • 7.4 硬件实物图
    • 7.5 KEIL工程
    • 7.6 程序下载
    • 7.7 程序正常运行效果
    • 7.8 取模软件的使用
    • 7.9 WIFI模块与服务器交互协议
    • 7.10 硬件初始化
    • 7.11 WIFI模块-初始化
      • (1) WiFi模块初始化
      • (2)尝试初始化ESP8266
      • (3)连接指定WiFi热点
      • (4)连接MQTT服务器
      • (5)订阅主题
      • (6)总结
    • 7.12 按键逻辑代码
      • (1)按键检测
      • (2)按键1的功能 - 页面切换
      • (3)按键2的功能 - 控制抽水出去
      • (4)按键3的功能 - 控制抽水进来
      • (5)总结
    • 7.14 数据采集、显示、上传服务器
      • (1)定时轮询机制
      • (2)数据采集与处理
      • (3)计时控制逻辑
      • (4)温度报警控制
      • (5)数据显示
      • (6)数据上传至服务器
      • (7)总结
    • 7.15 处理上位机下发的数据
      • (1)接收并处理数据
      • (2)解析数据并执行操作
      • (3)响应请求并反馈服务器
      • (4)清理工作
      • (5)总结
  • 八、使用STM32代码的流程以及注意事项
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
  • 九、代码移植更改
    • 【1】STM32代码
    • 【2】Qt上位机代码
  • 十、完整STM32代码
  • 十一、复刻说明

一、前言

1.1 项目介绍

【1】项目开发背景

基于物联网的人工淡水湖养殖系统的开发背景源于水产养殖业的快速发展和技术创新的需求。在当今的环境中,淡水养殖业已成为食品供应链的重要组成部分,为全球数亿人口提供重要的蛋白质来源。然而,由于养殖环境的动态复杂性,包括水质变化、温度波动、溶解氧浓度、杂质和有害物质积聚等问题,使得维持良好的养殖环境变得尤为关键。如果管理不善,不但会影响养殖物种的生长和生存,还可能导致经济损失。因此,自动化和智能化的管理成为养殖行业亟需的技术革新方向。

随着物联网(IoT)技术的不断发展,将IoT应用于淡水湖养殖系统能显著提升养殖效率和水质管理的精确性。通过对PH值、浑浊度、总溶解固体(TDS)等水质参数的实时监测,管理人员能够及时获取环境变化的信息,作出迅速、有效的干预措施。此外,智能化功能如自动喂食、自动充氧、水温监测及换水控制等,有助于实现环境的精细化控制和节能高效管理,从而保障水生生物的健康成长。

为了达到远程监控和管理的需求,本项目结合了云计算技术,利用WIFI和MQTT协议将养殖数据上传至华为云物联网平台,允许管理者通过手机APP或Windows上位机远程监控和操作。这样的设计不仅提升了管理的灵活性,也降低

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

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

相关文章

Wekan看板安装部署与使用介绍

Wekan看板安装部署与使用介绍 1. Wekan简介 ​ Wekan 是一个开源的看板式项目管理工具,它的配置相对简单,因为大多数功能都是开箱即用的。它允许用户以卡片的形式组织和跟踪任务,非常适合敏捷开发和日常任务管理。Wekan 的核心功能包括看板…

【Mysql】开窗聚合函数----SUM,AVG, MIN,MAX

1、概念 在窗口中,每条记录动态地应用聚合函数(如:SUM(),AVG(),MAX(),MIN(),COUNT(),)可以动态计算在指定的窗口内的各种聚合函数值。 2、操作 以下操作将基于employee表进行操作。 sum() 进行sum的时候,没有order …

EWA Volume Splatting

摘要 本文提出了一种基于椭圆高斯核的直接体绘制新框架,使用了一种投影方法(splatting approach)。为避免混叠伪影(aliasing artifacts),我们引入了一种重采样滤波器的概念,该滤波器结合了重建核…

Vue实训---0-完成Vue开发环境的搭建

1.在官网下载和安装VS Code编辑器 完成中文语言扩展(chinese),安装成功后,需要重新启动VS Code编辑器,中文语言扩展才可以生效。 安装Vue-Official扩展,步骤与安装中文语言扩展相同(专门用于为“…

C# 超链接控件LinkLabel无法触发Alt快捷键

在C#中,为控件添加快捷键的方式有两种,其中一种就是Windows中较为常见的Alt快捷键,比如运行对话框,记事本菜单等。只需要按下 Alt 框号中带下划线的字母即可触发该控件的点击操作。如图所示 在C#开发中,实现类似的操作…

赛氪媒体支持“2024科普中国青年之星创作交流活动”医学专场落幕

2024年11月15日下午,由中国科普作家协会、科普中国发展服务中心主办,什刹海文化展示中心承办,并携手国内产学研一体融合领域的领军者——赛氪网共同支持的“2024科普中国青年之星创作交流活动”医学科普专场,在什刹海文化展示中心…

《现代制造技术与装备》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《现代制造技术与装备》是不是核心期刊? 答:不是,是知网收录的第二批认定学术期刊。 问:《现代制造技术与装备》级别? 答:省级。主管单位:齐鲁工业大学&#xff0…

(十一)Python字符串常用操作

一、访问字符串值 Python访问子字符串变量,可以使用方括号来截取字符串。与列表的索引一样,字符串索引从0开始。 hh"LaoTie 666" hh[2] mm"床前明月光" mm[3] 字符串的索引值可以为负值。若索引值为负数,则表示由字符…

数据结构(初阶6)---二叉树(遍历——递归的艺术)(详解)

二叉树的遍历与练习 一.二叉树的基本遍历形式1.前序遍历(深度优先遍历)2.中序遍历(深度优先遍历)3.后序遍历(深度优先遍历)4.层序遍历!!(广度优先遍历) 二.二叉树的leetcode小练习1.判断平衡二叉树1)正常解法2)优化解法 2.对称二叉…

20.100ASK_T113-PRO 开发板开机自动QT程序简单的方法一

本文详细介绍了在嵌入式系统中实现程序开机自启动的多种方法,包括通过修改/etc/profile、/etc/rc.local文件,以及在/etc/init.d目录下创建启动脚本等方式。文章还解释了不同配置文件的作用及它们之间的区别。 开机自动启动QT应用程序 用户模式下的启动 …

Android蓝牙架构,源文件目录/编译方式学习

Android 版本 发布时间 代号(Codename) Android 1.0 2008年9月23日 无 Android 1.1 2009年2月9日 Petit Four Android 1.5 2009年4月27日 Cupcake Android 1.6 2009年9月15日 Donut Android 2.0 2009年10月26日 Eclair Android 2.1 2…

LeetCode 145.二叉树的后序遍历

题目:给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 思路:左 右 根 代码: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* Tre…

GitLab|数据迁移

注意:新服务器GitLab版本需和旧版本一致 在旧服务器执行命令进行数据备份 gitlab-rake gitlab:backup:create 备份数据存储在 /var/opt/gitlab/backups/ 将备份数据传输到新服务器的/var/opt/gitlab/backups/下,并修改文件权限(下载前和上传…

实验四:构建园区网(OSPF 动态路由)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、在 eNSP 中部署网络 2、设计全网 IP 地址 3、配置二层交换机 4、配置路由交换机并测试通信 5、配置路由接口地址 6、配置 OSPF 动态路由,实现全网互通 一、实验简介 使用路由…

外卖系统开发实战:从架构设计到代码实现

开发一套外卖系统,需要在架构设计、技术选型以及核心功能开发等方面下功夫。这篇文章将通过代码实例,展示如何构建一个基础的外卖系统,从需求梳理到核心模块的实现,帮助你快速掌握开发要点。 一、系统架构设计 一个完整的外卖系…

“AI玩手机”原理揭秘:大模型驱动的移动端GUI智能体

作者|郭源 前言 在后LLM时代,随着大语言模型和多模态大模型技术的日益成熟,AI技术的实际应用及其社会价值愈发受到重视。AI智能体(AI Agent)技术通过集成行为规划、记忆存储、工具调用等机制,为大模型装上…

C语言——break、continue、goto

目录 一、break 二、continue 1、在while循环中 2、在for循环中 三、go to 一、break 作用是终止循环&#xff0c;在循环内遇到break直接就跳出循环。 注&#xff1a; 一个break语句只能跳出一层循环。 代码演示&#xff1a; #include<stdio.h>void test01() {for (…

AR智能眼镜|AR眼镜定制开发|工业AR眼镜方案

AR眼镜的设计与制造成本主要受到芯片、显示屏和光学方案的影响&#xff0c;因此选择合适的芯片至关重要。一款优秀的芯片平台能够有效提升设备性能&#xff0c;并解决多种技术挑战。例如&#xff0c;采用联发科八核2.0GHz处理器&#xff0c;结合12nm制程工艺&#xff0c;这种低…

设计LRU缓存

LRU缓存 LRU缓存的实现思路LRU缓存的操作C11 STL实现LRU缓存自行设计双向链表 哈希表 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;缓存是一种常见的缓存淘汰算法&#xff0c;其基本思想是&#xff1a;当缓存空间已满时&#xff0c;移除最近最少使…

自动驾驶3D目标检测综述(三)

前两篇综述阅读理解放在这啦&#xff0c;有需要自行前往观看&#xff1a; 第一篇&#xff1a;自动驾驶3D目标检测综述&#xff08;一&#xff09;_3d 目标检测-CSDN博客 第二篇&#xff1a;自动驾驶3D目标检测综述&#xff08;二&#xff09;_子流行稀疏卷积 gpu实现-CSDN博客…