산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

부품 및 소모품

아두이노 메가 2560×1
3.2인치 TFT 실드 (메가 2560 직결형)×1
MH-Z19 CO2 센서 (UART/PWM)×1
SI7021 온습도 센서 (I2C)×1
DS18B20 방수 온도 센서 (외부용)×1
DS1307 RTC 모듈 (I2C)×1
LM2596 DC-DC 강압 모듈 (가변 전압)×1
항공 커넥터 GX12-3핀 (외부 센서용)×1
스테인리스 버튼 3개 (LED 내장), 포토레지스터, LED 3개 (CO2 상태 표시)각종

앱 및 온라인 서비스

아두이노 IDE

프로젝트 배경

토목 엔지니어로서 환기 시스템의 중요성을 잘 알고 있습니다. 기존 CO2 모니터는 온도만 표시되어 아쉬웠고, 고가 장비는 부담되어 직접 제작했습니다. 아두이노로 펌프 스테이션 제어 경험이 있어 자신있게 도전했습니다.

베이스 하드웨어

10인치 대형 화면은 예산 초과라 3.2인치 TFT(480x320)를 메가 2560에 직결했습니다. 배선이 간편하지만 저가 디스플레이는 색상 반전, 백색 점 등 문제가 있어 코드에서 색상 보정과 정오/자정 화면 새로고침으로 대응했습니다.

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

센서 구성

MH-Z19 CO2 센서 (가장 비쌈, 약 $20)

저가형 중 신뢰성 높고 자동 보정 기능 내장. 24시간 후 외부 공기(400ppm) 기준으로 자가 보정됩니다. UART 통신 사용.

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

SI7021 실내 온습도 센서

I2C 인터페이스, 산업용 고정밀, 트러블 없이 잘 작동.

DS18B20 외부 온도 센서

스테인리스 캡슐 타입, 1-Wire 통신, 4.7kΩ 풀업 저항 필수.

DS1307 RTC

I2C로 시간 유지. 배터리 백업으로 전원 차단 시에도 시간 보존.

표시 및 인터페이스

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

전원 회로

19V/15V 어댑터만 있어 LM2596으로 7V로 강압해 아두이노에 공급. 12V 직결 시 발열 심해 7V로 낮추니 안정적.

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

외부 온도 센서는 항공 커넥터와 전화선으로 연장.

케이스 제작기

3D 프린터 없이 폴리머 클레이 → 6mm 합판(전동 톱 필요) → 3mm 합판(커터칼로 절단 가능)으로 시행착오 끝에 완성. 아크릴 페인트 도색으로 마감.

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

비용 내역 (약 $55.5 / 31,550원)

아두이노 메가 2560$8.27
TFT 3.2"$8.00
MH-Z19 CO2$20.00
SI7021$2.00
DS18B20 캡슐$1.14
RTC DS1307$0.55
기타 (버튼, 커넥터, 전원, 합판 등)$15.55

전체 코드

주요 라이브러리: UTFT, RTClib, SparkFunHTU21D, OneWire, DallasTemperature, SoftwareSerial

#include <Wire.h>
#include <RTClib.h>
#include <SoftwareSerial.h>
#include <SparkFunHTU21D.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <UTFT.h>

#define ONE_WIRE_BUS 9
#define GREENLED 5
#define YELLOWLED 7
#define REDLED 8
#define BUTTONLED 11

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
UTFT myGLCD(CTE32HR, 38, 39, 40, 41); // TFT 핀 설정
HTU21D myHumidity;
RTC_DS1307 rtc;

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79}; // MH-Z19 읽기 명령
unsigned char response[9];
unsigned int ppm = 0;
unsigned long time = 0;
int photocellReading = 0;
int hourupg = 0, minupg = 0;
float humd = 0, temp = 0;
int tcolor = 0;
int Z = 0; // LED 밝기
boolean Reset = false;

void setup() {
  myGLCD.InitLCD();
  myGLCD.clrScr();
  myGLCD.fillScr(VGA_WHITE); // 색상 반전 보정
  myGLCD.setBackColor(VGA_WHITE);
  
  Serial3.begin(9600); // MH-Z19용 UART
  sensors.begin();
  myHumidity.begin();
  rtc.begin();
  
  pinMode(GREENLED, OUTPUT);
  pinMode(YELLOWLED, OUTPUT);
  pinMode(REDLED, OUTPUT);
  pinMode(BUTTONLED, OUTPUT);
  pinMode(2, INPUT_PULLUP); // 시 버튼
  pinMode(3, INPUT_PULLUP); // 분 버튼
  pinMode(4, INPUT_PULLUP); // 색상 버튼
  Z = 0;
}

void loop() {
  co2();        // CO2 읽기
  photosensor(); // 조도 읽기 & LED 밝기 조절
  dateandtime(); // 시간 설정 버튼 처리
  th();         // 온습도 읽기
  
  if (digitalRead(4) == LOW) { tcolor++; if (tcolor >= 13) tcolor = 0; }
  
  drawmain();   // 화면 그리기
  lamps();      // 상태 LED 제어
  screenreset(); // 정오/자정 화면 새로고침
}

// 주요 함수들: co2(), th(), photosensor(), drawmain(), lamps(), dateandtime(), screenreset()
// 코드 전문은 원본 참조 (MH-Z19 CRC 체크, UTFT 그래픽 그리기 등 포함)

회로도

에어 서퍼: 아두이노 메가 2560 기반 DIY 공기질 모니터링 시스템

요약

CO2, 실내/외 온도, 습도, 시간을 한 화면에 표시하는 실용적인 공기질 모니터. 저가 부품으로 고가 상용 제품 수준의 기능을 구현했습니다. 3D 프린터 없이도 합판과 커터칼로 케이스 제작 가능.

제조공정

  1. 아두이노와 파이썬으로 OpenSensors를 활용한 공기질 측정 가이드
  2. DIY 공기질 모니터: 비용 효율적인 EPA 준수 검출기
  3. 에어 컴프레서 동파 방지 필수 가이드: 추위로부터 장비 보호하기
  4. 에어 실린더 액추에이터의 기초와 응용 분야
  5. 시설에 최적의 에어 컴프레서 선택하기: 궁극의 가이드
  6. 슈퍼차저가 엔진 효율과 성능을 높이는 원리
  7. 자동차 에어컨 시스템 작동 원리: 쾌적한 실내 온도 유지 비결
  8. 에어 서스펜션 시스템 완벽 가이드: 구조·종류·장단점·에어스프링 특성
  9. 에어 인젝션 시스템: 배기가스 저감 원리·구성·장단점
  10. 압축 공기: 수익성을 갉아먹는 숨은 비용