news 2026/6/15 17:42:14

STM32项目分享:智能婴儿床

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32项目分享:智能婴儿床

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图

五、程序设计

六、实验效果 ​

七、包含内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1odyABmEeT/?spm_id_from=333.1387.homepage.video_card.click&vd_source=199aed5297a00e80e1faf7e270afe8d7

(资料分享见文末)

二、项目简介

1.功能详解

基于STM32的智能婴儿床

功能如下:

  1. 环境采集:采集环境温湿度、声音、水滴、撞击震动情况
  2. 模式切换:可通过按键切换自动模式和手动模式
  3. 自动模式:自动模式下温度超过温度上限开启风扇降温,温度小于温度下限开启加热片加热,湿度超过湿度阈值时开启风扇除湿;如果声音传感器检测到婴儿啼哭则自动播放音乐并摇床;如果雨滴传感器检测到婴儿尿床,则通过蓝牙发送信息;如果检测到婴儿撞击到床上,则通过蓝牙发送信息并且开启蜂鸣器报警。
  4. 手动模式:手动模式下可通过按键控制加热片、风扇、摇床、音乐播放
  5. 阈值调节:可设置温度上限、温度下限、湿度阈值、声音阈值
  6. 蓝牙APP:通过蓝牙APP可以接收所有环境信息,可控制指令下发

2.主要器件

  • STM32F103C8T6最小系统板
  • OLED显示屏(4针IIC协议)
  • 声音传感器
  • DHT11温湿度传感器
  • 震动传感器
  • 雨滴传感器
  • JR6001语音模块
  • BT04A蓝牙模块
  • 扬声器
  • 大功率LED灯模块
  • 有源蜂鸣器
  • 步进电机
  • PTC加热片
  • 风扇模块
  • 继电器

三、原理图设计

四、PCB硬件设计

PCB图

五、程序设计

#include "stm32f10x.h" #include "led.h" #include "beep.h" #include "usart.h" #include "usart2.h" #include "delay.h" #include "jdq.h" #include "oled.h" #include "key.h" #include "Modules.h" #include "TIM2.h" #include "TIM3.h" #include "adcx.h" #include "flash.h" #include "fan.h" #include "bump.h" #include "stepmotor.h" /****************异方辰电子工作室******************* STM32 *项目 : STM32智能婴儿床 *版本 : V1.0 *MCU : TM32F103C8T6 *接口 : 见代码 *BILIBILI : 异方辰电子 *小红书 : 异方辰电子 *CSDN : 异方辰电子 *授权IP : 辰哥单片机设计、异方辰、YFC电子、北海单片机设计 **********************BEGIN***********************/ #define KEY_Long1 11 #define KEY_1 1 #define KEY_2 2 #define KEY_3 3 #define KEY_4 4 #define FLASH_START_ADDR 0x0801f000 //写入的起始地址 //传感器变量声明 uint16_t time_num = 0; //10ms计时 uint16_t count_voice=0,count_strike=0,count_music=0; SensorModules sensorData; //声明传感器数据结构体变量 SensorThresholdValue Sensorthreshold; //声明传感器阈值结构体变量 DriveModules driveData; //声明驱动器状态结构体变量 static uint8_t app_cmd = 0; // 0 无指令 3 开 4 关 uint8_t mode = 0; //系统模式 1自动 2手动 3设置 //系统静态变量 static uint8_t count_a = 1; //自动模式按键数 uint8_t count_m = 1; //手动模式按键数 static uint8_t count_s = 1; //设置模式按键数 extern uint8_t usart2_buf[256]; //串口2接收数组 char display_buf[16]; //显示数组 int main(void) { SystemInit();//配置系统时钟为72M delay_init(72); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置中断优先分组 //传感器初始化 SHAKE_Init(); MAC_Init(); DHT11_Init(); RAIN_Init(); //执行器初始化 FAN_Init();//风扇初始化 BEEP_Init();//蜂鸣器初始化 JDQ_Init();//加热片初始化 MOTOR_Init(); Key_Init();//按键初始化 OLED_Init();//OLED初始化 USART1_Config();//串口1初始化 USART2_Config();//串口2初始化 USART3_Config();//串口3初始化 TIM2_Init(72-1,1000-1); FLASH_ReadThreshold();//阈值读取函数 //// TIM3_Int_Init(1000-1,72-1); //定时1ms中断 OLED_Clear();//清屏 while (1) { SensorScan(); //获取传感器数据 time_num++; //计时变量+1 if(time_num >= 5000) { time_num = 0; } Bluetooth_Control();//蓝牙控制函数 switch(mode) { case AUTO_MODE://默认自动模式 OLED_autoPage1(); //显示主页面1固定信息 SensorDataDisplay1(); //显示传感器1数据 AutoControl();//自动模式控制函数 /*按键1按下时切换模式*/ if (KeyNum == KEY_1) //系统模式mode 1自动 2手动 3设置 { KeyNum = 0; mode = MANUAL_MODE;//进入手动模式 count_m = 1;//手动模式下按键2的次数置一 OLED_Clear(); } if (KeyNum == KEY_Long1) { KeyNum = 0; mode = SETTINGS_MODE;//进入阈值设置模式 count_s = 1;//阈值设置模式下按键2按下的次数置一 OLED_Clear(); } Control_Manager();//执行器执行函数 break; case MANUAL_MODE://手动模式下 OLED_manualOption(SetManual());//手动模式光标显示函数 ManualControl(SetManual());//手动模式控制函数 OLED_manualPage1();//手动模式界面1显示 ManualSettingsDisplay1();//手动模式界面1的开关显示 if (KeyNum == KEY_1) //系统模式mode 0手动 1自动(默认) { KeyNum = 0; mode = AUTO_MODE;//进入自动模式 count_a = 1;//自动模式下按键2按下的次数置一 OLED_Clear(); } Control_Manager();//执行器执行函数 break; case SETTINGS_MODE://阈值设置函数 OLED_settingsOption(SetSelection()); //实现阈值设置页面的选择功能 ThresholdSettings(SetSelection()); //实现阈值调节功能 OLED_settingsPage1(); //显示阈值设置界面1固定信息 SettingsThresholdDisplay1(); //显示传感器阈值1数据 //判断是否退出阈值设置界面 if (KeyNum == KEY_1) { KeyNum = 0; mode = AUTO_MODE; //进入自动模式 count_a = 1;//自动模式下按键2按下的次数置一 OLED_Clear(); //清屏 //存储修改的传感器阈值至flash内 FLASH_W(FLASH_START_ADDR, Sensorthreshold.tempValue_H,Sensorthreshold.tempValue_L, Sensorthreshold.humiValue); } break; default: break; } } }

六、实验效果

七、包含内容

项目分享

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 17:28:27

APS6408L-OB:智能家居设备的“智慧记忆体”,让每个决策都游刃有余

当智能家居设备从简单的开关控制,升级为需要处理复杂任务、本地AI运算的中枢大脑时,8KB的RAM早已不够用。APS6408L-OB 这款8MB高速SPI PSRAM,正是为这一代智能设备而生的“智慧记忆体”。APS6408L-OB 是一款非常常见的 8bit SPI PSRAM 芯片&a…

作者头像 李华
网站建设 2026/6/15 9:19:58

为什么你的Agent扛不住高辐射环境?揭秘抗干扰设计的4大核心技术

第一章:核工业 Agent 的故障处理在核工业自动化系统中,Agent 作为关键的数据采集与控制单元,承担着实时监控反应堆状态、传输传感器数据和执行安全指令的核心任务。一旦 Agent 出现异常,可能导致数据延迟、控制失效甚至安全风险&a…

作者头像 李华
网站建设 2026/6/14 21:14:20

Mermaid.js终极指南:5分钟掌握文本化数据可视化魔法

Mermaid.js终极指南:5分钟掌握文本化数据可视化魔法 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图…

作者头像 李华
网站建设 2026/6/15 3:06:29

【资深架构师私藏笔记】:云边 Agent 延迟优化的12个黄金法则

第一章:云边 Agent 延迟优化的核心挑战在边缘计算架构中,云边 Agent 作为连接云端控制平面与边缘节点的关键组件,其响应延迟直接影响系统整体性能。随着物联网设备规模扩大和实时性业务需求增长,如何降低 Agent 的通信、计算与调度…

作者头像 李华