iot

[IoT] ESP32 + SHT30 + PM 2008M + SenseAir S8 + OELD 0.96 나만의 공기질 측정기

뫼B우스 2023. 4. 19. 11:22
반응형

 

iot의 발전은 시작되었고, 미래를 위해 이 기술을 학습하는 것은 개발자입장에서 좋은 위치를 가지고 있는 것이라고 판단된다.

전문가는 아니지만, 나만의 iot 장비를 만들어 보기로 한다.

 

미세먼지, 이산화탄소 등 공기질 측정기는 어떤 센서를 사용하느냐에 따라 가격이 차이가 심하다.

 

ESP32 + SHT30 + PM 2008M + SenseAir S8 + OELD 0.96를 사용한 공기질 측정기

다음과 같은 기능을 할 수 있는 공기질 측정기를 만들고자 한다. 

   1. 온도 습도 측정이 가능해야 한다.

   2. 미세먼지 측정이 가능해야 한다.

   3. 이산화탄소 측정이 가능해야 한다.

   4. 측정값이 확인 가능해야 한다.

   5. IoT 세상이니 측정된 정보를 외부로 보낼 수 있으면 좋겠다.

 

위 기능을 만족하기 위해 선정한 센서와 장비는 

ESP32 + SHT30 + PM 2008M + SenseAir S8 + OELD 0.96

 

 

하드웨어 연결

하드웨어의 정보가 없으니 빵판을 사용하고 땜질보다는 핀 연결로 테스트를 한다.

 

MCU인 ESP32는 처음 사용하였지만, 인터넷에서 공개하는 자료도 많이 있고, 

아두이노 IDE에서도 개발할 수 있어 그리 불편함을 느끼지 못했다.

다만, VSCode로 개발환경을 설정한다면 초보자인 경우 약간의 어려움이 있을 것이다.

 

그럼 ESP32와 센서들의 연결을 도전한다.

 

온습도 연결 
SHT30 ESP32
3v3 3v3
GND GND
D1 D22
D2 D21

I2C 연결이다. 3v3 볼트 쓴다. 센서를 보면 5V 쓸 거 같은데 아니다. 오래 걸렸다. 

그리고 어드레스도 0x45 다.

 

사용한 라이브러리는

https://github.com/wemos/WEMOS_SHT3x_Arduino_Library

 

미세먼지 연결

 

미세먼지는 아두이노 연결선을 같이 구매하였다.

센서에 연결된 선이 있지만 그것까지 분석하는 것은 역량이 안된다.

 

 

I2C 연결이지만 선이 다섯 가닥 나오는데 유의해야 한다.

PM 2008M ESP32
빨강 5V
검정 GND
노랑 GND
녹색 D22
흰색 D21

사용한 라이브러리는 

 

GitHub - neosarchizo/pm2008_i2c: CUBIC PM2008 I2C library

 

이산화탄소 센서 

이건 정말 잘 모르겠다. Datasheet를 봐도 흠 

그리고 센서 하나 해 먹었다. (3만 원대 센서인데)

 

인터페이스는 UART인데  모드는 두 가지가 존재한다.  

그냥  읽어 버리는 것과 ModBus를 사용하는 것 이해하는데 오래 걸렸다.

 

SenseAir S8(53) ESP32
G+  5V
G0 GND
반대편 2번째(Rx) Tx2
반대편 3번째(Tx) Rx2

구글 이미지 검색을 하면 위의 테이블 정보의 사진이 있으니 참고하길 바란다. 

 

라이브러리는 많이 존재한다. 

하지만 필자가 사용한 것은 그냥 돌아다니는 소스 수정해서 사용했다.

 

S8 센서를 사용할 때 주의해야 하는 부분이 센서 홈페이지에 잘 나와있다. 

Senseair S8 Commercial | Senseair

 

 

사이트에 들어가서 확인해보자. 

잘못해서 고가의 센서를 해 먹는 일이 없도록 사전에 예방하자. ㅠㅠ

 

 OLED (ssd 1306) 

 

SSD 1306 ESP32
GND GND
VCC 3v3
SCL D22
SDA D21

 I2C 연결이다. 

 

 사용한 라이브러리는 

GitHub - adafruit/Adafruit_SSD1306: Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs

 

이 라이브러는 GFX.h 를 사용하니 잘 설치해서 사용해야 한다.

네 개의 라이브러리 예제 소스를 기본으로 통합하여 소스를 완성한다. 

 

공기질 측정기 완성

아래는 완성된 사진이다.

하드웨어 엔지니어도 아닌어서 MCU와 센서의 연결이 어려웠지만,

그냥 고등학교때 라디오를 만들어 본 경험을 살려 최선을 다했다.

 

이번은 처음이기에 보잘 것이 없지만 다음은 좀 더 업그레이드를 할 것이다.

 

 

공기질 측정기 완성


이번은 센서와MCU를 테스트한 것으로 만족한다.

 

다음은 측정된 데이터를 mqtt를 사용하여 데이터 송신을 하는 것과

디스플레이를 잘 보이는 장비로 교체를 해볼까 한다.

 

반응형