文章目录
- 一、前言
- 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上位机远程监控和操作。这样的设计不仅提升了管理的灵活性,也降低