[매드] 아두이노 강좌 - 39. 온습도, LCD 연동

안녕하세요~~ 매드 입니다.

이번 시간에는 유투브를 통해 요청이 왔던 사항으로 온습도센서와 LCD를 연동하는 작업을 해보도록 하겠습니다.

둘다 기존에 개별적으로 진행했던 부분이기 때문에 전에 했던 링크를 활용해서 간단히 설명해보겠습니다~~


39-1. 온습도, CLCD 복습

우선 이전에 했었던 온습도 센서 강좌(http://maduinos.blogspot.kr/2016/02/13.html)와 lcd_key pad 강좌(http://maduinos.blogspot.kr/2016/04/20-lcd-keypad.html) 를 먼저 학습하고 난 후 이를 합치는 방법에 대해서 설명해보겠습니다.

두 링크를 훑은 후 각각의 홈페이지에 나와있는 소스코드도 활용해야겠죠?


39-2. 온습도, CLCD 연결


<LCD KEYPAD + DHT11 연동>


우선 LCD KEY PAD에 온습도 센서를 연결해야하는데요. 온습도센서 모듈에는 5V와 GND를 연결하고 데이터선은 아두이노의 D2번 핀과 연결하여 온습도 데이터를 받아오도록 하겠습니다.


<LCD KEYPAD 핀맵(출처:구글사진)>

LCD KEYPAD의 경우 LCD 쉴드와 아두이노가 연결되어있는 핀들을 제외하고 외부로 나와있기 때문에 온습도센서 또는 다른 센서를 연결하실 때 주의 하셔야 합니다.

위 사진에 보면 아두이노에서 남아있는 디지털핀이 D0, D1, D2, D3, D11, D12, D13 이렇게 남아있는 것을 알 수 있습니다. 이점 참조해서 외부 모듈을 연결 하시면 될 것 같습니다.


39-3. 펌웨어

#include <LiquidCrystal.h>
#include "DHT.h"

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

#define DHTPIN 2     // what pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);              // start the library

  dht.begin();
}

void loop() {
  delay(1000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  float hif = dht.computeHeatIndex(f, h);
  float hic = dht.computeHeatIndex(t, h, false);
 
  lcd.setCursor(0, 0);
  lcd.print("Humidity: ");
  lcd.print(h);
  lcd.print("%");

  lcd.setCursor(0, 1);
  lcd.print("Temperature: ");
  lcd.print(t);
  lcd.print("C ");
}

코드는 이전에 작성했던 것이 지워져서(ㅠㅠ) 제가 간략히 새로 작성했습니다.
혹시 문제되는 부분 있으면 알려주세요.(라이브러리 추가하시는 것 잊지마세요~)
자세한 코드는 영상보시면 수정하셔야 될 것 같네요.
그럼 다음시간에 봐요~~ ^^

댓글 쓰기

3 댓글

  1. 안녕하세요 매드님 혹시 다음에 이산화탄소센서에 대한 강의 한번 올려주실수 있으신가요?
    그리고 아두이노가 아닌 ATMEGA128을 이용한 센서이용방법 혹시 가능하면 올려주시면 감사합니다.

    답글삭제
    답글
    1. 네~ ^^ 다른 센서들과 마찬가지로 ADC 값을 읽어서 사용하면 될 것 같은데요.
      한번 확인해보겠습니다.
      atmega128도 ADC를 이용하는거기 때문에 동일하다고 보시면 될 것 같네요. 흠..
      atmega128 관련해서 강좌도 준비해보겠습니다.
      최근에 다른 일들로 바쁘다보니...(핑계 ㅠ)
      강좌 올리는게 쉽지 않네요!
      주말에 한번 해보고 블로깅 해볼께요~ ^^

      삭제
  2. 작성자가 댓글을 삭제했습니다.

    답글삭제