1. 项目概述:当STM32遇上宠物经济
去年帮朋友改造宠物店时,我设计了一套基于STM32F103C8T6的寄养环境监控系统。这个蓝色小开发板通过DHT11采集温湿度,配合红外传感器统计宠物活动频次,数据实时显示在0.96寸OLED上,店主手机就能查看所有笼位状态。这种将嵌入式系统与宠物服务结合的方案,正在成为智能宠物经济的新趋势。
传统宠物寄养依赖人工记录喂食时间和环境参数,容易出现疏漏。我们设计的系统实现了:
- 环境参数自动监测(温湿度/光照/噪音)
- 喂食饮水定量控制
- 远程视频监控联动
- 异常情况自动报警
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件架构设计要点
2.1 核心控制器选型对比
在STM32系列中,我们最终选择F103C8T6的原因很实际:
- 72MHz主频足够处理传感器数据
- 64KB Flash存储固件和配置参数
- 20KB RAM运行FreeRTOS实时系统
- 48引脚封装提供充足IO接口
- 成本控制在25元以内
实测发现:使用CubeMX配置时钟树时,务必开启PLL倍频至72MHz,否则USB通信会出现时序错误。
2.2 传感器组网方案
通过I2C总线挂载多个传感器时,地址冲突是常见问题。我们的解决方案:
- SHT30温湿度传感器(0x44)
- BH1750光照传感器(0x23)
- 定制版RFID读卡器(0x50)
硬件连接技巧:
- I2C总线需加4.7K上拉电阻
- 长距离传输时改用PCA9615电平转换芯片
- 每个传感器电源端并联100μF电容
3. 关键功能实现细节
3.1 喂食机精准控制
使用28BYJ-48步进电机驱动喂食转盘时,发现两个致命问题:
- 电机堵转导致电流激增
- 定位精度随时间漂移
改进方案:
c复制// 采用TMC2209静音驱动芯片
void Feed_Motor_Control(uint8_t turns) {
HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET); // 使能驱动
for(int i=0; i<turns*512; i++) { // 每转512步
HAL_GPIO_WritePin(STEP_GPIO_Port, STEP_Pin,
