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

DIY 공기질 모니터 – PM2.5, CO2, VOC, 오존, 온도 및 습도 Arduino 측정기

<메인 클래스="사이트 메인" id="메인">

당신이 호흡하는 공기의 질에 대해 궁금한 적이 있습니까, 아니면 밤새도록 잠을 자고도 아침에 피곤하거나 사무실에서 때때로 졸리다고 느끼는 이유가 무엇입니까? 나쁜 공기 질이 건강에 좋지 않은 영향을 줄 뿐만 아니라 피로, 두통, 집중력 상실, 심박수 증가 등을 유발할 수 있습니다. 공기의 질을 모니터링하는 것은 실제로 당신이 생각하는 것보다 더 중요할 수 있습니다. 따라서 이 튜토리얼에서는 PM2.5, CO2, VOC, 오존은 물론 온도와 습도를 측정할 수 있는 자체 대기질 모니터를 구축하는 방법을 배웁니다.

다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다.

개요

각 공기질 매개변수가 우리에게 어떤 영향을 미치고 센서가 어떻게 작동하는지 설명하겠습니다. 이 프로젝트의 핵심은 2.8인치 Nextion 터치 디스플레이와 결합하여 적절한 사용자 인터페이스를 제공하는 Arduino Pro Mini 보드입니다.

모든 센서의 측정값을 실시간으로 볼 수 있으며 특정 센서를 클릭하면 해당 센서에서 지난 24시간 동안의 값을 가져옵니다. 디스플레이의 밝기를 낮추거나 완전히 끌 수 있는 디밍 기능도 있습니다. 예를 들어 밤에 침실의 공기 질을 추적하려는 경우에 편리합니다.

밤에는 화면을 끄고 다음날에는 각 센서의 값을 개별적으로 확인할 수 있습니다.

그럼에도 불구하고 이제 나는 그것을 구축하는 전체 과정을 안내하고 모든 것이 어떻게 작동하는지 설명할 것입니다. 이 비디오가 끝나면 직접 만들 수 있습니다. 자, 시작하겠습니다.

PM2.5 센서 – PMS5003

이 장치에는 4개의 주요 구성 요소 또는 공기 품질 센서가 있습니다. 우리는 약 2.5마이크론 직경의 PM2.5 또는 공기 중의 미립자 물질을 측정하기 위해 PMS5003 센서를 사용하고 있습니다. 미립자는 폐, 혈류 및 뇌 깊숙이 침투하여 많은 건강 문제를 일으킬 수 있기 때문에 가장 해로운 형태의 대기 오염입니다.

이 센서는 레이저 산란 원리에 따라 작동합니다. 센서에는 제어된 공기 흐름을 생성하는 팬이 있어 환경 미립자가 집중된 레이저 빔을 통과하도록 합니다.

미립자는 광 다이오드에 의해 감지된 광산란을 일으키고 마이크로프로세서의 도움으로 PM 농도로 변환됩니다. 이 센서의 결과는 매우 신뢰할 수 있으며 PM2.5를 따라 PM1 및 PM10 값도 출력할 수 있습니다.

CO2 센서 – MH-Z19

다음으로 CO2 또는 이산화탄소 측정을 위해 MH-Z19 센서를 사용하고 있습니다. 사람들은 호흡하면서 이산화탄소를 배출하기 때문에 실내 CO2 농도는 쉽게 매우 높아질 수 있습니다. CO2는 고농도에서 위험할 뿐만 아니라 졸음, 피로, 생산성 저하 등을 유발할 수 있습니다.

센서는 공기 중의 CO2를 측정하기 위해 비분산 적외선 원리를 사용합니다. 적외선 소스는 우리가 측정하는 공기로 채워진 튜브를 통해 빛을 전달합니다. 적외선 소스의 반대편에는 통과하는 IR 광선의 양을 측정하는 광학 필터와 IR 감지기가 있습니다.

우리가 측정하고 있는 공기 중에 존재하는 CO2 가스 분자는 특정 대역의 적외선을 흡수하면서 일부 파장은 통과시킵니다. 따라서 CO2 수준은 방출되는 빛의 양과 감지기가 수신하는 IR 빛의 양의 차이에 따라 계산됩니다. 이 센서의 결과도 매우 정확합니다.

VOC 및 오존 센서 – MP503 및 MQ-131

VOC 및 오존 측정을 위해 MP503 및 MQ131 가스 센서를 사용하고 있습니다. 이들은 가열된 금속 산화물 센서이며 작동 원리는 대상 가스가 있을 때 저항 변화를 감지하는 것을 기반으로 합니다.

금속 기판에 특정한 전류가 흐르고 존재하는 가스의 양에 따라 저항이 변합니다.

MQ131 센서의 타겟 가스는 바로 오존으로 일반 가정에서는 특정 공기 청정기, 얼굴 찜기, 자외선을 발생시키는 살균 램프 등과 같은 제품에서 발생할 수 있습니다.

반면에 MP503 센서에는 알코올, 연기, 이소부탄, 메탄알 등을 포함한 여러 대상 가스가 있습니다. VOC는 Volatile Organic Compounds의 약자로 세탁세제, 세제, 방향제, 페인트, 메이크업 등 우리가 일상적으로 사용하는 제품에서 나오는 유기물입니다. VOC는 두통, 눈 자극, 피부 반응, 현기증 등을 포함한 많은 건강상의 부정적인 영향을 일으킬 수 있습니다.

DIY Arduino 대기 질 모니터 – 회로도

그럼에도 불구하고 이제 회로도를 보고 모든 것이 어떻게 연결되어야 하는지 설명하겠습니다.

아래 링크에서 이 Arduino 대기 질 모니터에 필요한 구성 요소를 얻을 수 있습니다.

공개:제휴 링크입니다. Amazon Associate로서 저는 적격 구매를 통해 수익을 얻습니다.

올바른 저항 값:R1 =1K, R2 =2K, R6=100K 또는 1M, R7=1K

PM2.5 센서는 직렬 인터페이스를 통해 Arduino와 통신합니다. 5V에서 작동하지만 수신 RX 로직 레벨은 3.3v에서 작동하므로 이를 위한 전압 분배기가 필요합니다. CO2 센서와 Nextion 디스플레이도 직렬 통신을 사용합니다. VOC 및 오존 센서를 읽기 위해 Arduino의 아날로그 입력을 사용하는 반면 DHT22 온도 및 습도 센서는 해당 용도로 디지털 핀을 사용합니다.

두 개의 트랜지스터는 센서 히터를 활성화하는 데 사용됩니다. 또한 센서 값을 저장할 때 시간을 추적하기 위해 Real Time Clock 모듈을 사용하고 있으며 I2C 통신을 사용합니다. 전체 장치는 Mini USB 커넥터를 통해 5V로 전원이 공급됩니다.

참조:8가지 최고의 Arduino 스타터 키트[2021 업데이트]

이제 모든 것을 함께 연결하려고 하면 많은 연결로 인해 상당히 엉망이 될 것입니다.

따라서 이 프로젝트에는 반드시 PCB가 필요합니다.

Arduino 대기 질 모니터용 PCB 만들기

이 프로젝트의 PCB를 만들기 위해 실제로 이 비디오의 스폰서인 Altium Designer를 사용할 것입니다.

Altium Designer는 진정으로 통합된 설계 환경을 만드는 데 전념한 수십 년간의 혁신과 개발을 나타냅니다. 성능과 사용 편의성 사이의 완벽한 균형을 유지하는 Altium Designer는 시장에서 가장 널리 사용되는 PCB 설계 솔루션으로 입지를 확고히 했습니다.

이제 Altium Designer를 사용하여 이 프로젝트의 PCB를 설계한 방법을 보여 드리겠습니다. 나는 프로젝트의 회로도를 만드는 것으로 시작했습니다. Altium Designer에는 기본 전자 부품이 포함된 라이브러리가 내장되어 있지만 제조업체에서 직접 부품을 검색할 수 있어 프로젝트에 필요한 부품을 매우 편리하게 찾을 수 있습니다.

예를 들어 이 제조업체 부품 검색 기능을 사용하여 Mini USB 커넥터를 찾았습니다. 여기에서 3D 모델, 발자국, 치수 등과 같은 구성 요소와 관련된 데이터에 쉽게 액세스할 수도 있습니다.

고유한 구성 요소 라이브러리를 생성할 수도 있습니다. 이 프로젝트를 위한 대부분의 구성 요소를 직접 만들었습니다. 각 부분에 대해 고유한 3D 발자국을 만들어 결국에는 전체 PCB를 3D로 만들고 싶었기 때문입니다. PCB 풋프린트에 대한 3D 모델을 생성하기 위해 모든 CAD 소프트웨어를 사용하고 파일을 .STEP 파일로 저장하고 Altium Designer에서 가져올 수 있습니다.

회로도가 끝나면 PCB를 생성했습니다. 내가 원하는 대로 구성 요소를 배열했고 Auto Route 기능을 사용하여 간단한 클릭으로 소프트웨어가 모든 추적을 자동으로 생성했습니다.

필요한 경우 수동으로 생성하거나 조정할 수 있습니다. 또한 자동 라우팅이 추적을 만드는 방법, 각 네트에 대해 다른 너비를 설정하는 등의 디자인 규칙을 설정할 수 있습니다. 이 시점에서 우리는 또한 PCB를 3D로 보고 나중에 케이스를 설계하는 데 사용할 전체 PCB 어셈블리의 3D 파일을 내보냅니다.

그럼에도 불구하고 이런 교육 콘텐츠를 후원해 주신 Altium에 감사드립니다. 이 소프트웨어에 대해 자세히 알아보고 사용해 보려면 아래 링크를 확인하십시오. 프로젝트 미리보기 및 파일을 위해 웹 기반 Altium 365 뷰어를 사용해 볼 수도 있습니다.

Altium Designer 무료 평가판 – https://www.altium.com/yt/howtomechatronics
Altium 365 뷰어:https://www.altium.com/viewer

Altium Designer 프로젝트 파일은 다음과 같습니다.

전자 부품의 3D 모델에 대한 프로젝트 파일, 라이브러리 및 .STEP 파일을 포함한 Altium Designer 파일:

PCB 거버 파일:

자, 일단 PCB를 완성하고 나면 Gerber와 NC Drill 파일을 생성하여 하나의 zip 파일에 넣었습니다. 그래서 PCB 제조를 주문할 준비가 되었습니다.

나는 JCLPCB에서 PCB를 주문했다. 여기에서 zip 파일을 끌어다 놓기만 하면 됩니다. 업로드되면 PCB에 대한 모든 시각적 정보를 얻을 수 있습니다.

그런 다음 원하는 속성을 선택하고 합리적인 가격으로 PCB를 주문할 수 있습니다.

PCB 조립

며칠 후 PCB가 도착했습니다. PCB의 품질이 우수하고 모든 것이 디자인과 동일합니다.

이제 PCB 조립을 시작할 준비가 되었습니다. 먼저 더 작은 부품인 저항과 두 개의 트랜지스터를 삽입하고 납땜하는 것으로 시작했습니다.

그런 다음 Arduino Pro Mini 보드를 제자리에 납땜할 수 있습니다. 그러나 먼저 핀 헤더를 납땜해야 합니다. 모든 핀이 필요한 것은 아니지만 A4, A5 및 DTR 핀과 같이 필요한 핀을 놓치지 않도록 하십시오. 또한 핀 레이아웃이 다를 수 있으므로 정확히 동일한 Arduino Pro Mini 보드를 가지고 있는지 확인하십시오.

다음으로 DHT22 센서를 제자리에 삽입할 수 있습니다. 이를 위해 먼저 핀을 90도 구부려야 합니다. 때로는 납땜할 때 부품을 제자리에 유지하기 위해 Blu-tack 접착제를 사용하기도 합니다.

이 프로젝트에 사용된 두 개의 커패시터는 전원 공급 장치를 안정화하기 위한 것입니다. 보드의 전원은 5V를 연결할 수 있는 미니 USB 커넥터에서 나옵니다.

전원 공급 장치 커넥터 바로 위에 두 개의 스위치를 납땜해야 합니다. 하나는 장치를 켜고 끌 때 사용하고 다른 하나는 스케치를 Arduino 보드에 업로드할 때 사용합니다. 그런 다음 USB-UART 인터페이스용 핀 헤더, 디스플레이 및 PM2.5 센서는 물론 VOC, 오존 및 CO2 센서를 제자리에 삽입할 수 있습니다.

다음으로 DS3231 실시간 클록 모듈을 다시 납땜하려면 먼저 핀을 90도 구부려야 합니다. 일단 납땜되면 메인 PCB의 전원이 꺼지더라도 시간을 추적하는 배터리를 삽입할 수 있습니다. 이것으로 PCB가 실제로 완료되었으며 이제 남은 일은 PM2.5 센서와 디스플레이를 PCB에 연결하는 데 사용할 케이블을 준비하는 것입니다. 센서와 함께 제공되는 케이블에 수컷 핀 헤더를 납땜하여 PCB에 쉽게 연결할 수 있었습니다. 디스플레이를 PCB에 연결하기 위해 디스플레이 커넥터 뒷면에 4개의 전선을 납땜한 다음 PCB에 연결했습니다.

그게 다야 Air Quality Monitor가 실제로 완료되었습니다. 물론, 지금 우리가 해야 할 일은 그것을 위한 일종의 상자나 케이스를 만드는 것입니다. Altium Designer에서 전체 PCB 어셈블리의 3D 모델을 가지고 있으므로 CAD 소프트웨어로 가져와 케이스를 설계할 수 있습니다.

저는 그 목적으로 SOLIDWORKS를 사용했고 두 개의 부품과 몇 개의 볼트와 너트로 구성된 가장 간단한 케이스를 만들었습니다. 투명 아크릴을 사용하여 케이스를 만들기로 결정했습니다. PCB와 부품이 노출된 모습이 마음에 들고 DIY 프로젝트를 뽐낼 수 있는 좋은 방법이기도 하기 때문입니다.

이 DYI 대기질 모니터 3D 모델을 다운로드할 수 있을 뿐만 아니라 Thangs의 브라우저에서 탐색할 수 있습니다.

Thangs에서 3D 모델을 다운로드하세요.

대기 질 모니터를 위한 사례 만들기

내가 사용할 아크릴은 디스플레이와 완벽하게 맞는 4mm 눈금입니다. 현재 CNC 기계가 없기 때문에 간단한 금속 쇠톱을 사용하여 수동으로 모양을 자릅니다.

전시용 구멍을 만들기 위해 먼저 드릴로 두 개의 구멍을 만들었습니다. 그런 다음 미니 쇠톱의 칼날을 통과하여 조심스럽게 모양을 자릅니다. 간단한 줄을 사용하여 모양을 다듬었습니다. 그런 다음 3mm 드릴을 사용하여 PCB를 부착하고 두 개의 아크릴 판을 함께 연결하기 위한 모든 구멍을 만들었습니다.

이 시점에서 나는 아크릴에서 보호 호일을 제거했습니다. 솔직히 말해서 상당히 만족스러운 과정입니다. PCB를 베이스 플레이트에 부착하기 위해 M3 볼트와 너트를 사용했습니다. PM2.5 센서를 플레이트에 부착하려면 M2 볼트가 필요합니다.

다음으로 거리 너트를 사용하여 두 개의 플레이트를 결합할 수 있습니다. 하나의 암나사 너트와 수나사 너트를 사용하여 두 플레이트 사이에 원하는 거리를 쉽게 얻을 수 있었습니다.

저는 개인적으로 이 케이스가 어떻게 나온 것인지 정말 좋아합니다. 게다가 센서 주변으로 공기가 쉽게 순환할 수 있어 기능도 뛰어납니다.

프로그래밍

좋습니다. 이제 장치의 전원을 켜고 프로그램을 업로드할 수 있습니다. Mini USB 커넥터를 통해 공기질 모니터에 전원을 공급할 수 있고 5V USB 어댑터, 5V 전화 충전기 또는 보조 배터리에서 5V를 얻을 수 있습니다.

Arduino Pro Mini 보드에 프로그램을 업로드하려면 프로그래밍 헤더에 연결할 수 있는 USB-직렬 UART 인터페이스가 필요합니다. 컴퓨터 USB에 연결하기 전에 먼저 장치의 주 전원을 켜야 합니다. 그렇지 않으면 500mA에 불과한 컴퓨터 USB에서 나오는 전원이 제대로 작동하지 않을 수 있기 때문입니다. Arduino 스케치를 업로드할 때 PCB의 업로드 스위치도 전환해야 합니다.

여기에서 Arduino 코드와 Nextion 디스플레이 프로그램을 다운로드할 수 있습니다.

Arduino Pro Mini 보드에 스케치를 업로드하려면 먼저 Arduino IDE에서 이 보드를 선택하고 적절한 프로세서 버전을 선택하고 포트를 선택하고 프로그래밍 방법을 "USBasp"로 선택해야 합니다.

Arduino에 코드를 업로드하면 Nextion 디스플레이에도 코드를 업로드해야 합니다. Nextion 디스플레이에는 실제로 자체적으로 디스플레이를 제어하는 ​​ARM 컨트롤러가 내장되어 있습니다.

버튼, 텍스트, 이미지, 변수 등과 같은 모든 그래픽은 디스플레이 자체에서 생성 및 제어됩니다. Nextion 디스플레이에는 이러한 모든 것을 만들 수 있는 전용 Nextion 편집기가 있습니다. 직렬 통신을 사용하여 단 2개의 전선으로 디스플레이와 아두이노 통신. Arduino는 단순히 센서에서 디스플레이로 값을 보내고 그 반대로 필요할 때 디스플레이에서 데이터를 Arduino로 보냅니다.

디스플레이 프로그램을 업로드하려면 Nextion 편집기에서 출력 .TFT 파일을 저장할 수 있는 microSD 카드가 필요합니다.

디스플레이에는 전원이 꺼져 있는 동안 microSD 카드를 삽입할 수 있는 카드 리더기가 있습니다. 그런 다음 장치의 전원을 켜면 프로그램이 디스플레이에 업로드됩니다. 이제 카드를 제거하고 전원을 다시 켜면 대기질 모니터가 작동하기 시작합니다.

코드 설명

따라서 각 센서에 대한 라이브러리를 사용하고 있으며 MHZ19, PMS, MQ131, DHT, DS3231 링크에서 찾을 수 있습니다. 각 센서에서 데이터를 읽는 방법을 더 잘 이해하려면 라이브러리 문서를 읽고 예제를 시도하는 것이 좋습니다.

MH-Z19와 PMS5003 센서 모두 직렬 통신을 사용하기 때문에 우리는 SoftwareSerial 라이브러리도 사용하고 있습니다. Arduino와 Nextion 디스플레이도 통신을 위해 직렬 포트를 사용하며 이 경우 기본 하드웨어 직렬을 사용합니다.

따라서 Arduino는 센서를 읽고 해당 데이터를 Nextion 디스플레이로 보냅니다. 다음은 예입니다.

Serial.print("tempV.val=");
Serial.print(temp);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);Code language: Arduino (arduino)

그래서 nextion 디스플레이에 "tempV"라는 변수가 있고 그 값을 업데이트하려면 "tempV.val=22"와 같이 nextion에 명령을 보내야 합니다. 따라서 변수 이름, ".val", 값을 22라고 가정해 보겠습니다. 코드의 처음 두 줄은 그렇게 하고 Nextion 디스플레이가 이 명령이나 실제로 모든 명령을 받아들이도록 하려면 세 개의 고유한 명령을 보내야 합니다. "쓰기" 명령.

Nextion 디스플레이 프로그램에는 Arduino 코드 루프와 마찬가지로 루프에서 실행되는 타이머가 있으며 디스플레이의 숫자를 지속적으로 업데이트합니다.

이 타이머 이벤트에는 값에 따라 각 센서의 배경색을 변경하는 코드도 있습니다.

두 번째 페이지에는 Arduino의 저장된 값에서 값을 가져오는 파형이 있습니다. 코드 주석에 설명이 있으므로 Arduino 코드 자체에 대한 자세한 정보를 찾을 수 있습니다.

시간과 Y축 값도 Arduino에서 값을 가져옵니다.

메인 화면의 숫자뿐만 아니라 파형 상단에 Nextion 편집기에서 "Hotstop"이라고 하는 투명한 개체가 있고 버튼 역할을 하는 것을 알 수 있습니다. 파형에서 핫스톱을 누르면 이벤트 섹션에서 "페이지 0"으로 다시 보내는 것을 볼 수 있습니다.

전반적으로 이것이 이 Arduino 공기질 모니터의 프로그램이 작동하는 방식입니다. 물론 작동 방식을 완전히 이해하려면 각 센서가 라이브러리에서 작동하는 방식과 Nextion 디스플레이가 작동하는 방식을 배우고 알아야 합니다.

VOC 센서의 경우 ppm 또는 ppb 값이 아닌 이 센서의 원시 데이터만 읽습니다. 0에서 1024까지의 아날로그 값입니다. 값이 높을수록 VOC가 있음을 의미합니다.

오존 센서의 경우 더 정확한 출력을 얻으려면 라이브러리의 보정 예제에 따라 setTimeToRead() 및 setR0() 값을 올바르게 설정해야 합니다. 그러나 setTimeToRead가 길수록 샘플링하는 동안 프로그램이 차단되고 다른 모든 것이 정지됩니다. 물론 이 문제를 해결할 수 있는 방법이 있습니다. 꼭 필요한 경우가 아니면 오존 ​​센서를 전혀 사용하지 않는 것이 좋습니다.

이 비디오를 보시고 새로운 것을 배웠기를 바랍니다. 그렇다면 Patreon에서 저를 지원해 주세요. 언제든지 아래 댓글 섹션에 질문하고 내 Arduino 프로젝트 컬렉션을 확인하세요.


제조공정

  1. DIY 환경 및 대기 질 모니터
  2. OpenSensor의 공기질 측정 방법
  3. 헬륨 공기 품질 센서
  4. Arduino를 사용하여 모니터 Ambilight 만들기
  5. K30 센서로 CO2 모니터링
  6. Arduino와 스마트폰을 사용한 DIY 전압계
  7. IoT를 사용한 심박수 모니터
  8. Arduino Temp. 3.2 디스플레이가 있는 모니터 및 실시간 시계
  9. DIY 가상 현실 스케이트보드
  10. 샤프 GP2Y1010AU0F 센서가 있는 DIY 공기질 모니터