
지침: 에어 라즈베리 파이
RASPBERRY PI 400용으로 설계되었습니다. RASPBERRY PI 2, 3 및 4와 호환됩니다.

V1d
소개
라즈베리 파이용 MonkMakes 공기질 키트는 MonkMakes 대기질 센서 보드를 기반으로 합니다. Raspberry Pi용 이 추가 기능은 실내 공기의 질(공기가 얼마나 오래되었는지)과 온도를 측정합니다. 보드에는 공기 품질과 부저를 표시하는 XNUMX개의 LED(녹색, 주황색 및 빨간색) 디스플레이가 있습니다. 온도 및 공기 품질 판독값은 Raspberry Pi로 읽을 수 있으며 부저 및 LED 디스플레이는 Raspberry Pi에서도 제어할 수 있습니다.
대기 질 센서 보드는 Raspberry Pi 400 후면에 직접 연결되지만 키트에 포함된 점퍼 와이어 및 GPIO 템플릿을 사용하여 다른 Raspberry Pi 모델과 함께 사용할 수도 있습니다. 
부분품
이 키트에는 Raspberry Pi가 포함되어 있지 않습니다.
다른 작업을 수행하기 전에 키트에 아래 항목이 포함되어 있는지 확인하십시오.
대기 질 및 ECO2
대기질 센서 보드는 부품 번호가 CCS811인 센서를 사용합니다. 이 작은 칩은 실제로 CO2(이산화탄소)의 수준을 측정하지 않고 대신 휘발성 유기 화합물(VOC)이라고 하는 가스 그룹의 수준을 측정합니다. 실내에 있을 때 이러한 가스 수준은 CO2 수준과 상당히 유사한 속도로 상승하므로 CO2 수준(등가 CO2 또는 eCO2라고 함)을 추정하는 데 사용할 수 있습니다.
우리가 호흡하는 공기 중의 CO2 수준은 우리의 웰빙에 직접적인 영향을 미칩니다. CO2 수준은 공중 보건 측면에서 특히 중요합니다. view 간단히 말해서, 그것은 우리가 다른 사람의 공기를 얼마나 많이 호흡하는지를 측정하는 것과 같습니다. 우리 인간은 CO2를 내뿜기 때문에 여러 사람이 환기가 잘 안되는 방에 있으면 CO2 수치가 점차 증가합니다. 이것은 사람들이 함께 숨을 내쉴 때 감기, 독감 및 코로나바이러스를 퍼뜨리는 바이러스 에어로졸과 거의 동일합니다.
CO2 수준의 또 다른 중요한 영향은 인지 기능, 즉 얼마나 잘 생각할 수 있는지입니다. 이 연구(더 많은 연구 중에서)에는 몇 가지 흥미로운 결과가 있습니다. 다음 인용문은 미국 국립 생명공학 정보 센터에서 인용한 것입니다. 1,000ppm에서 2가지 의사결정 성과 척도에서 통계적으로 유의미한 대규모 감소가 발생했습니다.” 출처: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3548274/
아래 표는 다음의 정보를 기반으로 합니다. https://www.kane.co.uk/knowledge-centre/whatare-safe-levels-of-co-and-co2-in-rooms
CO2가 건강에 해로울 수 있는 수준을 보여줍니다. CO2 수치는 ppm(백만분율) 단위입니다.
| CO2 수준(ppm) | 노트 |
| 250-400 | 주변 공기의 정상 농도. |
| 400-1000 | 공기 교환이 잘되는 점유 실내 공간의 전형적인 농도. |
| 1000-2000 | 졸음과 나쁜 공기에 대한 불만. |
| 2000-5000 | 두통, 졸음 및 stag답답하고 답답하고 답답한 공기. 집중력 저하, 주의력 상실, 심박수 증가 및 약간의 메스꺼움도 나타날 수 있습니다. |
| 5000 | 대부분의 국가에서 작업장 노출 제한. |
| >40000 | 노출은 심각한 산소 결핍으로 이어져 영구적인 뇌 손상, 혼수 상태, 심지어 사망에 이를 수 있습니다. |
설정하기
Raspberry Pi 400을 사용하든 Raspberry Pi 2, 3 또는 4를 사용하든, 대기 질 센서를 연결하기 전에 Raspberry Pi가 종료되고 전원이 꺼져 있는지 확인하십시오.
대기 질 센서는 Raspberry Pi에서 전원을 공급받는 즉시 eCO2 판독값을 표시합니다. 따라서 일단 연결하면 디스플레이에 eCO2 수준이 표시되어야 합니다. 그런 다음 Python 프로그램에서 판독값을 수신하고 LED 및 부저를 제어하여 보드와 상호 작용하는 방법을 배웁니다.
공기질 센서 연결하기(Raspberry Pi 400)
GPIO 커넥터의 핀이 구부러질 수 있으므로 커넥터를 비스듬히 밀어 넣거나 너무 세게 누르지 않는 것이 매우 중요합니다. 핀이 정렬되면
올바르게 제자리에 쉽게 밀어 넣어야 합니다.
커넥터는 위 그림과 같이 맞습니다. 보드의 하단 가장자리가 Pi 400의 케이스 하단과 정렬되고 보드 측면에는 마이크로 SD 카드에 쉽게 접근할 수 있는 충분한 공간이 있습니다. 보드를 연결했으면 Raspberry Pi의 전원을 켭니다. — 전원 LED(MonkMakes 로고에 있음)와 eCO2 LED 중 하나도 켜져야 합니다.
공기질 센서 연결하기(Raspberry Pi 2/3/4)
라즈베리 파이 2, 3, 4가 있는 경우 대기질 센서 보드를 라즈베리 파이에 연결하려면 라즈베리 리프와 암수 점퍼 와이어가 필요합니다.
경고: 전원 리드를 반대로 하거나 대기 질 센서를 Raspberry Pi의 5V 핀이 아닌 3V에 연결하면 센서가 파손될 수 있으며 Raspberry Pi가 손상될 수 있습니다. 따라서 Raspberry Pi의 전원을 켜기 전에 배선을 주의 깊게 확인하십시오.
어떤 핀이 어느 핀인지 알 수 있도록 Raspberry Pi의 GPIO 핀 위에 Raspberry Leaf를 장착하여 시작합니다. 템플릿은 어느 쪽이든 맞출 수 있으므로 아래 다이어그램을 따라야 합니다.
다음으로 Raspberry Pi의 GPIO 핀과 Air Quality 보드 사이에 XNUMX개의 리드를 다음과 같이 연결합니다.
| 라즈베리 파이 핀( 잎에 표기) | 대기 질 위원회 (as 커넥터에 라벨이 붙어 있음) | 권장 와이어 색상. |
| GND(GND로 표시된 모든 핀이 수행) | 접지 | 검은색 |
| 3.3V | 3V | 빨간색 |
| 14TXD | PI_TXD | 주황색 |
| 15 RXD | PI_RXD | 노란색 |
모두 연결되면 다음과 같이 표시됩니다.
배선을 주의 깊게 확인한 다음 Raspberry Pi의 전원을 켜십시오. 전원 LED(MonkMakes 로고에 있음)와 LED 중 하나도 켜져야 합니다.
대기질 보드 분리
Raspberry Pi 400에서 보드를 제거하기 전에.
- 라즈베리파이를 종료합니다.
- Pi 400 뒷면에서 보드를 부드럽게 풀어 핀이 구부러지지 않도록 각 측면에서 차례로 약간 가장자리를 만듭니다.
Pi 2/3/4가 있는 경우 Raspberry Pi에서 점퍼 와이어를 제거하기만 하면 됩니다.
직렬 인터페이스 활성화
보드에 프로그래밍 없이 eCO2 수준이 표시되지만 이는 우리가 Raspberry Pi를 전원으로 사용하고 있음을 의미합니다. Python 프로그램에서 보드와 상호 작용할 수 있으려면 Raspberry Pi에서 수행해야 하는 몇 가지 단계가 더 있습니다.
첫 번째는 대기 품질 보드에서 사용하는 인터페이스이므로 Raspberry Pi에서 직렬 인터페이스를 활성화하는 것입니다.
이렇게 하려면 기본 메뉴에서 기본 설정을 선택한 다음 Raspberry Pi 구성을 선택합니다.
인터페이스 탭으로 전환하고 직렬 포트가 활성화되어 있고 직렬 콘솔이 비활성화되어 있는지 확인하십시오.
Ex 다운로드amp르 프로그램
전직amp이 키트의 le 프로그램은 GitHub에서 다운로드할 수 있습니다. 가져오려면 Raspberry Pi에서 브라우저 창을 시작하고 다음 주소로 이동합니다.
https://github.com/monkmakes/pi_aq 코드 버튼을 클릭한 다음 ZIP 다운로드 옵션을 클릭하여 프로젝트의 zip 아카이브를 다운로드합니다.
다운로드가 완료되면 압축을 풉니다 fileZIP을 찾아 ZIP 아카이브에서 file 다운로드 폴더에서 마우스 오른쪽 버튼을 클릭하고 압축 해제 옵션을 선택합니다.
적절한 디렉토리를 선택하고(홈 디렉토리 – /home/pi 권장) 압축을 풉니다. file에스. 그러면 pi_aq-main이라는 폴더가 생성됩니다. 이 이름을 pi_aq로 바꿉니다.
토니
프로그램을 다운로드한 후 명령줄에서 실행할 수 있습니다.
그러나 다음을 살펴보는 것이 좋습니다. files 및 Thonny 편집기를 사용하여 files 및 실행합니다.
Thonny Python 편집기는 Raspberry Pi OS에 사전 설치되어 있습니다. 메인 메뉴의 프로그래밍 섹션에서 찾을 수 있습니다. 어떤 이유로 든 귀하의 컴퓨터에 설치되지 않은 경우
Raspberry Pi를 설치한 다음 기본 설정 메뉴 항목의 소프트웨어 추가/제거 메뉴 옵션을 사용하여 설치할 수 있습니다.
다음 섹션에서는 Python 및 Thonny를 사용하여 대기 질 보드와 상호 작용하기 전에 이 센서가 측정하는 것에 대해 조금 더 설명합니다.
시작하기
Python 프로그래밍을 시작하기 전에 대기질 위원회(Air Quality Board)를 살펴보겠습니다.
왼쪽 상단의 전원 표시기 LED를 통해 보드에 전원이 공급되고 있는지 빠르게 확인할 수 있습니다. 그 아래에는 온도 센서 칩이 있고 그 옆에는 eCO2 센서 칩 자체가 있습니다. 자세히 보면 공기가 들어오고 나가는 작은 구멍이 있음을 알 수 있습니다. eCO2 센서 바로 아래에는 프로그램에서 켜고 끌 수 있는 부저가 있습니다. 이는 알람을 제공하는 데 유용합니다. 2개의 LED 열은 XNUMX개의 녹색 LED, XNUMX개의 주황색 LED 및 XNUMX개의 빨간색 LED로 구성됩니다(아래에서 위로). 각 LED 옆에 표시된 eCOXNUMX 수준이 초과되면 불이 켜집니다. Raspberry Pi 전원이 켜지면 레벨이 표시되지만 Python을 사용하여 제어할 수도 있습니다.
명령줄에서 몇 가지 실험을 시도하여 시작하겠습니다. 화면 상단의 터미널 아이콘을 클릭하거나 주 메뉴의 액세서리 섹션을 클릭하여 터미널 세션을 엽니다.
터미널이 열리면 $ 프롬프트 뒤에 다음 명령을 입력하여 디렉토리를 변경하고(cd) Python
다음 명령을 입력하여 로컬 aq 모듈을 엽니다. >>> from aq import AQ
>>> 그런 다음 다음을 입력하여 AQ 클래스의 인스턴스를 만듭니다. >>> aq = AQ()
>>> 이제 다음 명령을 입력하여 CO2 수준을 읽을 수 있습니다. >>> aq.get_eco2() 434.0
>>> 따라서 이 경우 eCO2 수준은 신선한 434ppm입니다. 이제 온도를 알아봅시다(섭씨 온도). >>> aq.get_temp()
20.32 참고: 위의 코드를 실행할 때 오류 메시지가 표시되면 GUIZero가 설치되지 않았을 수 있습니다. 설치 지침:
https://lawsie.github.io/guizero/#raspberry-pi
프로그램 1. 에코 2 미터
이 프로그램을 실행하면 아래와 같은 창이 열리며 온도와 eCO2 수준을 보여줍니다. 온도 센서에 손가락을 대면 온도 판독값이 올라갑니다. 또한 eCO2 센서에서 부드럽게 숨을 쉴 수 있으며 판독값이 증가해야 합니다.
프로그램을 실행하려면 로드 file Thonny에서 01_aq_meter.py를 입력하고 실행 버튼을 클릭합니다.
다음은 프로젝트의 코드입니다. 이 코드는 부록 B에서 자세히 읽을 수 있는 GUI Zero 라이브러리를 사용합니다.
사용자 인터페이스의 작동을 방해하지 않고 온도와 빛을 읽을 수 있도록 스레딩 라이브러리를 가져옵니다. update_readings 함수는 영원히 반복되어 XNUMX초마다 판독값을 가져오고 창의 필드를 업데이트합니다.
나머지 코드는 온도와 eCO2 수준을 표시하는 데 필요한 사용자 인터페이스 필드를 제공합니다. 필드가 정렬되도록 그리드로 배치됩니다. 따라서 각 필드는 열 및 행 위치를 나타내는 그리드 속성으로 정의됩니다. 따라서 Temp(C) 텍스트를 표시하는 필드는 열 0, 행 0에 있고 해당 온도 값(temp_c_field)은 열 1, 행 0에 있습니다.
프로그램 2. 알람 기능이 있는 ECO2 미터
이 프로그램은 부저와 일부 멋진 사용자 인터페이스 기능을 사용하여 프로그램 2을 확장하여 eCOXNUMX의 설정 수준을 초과하면 경보음을 울리고 창이 빨간색으로 바뀝니다.
창 하단의 슬라이더는 부저가 울리고 창이 빨간색으로 바뀌는 eCO2 수준을 설정합니다. 경보 수준을 설정보다 약간 높게 설정해 보십시오.
현재 eCO2 수준을 확인한 다음 센서에서 숨을 쉬십시오.
다음은 프로그램 2의 코드이며 대부분이 프로그램 1과 매우 유사합니다. 관심 영역은 굵게 강조 표시되었습니다.가져오기 스레딩
수입 시간
guizero에서 앱, 텍스트, 슬라이더 가져오기
aq 수입 AQ에서
아쿠아 = AQ()
app = App(제목=”공기질”, 너비=550, 높이=400, 레이아웃=”그리드”)
def update_readings():
참인 동안: temp_c_field.value = str(aq.get_temp()) eco2 = aq.get_eco2() eco2_field.value = str(eco2)
if eco2 > slider.value: app.bg = "빨간색" app.text_color = "흰색" aq.buzzer_on()
그렇지 않으면: app.bg = "흰색" app.text_color = "검은색" aq.buzzer_off() time.sleep(0.5)
t1 = threading.Thread(대상=update_readings)
t1.start() # 판독값을 업데이트하는 스레드 시작 aq.leds_automatic()
# 사용자 인터페이스를 정의
텍스트(앱, 텍스트="온도(C)", 그리드=[0,0], 크기=20)
temp_c_field = 텍스트(앱, 텍스트="-", 그리드=[1,0], 크기=100)
텍스트(앱, 텍스트=”eCO2(ppm)”, 그리드=[0,1], 크기=20)
eco2_field = 텍스트(앱, 텍스트="-", 그리드=[1,1], 크기=100)
텍스트(앱, 텍스트="알람(ppm)", 그리드=[0,2], 크기=20)
슬라이더 = 슬라이더(앱, 시작=300, 끝=2000, 너비=300, 높이=40, 그리드=[1,2]) app.display()
먼저 guizero에서 가져온 항목 목록에 Slider를 추가해야 합니다.
또한 update_readings 기능을 확장하여 온도와 eCO2 수준을 표시할 뿐만 아니라 수준이 임계값보다 높은지 확인해야 합니다. 맞으면 창 배경을 빨간색으로, 텍스트를 흰색으로 설정하고 부저를 켭니다. eCO2 수준이 슬라이더로 설정된 임계값보다 낮으면 이를 반대로 하고 버저를 끕니다.
프로그램 3. 데이터 로거
이 프로그램(03_data_logger.py)에는 그래픽 인터페이스가 없습니다. 판독값 사이의 간격(초)을 입력하라는 메시지가 표시되고 그 뒤에 이름이 표시됩니다. file
판독 값을 저장할 위치.
예전에는amp르 위, samp링은 5초로 설정되고 file reads.txt라고 합니다. 데이터 로깅을 마치면 CTRL-c가 로깅을 종료하고 닫습니다. file.
데이터는 위의 화면 캡처에 표시된 것과 동일한 형식으로 저장됩니다. 즉, 첫 번째 줄은 제목을 지정하며 각 값은 TAB 문자로 구분됩니다. 그만큼 file 프로그램과 같은 디렉토리에 저장됩니다. 데이터를 캡처한 후 Raspberry Pi의 스프레드시트(예: LibreOffice)로 가져온 다음 데이터에서 차트를 그릴 수 있습니다. LibreOffice가 Raspberry Pi에 설치되어 있지 않은 경우 기본 설정 메뉴에서 소프트웨어 추가/제거 옵션을 사용하여 설치할 수 있습니다.
새 스프레드시트를 열고 file 메뉴를 클릭하고 데이터로 이동합니다. file 당신이보고 싶어. 이렇게 하면 가져오기 대화 상자(다음 페이지 참조)가 열립니다.
스프레드시트가 데이터의 열을 자동으로 감지했는지 확인합니다.
확인을 클릭하여 데이터를 가져온 다음 eCO2 판독값에 대한 열을 선택합니다. 그런 다음 삽입 메뉴에서 차트를 선택한 다음 차트 유형을 선으로 선택한 다음 선만을 선택하여 이러한 판독값의 그래프를 그릴 수 있습니다. 그러면 다음 페이지에 표시된 그래프가 표시됩니다.
실험으로 eCO24 수준이 하루 종일 어떻게 변하는지 보기 위해 2시간 동안 로거 프로그램을 실행해 봅니다.
부록 A. API 문서
진지한 프로그래머를 위해 – 여기에 기술 문서가 있습니다. 그만큼 file monkmakes_aq.py는 전체 Python 라이브러리로 설치되지 않지만 이를 사용해야 하는 다른 코드와 동일한 폴더에 복사해야 합니다. aq.py
Monkmakes_aq.py 모듈은 Raspberry Pi와 Air Quality 보드 간의 직렬 통신을 래핑하는 클래스입니다.
AQ 인스턴스 만들기: aq = AQ()
eCO2 판독값 읽기
aq.get_eco2() # eCO2 판독값을 ppm 단위로 반환합니다.
온도를 섭씨 단위로 읽기
aq.get_temp() # 온도를 섭씨 단위로 반환
LED 디스플레이
aq.leds_manual() # LED 모드를 수동으로 설정
aq.leds_automatic() # LED 모드를 자동으로 설정
# LED가 eCO2를 표시하도록
aq.set_led_level(level) # 레벨 0-LED 끄기,
# 레벨 1-6 LED 1-6 점등
부저
aq.buzzer_on()
aq_buzzer_off()
클래스는 Pi의 직렬 인터페이스를 사용하여 센서 보드와 통신합니다. 직렬 인터페이스에 대한 세부 정보를 보려면 이 제품의 데이터시트를 참조하십시오. 제품의 링크에서 찾을 수 있습니다. web 페이지 (http://monkmakes.com/pi_aq)
부록 B. GUI 제로
The Raspberry Pi Foundation의 Laura Sach와 Martin O'Hanlon은 GUI를 매우 쉽게 설계할 수 있는 Python 라이브러리(GUI Zero)를 만들었습니다. 이 키트는 해당 라이브러리를 사용합니다.
라이브러리를 사용하기 전에 프로그램에서 사용하려는 라이브러리의 비트를 가져와야 합니다.
예를 들어ample, 메시지가 포함된 창을 원할 경우 가져오기 명령은 다음과 같습니다.
guizero import 앱에서, 텍스트
App 클래스는 응용 프로그램 자체를 나타내며 guizero를 사용하는 작성하는 모든 프로그램은 이를 가져와야 합니다. 여기에 필요한 유일한 다른 클래스는 메시지를 표시하는 데 사용되는 Text입니다.
다음 명령은 제목과 창의 시작 크기를 지정하여 응용 프로그램 창을 만듭니다.
앱 = 앱(제목 = “내 창”, 너비=”400″, 높이=”300″)
창에 텍스트를 추가하려면 다음 줄을 사용할 수 있습니다. Text(app, text=”Hello World”, size=32)
창은 이제 표시할 준비가 되었지만 프로그램이 app.display() 행을 실행할 때까지 실제로 표시되지 않습니다.
여기에서 guizero에 대해 자세히 알아볼 수 있습니다. https://lawsie.github.io/guizero/start/
문제 해결
문제: 보드가 Pi 400에 연결되어 있지만 전원 LED가 켜지지 않습니다.
해결책: GPIO 핀이 소켓과 올바르게 정렬되어 있는지 확인하십시오. 4페이지를 참조하십시오.
문제: 보드가 Pi 400에 연결되어 있지만 전원 LED가 빠르게 깜박입니다.
해결책: 이것은 센서에 문제가 있음을 나타냅니다. 때로는 Raspberry Pi를 껐다가 다시 켜서 전원을 재설정하기만 하면 됩니다. 이렇게 해도 깜박임이 계속되면 보드 불량일 가능성이 있으니 연락주세요. support@monkmakes.com
문제: 방금 모든 것을 연결했지만 eCO2 수치가 잘못된 것 같습니다.
해결책: MonkMakes Air Quality Sensor에 사용되는 센서 유형은 처음 연결할 때부터 판독 값을 생성하기 시작합니다. 그러나 판독값은 시간이 지나면서 더 정확해집니다. 센서 IC의 데이터시트는 판독값이 실행 시간 20분 후에야 정확해지기 시작할 것이라고 제안합니다.
문제: ex를 실행하려고 하면 오류 메시지가 나타납니다.amp르 프로그램.
솔루션: 참고: GUIZero가 설치되어 있지 않을 수 있습니다. 다음 지침을 따르십시오. https://lawsie.github.io/guizero/#raspberry-pi
문제: 이 센서의 판독값을 실제 CO2 측정기와 비교하고 있는데 판독값이 다릅니다.
해결책: 예상할 수 있습니다. 공기 품질 센서는 휘발성 유기 화합물(VOC)의 수준을 측정하여 CO2 농도(eCO2에서 'e'가 의미함)를 추정합니다. 진정한 CO2 센서는 훨씬 더 비쌉니다.
학습
프로그래밍 및 전자
Raspberry Pi 및 전자 제품 프로그래밍에 대해 더 알고 싶다면 이 키트의 디자이너(Simon Monk)가 당신이 즐길 수 있는 많은 책을 저술했습니다.
다음에서 Simon Monk의 책에 대해 자세히 알아볼 수 있습니다. http://simonmonk.org 또는 트위터에서 @simonmonk2를 팔로우하세요.
몽크메이크스
이 키트에 대한 자세한 내용은 제품 홈 페이지를 참조하십시오. https://monkmakes.com/pi_aq
이 키트뿐만 아니라 MonkMakes는 모든 종류의 키트와 장치를 만들어 귀하의
메이커 프로젝트. 자세한 내용과 구매처는 다음에서 확인하세요. https://www.monkmakes.com/products
Twitter@monkmakes에서 MonkMakes를 팔로우할 수도 있습니다.

문서 / 리소스
![]() |
몽크, 라즈베리파이용 대기질 키트 제작 [PDF 파일] 지침 라즈베리 파이용 공기 품질 키트, 라즈베리 파이용 품질 키트, 라즈베리 파이용 키트, 라즈베리 파이, 파이 |




