当前位置: 首页 > news >正文

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; } } }

六、实验效果

七、包含内容

项目分享

http://www.cnnetsun.cn/news/132075.html

相关文章:

  • Gitee:本土化项目管理软件的崛起与未来
  • 3分钟上手BiliLocal:让本地视频也能享受B站弹幕乐趣![特殊字符]
  • Claude Code界面美化:3个步骤让你的AI助手颜值飙升
  • 用R分析时间序列(time series)数据
  • 水利工程前沿国际期刊精选
  • 25 万亿美元超级风口下,中国智造如何执掌机器人时代
  • 【游戏AI突破性进展】:基于GNN的群体Agent协同决策模型实战解析
  • 中国汽车、无人机、机器人行业近十年
  • 【强烈推荐】大模型微调实战指南:从LLaMA Factory到Ollama,打造你的专属模型
  • 激光雷达与摄像头不同步?深度解析多传感器时间同步校准难题
  • UE5卡通渲染革命:MooaToon带你实现电影级三渲二效果
  • 如何快速掌握Stable Diffusion WebUI Forge:面向用户的完整教程
  • 17、网络基础与操作指南
  • 元宇宙中的智能体交互难题:90%开发者忽略的延迟一致性陷阱
  • Unity内置着色器完整使用指南:从入门到精通
  • MCP与Azure量子协同容错设计,揭开企业级量子应用稳定性的秘密
  • 当JS拷贝玩起了“俄罗斯套娃”:深拷贝与浅拷贝的趣味对决
  • 北京创业省钱攻略!0 元注册公司不是梦
  • 行业标杆 | 越秀地产入选「2025年度数据湖仓应用创新先锋企业」
  • 云边 Agent 延迟优化全攻略(99%工程师忽略的底层机制曝光)
  • 【物流运输Agent路线优化】:揭秘智能路径调整背后的算法黑科技
  • 终于搞懂了!React Agent的实现思路原来这么简单,核心就这3步!
  • FLORIS风电场仿真终极指南:10个核心技巧快速掌握工程尾流模型
  • 工业HMI常见故障及排查方法:黑屏、通信中断、操作无响应,新手别慌
  • 55页PDF信息系统项目管理师考神笔记
  • 工业HMI的发展趋势:智能化、一体化、移动化,新手该怎么跟上?
  • 【高频卫星信号处理突破】:3步实现Agent端低延迟响应
  • 联想拯救者BIOS隐藏功能一键解锁:3分钟搞定高级设置终极教程
  • 从功能测试到自动化转型:测试工程师的进阶之路
  • 测试与开发的协同工作模式:从对立到共生的范式演进