이번에는 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)에 참여하시면 기사에 수록하지 못한 자료와 연습문제, 오프라인 강좌정보를 보내 드리도록 하겠습니다.
저작권자 © 디트NEWS24 무단전재 및 재배포 금지