본문 바로가기
임베디드

[오제이 튜브의 임베디드 강의] 29강. 난방실 만들기(온도에 따른 드라이기 제어)

by 덤더리덤떰 2025. 2. 11.

0. 아래 사진들과 같이 소켓과 릴레이 연결

  • 소켓을 먼저 전선과 연결하고 계속해서 쇼트테스트
  • 릴레이도 같은 전선을 릴레이의 COM과 NO에 연결하고 계속해서 쇼트테스트
  • STM PCB에서 5V/3V/GND에 핀이 배치되어지지않아서 직접 납땜 작업 
  • 등등등... 계속해서 선들의 전기적 신호 연결이 제대로 되었는지 모두 확인하며 사전준비 완료 

 

릴레이/ 소켓과 릴레이 연결/stm pcb 납땜작업

 


지난 시간에 릴레이 작업하여 전기적 신호를 주면 딸깍- 소리가 나며 NC-COM이 끊어지고 COM-ON이 연결됨을 확인

 

1. GPIO 제어 

  • PB5를 GPIO_Output으로 설정 후 아래 사진과 같이 옵션 설정 

 

 

2. 온도센서 회로도 구성

 

 

 

 

 

  • 모듈의 vcc와 빵판의 +
  • 모듈의 gnd와 빵판의 -
  • 모듈의 dat와 stm보드의 PA3 pin과 연결 (PA2는 오타)
  • 추가적으로, stm칩의 gnd와 3v3과 빵판의 -와 + 각각 연결
    (모든 부품이 동일한 기준 전압에서 동작할 수 있도록 정리하는 역할)

 

 

 

 

3. 온도에 따른 드라이기 제어 소스코드 작성 

float형인 현재 온도 가져오는 함수 만들기 (+헤더파일에 함수원형 추가해주기)

 

(위) heaterController.c 파일 생성 후 코드 작성/ (아래) heaterController.h 헤더파일도 생성 후 코드 작성

 

+ main.c에도 heaterController.h를 include하고 코드 작성  

 


 

아래 코드 수행시 2초마다 릴레이에 신호를 주어 스위칭되며 드라이기가 꺼졌다 커졌다 반복되도록 코드 작성


 



 

최종적으로 45도 미만이면 드라이기가 켜져서 박스내부에 열을 계속 가하며 온도센서의 열은 오르게 되고, 이때 이 온도센서가 감지하는 온도는 실시간으로 ds18b20[0].Temperature에 의해 측정이 된다. 그리고 50도를 넘어서게 되면 알아서 드라이기가 꺼져서 난방실(박스 내부)를 45도와 50도 사이가 유지되도록 하였다.