基于STM32的智能宠物小屋设计

若该文为原创文章,转载请注明原文出处。

一、引言

现代生活中,宠物已成为许多家庭的重要成员。然而,主人外出时,宠物的饮食、饮水和生活环境成为担忧的问题。传统宠物喂养方式无法实现精准管理和远程照看。本项目设计一款以STM32为核心的智能宠物小屋系统。该系统能够自动监测并调节小屋内环境温湿度,智能管理宠物粮食和饮水的补给,并通过远程监控功能让主人随时了解爱宠状态并进行干预,极大提升了宠物饲养的便捷性、科学性和趣味性。

二、系统总体设计

(一)系统架构

本系统以STM32为控制核心,集成了环境感知、粮水管理、人机交互和远程通信功能。

  1. 感知层:负责采集小屋内温湿度、粮仓重量、水盆水位等数据。

  2. 控制层:STM32核心,处理所有数据,执行判断逻辑,发出控制指令。

  3. 执行层:包括风扇、舵机(投食)、水泵(加水),负责具体动作的执行。

  4. 交互层:OLED显示屏和按键,提供本地状态显示和设置功能。

  5. 通信层:Wi-Fi模块,连接互联网,实现手机APP的远程数据监控和设备控制。

(二)功能模块划分
  1. 环境调控模块:温湿度监测与自动降温。

  2. 智能投喂模块:余粮检测与自动补粮。

  3. 自动供水模块:水位检测与自动补水。

  4. 状态显示模块:所有参数与状态的本地可视化。

  5. 远程监控模块:与手机APP的数据交互。

三、硬件设计与实现

(一)系统硬件框架图
(二)主控模块选型及介绍

核心控制器采用STM32F103C8T6。该芯片资源丰富,提供PWM输出驱动舵机,ADC接口读取水位传感器,I2C驱动OLED,UART连接Wi-Fi模块,GPIO控制继电器和读取数字信号,完美契合本项目所有外设需求,是性价比极高的选择。

(三)传感器模块选型及电路设计
  • DHT11:数字温湿度传感器,单总线协议,连接普通GPIO,用于监测小屋环境。

  • HX711 + 称重传感器:用于粮仓重量检测。

    • 称重传感器:通常为电阻应变式,组成惠斯通电桥。其输出微弱信号需专用芯片处理。

    • HX711模块:24位高精度A/D转换芯片,专为称重设计。其DT和SCK引脚分别连接STM32的两个GPIO。STM32通过特定的时序读取HX711转换后的重量数据,精度远高于普通ADC。

  • 水位传感器 :采用模拟输出 型传感器,输出模拟电压信号,连接STM32的ADC引脚 (如PA0)。水位越高,输出电压越高。(也可使用数字开关型,但模拟型能提供更精确的水量信息)

(四)执行模块选型及驱动电路
  • 舵机(投食) :采用SG90 等常见小型舵机。控制信号为PWM波,连接STM32的定时器PWM输出通道(如TIM3_CH1)。通过调节PWM的占空比来控制舵机的旋转角度,从而控制出粮口的开闭和开合大小。

  • 直流风扇 :可采用5V直流风扇 ,通过一个MOS管 (如IRF520模块)或继电器模块由STM32的GPIO控制通断。MOS管方案更安静,适合低速持续通风。

  • 小型水泵 :通常为5V或12V直流电机驱动。必须使用继电器模块或MOS管驱动,绝不能直接连接STM32的GPIO。控制方式与风扇类似。

(五)通信模块选型

采用ESP-01S ESP8266模块。通过UART(如USART2)与STM32连接。STM32通过AT指令控制其连接家庭Wi-Fi并接入云平台(如MQTT服务器),实现与手机APP的数据双向传输。

四、软件设计与实现

(一)开发环境搭建
  1. IDE:Keil uVision 5。

  2. 配置工具:使用STM32CubeMX进行硬件初始化配置(启用I2C、UART、ADC、定时器PWM等),生成HAL库代码工程。

  3. 库移植:移植OLED、DHT11、HX711、ESP8266的驱动程序库。

(二)系统软件流程图

(三)核心代码逻辑

复制代码
// 定义全局变量与阈值
float temp_threshold_high = 30.0;
int food_weight_threshold = 100;   // 单位: 克
int water_level_threshold = 200;   // ADC值, 需实验测定

void main() {
  // 初始化HX711, 并去皮(清零)
  HX711_Tare();
  // 初始化...

  while(1) {
    // 1. 读取传感器
    temperature = DHT11_GetTemperature();
    current_food_weight = HX711_GetWeight(); // 获取当前重量
    water_level = ADC_Read(WATER_SENSOR_CH);

    // 2. OLED显示
    OLED_ShowString(0, 0, "Temp:");
    OLED_ShowNumber(60, 0, temperature);
    OLED_ShowString(0, 2, "Food:");
    OLED_ShowNumber(60, 2, current_food_weight);
    OLED_ShowString(0, 4, "Water:");
    OLED_ShowNumber(60, 4, water_level);
    // ... 显示状态信息

    // 3. 自动控制逻辑
    // 3.1 温度控制
    if (temperature > temp_threshold_high) {
      FAN_ON();
    } else {
      FAN_OFF();
    }

    // 3.2 投食控制
    if (current_food_weight < food_weight_threshold) {
      Servo_Feed(180); // 舵机旋转180度, 投食一次
      HAL_Delay(1000);
      Servo_Feed(0);   // 舵机归位, 关闭食口
      current_food_weight += 10; // 模拟投食后重量增加(实际应由HX711重新读取)
    }

    // 3.3 补水控制
    if (water_level < water_level_threshold) {
      PUMP_ON();
    } else {
      PUMP_OFF();
    }

    // 4. 处理通信
    if (time_to_send_data()) {
      sprintf(json_data, "{\"temp\":%.1f,\"food\":%d,\"water\":%d}",
              temperature, current_food_weight, water_level);
      ESP8266_SendToCloud(json_data);
    }
    // (在中断中) 如果收到APP指令如 "feed", 则执行一次 Servo_Feed动作

    HAL_Delay(5000); // 每5秒检测一次, 无需过于频繁
  }
}

五、系统测试与优化

(一)测试方案
  1. 功能测试

    • 温控测试:用手握住DHT11或用电吹风轻微加热,观察温度超过阈值后风扇是否启动。

    • 投食测试:从粮仓中取走部分粮食,使重量低于阈值,观察舵机是否动作模拟投食。

    • 补水测试:将水位传感器从水中取出擦干,模拟缺水,观察水泵是否启动;放入水中后是否停止。

    • 远程测试:通过APP查看数据,并点击"手动喂食"按钮,观察舵机是否响应。

  2. 可靠性测试

    • 防误触发测试:模拟宠物触碰小屋导致的震动,检查重量读数是否稳定,是否会误触发投食。

    • 长时间运行测试:让系统连续运行24小时,检查是否有内存泄漏、死机或网络断开重连问题。

六、结论与展望

(一)未来展望

本系统是智能宠物小屋的基础模型,未来可扩展性极强:

  1. 视频监控集成 :集成ESP32-CAM模块,在APP中不仅能看到数据,更能看到宠物的实时画面,互动性更强。

  2. AI智能识别 :通过摄像头和边缘计算,实现宠物身份识别自动份量控制 (根据宠物体型)甚至行为分析(如判断宠物是否焦虑)。

  3. 语音与交互 :增加语音模块,主人可以通过APP发送语音到小屋播放,安抚宠物;或录制声音呼唤宠物进食。

  4. 太阳能供电 :加入太阳能电池板和管理电路,实现户外小屋的绿色能源自给自足,摆放更灵活。

如有侵权,或需要完整代码,请及时联系博主。

相关推荐
殷忆枫18 小时前
基于STM32的智能宠物屋系统设计
宠物
深圳市快瞳科技有限公司2 天前
小场景大市场:猫狗识别算法在宠物智能设备中的应用
算法·计算机视觉·宠物
毕设源码-邱学长3 天前
【开题答辩全过程】以 基于微信小程序的宠物领养系统为例,包含答辩的问题和答案
微信小程序·小程序·宠物
2501_909686706 天前
基于SpringBoot的宠物咖啡馆平台
spring boot·后端·宠物
@Dai7 天前
【跨境电商】上中下游解释,以宠物行业为例
经验分享·笔记·学习·其他·宠物
CC呢7 天前
基于单片机宠物项圈/宠物防丢失设计
单片机·嵌入式硬件·宠物·单片机设计
独立站建站C_2Cshop7 天前
不做推销做共情:一个小众独立站靠宠物殡葬用品,年营收超3600万元
网站搭建·宠物·跨境电商·独立站·独立站建站
jay神10 天前
基于SpringBoot + Vue 的宠物领养管理系统
vue.js·spring boot·宠物
一枚小小程序员哈17 天前
基于php的萌宠社区网站的设计与实现、基于php的宠物社区论坛的设计与实现
开发语言·php·宠物