ESP32에 연결된 dht22의 온습도 센싱 정보들을 mqtt를 이용하여 확인 및 조정하는 작업을 해봤습니다.

아두이노 시리얼 모니터에 dht22에 측정된 현재 온습도와 설정 온습도를 출력. 설정 온습도를 메시지 창에서 수정 가능하도록 했습니다.
//시리얼모니터로 온습도 설정
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim();
if (input.startsWith("T:")) {
temperatureThreshold = input.substring(2).toFloat();
Serial.print("Updated temperature threshold via Serial: ");
Serial.println(temperatureThreshold);
} else if (input.startsWith("H:")) {
humidityThreshold = input.substring(2).toFloat();
Serial.print("Updated humidity threshold via Serial: ");
Serial.println(humidityThreshold);
} else {
Serial.println("Invalid input. Use 'T:<value>' or 'H:<value>'");
}
}
아두이노 시리얼 모니터 메시지 창에 [T: 온도값 / H: 습도값]을 입력하여 온습도 설정값 적용.

hivemqtt에서 주고 받는 메시지 모니터링
// MQTT로 현재 설정 및 측정 값 전송
snprintf(msg, MSG_BUFFER_SIZE, "{\"tempThr\": %.2f, \"humidThr\": %.2f, \"cTemp\": %.2f, \"cHumid\": %.2f}",
temperatureThreshold, humidityThreshold, temperature, humidity);
client.publish("sensor/data", msg);
온습도 설정값 변경을 위한 토픽 설정
해당 토픽에 원하는 설정값을 입력하여 원격으로 온습도 조절가능하게끔.
if (String(topic) == "temperature/threshold") {
temperatureThreshold = message.toFloat();
Serial.print("Updated temperature threshold: ");
Serial.println(temperatureThreshold);
} else if (String(topic) == "humidity/threshold") {
humidityThreshold = message.toFloat();
Serial.print("Updated humidity threshold: ");
Serial.println(humidityThreshold);
}
이후 설정 온습도 값에 따라 릴레이를 이용 5v 팬을 제어하는 작업까지 마무리 했습니다.
습도 조절은 미니 초음파 가습기로 진행할 예정입니다.



작은 컵 사이즈 내부의 온도를 떨어뜨리려 했으나 팬의 성능이 생각보다 잘 나오지 않아 온도 조절에는 실패.
온습도 조절 및 유지에 필요한 방법(적절한 제품, 제품의 위치 등등) 찾기에 한동안 시간을 할애해야할 것 같습니다.
냉각패드 등의 사용도 고려중입니다만...
설정한 온습도를 유지시키는 좋은 방법 있으신분의 소중한 조언을 기다립니다.
갈길이 멉니다 ㅎㅎ
아자아자 화이팅!!
천천히꾸준히 아자!!
'1인창조기업' 카테고리의 다른 글
예비창업자의 창업일지_005탄 (0) | 2025.01.18 |
---|---|
예비창업자의 창업일지_004탄 (0) | 2025.01.18 |
예비창업자의 창업일지_003탄 (0) | 2025.01.18 |
예비창업자의 창업일지_002탄 (0) | 2025.01.18 |
예비창업자의 창업일지_001탄 (0) | 2025.01.18 |