티스토리 뷰

반응형

지난 겨울 한참 추웠을 11월, 갑작스레 집에 보일러 온도 조절기가 고장이 나버렸었다.


메인 컨트롤러가 고장이 나니 모든방 온도 조절이 안되버리는 사태가 발생했다.


너무 추워서 짐싸들고 처가집으로 피난을 갔었던 기억이 난다.







각방 컨트롤러4개 벨브4개 기준 제품 교체비가 50만원이 넘는다.


돈도 돈이지만 각방 벨브에 달린 구동기 원리가 무언지나 좀 알아봐야 겠다 하고 조사해봤는데



왁스형과 전동식이 있었다.


왁스형은 구동기에 열을 발생시켜 왁스가 팽창해 가운데 피스톤을 밀어주는 형태 ( 클로즈형 ) 이고 


전동식은 모터의 힘으로 피스톤을 움직이는 형태였다.




집에 달린것은 온도 조절기로 조절해도 3분 뒤에나 돌아가는 소리가 들리니 왁스형이고, 전원이 차단되어 온수 공급이 끊기니 클로즈형이었다.


시중에 판매하는 구동기의 제품 스펙(http://item.gmarket.co.kr/Item?goodscode=327359570)을 보면 정격 전압이 220V / 3A 이다. 

구동기는 단순히 220V 전기만 연결해주면 된다는것. 


그렇다면.. 단순히 on/off 로 각방 보일러를 제어할수 있다면 직접 만들어도 되지 않은가!


열심히 설계를 해보았다. 



라즈베리 파이 웹서버를 이용해 웹 또는 앱으로 전원을 on / off 하는것이다. 


컨트롤러 화면도 대충 그려본다. 



우선 구동기는 이상이 없는지 확인해보기 위해 220V 로 구동기에 다이렉트로 물려 시험해보았다. ( 덜덜... 전기는 무서워요 조심조심 ) 


전원 연결하고 1분정도 지나니 뜨거워지기만 한다. 무서워서 그냥 뽑아버렸다.

( 보드만 문제고 구동기는 정상인것으로 함. ) 

(사진도 안찍어놓다니)




여기까지 하드웨어 준비는 완료 되었다.


라즈베리 파이에서 웹서버를 이용하는데 하드웨어 자원에 접근하기 용이한 python 을 가지고 만들어보기로 했다.


우선 python 에서 라즈베리 파이 gpio 를 제어하기 위해서는 다음 모듈이 설치되어야한다.



pip install python-gpio


라즈베리파이2를 이용했는데 파이2 의 핀맵은 다음과 같다.

pi3_gpio.png


쉘에서 gpio readall 을 이용해 핀번호를 확인할수도 있다. (위의 그림과 동일하게 배치되어있다)


GPIO 핀중 아무거나 이용하면 된다. 




제일 아래에 있는 GPIO21 번 핀을 이용해서 릴레이 구동 테스트를 먼저 해본다. 

import RPi.GPIO as GPIO ROOM1_PIN = 21

def GPIOsetup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(ROOM1_PIN, GPIO.OUT)

def roomON(pin):
GPIOsetup()
GPIO.output(pin, 1)
return()

def roomOFF(pin):
GPIOsetup()
GPIO.output(pin, 0)
return()

def run(pin):
roomON(pin)


try:
while(True):
tmp = run(ROOM1_PIN)
if tmp == 1:
break
except KeyboardInterrupt:
roomOFF(ROOM1_PIN)
GPIO.cleanup()
finally:
roomOFF(ROOM1_PIN)
GPIO.cleanup()



릴레이의 default 가 off 로 설정되어야 하므로 핀 위치를 잘 확인해둔다.


gpio 핀을 제어후 프로그램을 종료할 경우에는 GPIO.cleanup() 을 꼭 해주어야한다. 






릴레이 제어가 완성되었으면 웹 서버를 구성해야하는데, 빠른 반응속도와 통신 실패시에나 다른 사용자와의 상호작용을 위해 소켓 서버를 이용하기로 했다.





반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함