IoT

[C#] 아두이노 온/습도 DHT22 USB 시리얼 포트 연결 C# 개발해보기 1

GreenDJ 2021. 2. 25. 14:40

 

회사에서 IoT를 배우게되면서 아두이노를 사용하게되어 DHT22를 이용한

온습도 데이터 출력을 해보고자 합니다.

 

(개발자 입문 단계이다보니 설명이 부족하거나 코드도 부족한게 많을 수 있습니다.)

 

코딩을 하며 배운 내용을 기록 및 보관하기위해 이 글을 작성합니다.

 

lcd 와 아두이노, 브레드 보드, USB 포트를 사용하여 개발 중

<현재 아두이노 상황>

핀연결 관계는 이 보다 더좋은 자료가 더많으니 다른 곳을 참고 하시길....

복잡하니 설명 생략(1)

 

먼저 아두이노에 필요한 라이브러리와 코드를 넣어주기위해 Arduino IDE를 사용합니다.

<보드와 포트 연결>

 

보드는 "Arduino Uno"

포트는 "COM3"

 

이 정도는 이 글 을 보시는분들은 다아시겠죠??

모른다한들 인터넷에 너무 방대한 데이터가 다알려주니

설명생략(2)

<라이브러리 추가>

코드의 라이브러리를 추가하기 위해 스케치 > 라이브러리 포함 > 라이브러리 관리 로 들어갑니다.

<라이브러리 매니저>

 

그러면 라이브러리 매니저가 실행 되고 여기서 DHT 를 검색하여 DHT sensor library 를 1.3.0 버전으로 설치 해줍니다.

물론! 최신으로 설치해도 상관없습니다.

#include <DHT.h>

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // LCD 사용

#define DHTPIN 2        // 온습도 센서가 2에 연결 
#define DHTTYPE DHT22   // DHT22 온습도 센서 사용

DHT dht(DHTPIN, DHTTYPE); // DHT 설정(A0, DHT22)

LiquidCrystal_I2C lcd(0x3F,16,2); // lcd(본인 lcd의 ID, X칸의 개수, Y칸의 개수)

void setup() { 
  Serial.begin(9600);
  Serial.println(F("DHT22 Serial Start!"));
  dht.begin();
  lcd.begin();
  lcd.clear();
  lcd.backlight();
}

void loop() { 
   
  float h = dht.readHumidity();     // 습도값
  float t = dht.readTemperature();  // 온도값

  lcd.setCursor(0, 0);
  lcd.print("Temperat[");
  lcd.print(t);
  lcd.print("C]");
  
  Serial.print("Temperature: ");   
  Serial.print(t); // 습도값 출력
  Serial.println("C");

  lcd.setCursor(0, 1);
  lcd.print("Huminity[");
  lcd.print(h);
  lcd.print("%]");
  
  Serial.print("Humidity: "); // 문자열 출력
  Serial.print(h); // 온도값 출력
  Serial.print("% ");  

  delay(1000);

}

 

이제 위의 코드를 입력하여 아두이노에 업로드 해주시면 됩니다!

아쉬운게 첨에 lcd.Init()를 사용 했는데... 라이브러리가 최신화되면서 없어진건지 안되는건지
안되길래 lcd.clear() 로 변경을 해주었습니다..

주의!

DHT22 와 본인이 연결한 PIN 번호는 변경이 필요합니다. 각자의 세팅에 맞게

 

lcd(0x3F,16,2) << 0x3F 는 본인의 lcd모듈에 맞추어 주시길 바랍니다.

lcd 모듈 뭔지모른다! 하시는분들은 공식홈페이지 참조해주시면 됩니다 아래 링크!

 

playground.arduino.cc/Main/I2cScanner/

 

Arduino Playground - I2cScanner

i2c_scanner Last Modified: November 14, 2018, at 09:21 AM By: This very simple sketch scans the I2C-bus for devices. If a device is found, it is reported to the Arduino serial monitor. This sketch is the first step to get the I2C communication working. The

playground.arduino.cc

 

<시리얼 모니터>

시리얼 모니터로 확인하면 출력이 잘 됩니다.

확인했으니 업로드를 해주시면 됩니다.

<출력화면>

짜잔~! 이게답니다~!

 

혹시나 제가 사용한 라이브러리들이 찾기 귀찮다 하시는분들을 위해 파일 첨부합니다
경로는 제 기준 내 PC> 문서 > Arduino > libraries 안에 포함했습니다.
경로는 각 PC별로 다를 수 있으니 참고하시길 바랍니다.

 

 

Arduino-LiquidCrystal-I2C-library-master.zip
0.01MB
DHT_sensor_library.zip
0.01MB

 

 

공감은 선택입니다 ^^

C# 개발은 2부로 ...