UPDATED. 2018-10-22 08:21 (월)
아두이노로 실내 미세먼지 측정
아두이노로 실내 미세먼지 측정
  • 이민휘
  • 승인 2018.08.05 22:39
  • 댓글 0
이 기사를 공유합니다

이번에는 DIY로 미세먼지측정기를 만들어 볼 것이다. 이에 앞서 독자들의 많은 질문 중 마이크로프로세서와 마이크로컨트롤러의 혼돈을 하고 있어 둘 사이의 차이를 설명할 필요가 있다.

마이크로컨트롤러(MCU : Micro Controller Unit)

프로세서(Processor)란 프로그램의 명령어를 처리하기 위한 장치이다. 명령어 처리는 8비트 16비트... 64비트는 처리능력을 의미한다. 그런데 CPU 또는 마이크로프로세서(MPU)는 연산만 가능한 장치로 램, 롬 등의 주변장치가 있어야 실재 사용할 수 있다. 마이크로컨트롤러는 마이크로프로세서와 이를 사용하기 위한 메모리, 입력장치 등의 필요한 기능이 함께 집적된 장치이다. 우리가 주로 다루고 있는 아두이노의 ATmega328는 8비트 마이크로콘트롤러이다.

DIY 미세먼지측정기

공기청정기를 만들어 보았다면 어는 정도 효과가 있는지 확인해야 한다. 물론 습도와 미세먼지는 깊은 상관관계가 있다. 따라서 온도와 습도, 미세먼지측정기를 통합하여 만들어 실시간으로 실내 미세먼지 농도뿐만 아니라 온도와 습도를 함께 측정해보자!

준비물

  • 아두이노 우노
  • 미세먼지 센서 GP2Y1010AU0F(Sharp) 외

Source Code

 

int measurePin = A5;

int ledPower = 12;

 

unsigned int samplingTime = 280;

unsigned int deltaTime = 40;

unsigned int sleepTime = 9680;

 

float voMeasured = 0;

float calcVoltage = 0;

float dustDensity = 0;

 

void setup(){

  Serial.begin(9600);

  pinMode(ledPower,OUTPUT);

}

 

void loop(){

  digitalWrite(ledPower,LOW);

  delayMicroseconds(samplingTime);

 

  voMeasured = analogRead(measurePin);

 

  delayMicroseconds(deltaTime);

  digitalWrite(ledPower,HIGH);

  delayMicroseconds(sleepTime);

 

  calcVoltage = voMeasured*(5.0/1024);

  dustDensity = 0.17*calcVoltage-0.1;

 

  if ( dustDensity < 0)

  {

    dustDensity = 0.00;

  }

 

  Serial.println("Raw Signal Value (0-1023):");

  Serial.println(voMeasured);

 

  Serial.println("Voltage:");

  Serial.println(calcVoltage);

 

  Serial.println("Dust Density:");

  Serial.println(dustDensity);

 

  delay(1000);

}

 

----------------------

  • 내용 중 질문이나 문의사항이 있다면 직접 crebizias@naver.com 로 질문하시면 답변 드리겠습니다.
  • 강좌를 위한 설문을 하고 있습니다. 설문(https://goo.gl/3S23du)에 참여하시면 기사에 수록하지 못한 자료와 연습문제, 오프라인 강좌정보를 보내 드리도록 하겠습니다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.