基于物联网设计的人工淡水湖养殖系统(华为云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上位机远程监控和操作。这样的设计不仅提升了管理的灵活性,也降低

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题 四)

汉化 setting 中选择插件 完成 安装出现问题 1.可能是因为之前下载过的idea,找到连接中 文件,卸载即可。

【MyBatis】全局配置文件—mybatis.xml 创建xml模板

文章目录 模板文件配置元素typeAliasessettings 模板文件 创建模板 按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】&#xff08;或直接搜索&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <…

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…

【Go】-go中的锁机制

目录 一、锁的基础知识 1. 互斥量/互斥锁 2. CAS&#xff08;compare and swap&#xff09; 3. 自旋锁 4. 读写锁 5. 乐观锁 & 悲观锁 6. 死锁 二、go中锁机制 1. Mutex-互斥锁 2. RWMutex-读写锁 2.1 RWMutex流程概览 2.2 写锁饥饿问题 2.3. golang的读写锁源…

Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例

一、首先要下载谷歌驱动 1.&#xff08;打开谷歌浏览器 - 设置 - 关于谷歌&#xff0c;查看谷歌浏览器版本&#xff0c;否则不对应无法调用&#xff0c;会提示&#xff1a;selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio…

RCVS:A Unifed Registration and FusionFramework for Video Streams 译文

摘要:红外与可见光的跨模态配准与融合可以生成更全面的目标和场景信息表示。以前的框架主要关注于解决模态差异以及保留不同模态信息对不同静态图像对之间配准和融合任务性能的影响。然而&#xff0c;这些框架忽略了在现实世界设备上的实际部署&#xff0c;特别是在视频流的背景…

JDBC编程---Java

目录 一、数据库编程的前置 二、Java的数据库编程----JDBC 1.概念 2.JDBC编程的优点 三.导入MySQL驱动包 四、JDBC编程的实战 1.创造数据源&#xff0c;并设置数据库所在的位置&#xff0c;三条固定写法 2.建立和数据库服务器之间的连接&#xff0c;连接好了后&#xff…

Python 抓取笑话内容并存入 CSV

在互联网上&#xff0c;有许多有趣的内容等待我们去挖掘和收集。今天&#xff0c;我们就来深入了解一段 Python 代码&#xff0c;它能够帮助我们从指定网站抓取笑话内容&#xff0c;并将其整理保存为 CSV 文件&#xff0c;方便后续查看和分析。 结果展示&#xff08;文末附完整…

Redis-09 SpringBoot集成Redis

Jedis 和 lettuce 基本已经过时 集成RedisTemplate 单机 1.建 Modul 2.改pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instanc…

Linux:自定义Shell

本文旨在通过自己完成一个简单的Shell来帮助理解命令行Shell这个程序。 目录 一、输出“提示” 二、获取输入 三、切割字符串 四、执行指令 1.子进程替换 2.内建指令 一、输出“提示” 这个项目基于虚拟机Ubuntu22.04.5实现。 打开终端界面如图所示。 其中。 之前&#x…

夜天之书 #104 开源软件有断供的风险吗?

近期&#xff0c;Linux 上游因为受美国出口管制条例的影响&#xff0c;将移除部分开发者的 MAINTAINER 权限&#xff0c;引起了新一轮对开源依赖的重新评估。 关于其中开源精神和社群治理的讨论&#xff0c;卫 Sir 的两篇文章已经讨论得比较清楚&#xff08;见尾注&#xff09;…

tensorforce(dqn框架)安装

win7 64位操作系统 python版本&#xff1a;3.8.10 pip install tensorflow 默认的tensorflow的版本是2.31.0&#xff0c;安装tensorforce后自动升级到3.6.0 tensorflow:升级到3.6.0 keras&#xff1a;升级到3.6.0 tensorforce安装 pip3 install tensorforce protobuf 需要降到…

STM32抢占优先级不生效

板类型&#xff1a;STM32F103精英开发板代码背景&#xff1a; 设置了USART1中断和KEY_UP中断(使用EXTI0外部中断)两个中断的优先级分组都设为2&#xff08;2bit抢占优先级&#xff0c;2bit响应优先级)EXTI0中断抢占优先级设为3&#xff0c; 响应优先级设为3USART1抢占优先级设…

4.1_未授权漏洞

未授权漏洞 成因&#xff1a;配置错误&#xff0c;默认口令&#xff08;弱口令&#xff09;&#xff0c;接口配置不当&#xff1b;未授权漏洞 漏洞利用方式 Redis 未授权访问漏洞 Getshell方式 写入webshell&#xff1b; 连接目标redis&#xff1a;redis-cli -h 192.168.7…

快速识别模型:simple_ocr,部署教程

快速识别图片中的英文、标点符号、数学符号、Emoji, 模型会输出图片中文字行的坐标位置、最低得分、识别结果。当前服务用到的模型&#xff1a;检测模型、数字识别、英文符号识别。 一、部署流程 1.更新基础环境 apt update2.安装miniconda wget https://repo.anaconda.com/…

衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录

1.创建新文件夹&#xff0c;用来存放SDK包&#xff08;其实本质就是路径要对就ok了&#xff09;&#xff0c;右键鼠标通过Open Git Bash here来打开git 输入命令 git clone --depth1 https://gitee.com/lcsc/luban-lite.git 来拉取&#xff0c;如下所示&#xff1a;&#xff0…

蓝桥杯不知道叫什么题目

小蓝有一个整数&#xff0c;初始值为1&#xff0c;他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如&#xff0c;如果整…

读取mysql、kafka数据筛选后放入mysql

要求&#xff1a; 从kafka的topic-car中读取卡口数据&#xff0c;将超速车辆写入mysql的t_monitor_info表 当通过卡口的车速超过该卡口限速的1.2倍 就认定为超速。 G107 1&#xff09;卡口数据格式如下&#xff1a; action_time long --摄像头拍摄时间戳&#xff0c;精确到秒…

CVE-2022-24124

根据提示 访问api/get-organizations salmap和手工注入都不行&#xff0c;使用substring() 查库&#xff0c;查到有4个库 ?p1&pageSize10&valuee99nb&sortField&sortOrder&field (substring((select count(schema_name) from information_schema.sche…

采用python3.12 +django5.1 结合 RabbitMQ 和发送邮件功能,实现一个简单的告警系统 前后端分离 vue-element

一、开发环境搭建和配置 #mac环境 brew install python3.12 python3.12 --version python3.12 -m pip install --upgrade pip python3.12 -m pip install Django5.1 python3.12 -m django --version #用于检索系统信息和进程管理 python3.12 -m pip install psutil #集成 pika…