자작 공기질 측정기 개선작업2

자작 공기질 측정기 개선작업2
자작 공기질 측정기 개선 작업1
2년전쯤 공기질 측정기를 만들었다. 온도, 습도는 물론, 미세먼지(pm 1.0, pm 2.5, pm 10)와 이산화탄소 농도까지 보여주는 측정기다. 온습도 모듈은 DHT-22를 사용했고, 미세먼지 센서는 PMS7003을, 이산화탄소 센서는 MH-Z19B를 넣었다. ESPHOME을 올린 ESP32에 이들을 연결하고, 0.96인치 OLED 창을 달아 날짜와 시간을 비롯해 각종 수치를 돌아가면서 보여주게 만들었다.

개선작업을 하겠다고 포스팅한 뒤 2주가 지나서야 겨우 빵판에 배선작업을 해서 테스트 해봤다.

그간 ILI9341 디스플레이와 하우징을 될 케이스, TVOC를 측정할 수 있는 SGP30 센서까지 모두 도착했다. 그런데 정작 빵판테스트에선 기존 DHT22와 새로 온 SGP30모듈은 달아보지도 못했다. 빵판에 작업할 때 필요한 점퍼케이블이 부족했기 때문이다.

TMI지만, DHT22를 제외한 나머지 모듈은 데이터 선 2가닥에다 전원 + -까지 각각 4개의 케이블이 필요하다. 거기에 ILI9341은 SPI로 연결해야하는데, 전원 + -까지 9개의 케이블이 필요했다. 준비해둔 케이블이 모자라서 두개는 빼고 했는데, DHT22야 원래 쓰던거고, GPIO 핀도 안바꿨으니 잘 작동할 것이다. SGP30도 I2C라 I2C를 사용하는 DS1302가 잘 작동하고 있으니 뭐 문제없이 될 것이다.

케이블을 연결하고, 디스플레이 테스트를 진행했다. 이 디스플레이 표시하는 구문은 할 때마다 헷갈린다. 좌표를 넣어보고 겹치면 수정해서 다시 플래싱하길 수차례 반복해서 아래와 같이 일단은 필요한 정보를 표시하는데 성공했다.

온도는 mh-z19b에서 나오는 것으로, 추후 DHT22를 연결하면 거기서 주는 정보로 바꿀 것이고, 습도와 TVOC 수치까지 표시하면 한 화면에 필요한 정보를 모두 표시할 수 있게 될 것이다.

더욱 예쁘게(?) 표시하기 위해 디스플레이 좌표 노가다를 한참했다. ESPHOME에서는 요일과 오전/오후 데이터를 바로 뽑을 수 있는데, 문제는 이게 영어라는데 있었다.  어떻게 할지 모를 땐 역시 구글신! 한참을 검색 끝에 요일 값과 오전/오후 값을 불러와서 IF 구문을 사용해 한글로 바꿔주는데 성공, 최종적으론 아래와 같이 표시되게끔 만들었다.

테스트가 끝났으니 만능기판에 실장하고 케이스에 우겨넣는 작업만하면 됱터인데... 이노무 귀차니즘 때문에 언제쯤 실행에 옮길지는 기약이 없다...