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;