news 2026/4/23 16:42:41

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/4/23 11:28:26

营销枢纽AI搭建独立站,是否可满足跨境与出海生意?

站点智能依托底层LTD营销枢纽云平台,已构建起多语言支持、全球访问保障、跨境支付对接、虚拟/实体产品销售适配等全栈能力,能够满足搭建面向全球用户的独立站并开展海外生意的核心需求。尽管部分海外营销辅助功能需借助第三方工具,但整体技术…

作者头像 李华
网站建设 2026/4/5 16:59:03

RevokeMsgPatcher终极使用指南:彻底解决微信消息撤回烦恼

RevokeMsgPatcher终极使用指南:彻底解决微信消息撤回烦恼 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/4/23 12:58:21

3步搞定Dart Simple Live:一站式直播聚合神器

3步搞定Dart Simple Live:一站式直播聚合神器 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 还在为在不同直播平台间反复切换而头疼吗?Dart Simple Live(简…

作者头像 李华
网站建设 2026/4/22 22:58:35

文章类型、主题、作者简介对审稿结果有多大影响?

在学术、出版等领域,稿件的审稿结果至关重要,它决定了一篇文章能否顺利发表或通过审核。而文章类型、主题以及作者简介这三个因素,在审稿过程中都可能产生不可忽视的影响。文章类型的影响 不同的文章类型有着不同的规范和要求,这是…

作者头像 李华
网站建设 2026/4/23 13:02:49

终极指南:如何快速掌握Pikafish象棋AI分析工具

终极指南:如何快速掌握Pikafish象棋AI分析工具 【免费下载链接】Pikafish official-pikafish/Pikafish: Pikafish 是一个自由且强大的 UCI(通用棋类接口)象棋引擎,源自 Stockfish,用于分析象棋(国际象棋&am…

作者头像 李华
网站建设 2026/4/23 14:45:18

markdown-it深度解析:打造高性能Markdown渲染引擎的完整指南

markdown-it深度解析:打造高性能Markdown渲染引擎的完整指南 【免费下载链接】markdown-it Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-it …

作者头像 李华