stm32毕业设计 单片机智能婴儿床系统

2023-11-21 14:30

本文主要是介绍stm32毕业设计 单片机智能婴儿床系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 简介
  • 2 项目背景
  • 3 设计概要
  • 4 设计方案
  • 5 硬件清单
    • 5.1 stm32主控
    • 5.2 OLED显示屏
    • 5.3 继电器模块
    • 5.4 L298N电机驱动板模块
    • 5.5 MAX声音传感模块 一个
    • 5.6 Jdy-311蓝牙模块
    • 5.7 音乐播放模块
  • 6 软件部分设计
    • 6.1 声音传感器子函数
    • 6.2 声音传感器软件
  • 7 实现效果
  • 8 关键代码
  • 9 最后

1 简介

Hi,大家好,学长今天向大家介绍一个 单片机项目

于stm32的智能婴儿车 婴儿床

大家可用于 课程设计 或 毕业设计

2 项目背景

目前的能婴儿床使用的系统主要是结合组网技术、通信技术、检测技术、智慧控制水平于一体化运用到智能产品中。过去因为不同厂家运用不同通讯协议和技术指标,造成很多智能产品均采用集合布线综合系统或者电力载波传输系统。任何一种控制系统,核心部分都是数据通信技术的运用,所以,数据通信技术是智能婴儿床控制系统中的核心部分。因此未来智能婴儿床控制系统是结合了智慧控制技术、高速信号处理技术、无线信号组网传输技术和无线传感器技术。可以说未来的能婴儿床控制系统是赋予智慧的技术,能够实现多方面的信息互交服务,改变我们的科技生活环境。通过能婴儿床控制系统平台还可以扩充到其它服务平台,使得我们生活工作更加智能化,安全化和环保护。

3 设计概要

学长设计的系统的内容主要是介绍了利用了STC89C52作为控制系统的核心单元,再加上声音传感器,温湿度传感器,音乐片,减速电机等硬件的相辅相成,组成了一个物美价廉,便于安装,可靠稳定的智能婴儿车系统,以及其硬件软件的基本设计和有关单片机等方面的相关知识。

该系统可以通过这些传感器收集各种婴儿哭声及温湿度信息,再把这些收集来的信号发送给单片机进行处理,根据这些信号的收集,可以向我们展示当婴儿啼哭时播放音乐,摇床转动,同时实在采集温湿度信息并在液晶屏上呈现温湿度。此设计可以自动的安抚婴儿安睡,非常地有效且实用。

4 设计方案

系统由STC89C52单片机电路+DHT11温湿度传感器+声音检测电路+蜂鸣器驱动电路+音乐片驱动电路+LCD1602液晶显示电路+电机电路+电源电路组成。

  • 1、系统将温湿度信息实时显示在LCD1602液晶上。

  • 2、声音传感器检测声音,如果当前声音超过设定的阈值,则音乐片播放音乐(10秒后停,音乐播放时,声音传感器不起作用,防止音乐播放做成声音检测干扰)。

  • 3、通过电位器实现电机的调速,电机模拟摇床功能。

在这里插入图片描述

系统以STC89C52单片机为核心控制单元,先由声音传感器先检测是否有啼哭声,再将信号反馈给单片机进行处理,与原先设定的声音阈值进行比较后,再对音乐片电路进行控制,并且显示模块上会显示由温湿度传感器所探测到的数值。

本设计的主要功能作用有以下三个方面:第一,该设计系统中有一个声音传感器,实时的采集声音信息,与程序中设定的阈值进行比对,当超过阈值时,就会驱动音乐片发出声音。第二,该系统中有温湿度监测模块,可以实时的对婴儿所处的环境温湿度进行监测,直观的使人感受到婴儿所处环境的温湿度变化。第三,配备直流电机,当婴儿啼哭时,可以实时的给予安抚。

5 硬件清单

5.1 stm32主控

单片机最小的系统电路是由电源电路、复位电路和时钟电路所构成的,其作为单片机最重要的组成部分,担负着单片机可以正常工作的重任,是最重要的保障。

在这里插入图片描述
原理图

在这里插入图片描述

5.2 OLED显示屏

在这里插入图片描述
接线:VCC-3.3/5V GND-GND SCL-单片机SCL脚 SDA-单片机SDA脚

5.3 继电器模块

上面口VCC-5V GND-GND PIN-单片机信号脚,下面口选择常开/常闭连接负载

在这里插入图片描述

5.4 L298N电机驱动板模块

接法如下 由于不用配置正反转可以四个口随便接 只是用来驱动电机的作用(需要与单片机共地)

在这里插入图片描述
在这里插入图片描述

5.5 MAX声音传感模块 一个

VCC接5VGND-GND OUT接信号脚

在这里插入图片描述
声音传感器是一种对声音敏感的模块,声音传感器模块内部电路图如下图所示,驻极体话筒来检测声音。驻极体话筒属于电容式话筒的一种,声电转换的关键元件是驻极体振动膜。当声波输入时,驻极体膜片随声波的强弱而振动,使电容极板间的距离发生变化,引起电容量C发生变化,因为驻极体两侧的电荷不变,因此电容C3两端的电压(UC=Q/C)发生变化,从而实现了声电转换。由于振动引起的输出电压的变化量较小,需要增加三极管9013放大电路,提高话筒的灵敏度。其中R1电阻为分压电阻,将声音传感器检测到的声音信息转化为模拟电压信号,模拟量信号接入LM393比较器后,即可与LM393比较器芯片2号引脚所接的电位器分压后的模拟电压进行比较,进而得出DO数字信号(即高低电平信号)。C1、C2为滤波电容,C1电容对电源进行滤波,让电源输出更稳定。C2电容对模拟信号进行滤波,保证模拟信号输出的稳定性。R5、R6均为限流电阻,来保护LED灯,防止LED灯烧坏,LED灯均为低电平有效。R7为上拉电阻,上拉就是将不确定的信号通过一个电阻钳位在高电平,同时起限流作用。保证LM393比较器输出的高低电平信号在与单片机引脚连接时电平信号的读取更加稳定。

在这里插入图片描述

在这里插入图片描述

5.6 Jdy-311蓝牙模块

接法 VCC GND接5V的源 TXD接单片机RXD RXD接单片机TXD

在这里插入图片描述

5.7 音乐播放模块

在这里插入图片描述

6 软件部分设计

系统采用的程序编写和调试的软件是Keil uVision4,C语言是本系统采用的编程语言,其不错的易读性和移植性让其成为相当热门的编程语言。系统软件设计图如图所示。

在这里插入图片描述

6.1 声音传感器子函数

当进入到主程序后,声音传感器可以实时检测大约3米范围内是否有声音存在,当其检测到有声音超过他的阀值时会输出高电平,当其监测范围内没声音时则会延时输出低电平。它的三个引脚作用分别是接电源,接地以及作为信号输出的引脚。当输出高电平时,此时就代表有声音,于是就会驱动主控程序使音乐片响起安抚婴儿,声音传感器软件设计流程如图所示。

在这里插入图片描述

6.2 声音传感器软件

当进入到主程序后,温湿度传感器可以实时检测环境中温湿度的变化,并将其实时的显示在液晶屏上,当上电后单片机会发送起始信号,同时拉高DATA,温湿度模块就会响应单片机的信号,同时将监测到的数据实时的传递给单片机,单片机就会读取这些信息,并在程序中进行校检。如果数据符合,就显示在液晶屏上。温湿度传感器软件设计流程如图所示

在这里插入图片描述

7 实现效果

在这里插入图片描述

上位机部分(暂不开源)

在这里插入图片描述

在这里插入图片描述

8 关键代码

main.c

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "key.h"
#include "dht11.h"
#include "usart.h"	
#include "timer.h"
#include "led.h"
#include "ds18b20.h"
#include "rtc.h" 
#include "usmart.h"
#define ADC1_DR_Address    ((u32)0x4001244C)
vu16 ADC_ConvertedValue;
float AD_value;void ADC_Configuration1(void)
{ADC_InitTypeDef ADC_InitStructure;DMA_InitTypeDef DMA_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOB, &GPIO_InitStructure);   DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize = 1;DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;DMA_InitStructure.DMA_Priority = DMA_Priority_High;DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA1_Channel1, &DMA_InitStructure);DMA_Cmd(DMA1_Channel1, ENABLE);ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = ENABLE;ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC_InitStructure);ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_239Cycles5);ADC_DMACmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1));ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}int main(void){	u8 ccc=99;u8 a;u8 key=0;u16 led0pwmval=0;u8 dir=1;	u8 t=0;short temperature;   	    u8 humidity;delay_init();	    	 //��ʱ������ʼ��	  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //����NVIC�жϷ���2:2λ��ռ���ȼ���2λ��Ӧ���ȼ� 	LED_Init();			     //LED�˿ڳ�ʼ��delay_ms(8000);uart_init(9600);	OLED_Init();			//��ʼ��OLED  OLED_Clear(); KEY_Init(); TIM3_PWM_Init(899,0);LED_Init();usmart_dev.init(SystemCoreClock/1000000);	//��ʼ��USMARTRTC_Init();	 ADC_Configuration1();TIM_SetCompare2(TIM3,1000);OLED_ShowCHinese(0,0,0);OLED_ShowCHinese(18,0,15);OLED_ShowCHinese(36,0,16);OLED_ShowCHinese(54,0,17);OLED_ShowCHinese(110,0,6);OLED_ShowCHinese(0,2,11);OLED_ShowCHinese(18,2,12);OLED_ShowCHinese(36,2,13);OLED_ShowCHinese(54,2,14);OLED_ShowCHinese(0,4,18);OLED_ShowCHinese(18,4,19);OLED_ShowCHinese(36,4,20);OLED_ShowCHinese(54,4,21);OLED_ShowCHinese(32,6,22);OLED_ShowCHinese(60,6,23);OLED_ShowCHinese(108,4,26);while(DS18B20_Init()){delay_ms(200);delay_ms(200);delay_ms(200);}while(DHT11_Init()){delay_ms(200);delay_ms(200);}while(1){	   printf("%d",123);if(t%10==0)			//ÿ100ms��ȡһ��{									  temperature=DS18B20_Get_Temp();					    OLED_ShowNum(70,0,temperature/10,2,16);	//��ʾ�¶�USART_SendData(USART1,ccc);printf("%d",temperature);if(temperature/10<23)GPIO_ResetBits(GPIOB,GPIO_Pin_7);if(temperature/10>=30)GPIO_SetBits(GPIOB,GPIO_Pin_7);	//				OLED_ShowString(85,0,".",16);	OLED_ShowNum(90,0,temperature%10,2,16);}				   delay_ms(10);t++;if(t==20){t=0;}if(a!=calendar.sec){a=calendar.sec;LCD_ShowNum(60,130,calendar.w_year,4,16);OLED_ShowNum(0,6,calendar.w_year,4,16);OLED_ShowString(30,6,".",16);			LCD_ShowNum(100,130,calendar.w_month,2,16);OLED_ShowNum(33,6,calendar.w_month,1,16);OLED_ShowString(50,6,".",16);	LCD_ShowNum(123,130,calendar.w_date,2,16);	OLED_ShowString(72,6,".",16);		OLED_ShowNum(53,6,calendar.w_date,2,16);LCD_ShowNum(60,162,calendar.hour,2,16);OLED_ShowString(70,6,".",16);				OLED_ShowNum(73,6,calendar.hour,2,16);LCD_ShowNum(84,162,calendar.min,2,16);OLED_ShowNum(93,6,calendar.min,2,16);OLED_ShowString(88,6,".",16);				LCD_ShowNum(108,162,calendar.sec,2,16);OLED_ShowString(108,6,".",16);	OLED_ShowNum(113,6,calendar.sec,2,16);LED0=!LED0;}	delay_ms(10);			AD_value = ADC_ConvertedValue;AD_value = (AD_value/4096)*3.3;printf("The current Sound AD value = %4.2fV \r\n", AD_value);if(AD_value>=2){OLED_ShowCHinese(90,2,31);OLED_ShowCHinese(108,2,32);delay_ms(200);}if(AD_value<2){OLED_ShowCHinese(90,2,29);		OLED_ShowCHinese(108,2,30);}delay_ms(10);	 if(dir)led0pwmval++;else led0pwmval--;if(led0pwmval>300)dir=0;if(led0pwmval==0)dir=1;										 key=KEY_Scan(0);	//�õ���ֵif(key){						   switch(key){				 case WKUP_PRES:					TIM_SetCompare2(TIM3,300);OLED_ShowCHinese(90,4,25);break; case KEY1_PRES:	 TIM_SetCompare2(TIM3,400);OLED_ShowCHinese(90,4,27);break;case KEY0_PRES:	TIM_SetCompare2(TIM3,0);OLED_ShowCHinese(90,4,28);break;}}}}

9 最后

这篇关于stm32毕业设计 单片机智能婴儿床系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402920

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能