项目说明
除湿器原理
知识点
GPIO、定时器、中断、ADC、LCD屏幕、SHT20、SPI、IIC、UART
功能概述
模块 | 功能 |
LCD屏幕 | 显示温湿度,风机开关情况,制冷 开关情况,加热片开关情况,温 湿度上下阈值,设备ID,电池电压 |
LED\风扇 | 两个灯分别模拟制冷片(LED1),加热片(LED3)(灯亮表示开,灯灭表示 关),风扇模拟风机 |
SHT20 | 温湿度传感器 |
内部 | 电池电压采集 |
串口 | 数据接收及下发数据控制 |
控温模式 | 当环境温度低于设置的阈值时,加热片启动。加热到温度阈值加2摄 氏度停 当环境温度高于设置的阈值时,风机冷凝片启动。降温到温度阈值减2 摄氏度停 |
除湿模式 | 当环境湿度高于设置的阈值时,风机冷凝片加热片启动。湿度低于设 置的阈值停 |
按键 | 按键控制当前的温湿度阈值和调节当前模式 底板USER按键、拓展板KEY1\KEY2\KEY3均可用 |
基本要求
除湿器上电设备自检(有电池电压检测,有电压正常无电压异常), 检通过后进入自动模式 LCD显示温湿度,风机开关情况,制冷 开关情况,加热片开关情况,温湿度上下阈值,设备 ID,电池电压。 通过按键选择模式并调整温湿度的阈值大小。 与上位机通信(串口助手),每2s发送设备状态信息到上位机。上位机可发送命令设置除湿器 (这里需要识别设备ID),上位机可发送指令获取设备状态信息。
项目配置
项目代码
main.c
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "adc.h"
#include "i2c.h"
#include "icache.h"
#include "spi.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include "wifi.h"
#include "ali_yun.h"
#include "bsp_sht20.h"
#include "bsp_ili9341_4line.h"
#include <string.h>
#include "demo.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
float T,H;
uint8_t USART1_RxBuff[1024];
uint8_t USART1_RxCounter;
uint8_t show_value[64] = {0};
uint8_t show_fan[64] = {0};
uint8_t show_cold[64] = {0};
uint8_t show_hot[64] = {0};
uint8_t show_id[64] = {0};
uint8_t show_volt[64] = {0};
uint8_t show_Tem[64] = {0};
uint8_t show_Hum[64] = {0};
int MODE; //控制模式
int MODE