单片机毕设 STM32车载酒精浓度检测报警系统 防酒驾安全驾驶控制系统
1 前言
📘 随着高校对毕业设计要求的不断提高,选择一个既具创新性又能切实解决实际问题的毕业设计题目,成为了众多毕业生面临的一大挑战。传统的选题往往因为缺乏亮点,难以达到老师和评审团的预期标准。为了帮助大家顺利通过毕业设计并展现出个人的独特风格,这里将推荐一些兼具技术性与实用性的项目选题,确保大家在完成毕业设计的过程中,既能掌握新技术,又能在答辩时脱颖而出。本次推荐的是:
🌌 STM32车载酒精浓度检测报警系统
2 主要设计内容
基于STM32F103C8T6单片机,利用LD3302语音识别模块加上水温水位等传感器来检测控制水箱的水温,水位等信息。
- 水位检测
- 水温检测
- 语音识别
- 水位报警
- WIFI APP交互
部分原理图如下:
3 部分代码
extern uint8_t EM_State;
extern uint8_t mode;
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6 | GPIO_PIN_12, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_RESET);
/*Configure GPIO pin : PB6 */
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PA11 PA12 PA13 */
GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
/* USER CODE BEGIN 2 */
void EXTI15_10_IRQHandler(void)
{
// Check if EXTI line for PA12 is asserted
if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_15) != RESET)
{
// Set EM_State to 1
mode = !mode;
Hand_State = 0;
// Clear the EXTI line pending bit
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_15);
}
// Check if EXTI line for PA12 is asserted
if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_11) != RESET)
{
// Set EM_State to 1
Hand_State = 2;
// Clear the EXTI line pending bit
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_11);
}
if (__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_12) != RESET)
{
// Set EM_State to 1
Hand_State = 1;
// Clear the EXTI line pending bit
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_12);
}
// Check if EXTI line for PA12 is asserted
}
4 总结
包含内容有:
技术解答 - 毕设帮助请联系博主哦!