Page 141 - MDP2020-1
P. 141

················································································  명장양성프로젝트  【MDP】  과제발표회  자료집  Ⅰ    |  135


                라.  온습도  측정을  하기  위한  프로그램  소스


            1.  GPIO를  제어할  수  있는  wiringPi  라이브러리를  설치한다
                    $sudo  apt-get  update
                    $sudo  apt-get  upgrade
                    $sudo  apt-get  install  git-core
                    $git  clone  git://git.drogon.net/wiringPi
                    $cd  wiringPi
                    $./build


            2.  dht11temp.c  파일을  생성  후  nano편집기를  이용해  소스코드를  입력한다.
                    $nano  dht11temp.c

            #include  <wiringPi.h>
            #include  <stdio.h>
            #include  <stdlib.h>
            #include  <stdint.h>
            #define  MAXTIMINGS        85
            #define  DHTPIN                7    //wPi  pin.  physical  num  7
            int  dht11_dat[5]  =  {  0,  0,  0,  0,  0  };

            void  read_dht11_dat()
            {
                    uint8_t  laststate        =  HIGH;
                    uint8_t  counter                =  0;
                    uint8_t  j                =  0,  i;
                    float        f;

                    dht11_dat[0]  =  dht11_dat[1]  =  dht11_dat[2]  =  dht11_dat[3]  =  dht11_dat[4]  =  0;

                    pinMode(  DHTPIN,  OUTPUT  );
                    digitalWrite(  DHTPIN,  LOW  );
                    delay(  18  );
                    digitalWrite(  DHTPIN,  HIGH  );
                    delayMicroseconds(  40  );
                    pinMode(  DHTPIN,  INPUT  );

                    for  (  i  =  0;  i  <  MAXTIMINGS;  i++  )
                    {
                            counter  =  0;
                            while  (  digitalRead(  DHTPIN  )  ==  laststate  )
                            {
                                    counter++;
                                    delayMicroseconds(  1  );
                                    if  (  counter  ==  255  )
                                    {
                                            break;
                                    }
                            }
                            laststate  =  digitalRead(  DHTPIN  );

                            if  (  counter  ==  255  )
                                    break;
   136   137   138   139   140   141   142   143   144   145   146