먼저 #include를 통해 이전에 설치한 DHT라이브러리를 불러왔다.
이 라이브러리를 사용하면 DHT 센서를 쉽게 제어할 수 있다.
DHT 객체는 다음과 같은 형식으로 생성한다.
DHT 변수명(pinData, dhtType);
그리고 setup()함수 안에서 dht.begin()을 호출하여 센서를 초기화해준다.
또한, 수업 시간에 사용한 RGB LED는 common anode 타입 이라서 일반적인 방식과는 다르게 VCC에 연결된다.
이 때문에 밝기를 조절할 때 anlogWrite()에 255가 아닌 0을 주어야 불이 켜지게 되며, 반대로 255를 주면 꺼지게 된다.
이러한 차이점을 고려하여, 직관적으로 색을 설정할 수 있도록 Color() 함수를 따로 만들어 사용했다.
온습도 센서를 통해 dht.readTemperature()와 dht.readHumidity() 함수를 사용하면 온도와 습도 값을 손쉽게 변수에 저장할 수 있다.
이 값을 이용해, discomfort 변수에 불쾌지수 계산 공식을 그대로 적용하여 불쾌지수를 계산했다.
또한, 코드 내 주석에 나와 있듯이 불쾌지수 범위에 따라
등 다양한 환경에 맞게 RGB LED 색을 표현했다.
값이 일정하게 유지되어 실시간 변화는 어렵다고 판단하여, 결과는 사진으로 정리했다.
이번 실습에서는 온습도 센서를 이용해 RGB LED와 연동하여 불쾌지수를 표현했다.
온도와 습도 데이터를 바탕으로 불쾌지수를 계산하고, 그 값을 기준으로 RGB LED 색상을 변화시키는 방식이다.
무엇보다 인상 깊었던 점은, common anode 방식의 RGB LED를 사용하면서 직접 반전 값을 처리해주는 함수를 만들어 내가 원하는 방식으로 제어할 수 있었다는 점이다.
작은 함수 하나였지만, 이런 사고를 통해
"아, 이렇게 하나하나 쌓이다 보면 큰 프로그램이 되는 거구나."
라는 생각이 들었다.
앞으로도 단순히 작동하게 만드는 데서 그치지 않고,
어떻게 하면 더 편하게, 더 직관적으로 만들 수 있을까?를 고민하며
코드를 짜는 습관을 들여야겠다고 생각할 수 있는 시간이 되었다.