Work - 6 (1) 도전과제

JMIN·2025년 4월 19일

사물인터넷

목록 보기
15/23

🚀 도전과제

  • 온습도를 측정하여 불쾌지수를 삼색 LED에 표현하기

⚡ 회로도

📜 코드


먼저 #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를 사용하면서 직접 반전 값을 처리해주는 함수를 만들어 내가 원하는 방식으로 제어할 수 있었다는 점이다.

작은 함수 하나였지만, 이런 사고를 통해

"아, 이렇게 하나하나 쌓이다 보면 큰 프로그램이 되는 거구나."
라는 생각이 들었다.

앞으로도 단순히 작동하게 만드는 데서 그치지 않고,
어떻게 하면 더 편하게, 더 직관적으로 만들 수 있을까?를 고민하며
코드를 짜는 습관을 들여야겠다고 생각할 수 있는 시간이 되었다.

profile
🐂처럼 살기;

0개의 댓글