注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
神龙居市的个人空间 https://home.eeworld.com.cn/space-uid-1289615.html [收藏] [复制] [分享] [RSS]
日志

【平头哥RVB2601创意应用开发】我的吉他环境保护器——干湿度自动调节器

已有 329 次阅读2022-5-17 11:34 |个人分类:平头哥

  • 风起需求

最近买了一把吉他,看到保养注意上说,湿度要保持在40-60%,太干燥会开裂,太潮湿会变形。还挺难伺候。现在正好拿平头哥练习一下,自己做一个湿度监测和加湿、除湿控制端。

  1. 室内空气湿度监测
  2. 湿度临界条件上,控制加湿器开关、控制除湿器开关
  • 工作流程图

  • 硬件准备 
  1. 平头哥RVB2601开发板
  2. DHT11温湿度传感器
  3. 雾化加湿器模块
  4. 除湿器设备
  5. 继电器2个
  6. 电源5v
  •  软件准备
  1. CDK v1.12版
  2. SDK v7.4.3
  • 案例核心代码

代码引用了DHT11传感器

#include <stdlib.h>
#include <string.h>
#include <aos/aos.h>
#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\n", 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(&u8g2));
    }

    return 0;
}
  • 硬件图片

  • DHT11传感器

 

  • 继电器模块,控制加湿器和除湿器

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

 

  • 最终成品

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章