查看: 208|回复: 2

[中移One NET] 以麒麟座开发板实现温湿度控制

[复制链接]

100

主题

2

好友

2525

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 09:16
  • 签到天数: 454 天

    连续签到: 6 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章

    发表于 2017-9-6 09:11:19 |显示全部楼层
    本帖最后由 jinglixixi 于 2017-9-6 09:59 编辑

         在实现OLED屏显示的基础上,配合SHT20温湿度传感器的使用,可对温湿度进行控制,其执行控制的效果如图1和图2所示。
    图片1.png

    1 开启继电器

    图片2.png

    2关断继电器

    由此要完成一个温湿度控制器,除开发板外还需要配置OLED屏、软按键及带光隔的继电器。
    其中软按键与MCU的连接关系为:
          1 -- PB14
          2 -- PB15
          3 -- PB12
          4 -- PB13
    软按键的初始化函数为:
    1. void KEY_Init(void)
    2. {
    3.         GPIO_InitTypeDef gpioInitStrcut;
    4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);               
    5.         gpioInitStrcut.GPIO_Mode = GPIO_Mode_IPU;        
    6.         gpioInitStrcut.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15;
    复制代码
    使用软按键进行温湿度限值设置的程序如下:
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12)) n=n*10;  
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13)) OLED_ShowString(44,6,":OK",16);
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14)) n++;  
             if (!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)) n--;  
             OLED_ShowNum(68,6,n,3,16);
    光隔继电器与MCU的连接关系为:
            Vin--PC13
          光隔继电器的初始化函数为:
    1. void JDQ_Init(void)
    2. {
    3.         GPIO_InitTypeDef gpioInitStrcut;
    4.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);        
    5.         gpioInitStrcut.GPIO_Mode = GPIO_Mode_Out_PP;
    6.         gpioInitStrcut.GPIO_Pin = GPIO_Pin_13;        
    7.         gpioInitStrcut.GPIO_Speed = GPIO_Speed_50MHz;        
    8.         GPIO_Init(GPIOC, &gpioInitStrcut);        
    9. }
    复制代码
    使用继电器进行温湿度控制的程序如下:
    1.                 if(tem>n)  //控制判别
    2.                 {
    3.                         OLED_ShowString(36,6,":ON",16);
    4.                         GPIO_WriteBit(GPIOC, GPIO_Pin_13,Bit_RESET);
    5.                 }
    6.                 else
    7.                 {
    8.                         OLED_ShowString(36,6,":OFF ",16);
    9.                         GPIO_WriteBit(GPIOC, GPIO_Pin_13,Bit_SET);
    10.                 }
    复制代码
    温湿度控制器的界面显示函数为:

    void jm()
    {      
            OLED_Clear();
            OLED_ShowCHinese(18,0,0);  
            OLED_ShowCHinese(36,0,1);  
            OLED_ShowCHinese(54,0,2);  
            OLED_ShowCHinese(72,0,3);  
            OLED_ShowCHinese(90,0,4);  
            OLED_ShowCHinese(0,2,0);   
            OLED_ShowCHinese(18,2,2);
            OLED_ShowString(36,2,":22",16);
            OLED_ShowCHinese(0,4,1);   
            OLED_ShowCHinese(18,4,2);
            OLED_ShowString(36,4,":33",16);
            OLED_ShowCHinese(0,6,8);   
            OLED_ShowCHinese(18,6,9);         
            OLED_ShowString(36,6,":",16);
    }


    温湿度的显示程序如下:
    1.                 SHT20_GetValue();
    2.                 tem=sht20Info.tempreture*10;
    3.                 hum=sht20Info.humidity*10;
    4.                 OLED_ShowNum(44,2,tem/10,2,16);
    5.                 OLED_ShowChar(60,2,'.',16);
    6.                 tem=tem%10;
    7.                 OLED_ShowNum(68,2,tem,1,16);
    8.                 OLED_ShowNum(44,4,hum/10,2,16);
    9.                 OLED_ShowChar(60,4,'.',16);
    10.                 hum=hum%10;
    11.                 OLED_ShowNum(68,4,hum,1,16);
    复制代码
    回复

    使用道具 举报

    9

    主题

    4

    好友

    1051

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2017-9-6 09:24:38 |显示全部楼层
    早呀早,早早早
    回复

    使用道具 举报

    100

    主题

    2

    好友

    2525

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 09:16
  • 签到天数: 454 天

    连续签到: 6 天

    [LV.9]以坛为家II

    爱板会员勋章 活跃会员勋章

    发表于 2017-9-6 09:44:46 |显示全部楼层
    ky123 发表于 2017-9-6 09:24
    早呀早,早早早

    早上好!     
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-9-24 02:18 , Processed in 0.443085 second(s), 12 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部