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

基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风

宠物喂食器

  • 一、功能设计
  • 二、元器件选型
  • 三、UI设计
  • 四、原理图设计
  • 五、源代码设计
  • 六、成品展示

实物链接:https://m.tb.cn/h.5iCUX6H?tk=PL65WXCEipQ CZ3457
在这里插入图片描述

一、功能设计

1、设计一个触摸屏作为人机交互
2、通过触摸屏设置时间定时喂食喂水通风
3、获取当前水槽的水位并显示
4、获取环境温湿度并显示

二、元器件选型

1、触摸屏采用2.8寸电阻触摸屏
2、单片机采用STM32F407ZGT6
3、喂水使用直流水泵
4、喂食使用舵机
5、通风使用风扇
6、控制开关使用继电器
7、温湿度获取使用DHT11
8、水位检测使用水位传感器

三、UI设计

1、UI使用LVGL
2、UI设计环境使用SquareLine Studio
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
3、生成代码导入到vsCode进行仿真运行,编译比较快
在这里插入图片描述

4、调试UI界面比较满意后导入UI代码到keil5下载到单片机运行

在这里插入图片描述

四、原理图设计

1、STM32F407ZGT6最小系统设计
在这里插入图片描述

在这里插入图片描述

2、继电器控制电路设计

3、水泵和舵机电路设计

五、源代码设计

1、移植正点原子LVGL最小工程
在这里插入图片描述

2、导入生成的UI代码

在这里插入图片描述

3、编写IO控制程序,舵机控制程序,系统时间、定时喂食喂水程序、事件记录程序

void scan_timeout(void)
{int32_t remain_time[SCAN_TIME_NUM];static int32_t p_time = 0x7fffffff;static uint8_t p_num;TimeTypeDef remain_time_min = {0};char sprbuff[64];int32_t n_num = 0;char buff[SCAN_TIME_NUM][8] = {"喂食","喂食","喂水","喂水","通风","通风"};char * pbuf = NULL;get_sys_date_time();//获取系统时间remain_time[0] = time_compare(&System.para.systime,&System.para.feed.time1     );//计算时间差remain_time[1] = time_compare(&System.para.systime,&System.para.feed.time2     );//计算时间差remain_time[2] = time_compare(&System.para.systime,&System.para.feedwater.time1);//计算时间差remain_time[3] = time_compare(&System.para.systime,&System.para.feedwater.time2);//计算时间差remain_time[4] = time_compare(&System.para.systime,&System.para.ventilate.time1);//计算时间差remain_time[5] = time_compare(&System.para.systime,&System.para.ventilate.time2);//计算时间差for(int i=0; i<SCAN_TIME_NUM; i++) //看看时间差哪个短 找到最短那个任务优先执行{if(p_time > remain_time[i]  && remain_time[i] >= 0){remain_time_min.hour = remain_time[i] / 3600;remain_time_min.min = remain_time[i] % 3600 /60;remain_time_min.sec = remain_time[i] % 60;p_time = remain_time[i];pbuf = buff[i];p_num = i;if(p_time == 0)p_time = 0x7fffffff;printf("i = %d, remain_time[i]=%d\r\n",i,remain_time[i]);}if(remain_time[i] < 0){n_num ++;}}if(n_num != SCAN_TIME_NUM)  //今天任务做完了吗? 哦 没有就进去{if(p_time < 30)  //如果距离任务还不到 XXX秒了,就进来运行任务{switch(p_num){case 0:sprintf(sprbuff,"喂食时间到! %02d:%02d", System.para.feed.time1.hour,System.para.feed.time1.min);SW1_ON();break;case 1:sprintf(sprbuff,"喂食时间到! %02d:%02d", System.para.feed.time2.hour,System.para.feed.time2.min);SW1_ON();break;case 2:sprintf(sprbuff,"喂水时间到! %02d:%02d", System.para.feedwater.time1.hour,System.para.feedwater.time1.min);SW2_ON();break;case 3:sprintf(sprbuff,"喂水时间到! %02d:%02d", System.para.feedwater.time2.hour,System.para.feedwater.time2.min);SW2_ON();break;case 4:sprintf(sprbuff,"通风时间到! %02d:%02d", System.para.ventilate.time1.hour,System.para.ventilate.time1.min);SW3_ON();break;case 5:sprintf(sprbuff,"通风时间到! %02d:%02d", System.para.ventilate.time2.hour,System.para.ventilate.time2.min);SW3_ON();break;}lv_label_set_text(ui_MainInfoLabel7,sprbuff);}else if(pbuf != NULL){sprintf(sprbuff,"主线任务 - %s %02d:%02d:%02d",pbuf,remain_time_min.hour,remain_time_min.min,remain_time_min.sec);printf("%s\r\n",sprbuff);lv_label_set_text(ui_MainInfoLabel7,sprbuff);switch_all_off();}}else{lv_label_set_text(ui_MainInfoLabel7,"今日暂无任务");}
}

六、成品展示

**加粗样式**
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风

宠物喂食器 一、功能设计二、元器件选型三、UI设计四、原理图设计五、源代码设计六、成品展示 实物链接&#xff1a;https://m.tb.cn/h.5iCUX6H?tkPL65WXCEipQ CZ3457 一、功能设计 1、设计一个触摸屏作为人机交互 2、通过触摸屏设置时间定时喂食喂水通风 3、获取当前水槽的…...

jumpserver堡垒机docker方式安装部署

1、环境要求 请先自行创建 数据库 和 Redis, 版本要求参考上面环境要求说明 mysql>5.7 redis >5.0 2、创建数据库 mysql&#xff1a; create database jumpserver default charset utf8; GRANT ALL PRIVILEGES ON jumpserver.* TO jumpserver% IDENTIFIED BY nu4x599…...

在基于亚马逊云科技的湖仓一体架构上构建数据血缘的探索和实践

背景介绍 随着大数据技术的进步&#xff0c;企业和组织越来越依赖数据驱动的决策。数据的质量、来源及其流动性因此显得非常关键。数据血缘分析为我们提供了一种追踪数据从起点到终点的方法&#xff0c;有助于理解数据如何被转换和消费&#xff0c;同时对数据治理和合规性起到关…...

VScode clangd 插件浏览 linux 源码

文章目录 VScode clangd 插件浏览 linux 源码clangd 安装与配置VScode 插件安装clangd 安装方法一方法二 clangd 配置 cmake 生成bear 生成 compile_commands.json触发 clangd linux 内核脚本生成 compile_commands.json 文件三种方式对比 VScode clangd 插件浏览 linux 源码 …...

GZ035 5G组网与运维赛题第8套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第8套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…...

《golang设计模式》第三部分·行为型模式-02-命令模式(Command)

文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 命令模式&#xff08;Command&#xff09;将类的业务行为以对象的方式封装&#xff0c;以便实现行为的参数化、撤销或重做等需求。 非命令模式的困惑&#xff1a; 类的行为在运行时是以实例方法…...

【linux进程控制(一)】进程终止--如何干掉一个进程?

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; 进程终止 1. 前言2. 文章整体…...

言情小说怎么推广?如何推广网络小说?

网络小说是一种文学形式&#xff0c;它的受众群体相当广泛&#xff0c;其实也面临着很强的竞争&#xff0c;因此&#xff0c;网络推广是小说宣传的一项重要工作&#xff0c;这里小马识途营销顾问就分享一下小说推广的渠道和方法。 1、软文推广 在推广小说的过程中&#xff0c;…...

TensorFlow 的应用场景有哪些

TensorFlow是一个开源的人工智能框架&#xff0c;由Google公司开发。它是一个强大的工具&#xff0c;可以用于数值计算、机器学习和深度学习等领域&#xff0c;具有灵活性、可扩展性、可移植性等特点。 TensorFlow的基本概念包括&#xff1a; Tensor&#xff1a;Tensor是Tens…...

JAVA提取嵌套夹带文件之Apache Tika

目录结构 前言tika简介Tika支持的文件格式MAVEN依赖JAVA程序JAVA测试程序测试文件测试结果部分文件提取失败参考连接 前言 Apache Tika提取文件整理如下&#xff0c;如有特定的文件需要提取可以先参照【部分文件提取失败】章节对照&#xff0c;以免浪费您的宝贵时间&#xff0c…...

SSL数字证书服务

SSL/TLS 证书允许Web浏览器使用安全套接字层/传输层安全 (SSL/TLS) 协议识别并建立与网站的加密网络连接。 SSL数字证书主要功能 SSL证书在浏览器或用户计算机与服务器或网站之间建立加密连接。这种连接可以保护传输中的敏感数据免遭非授权方的拦截&#xff0c;从而使在线交易…...

浅谈安科瑞直流电表在荷兰光伏充电桩系统中的应用

摘要&#xff1a;本文介绍了安科瑞直流电表在荷兰光伏充电桩系统中的应用。主要用于充电桩的电流电压电能的计量。 Abstract: This article introduces the application of Acrel DC meters in PV charging pile system in Netherlands.The device is measuring current,volt…...

淘宝详情API接口怎么实现大数据分析和商品价格监控

一、引言 随着互联网的快速发展&#xff0c;大数据分析和价格监控成为了电商行业的关键环节。淘宝作为中国最大的电商平台之一&#xff0c;其详情API接口提供了丰富的商品信息&#xff0c;为大数据分析和价格监控提供了便利。本文将探讨如何使用淘宝详情API接口实现大数据分析…...

智能政务,办事更轻松!拓世法宝AI智慧政务数字人一体机,重新定义你的政务办理体验!

在构建现代化的政务服务体系中&#xff0c;高效、便捷是最重要的衡量标准。随着信息化技术的发展&#xff0c;很多政务服务已经实现了重要的线上办理&#xff0c;减轻了公民和企业的办事负担&#xff0c;同时也提升了政府部门的服务效率。可是&#xff0c;一些场景下的办事流程…...

WebBits库如何使用

WebBits 是一个用于构建 Web 应用程序的 Python 库。以下是使用 WebBits 库的一般步骤&#xff1a; 安装 WebBits&#xff1a;在终端或命令提示符中运行以下命令来安装 WebBits 库&#xff1a; pip install webbits 导入 WebBits 库&#xff1a;在 Python 脚本中导入 WebBits…...

通过netstat命令查看Linux的端口占用

一、netstat 完整写作network statistics&#xff0c;简写为netstat &#xff0c;常用的几个参数为l、n、t、u、p。 -l &#xff1a; 仅展示监听状态下的程序(state 为LISTEN)。 -n &#xff1a;会使用ip端口的方式&#xff0c;来进行地址的描述。不使用-n就会变成服务器的名称…...

不用动脑小白也能制作出精美的电子杂志

随着互联网技术的发展和微信的普及程度&#xff0c;电子杂志制作已经受到越来越多人的关注&#xff0c;毕竟电子杂志的阅读便利性是纸质杂志无法比拟的。那如何制作一本精美的电子杂志呢&#xff1f; 这其实很easy&#xff0c;可以使用在线电子杂志制作平台FLBOOK &#xff0c…...

【计算系统】5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别

5分钟了解超算&#xff0c;高性能计算&#xff0c;并行计算&#xff0c;分布式计算&#xff0c;网格计算&#xff0c;集群计算以及云计算的区别 1. 超算2. 高性能计算3. 并行计算4. 分布式计算5. 网格计算6. 集群计算7. 云计算小结相关资料 1. 超算 超级计算机&#xff08;Sup…...

6大场景,玩转ChatGPT!

文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 本文是在GPT3.5版本下演示的 我们知道AI技术不仅能够自动生成文章和内容&#xff0c;还可以根据我们…...

工业废水再利用在哪些地方

工业废水再利用主要应用于以下几个方面&#xff1a; 工业生产&#xff1a;回收废水中含有的各种有价值的资源&#xff0c;如水、盐、油、悬浮物等&#xff0c;用于生产过程。预处理和深度处理&#xff1a;为满足工业生产过程对水质的要求&#xff0c;对废水进行预处理和深度处…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...