jinglixixi 发表于 2020-9-28 00:31

【CH579M-R1】+DHT22温湿度检测

<p>前面主要介绍了基于模拟信号的传感器使用,本次说一说数字式传感器的使用,作为数字式传感器它也有许多种,</p>

<p>如温湿度传感器、光强度传感器、气温气压传感器等。</p>

<p>DHT22是一种检测检测常规状态下温湿度的传感器,它采用单总线结构,因此十分节省系统资源。</p>

<p>DHT22的采集精度要高于DHT11,它的精度可达小数点后1位,而DHT11只能到整数位。</p>

<p>由于是采用单总线工作,这一条线既要能输出,又要能输入。</p>

<p>在这里,是使用PA12来与DHT22的DAT引脚相连。</p>

<p>使其输出高低电平和进行输入的语句如下:</p>

<p>#define DHT11_D0_H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA_SetBits( GPIO_Pin_12 )</p>

<p>#define DHT11_D0_L&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA_ResetBits( GPIO_Pin_12 )</p>

<p>#define DHT11_D0_R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GPIOA_ReadPortPin( GPIO_Pin_12 )</p>

<p>配置引脚为输入/输出功能的函数为:</p>

<pre>
<code class="language-cpp">void DHT11_IO_IN(void)
{
             GPIOA_ModeCfg( GPIO_Pin_12, GPIO_ModeIN_PU );
}

void DHT11_IO_OUT(void)
{
             GPIOA_ModeCfg( GPIO_Pin_12, GPIO_ModeOut_PP_5mA );
}</code></pre>

<p>&nbsp;</p>

<p>显示温湿度值的主程序为:</p>

<pre>
<code class="language-cpp">int main()
{    
        u8 senflag;
        mDelaymS(100);
        OLED_Init();
        OLED_Clear();
        OLED_ShowString(0,0,"CH579M  TEST",16);
         OLED_ShowString(0,2,"DHT22_OLED",16);
         senflag=DHT11_Init();
         if(senflag) OLED_ShowString(64,0,"NO SEN!",16);
         else   OLED_ShowString(64,0,"SEN OK!",16);
         while(1)
         {
                     if(!senflag)
                     {
                                 OLED_ShowString(0,2,"T=  . C ",16);
                                 OLED_ShowString(64,2,"H=  . %",16);
                                 DHT11_Read_Data();
                                 OLED_ShowNum(16,2,temperature/10,2,16);
                                 OLED_ShowNum(40,2,(temperature%10),1,16);
                                 OLED_ShowNum(80,2,humidity/10,2,16);
                                 OLED_ShowNum(104,2,(humidity%10),1,16);
                     }
                     mDelaymS(1000);
          }
}</code></pre>

<p>&nbsp;</p>

<p>经编译、下载,其运行效果如下图所示。</p>

<p></p>

<p>温湿度检测效果图</p>

powerlove 发表于 2020-9-30 08:51

给你点赞,谢谢分享

jinglixixi 发表于 2020-9-30 19:28

powerlove 发表于 2020-9-30 08:51
给你点赞,谢谢分享

<p>感谢支持!</p>

powerlove 发表于 2020-10-2 21:40

这个资料比较实用给你点赞,谢谢楼主无私的分享。。。。

jinglixixi 发表于 2020-10-3 00:32

powerlove 发表于 2020-10-2 21:40
这个资料比较实用给你点赞,谢谢楼主无私的分享。。。。

<p>有朋友真好!!!</p>

okhxyyo 发表于 2020-10-9 16:00

<p><a href="https://bbs.eeworld.com.cn/thread-1140005-1-1.html" target="_blank">沁恒CH579M-R1开发板测评</a></p>

<p>汇总贴:<a href="https://bbs.eeworld.com.cn/thread-1140005-1-1.html">https://bbs.eeworld.com.cn/thread-1140005-1-1.html</a></p>

白宝熬夜打代码 发表于 2023-6-14 18:19

<p>楼主能求下您的工程源码吗</p>
页: [1]
查看完整版本: 【CH579M-R1】+DHT22温湿度检测