查看: 4317|回复: 8

NXP COG的温度湿度剂调试成功

[复制链接]
  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-9-17 06:47:19 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ddllxxrr 于 2013-11-13 18:08 编辑

    一、概述
    我设计这个东东,我觉得很实用。可以实时显示当前的温度温度,这可以应用在需要测温湿度的地方,比如蔬菜大篷,花棚,家用也可。只要有电源的地方都可。

    二、设计思想
    就是利用DHT11温度温度剂来直接接收数据,结果数字化准确无误,并在屏幕上显示出来。屏幕只显示温湿度,这样看起来简洁方便。给人一目了然的感觉。

    三、视频展示





    四、制作过程
    额,早晨忙,现在说一下过程,我的这个是用DHT11那个温度湿度传感器来实现地,当有雪花显示时,就是显示温度没有时就是显示湿度。

    界面简单实用,同我为人触事一样。我比较喜欢。

    我也用的是STM32F3的那个板子,SPI方式,大家注意了SPI有个片选信号一定要接到NCE中间的那个角,否则显示一幅画面就停了。
    至于DHT11,一定要注意延时的准确性。我是用SYSTICK定的时,定时一定得准哟。否则是读不出来地。

    在显示数字时也有个体会,就是把空的笔画添零,这样就不用清屏函数去清了。而且速度还快。

    五、程序清单

    下面是DHT11的程序STM32F3

    #include "includes.h"
    extern void delay_usus(__IO uint32_t nTime);
    extern void delay_ms(__IO uint32_t nTime);
    void DHT11_IO_IN(void)
    {
    GPIO_InitTypeDef        GPIO_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); //
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_14 ;
          GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
          GPIO_Init(GPIOD, &GPIO_InitStructure);
    }
    //GPIO_Mode_OUT
    void DHT11_IO_OUT(void)
    {
    GPIO_InitTypeDef        GPIO_InitStructure;
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE); //
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_14 ;
          GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
          GPIO_Init(GPIOD, &GPIO_InitStructure);
    }
          
    //??DHT11
    void DHT11_Rst(void)   
    {                 
    DHT11_IO_OUT();  //SET OUTPUT
        GPIO_ResetBits(GPIOD,GPIO_Pin_14);
        delay_usus(20000);     //????18ms
        GPIO_SetBits(GPIOD,GPIO_Pin_14);//DQ=1
    delay_usus(30);      //????20~40us
    }
    //??DHT11???
    //??1:????DHT11???
    //??0:??
    u8 DHT11_Check(void)     
    {   
    u8 retry=0;
    DHT11_IO_IN();//SET INPUT  
        while (GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14)&&retry<100)//DHT11???40~80us
    {
      retry++;
      delay_usus(1);
    };  
    if(retry>=100)return 1;
    else retry=0;
        while (!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14)&&retry<100)//DHT11????????40~80us
    {
      retry++;
      delay_usus(1);
    };
    if(retry>=100)return 1;     
    return 0;
    }
    //?DHT11?????
    //???:1/0
    u8 DHT11_Read_Bit(void)     
    {
      u8 retry=0;
    while(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14)&&retry<100)//???????
    {
      retry++;
      delay_usus(1);
    }
    retry=0;
    while(!GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14)&&retry<100)//??????
    {
      retry++;
      delay_usus(1);
    }
    delay_usus(40);//??40us
    if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_14))return 1;
    else return 0;     
    }
    //?DHT11??????
    //???:?????
    u8 DHT11_Read_Byte(void)   
    {        
        u8 i,dat;
        dat=0;
    for (i=0;i<8;i++)
    {
         dat<<=1;
         dat|=DHT11_Read_Bit();
        }         
        return dat;
    }
    //?DHT11??????
    //temp:???(??:0~50°)
    //humi:???(??:20%~90%)
    //???:0,??;1,????
    u8 DHT11_Read_Data(u8 *temp,u8 *humi)   
    {        
      u8 buf[5];
    u8 i;
    DHT11_Rst();
    if(DHT11_Check()==0)
    {
      for(i=0;i<5;i++)//??40???
      {
       buf=DHT11_Read_Byte();
      }
      if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
      {
       *humi=buf[0];
       *temp=buf[2];
      }
    }else return 1;
    return 0;     
    }
    //???DHT11?IO? DQ ????DHT11???
    //??1:???
    //??0:??      
    u8 DHT11_Init(void)
    {  
      DHT11_IO_OUT();
          
    DHT11_Rst();  //??DHT11
    return DHT11_Check();//??DHT11???
    }


    IMG_0710.JPG


    六,总结

    NXP COG给我的印象是显示的效果不错,控制的方式多样,本人采用1:9的,还有近四一五种控制方式,显示的图形真清楚,不同于老式的段式液晶。我想取代老式液晶的时间不会太远了。

    七,参考资料
    DHT11的中文资料传下:
    DHT11-chinese.pdf (677.52 KB, 下载次数: 426)
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-9-17 08:30:47 | 显示全部楼层
    楼主介绍下调试过程,好让大家一起学习探讨啊{:soso_e104:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2013-9-17 19:12:18 | 显示全部楼层
    xinxincaijq 发表于 2013-9-17 08:30
    楼主介绍下调试过程,好让大家一起学习探讨啊

    已经补充上了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-9-18 10:25:39 | 显示全部楼层
    ddllxxrr 发表于 2013-9-17 19:12
    已经补充上了

    够给力啊。顶!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2013-9-18 15:34:08 | 显示全部楼层
    xinxincaijq 发表于 2013-9-18 10:25
    够给力啊。顶!!!

    呵呵,新新让补不敢不补
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-21 12:58
  • 签到天数: 907 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2013-9-24 20:44:50 | 显示全部楼层
    DELL LATITUDE D  系列   楼主的电脑!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2013-9-25 09:58:34 | 显示全部楼层
    expertss 发表于 2013-9-24 20:44
    DELL LATITUDE D  系列   楼主的电脑!!!

    恩,楼上还心挺细.我的武器型号都知道哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-7-21 12:58
  • 签到天数: 907 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2013-9-26 08:59:27 | 显示全部楼层
    嘿嘿 我的是E系列!!!!!!!!!!!!!!!!!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-3-4 08:29:47 | 显示全部楼层
    有一友人需要这方面的东东,推荐了这个,人家很是感谢。俺在这儿隆重的再次感谢楼楼了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 19:05 , Processed in 0.217856 second(s), 31 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.