控制/MCU
人类的生存和社会活动与湿度密切相关。随着现代化的发展,很难找出一个与湿度无关的领域来。由于应用领域不同,对湿度传感器的技术要求也不同。开发者 shenlongju 利用RVB2601做了一个湿度监测和加湿、除湿控制端。
关于干湿度自动调节器的实现过程,请见本文详细介绍。
01 项目背景
最近买了一把吉他,看到保养注意上说,湿度要保持在40-60%,太干燥会开裂,太潮湿会变形,还挺难伺候。现在正好拿平头哥练习一下,自己做一个湿度监测和加湿、除湿控制端。
02 作品简介
(1)室内空气湿度监测
(2)湿度临界条件上,控制加湿器开关、控制除湿器开关
03 系统框图

04 各部分功能说明和解析
4.1 硬件准备
平头哥RVB2601开发板
DHT11温湿度传感器
雾化加湿器模块
除湿器设备
继电器2个
电源5v
4.2 软件准备
CDK v1.12版
SDK v7.4.3
05 作品源码
5.1 作品源码
#include
#include
#include
#include "aos/cli.h"
#include "main.h"
#include "app_init.h"
#include "oled.h"
#include "dht11.h"
#define TAG "app"
//引脚PA4 加湿器
static csi_gpio_pin_t Humidifie;
//引脚A7 除湿器
static csi_gpio_pin_t Dehumidifie;
int main(void)
{
board_yoc_init();
LOGD(TAG, "%s
", aos_get_app_version());
oled_init();
u8g2_t u8g2;
u8g2Init(&u8g2);
//继电器控制
//设置引脚模式为通用IO口:
csi_pin_set_mux(PA4, PIN_FUNC_GPIO);
csi_pin_set_mux(PA7, PIN_FUNC_GPIO);
//引脚初始化:
csi_gpio_pin_init(&Humidifie, PA4);
csi_gpio_pin_init(&Dehumidifie, PA4);
//设置引脚输出方向:
csi_gpio_pin_dir(&Humidifie, GPIO_DIRECTION_OUTPUT);
csi_gpio_pin_dir(&Dehumidifie, GPIO_DIRECTION_OUTPUT);
//设置引脚电平:
csi_gpio_pin_write(&Humidifie, GPIO_PIN_LOW);
csi_gpio_pin_write(&Dehumidifie, GPIO_PIN_LOW);
u8g2_SetFontMode(&u8g2, 1);
u8g2_SetFont(&u8g2, u8g2_font_unifont_t_symbols);
DHT11Init();
float Temp = 0;
float Humi = 0;
char strTemp[32];
char strHumi[32];
while(1)
{
u8g2_FirstPage(&u8g2);
do
{
DHT11ReadData(&Humi, &Temp);
sprintf(strTemp, "Temp: %.1f C", Temp);
sprintf(strHumi, "Humi: %.1f %%", Humi);
u8g2_ClearBuffer(&u8g2);
u8g2_DrawStr(&u8g2, 0, 30, strTemp);
u8g2_DrawCircle(&u8g2, 84, 22, 2, U8G2_DRAW_ALL);
u8g2_DrawStr(&u8g2, 0, 60, strHumi);
u8g2_SendBuffer(&u8g2);
if(Humi <= 40)
{
//湿度小,开加湿器
csi_gpio_pin_write(&Humidifie, GPIO_PIN_HIGHT);
}
else if(Humi >= 50)
{
//湿度大,关闭加湿
csi_gpio_pin_write(&Humidifie, GPIO_PIN_LOW);
}
if(Humi >= 60)
{
//开除湿机
csi_gpio_pin_write(&Dehumidifie, GPIO_PIN_HIGHT);
}
if(Humi <= 50)
{
//关闭除湿机
csi_gpio_pin_write(&Dehumidifie, GPIO_PIN_LOW);
}
delay_ms(3000);
} while (u8g2_NextPage(&u8gCH26012));
}
return 0;
}
5.2 硬件图片
DHT11传感器

5.3 继电器模块,控制加湿器和除湿器
因为GPIO端口输出的高电平不足以引起工作电压工作,这里用了继电器开关来外接整整的加湿器和除湿器设备。

最终成品

编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !