尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
[开源]基于STM32单片机WiFi智能宠物喂食器设计 Onenet宠物投食器管理系统 云平台宠物喂食器系统 物联网APP智能宠物喂食器设计 HK-021
1、前言本设计以STM32F103C8T6单片机为主控芯片WIFI模块ESP8266-01S作为通信模块连接onenet云平台通过HX711压力传感器检测宠物余粮重量、水位传感器检测水位数据、红外传感器检测是否有宠物靠近喂食器、DHT11温湿度传感器检测环境温湿度、光照传感器检测光照数据、DS1302时钟模块自动走时。OLED屏幕显示当前余粮重量、水位、温度、湿度、光照强度、是否有宠物、时间和手自动模式。通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围。操作简单易懂手把手教小白完成整套设计UniAPP开发环境搭建非常简单可打包生成手机APP。2、元器件组成本设计由STM32F103C8T6单片机WIFI模块ESP8266-01SOLED屏幕HX711压力传感器水位传感器红外传感器DHT11温湿度传感器光照传感器JQ8400语音播报模块DS1302时钟模块UL2003步进电机水泵继电器LED按键电源电路组成3、功能简介1、环境采集HX711压力传感器检测宠物余粮重量、水位传感器检测水位数据、红外传感器检测是否有宠物靠近喂食器、DHT11温湿度传感器检测环境温湿度、光照传感器检测光照数据、DS1302时钟模块自动走时。2、屏幕显示OLED屏幕显示当前余粮重量、水位、温度、湿度、光照强度、是否有宠物、时间和手自动模式3、余粮监测通过HX711压力传感器检测宠物余粮重量。4、水位监测通过水位传感器检测剩余水位5、宠物检测通过红外传感器检测是否有宠物靠近喂食器6、定时投食通过按键设置早中晚定时喂食时间当到达定时喂食时间自动喂食并且播放宠物进食诱食声音7、自动照明自动模式下当检测到过低时自动开启照明8、自动加水自动模式下当检测到水位不足时自动加水9、喂食控制手动模式下通过按键和APP控制喂食开关10、喂水控制手动模式下通过按键和APP控制喂水开关11、阈值设置可以设置温度阈值、湿度阈值、光照阈值、余粮阈值、水位阈值、早晨中午晚上定时喂食时间12、时间校准可以通过按键校准系统时间13、模式设置可以设置手动模式和自动模式切换。14、温度报警当检测到温度大于设置的阈值时语音播报提醒15、湿度报警当检测到湿度大于设置的阈值时语音播报提醒16、远程控制通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围4、设计实现效果哔哩哔哩视频链接https://www.bilibili.com/video/BV1oKh96dEXQ/?spm_id_from333.1387.homepage.video_card.click资料分享看文章末尾5、设计原理图6、设计PCB图7、程序设计#include stm32f10x.h #include delay.h #include usart.h #include USART2/usart2.h #include timer.h #include menu.h #include key.h #include modules.h #include beep.h #include oled.h #include adc.h #include water.h #include light.h #include DS1302/ds1302.h #include HX711/HX711.h #include hw.h #include usart3.h #include play.h #include DHT11/dht11.h #include led.h #include uln2003.h #include relay.h /****************洪科单片机工作室******************* *** 破晓单片机 *** 项目:基于STM32单片机WiFi智能宠物喂食器系统 *** BILIBILI:洪科单片机 *** 小红书:洪科单片机 *** 授权IP:洪科单片机 *** 淘宝:洪科单片机 *** 闲鱼:洪科单片机 *** 版本:V01.01 *** MCU:STM32F103C8T6 ******************洪科单片机***********************/ //显示界面 CaiDanJieGouTi KeyTab[SIZE_CAIDAN] { {0 ,0 ,0 ,0 ,0 ,Main_Menu0}, / {1 ,1 ,1 ,1 ,1 ,Main_Menu1}, {2 ,2 ,2 ,2 ,2 ,Main_Menu2}, {3 ,3 ,3 ,3 ,3 ,Main_Menu3}, {4 ,4 ,4 ,4 ,4 ,Main_Menu4}, {5 ,5 ,5 ,5 ,5 ,Main_Menu5}, {6 ,6 ,6 ,6 ,6 ,Main_Menu6}, {7 ,7 ,7 ,7 ,7 ,Main_Menu7}, {8 ,8 ,8 ,8 ,8 ,Main_Menu8}, {9 ,9 ,9 ,9 ,9 ,Main_Menu9}, {10,10,10,10,10,Main_Menu10}, {11,11,11,11,11,Main_Menu11}, {12,12,12,12,12,Main_Menu12}, } ; //传感器变量声明 typedef struct { u8 temp; u8 humi; uint16_t Weight; uint16_t youren; uint16_t Water; uint16_t light; }SensorModulesValue; typedef struct { uint16_t tempTV;// uint16_t humiTV;// uint16_t WeightTV;// uint16_t lightTV;// uint16_t WaterTV;// }SensorThresholdValue; typedef struct { uint16_t sendcount; uint8_t MODEFlag; uint8_t MOTORFlag; uint8_t RELAYFlag; uint8_t LEDFlag; uint8_t MOTORKZFlag; uint8_t WEISHIFlag; uint8_t BEEPFlag; uint8_t BJ1Flag; uint8_t BJ2Flag; uint8_t BJ3Flag; uint8_t BJ4Flag; uint8_t BJ5Flag; }DriveFlag; int main(void) { delay_init(); TIM3_Int_Init(499,7199);//1MS系统定时 OLEDGUI_Config(); //OLED初始化 OLEDGUI_DispString(30,0,Init...,16,1); key_Init();//按键初始化 Adc_Init();//Adc初始化 light_Init();//light初始化 WATER_Init();//WATER初始化 HW_Init();//HW初始化 Init_HX711pin(); //重力传感器 Get_Maopi(); delay_ms(100); DHT11_Init();//DHT11初始化 ULN2003_IO_Init();//ULN2003初始化 relay_Init(); //relay初始化 InitClock(); //时钟初始化 ReadDS1302Clock(TM); //时钟 delay_ms(100); uart2_init(115200); delay_ms(100); uart1_init(115200); delay_ms(100); OLEDGUI_DispString(0,0,Hardware init OK,16,1); //WiFi初始化 ESP8266_Init(); //初始化ESP8266 OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Connect MQTTs Server...,16,1); while(ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT)) DelayXms(500); OLEDGUI_DispString(0,16,Connect MQTT Server Success,16,1); DelayXms(500); OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Device login ...,16,1); while(OneNet_DevLink()) //接入OneNET { OLEDGUI_DispString(0,32,CONNECT,16,1); ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT); DelayXms(500); OLEDGUI_DispString(0,32,CONNECT,16,1); } OneNET_Subscribe(); OLEDGUI_Clear(); //OLED清屏 SensorThresholdSet();//阈值设置 SensorDataGet(); //获取传感器数据 OLEDGUI_Clear(); while(1) { //获取按键值 key_scan(); //进入菜单界面显示处理数据 GetKeylnput(Keystatus); //获取传感器数据 SensorDataGet(); delay_ms(100); } }8、设计包含内容
RELATED

相关推荐

VS Code 新特性:AI 智能体通过 AHP 协议操作 Dev Container

VS Code 新特性:AI 智能体通过 AHP 协议操作 Dev Container

1. 这次更新到底改了什么:从“人操作容器”到“智能体操作容器”VS Code 最新版本里最值得拿出来聊的一件事,就是 AI 智能体可以通过 AHP 协议去操作 Dev Container 了。这句话拆开看有三个关键词:AI 智能体、AHP 协议、Dev Container。单独拎…

📅 2026/10/4 6:47:48
如何用InternVideo做视频动作识别:面向初学者的Kinetics-400微调完整指南

如何用InternVideo做视频动作识别:面向初学者的Kinetics-400微调完整指南

如何用InternVideo做视频动作识别:面向初学者的Kinetics-400微调完整指南 【免费下载链接】InternVideo [ECCV2024] Video Foundation Models & Data for Multimodal Understanding 项目地址: https://gitcode.com/OpenGVLab/InternVideo InternVideo 是…

📅 2026/10/4 6:47:48
因果推断灵魂三问:从反事实到ATE的完整实操指南

因果推断灵魂三问:从反事实到ATE的完整实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/4 6:47:48
MORE NEWS

更多资讯

📰

OPNET模型库与仿真例子:从op_models到可跑通工程实战

简介:这份资源是面向网络仿真初学者与进阶学习者的OPNET实例合集,围绕网络性能模拟与分析场景,帮助读者从基础模型逐步过渡到复杂网络配置,解决建模思路不清、协议实现无从下手的问题。压缩包共收录1454个文件,约19.85…

📰

AI编码代理上下文压缩后如何接续?10天430条记录实测long_mem与engram方案

1. 为什么“上下文压缩”是 AI 编码代理绕不过去的坎先抛一个我自己的真实感受:用 AI 编码代理写代码,最爽的是前二十分钟,最崩溃的是第四十分钟。前二十分钟它记得你所有的约定——变量命名风格、目录结构、哪个模块不能动、上次那个 bug 是…

📰

OpenShell使用指南:替换Windows开始菜单与系统增强配置

如果你最近在技术社区里刷到 OpenShell 这个词,第一反应大概率是:这又是什么新冒出来的开源终端工具?实际上,OpenShell 在 Windows 用户圈子里已经存在很多年,它的前身叫 Classic Shell,是国内很多老玩家折…

📰

分布式A2A架构实战:从单体Agent到多Agent协作的演进与落地

1. 从单体到分布式:Agent 基础架构为什么必须走这一步1.1 一个 Agent 扛不住的时候,问题出在哪我最早做 Agent 项目的时候,和大多数人一样,先跑通一个单体 Agent 就觉得很满足了。一个进程里塞进规划器、工具调用、记忆模块、模型…

📰

基于华为昇腾与Xing4.0-29B的私有化编程数学教学Agent实战

1. 为什么要在教育场景里折腾私有化大模型先说说我为什么会盯上这个方向。过去大半年,我一直在做编程和数学方向的 AI 辅助教学工具,最开始用的是公有云 API,图省事,接上就能跑。但真到了学校机房、培训机构内网、企业内训这些场景…

📰

自研数据标注工具实战:基于AiLabel.js实现目标检测数据集高效标注

做AI项目我从来不怕调模型,就怕整理数据。去年公司接了一套工业质检识别系统,客户给了我超过6000张设备外观照片,要求把每处缺陷在图上框出来、标上缺陷类别,最后整理成可以直接进训练脚本的数据集。最开始我们买了一个在线标注平…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬