//------------라이브러리
#include "DHT.h" //온습도센서 라이브러리 추가
#include <SoftwareSerial.h> //Serial.xxx() 함수들을 대신할 수 있는 라이브러리
//-------------------정의
#define DHTPIN 2 //DHT핀을 2번 핀에 연결
#define DHTTYPE DHT11 //DHT11모델 사용 선언
DHT dht(DHTPIN, DHTTYPE); //DHT 설정(2번 핀, 모델 설정)
SoftwareSerial mySerial(A0, A1); //이산화탄소 센서 사용을 위함
byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
byte response[9];
String ppmString = " ";
//------------시작설정
void setup(){
Serial.begin(9600);//9600 속도로 시리얼 통신 시작
mySerial.begin(9600);//이산화탄소 센서 시작
}
//-----------반복
void loop(){
mySerial.write(cmd,9);
mySerial.readBytes(response, 9);
byte chck = 0;
int ppm = (response[2] << 8)|response[3];
ppmString = String(ppm); //이산화탄소 측정
int a = analogRead(A2); // 조도값 읽기
int h=dht.readHumidity(); //변수 h에 습도값 저장
int t=dht.readTemperature();//변수 t에 온도값 저장
//시리얼 모니터 기록 부분
Serial.print("Humidity: ");
Serial.print(h);//습도 출력
Serial.println("%:");
Serial.print("Temperature:");
Serial.print(t);//온도 출력
Serial.println("C");
Serial.print("Brightness:");
Serial.println(a);//조도 출력
Serial.print("CO2:");
Serial.println(ppm);//이산화탄소 농도 출력
Serial.print("\n--------------------------------\n");
//
delay(1000);//수집 간격
}
Serial.println("CLEARDATA");
Serial.println("LABEL,Time,Humidity,Temperature,Brightness,CO2"); //라벨 작성
Serial.print("DATA,TIME,");
Serial.print(h);
Serial.print(",");
Serial.print(t);
Serial.print(",");
Serial.print(a);
Serial.print(",");
Serial.println(ppm);