본문 바로가기
aCodingTo

MQ-7(일산화탄소), MQ-135(공기질) sensor to LCD with DHT11

by redi 2023. 2. 13.
반응형

집에서 키우는 딸기 화분에 토양 수분 감지 센서를 설치하려고 하다가.. 이건 너무 간단한 일이라 다른게 없을까 생각을 해보니 예전에 사놓고 방치한 공기질 센서가 보이더라. 그래서 일단 이것들을 아두이노에 연결을 해봤다. 언제나 느끼지만 아두이노는 케이블과의 전쟁. 이산화탄소 농도를 확인해보고 싶은데 이걸 측정할 수 있는 센서가 좀 비싸다. 그래서 일단은 일산화탄소만..

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);

#include <DHT.h> // not <DHT11.h>
#define DHTPIN 7      // DHT data goes to pin7
#define DHTTYPE DHT11  // DHT타입을 DHT11로 정의
DHT dht(DHTPIN, DHTTYPE); 

const int AQPin =A1;
const int CoPin = A2;

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.backlight();
}

void loop() {
  int CoValue = analogRead(CoPin);
  int AQValue = analogRead(AQPin);
  int Temp=dht.readTemperature();
  int Humidity=dht.readHumidity();
  
  lcd.setCursor(0,0);                     //1행 1열
  lcd.print("CO level:");
  lcd.print(CoValue);
  lcd.setCursor(0,1);                     //2행 1열
  lcd.print("Air quality: ");
  lcd.print(AQValue);
  lcd.setCursor(0,2);                     //3행 1열
  lcd.print("Temp:");
  lcd.print(Temp);
  lcd.setCursor(0,3);
  lcd.print("Humidity:");
  lcd.print(Humidity);
  
//Serial monitor 
  Serial.print("Carbon Monoxide: ");
  Serial.println(CoValue);
  Serial.print("Air quality: ");
  Serial.println(AQValue);
  Serial.print("Temp: ");
  Serial.println(Temp);
  Serial.print("Humidity" );
  Serial.println(Humidity);
   
  delay(2000);
  lcd.clear();
}

요새 간단한 코드는  chatGPT에 물어보는데 이 녀석이 dht11.h를 추가해야 한다고 알려주는 바람에 한참을 고생했다. DHT 시리즈 모두를 위한 라이브러리를 불러오고 그 중에서 내가 쓰는 것은 DHT11이라고 지정을 해서 써야되는 것인데...

가스를 탐지하는 센서는 여러 종류가 있단다. 그 중 내가 쓴 것은 7번과 135번이다. 시골에 있는 우리집엔 도시가스가 들어오지 않으니 LPG, 부탄을 감지하는 6번 센서를 하나 사볼까? 더 자세한 설명은 여기에!

일단 토양 수분 측정, 온습도 측정은 준비가 되었으니.. 이제 스쿠터용 GPS 속도계를 만들어볼까? 예전에 사놓은 gps 모듈을 꺼내보자. 

그리고 이 사이트를 보면 여러 센서를 어떻게 연결해서 사용할 수 있는지 잘 알 수 있다.

728x90
반응형