휴대용 미세먼지 측정기(최종) - 프로그램 보완(인터넷 저장 및 내부 저장시 화면 멈춤 현상 수정)
현재까지의 소스는 인터넷 저장을 위하여 접속시와 내부 메모리 저장을 하고 있을 경우
화면이 멈추는 현상이 있었습니다.
인터넷 접속은 현재 ThingSpeak로 접속을 하고 있으나
ThingSpeak에 접속 속도가 현재 거주하고 있는 중국에서는 그리 빠르지가 않습니다.
이 경우 화면을 갱신하는 방법이 폴링 방식이어서 화면의 멈춤 현상이 발생을 하고 있습니다.
따라서 인터넷 접속 시도를 하기 전에 인터럽터 방식의 화면 갱신을 걸어주고
접속 및 기록 완료 후 타이머 인터럽트를 해제하여 주는 방식으로
인터넷 접속 시 화면의 갱신이 되지 않는 부분을 수정하였습니다.
마찬가지로 내부 메모리 저장 시 초기에는 (메모리가 거의 비어있을 경우)
멈춤 현상이 발생하지 않고 저장이 매우 빠른 경향을 보이나
메모리가 점점 찰수록 저장 속도가 느려지고 화면이 멈추는 현상이 보였습니다.
저장시의 시간이 길경우 거의 1초가 소요가 되었으며
저장을 연속으로 할 경우 센서 값 읽기보다 더 긴 시간이 소요되어
센서의 값을 정상적으로 읽지 못하는 현상이 발생하였습니다.
이에 내부 저장속도는 최소 1분 이상이어야 하는 것으로 수정하였으며,
저장 시 인터넷 접속과 마찬가지로 타이머 인터럽트를 이용하여 화면을 갱신함으로
화면 멈춤 현상이 발생하지 않도록 수정하였습니다.
완료(기능 정리)
요즘 만들고 있는 미세 먼지 측정기 입니다.
사이즈는 보시듯이 작게 만들려고 하고 있습니다. (현재 담배 갑 2/3정도의 크기.)
아직 완성이 되진 않아 좀더 보완해서 자료를 올리도록 하겠습니다.
특징은
- PMS7003 센서 사용
센서는 PLANTTOWER의 PMS7003을 사용하였습니다.
(현재로서는 이 센서가 가성비가 최고 인 듯 합니다.)
- 배터리를 이용한 자체 구동
자체 구동이 가능하도록 배터리로 구동하도록 하였으며, USB 케이블로 충전이 가능하도록 하였습니다.
(충전용 TP4056 모듈 및 5V 승압회로, 리듐 배터리 사용)
- 화면 전환 모드
화면 출력을 버튼을 길게 누를 경우 연속 출력과 필요할 경우만 켜지도록 하는 모드 2개로 가능하도록 하였습니다.
( 버튼을 2초이상 길게 누를 경우 연속 모드와 확인 모드 변경되며 확인 모드 시 2분간만 화면 켜지고
다시 버튼을 누를 경우 2분간 켜짐)
연속 모드일 경우 좌측 윗부분에 빨간색 버튼 표시됨. 확인 모드 시에는 검은색 버튼 표시
- 측정 주기 설정
센서의 보호를 위하여 측정 간격을 설정할 수 있도록 하였으며
PMS7003센서는 약 0.9초 간격으로 측정을 하지만
측정 간격을 설정하게 되면 측정시에만 센서를 켜고 대기시에는 센서를 OFF 시킬 수 있도록 하였습니다.
(설정모드로 진입하여 세팅)
(설정 모드의 진입)
간격의 설정은 버튼을 누른 상태로 리셋 버튼을 눌러 AP모드로 진입 후
WIFI가 가능한 기기(핸드폰 및 PC)를 이용하여 모듈에 접속하여 설정 할 수 있도록 하였습니다.
( 0을 입력할 경우 연속모드로 센서가 종료되지 않음. )
- 보정 계수 입력
센서 측정 값을 보정할 수 있도록 보정 계수를 입력하도록 하였습니다.(설정모드로 진입하여 세팅)
- WIFI 연결
WIFI와 연결하여 데이터의 서버 전송 및 인터넷 시계 등의 기능을 사용할 수 있도록 하였습니다.
- 인터넷 시계
먼지 측정기 이외에 인터넷 시계로 사용이 가능하도록 시계를 출력하도록 하였습니다.
(시간 설정은 WIFI 이름과 비밀번호를 입력하도록 하여 인터넷에서 자동으로 가져와서 세팅합니다.)
- 내부 메모리 저장
측정 값은 내부 메모리(약 3MByte)에 저장을 하여 10분 간격으로 저장 시 약 5.5년간의 미세먼지 측정 자료를
시간과 함께 내부메모리에 저장할 수 있습니다.
저장 유무는 설정 모드로 진입하여 세팅할 수 있습니다.
- ThingSpeak로 데이터 전송
ThingSpeak Channel ID와 Write API Key를 입력하여
ThingSpeak서버로 데이터를 전달 할 수 있습니다.
ThingSpeak서버로 데이터 전송 유무 및 Channel ID와 Write API Key의 입력은
설정 모드로 진입하여 세팅 할 수 있습니다.
Thing Speak 출력 화면
ThingSpeak의 값을 핸드폰 위젯으로 출력(위젯 프로그램은 공개 프로그램 사용)
- 센서 작동 상태 화면 표시
센서의 작동 및 데이터의 전송오류를 확인 할 수 있도록 화면에 표시하였습니다.
- 센서의 초기 가동 시 모터 구동 후 30초의 안정화 시간이 필요하며 이 시간은 화면에 표시 됩니다.
- 미세먼지 수치에 따른 색상 변경
미세먼지 수치는 값의 크기에 따라 색상별로 출력이 됩니다.
0~30 : 검은색
30~80 : 녹색
80~150 : 오랜지색
150이상 : 빨간색
모터 안정화 시 : 회색
- 미세먼지 농도 수치와 미세먼지 사이즈 별 출력
미세먼지의 PM1.0, PM2.5, PM10.0 (미세먼지 및 초 미세먼지) 농도 표시 및
미세 먼지 크기 별(6단계) 개수 출력 가능
출력 화면은 버튼을 짧게 눌러 변경
'아두이노 프로젝트' 카테고리의 다른 글
아두이노 프로젝트 - 휴대용 미세먼지 측정기 구동 영상 (0) | 2021.02.21 |
---|---|
아두이노 프로젝트 - ESP32를 이용한 매트릭스 전광판 구동 테스트 (0) | 2021.02.21 |
아두이노 프로젝트 - 휴대용 미세먼지 측정기 - WIFI를 이용한 인터넷 업로딩(ThingSpeak사용) (0) | 2021.02.21 |
아두이노 프로젝트 - 휴대용 미세먼지 측정기 - 내부 저장 옵션 선택 추가 (0) | 2021.02.21 |
아두이노 프로젝트 - 휴대용 미세먼지 측정기 - 수치 색상의 변경 (0) | 2021.02.21 |