基于STM32单片机的超声波跟随婴儿车设计
摘要:本文设计了一款基于STM32F103C8T6的智能跟随婴儿车系统,采用超声波发射-接收模块实现精准跟随功能,并集成多项智能监测:温度自动调节(加热/风扇)、尿不湿湿度检测、啼哭自动音乐安抚、光照自适应窗帘控制。系统通过STM32 HAL库编程实现多传感器数据采集与执行机构控制,包含超声波测距、PWM电机驱动、温湿度检测、声音识别等模块。该设计突破了传统婴儿车的功能局限,实现了安全防护与舒适照
1 系统功能介绍
本设计为 基于STM32单片机的超声波跟随婴儿车,旨在为婴儿提供一个更加安全、智能与舒适的出行和休息环境。与传统的超声波跟随小车不同,本系统采用 超声波发射与接收结合的方式,通过跟随手中持有的超声波发射端实现更加灵敏、精准的跟随效果。此外,系统集成了 婴儿体温环境监测、尿不湿检测、啼哭检测、光照自动调节 等功能,实现了婴儿车的多维度智能化。
系统主要功能如下:
- 智能跟随:通过手持超声波发射模块与小车上的超声波接收模块结合,小车能够实时感知位置并跟随前行,灵敏度与灵活性优于传统的超声波避障或固定跟随方式。
- 环境温度控制:实时检测婴儿周围温度,当温度过低时,开启加热模块;当温度过高时,启动风扇降温;当温度超出设定阈值范围时,系统会报警提醒家长。
- 尿不湿检测:通过湿度传感器检测婴儿尿不湿是否湿透,若湿透则立即报警,提醒家长及时更换。
- 啼哭检测:利用声音传感器监测婴儿是否啼哭,若检测到哭声,则自动播放“小星星”音乐安抚婴儿。
- 光照控制:检测外部光照强度,若阳光过强则通过舵机控制窗帘自动关闭,若光线较弱则窗帘自动打开,保证婴儿车内环境舒适。
该系统融合了 传感器采集、信号处理、PWM控制、电机驱动、语音与音乐播放 等多种技术,充分展示了STM32在嵌入式应用中的强大能力。
2 系统电路设计
2.1 STM32最小系统电路
-
核心芯片:STM32F103C8T6
-
功能:作为整个系统的主控,负责各类传感器的数据采集与处理,并根据逻辑进行电机、舵机、风扇、报警模块、音乐播放等控制。
-
基本组成:
- 时钟电路:使用8MHz外部晶振配合内部倍频,保证系统运行稳定;
- 复位电路:上电或异常时复位,保证系统可靠启动;
- 电源电路:提供稳定3.3V电压。
2.2 超声波跟随模块
- 组成:手持超声波发射模块 + 车载超声波接收模块(HC-SR04改造)。
- 原理:手持端周期性发送超声波,车载端检测回波信号,根据接收强度与时间差计算与目标的相对位置,从而控制小车电机进行跟随。
- 特点:相较于传统超声波避障模式,此方式通过识别特定发射源,提高了灵敏度与跟随稳定性。
2.3 温度检测与控制电路
-
传感器:DS18B20 数字温度传感器。
-
功能:实时采集婴儿车内温度数据,并传输至STM32进行处理。
-
执行部分:
- 加热模块:由MOSFET控制的小型加热片;
- 降温模块:由MOSFET控制的直流风扇;
- 报警模块:温度超过阈值时蜂鸣器报警。
2.4 尿不湿检测电路
- 传感器:电阻式湿度传感器或导电布条。
- 原理:当尿不湿湿透时,电阻值显著下降,通过检测电压变化传输给STM32,判断婴儿是否尿湿。
- 输出:湿透报警提示。
2.5 啼哭检测电路
- 传感器:声音传感器(带放大滤波电路)。
- 功能:当环境音量超过设定阈值(检测到啼哭声),STM32触发音乐播放模块,自动播放“小星星”歌曲。
- 音乐播放:使用PWM定时器实现方波输出驱动蜂鸣器,产生旋律。
2.6 光照检测与舵机控制电路
- 传感器:光敏电阻模块。
- 功能:根据光照强度判断环境是否过亮或过暗;
- 执行模块:舵机控制窗帘开合,使用STM32输出PWM信号控制舵机角度。
2.7 电机驱动电路
- 驱动模块:L298N 或 TB6612 电机驱动模块。
- 功能:根据STM32的控制信号驱动小车前进、后退、转向。
- 控制方式:PWM控制电机速度,逻辑信号控制方向。
3 程序设计
系统程序采用 STM32 HAL 库 开发,分为 超声波跟随程序、温度控制程序、尿不湿检测程序、啼哭检测程序、光照检测与舵机控制程序、电机控制程序 等模块。
3.1 超声波跟随程序
#include "stm32f10x.h"
void HCSR04_Start(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
}
uint32_t HCSR04_Read(void)
{
uint32_t time = 0;
while(!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1));
while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1))
{
time++;
}
return time;
}
该程序通过超声波模块测量手持发射端的相对距离,并据此控制小车运动。
3.2 电机控制程序
void Motor_Control(int speed_left, int speed_right)
{
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, speed_left);
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, speed_right);
}
程序通过PWM调节电机速度,实现小车前进、后退和转向。
3.3 温度检测与控制程序
float Temperature_Read(void)
{
// 读取DS18B20温度值
float temp = DS18B20_Get_Temp();
return temp;
}
void Temperature_Control(float temp)
{
if(temp < 20)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); // 开启加热
else
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
if(temp > 30)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // 开启风扇
else
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
if(temp < 15 || temp > 35)
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET); // 报警
else
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);
}
3.4 尿不湿检测程序
void Diaper_Check(void)
{
int value = HAL_ADC_GetValue(&hadc1);
if(value < 1000)
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // 报警
else
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
}
当湿度值低于设定阈值时,表示尿不湿被浸湿,触发报警。
3.5 啼哭检测与音乐播放程序
int Cry_Check(void)
{
int sound = HAL_ADC_GetValue(&hadc2);
if(sound > 2000)
return 1;
return 0;
}
void Play_Music(void)
{
int i;
int tune[] = {262,294,330,349,392,440,494,523}; // 小星星音符
for(i=0;i<8;i++)
{
__HAL_TIM_SET_AUTORELOAD(&htim3, 72000000/tune[i]);
HAL_Delay(500);
}
}
3.6 光照检测与舵机控制程序
void Curtain_Control(void)
{
int light = HAL_ADC_GetValue(&hadc3);
if(light > 3000)
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 75); // 关闭窗帘
else if(light < 1000)
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_1, 25); // 打开窗帘
}
3.7 主程序
int main(void)
{
HAL_Init();
SystemClock_Config();
while(1)
{
// 超声波跟随
uint32_t distance = HCSR04_Read();
if(distance > 20 && distance < 100)
Motor_Control(500,500);
else
Motor_Control(0,0);
// 温度控制
float temp = Temperature_Read();
Temperature_Control(temp);
// 尿不湿检测
Diaper_Check();
// 啼哭检测
if(Cry_Check())
Play_Music();
// 光照检测与窗帘控制
Curtain_Control();
}
}
4 总结
本文设计了一种 基于STM32单片机的超声波跟随婴儿车,系统不仅能够实现灵敏稳定的 超声波跟随,还集成了 温度监测与自动控制、尿不湿检测、啼哭检测与音乐播放、光照控制与舵机窗帘调节 等功能。
该系统具备以下优点:
- 灵敏跟随:与传统方案相比,采用手持发射源的跟随方式更加智能。
- 安全舒适:自动化温度控制、尿不湿报警、啼哭检测保障婴儿安全与舒适。
- 智能调节:光照强度自适应调节窗帘,创造良好环境。
- 多功能一体化:集成传感器、电机驱动、音乐播放等技术,展示了嵌入式系统综合应用能力。
本设计不仅在家庭中有较强的应用价值,也可以作为嵌入式系统学习与科研的综合实践案例。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)