系统功能:
以单片机为控制核心,综合运用传感器、物联网、太阳能等技术,设计一种基于单片机为控制核心的智能恒温外卖柜。它由恒温系统、无线模块、智能提醒系统、供电系统等组成,通过太阳能电池板独立供电,利用太阳能储能元件驱动单片机,通过温度传感器检测箱内温度并进行控制,并且利用键盘、LCD1602液晶显示器、NRF24L01无线传输模块等实行智能操作,使外卖柜具有恒温、智能提醒、太阳能供电等功能。
要求进行系统的硬件和软件设计,完成电路仿真和制作,编程调试出所有的功能。
系统功能框图:
主要功能模块原理图:
电源时钟烧录接口:
单片机和按键输入电路:
传感器和控制电路:
资料获取地址
系统主要功能模块代码
初始化代码:
/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);InitOled();InitOledDisp();ResetDHT11();/* USER CODE END 2 */
系统状态控制:
//系统信息更新void SystemControl(void){UpdateTempData();UpdateBleData();if(getTempVal>setTempH) //获取到的温度大于设定的温度高阈值{heatState = false;HEAT_OFF();fanState = true;FAN_ON();BUZZER_ON();}else if(getTempVal<setTempL) //获取到的温度低于设定的温度低阈值{heatState = true;HEAT_ON();fanState = false;FAN_OFF();BUZZER_ON();}else{heatState = false;HEAT_OFF();fanState = false;FAN_OFF();BUZZER_OFF();}}
蓝牙模块上报系统数据:
//蓝牙模块上报系统数据void UpdateBleData(void){static uint8_t bleCnt = 0;bleCnt++;if(bleCnt>=BLE_UPDATE_INTER){bleCnt = 0;//打印获取到的温度值printf("getTempVal:%02d\r\n", getTempVal);//打印设置的温度高阈值printf("setTempH:%02d\r\n", setTempH);//打印设置的温度低阈值printf("setTempL:%02d\r\n", setTempL);if(heatState==true){printf("Heat:ON\r\n");}else{printf("Heat:OFF\r\n");}if(fanState==true){printf("Fan:ON\r\n");}else{printf("Fan:OFF\r\n");} }}
此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。