STM32 자작 디지털 온습도계

2019. 5. 4. 10:18전기전자/전자

 

이번 주제는 디지털 온습도계 주제입니다

요즘 점점 덥고 습해지고

장마철 때가 오면 습도가 높아지기 때문에

식물이나 다른 물건들 관리가 필요해지는

시기가 되므로 디지털 온도계를 만들었습니다

디지털 온도계 만들어놓으면 4계절 내내

유용하게 사용할 수 있습니다

아니면

부화기 같은 장치에도 응용할 수 있겠네요

 

본론 들어가겠습니다

 

온도센서는 HDC1080 센서를 이용해서 만들었고

마이크로컨트롤러는 STM32F4 사용했습니다

 

코딩은 인터넷 자료 참조와

수정을 해서 STM32와 주변장치 호환될 수 있도록

코딩했습니다

 

STM32F4 디스커버리 보드

먼저 STM32F4 개발 보드 모습입니다

처음 할 때는 아두이노를 사용했으나

비용 대비 성능 (가성비)가 높은 개발 보드가

이만한 게 없으므로

 

아두이노는 잠시 접어두고 STM32로 갈아탔습니다

 

물론 이 보드가 아두이노보다 조금 비싸지만

클럭 주파수와 플래시 메모리를 비교하면

아두이노와 성능 차이 10배 이상 납니다

 

클럭 주파수만 봐도

 

아두이노 16 MHz

STM32F407 168 MHz

 

10배 더 차이 납니다

 

프로그래밍 가능 플래시 메모리는

 

아두이노 32 kB

STM32F407 1024 kB

 

32배 차이

넘사벽이네요

 

대신 예제가 아두이노보다 없으므로 예제가 없는 경우

AVR 아니면 아두이노용 코드를 STM32용으로 포팅을 해야 하기 때문에

어느 정도 부품에 대한 지식과 프로그래밍 실력이 있어야

개발이 가능하다는 단점이 있습니다

 

STM32CubeMx STM32 pinmap

먼저 개발 보드의 핀 맵입니다

온도센서는 I2C 1번

PB8 (SCL)

PB7 (SDA)

사용했습니다

 

LCD와 연결되는 곳은

I2C 3번

PA8 (SCL)

PC9 (SDA)

사용했습니다

 

코딩 true studio

 

HDC1080 온습도계 코드와

I2C를 이용해서 LCD를 제어하는

MCP23017 ic에 대한 코딩입니다

 

HDC1080 온습도계는 인터넷과 각종 데이터 시트를

활용했고

 

MCP23017는 호환되는 I2C LCD 제어코드를

수정하여 MCP23017으로 작동되도록

데이터 시트를 참고하여 코딩했습니다

 

참고로 STM32CubeMx 활용하면

개발 난이도는 중간 정도 됩니다

각 부품의 레지스터 주소와

I2C 나 SPI 같은 통신 주소를 알면

개발 가능합니다

 

코드는 여기 첨부하겠습니다

i2chdc1080lcd.zip
0.91MB

TrueStudio 전용 코드입니다

 

디지털 온도계 테스트 회로

디지털 온도계 전체 사진입니다

왼쪽에서 오른쪽 순으로

STM32F4 개발 보드 - HDC1080 센서(브레드보드에 서있는 부품)

MCP23017 - LCD 순입니다

 

HDC1080 온도센서

HDC1080 온도센서 사진입니다

회로는 단순해 보이지만

 

HDC1080의 스펙을 보면

가장 정확한 값을 나타낼 때 기준으로

온도는 ±0.2 °C

습도는 ±2%

정도 되며 꽤 정확한 것을 알 수 있습니다

 

MCP23017

I2C IO 확장기 중 하나인 MCP23017입니다

이 부품이 하는 일은 핀이 부족할 경우

I2C 통신을 이용해서

입출력 핀을 확장하는 역할을 합니다

 

이런 부품을 활용해서 선을 줄이면

선정리를 깔끔하게 할 수 있습니다

 

MCP23017인 경우에는 다른 PCF8574 같은

포트가 하나인 부품과 달리

포트가 A포트 B포트로 나눠 지기 때문에

프로그래밍 하기 복잡합니다

 

I2C를 이용하여 IO확장기를 써야 될 상황일 때

포트 2개 활용할 거 아니면

PCF8574 추천합니다

 

온도계

LCD에서는 온습도 출력이 잘되네요

가끔씩 브레드보드에 전원 노이즈가 생겨

불안정하게 출력이 되기도 합니다

 

 

디지털 온습도계 테스트 영상입니다

이날 기준 기상청 온도는 14 °C 정도 되고

실내온도는 17 °C 정도 측정되네요

 

습도는 기상청 기준으로 보면 밖에 습도보다 상대적으로

높았습니다

 

이상 디지털 온습도계 포스팅을 마치겠습니다

 

'전기전자 > 전자' 카테고리의 다른 글

가변저항 이론과 사용법  (1) 2019.05.27
앰프 만들기  (0) 2019.05.21
자작 AVR 보드  (0) 2019.05.08
자작 전기충격기  (2) 2019.05.06
스테핑모터 구동  (1) 2019.05.04