본문 바로가기

FALL in/G.MA' s IoT & 라즈베리파이

릴레이 모듈 제어하기 -1.LED제어

릴레이 모듈이란? 

라즈베리파이로 처음 IoT프로젝트를 하려는 분들은 가장해보고싶은것들 중 하나가 전력장치를 제어하는것일 겁니다. 

릴레이모듈을 이용하면 집밖에서 원격으로 형광등의 불을 켤수도 있고, 원격으로 집안여러 전자기기들의 전원을 제어할수있습니다.

릴레이모듈은 스위치의 개념인데 일반 스위치와 다른점이 있다면 전자석이 접점을 끌어당겨 스위치를 폐쇄시킨다는 것입니다.

라즈베리파이의 GPIO와 연결해서 GPIO에 신호를 주면 릴레이모듈스위치가 닫히고 열립니다. 

멀리 떨어저 있어도 웹이나 앱으로 라즈베리파이의 GPIO에 신호를 줄수있기때문에 전자제품의 원격제어가 가능합니다.  



제가 구입한 릴레이모듈의 사양 입니다. 

라즈베리파이는 5V의 전압을 사용하므로 동작전압이 5V인 릴레이모듈을 구입하였습니다.


구입처:

http://storefarm.naver.com/domekit/products/301603340?NaPm=ct%3Dijwup74r%7Cci%3Dcheckout%7Ctr%3Dco%7Ctrx%3D%7Chk%3D5923249103ede7c1dcc173d8484921a2de3c9a23




 릴레이모듈로 LED제어하기







릴레이모듈 앞쪽부분에서 나오는 케이블에서

주황색 -> VCC-> gpio의 5v에 연결해줍니다.

파란색 -> GND->gpio의 GND에 연결해줍니다.

초록색 -> IN1 -> 릴레이모듈의 오른쪽 스위치 입력입니다.

노란색 -> IN2 -> 릴레이모듈의 왼쪽 스위치 입력입니다.

IN2스위치를 사용할것이기 때문에 IN2와 gpio18을 연결해줍니다. IN1은 연결해도되고 안해도 됩니다.


릴레이모듈 뒤쪽 부분에서 나오는 케이블에서

주황색 -> 1K저항과 연결해줍니다.

검은색 -> gpio 21과 연결해줍니다.

스위치가 열리고 닫힐때 두선이 연결되거나 떨어집니다.


LED의 짧은쪽은 gpio의 GND에 연결해줍니다. (긴쪽은저항과 연결)



이제 파이썬을 이용해 프로그램을 만들어보겠습니다.


vi relayLED.py

vi로 relayLED.py라는 파이썬프로그램을 만듭니다.


import RPi.GPIO as GPIO 

import time #sleep함수를쓰기위해 


GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT) #gpio18번 셋업 ->릴레이모듈

GPIO.setup(21,GPIO.OUT) #gpio21번 셋업 ->LED

print("setup") 

time.sleep(2) #2초 쉬기

for i in range(1,3):

GPIO.output(18,True)

print("true")

time.sleep(2)


GPIO.output(18,False)

print("false")

time.sleep(2)


GPIO.cleanup() 

print("cleanup")

time.sleep(2)


코딩을 다하면 esc+:wq!를 이용해 저장하고 빠져나옵니다.


동작원리는 

처음에 릴레이모듈(18)과 LED(21)과 연결된 gpio를 셋업시켜주고 2초 쉽니다. -> 릴레이모듈의 불이켜지고 LED의 불이꺼짐(스위치가 열림)

for문에서 gpio 18번을 켜주고 2초쉰후 꺼주고 2초쉽니다 (2번반복) -> true일때는 릴레이모듈의 불이꺼지고 LED의 불이켜짐(스위치가 닫힘), false일때는 릴레이모듈의 불은 켜지고 LED의 불이 꺼짐(스위치가 열림)

마지막으로 cleanup()합수를 이용해 gpio를 모두 꺼주고 2초쉰후 프로그램이 종료됩니다. -> 릴레이모듈의 불이꺼지고 LED불도꺼짐(gpio의 신호를 꺼버림)



이제 

sudo python relayLED.py 

명령어로 파이썬 프로그램을 실행시킵니다. 


true일때는 LED가 켜지고 false일때는 LED가 꺼지는 모습을 보실수있습니다.





반대로


동그라미부분 처럼 왼쪽으로 두개를 연결하면 

false일때 스위치가 닫혀 LED가 켜지고 true일때 스위치가 열려 LED가 꺼지게 됩니다.



 

 릴레이모듈의 불

 LED(릴레이모듈출력을 오른쪽두개에연결했을때)

 LED(릴레이모듈출력을 왼쪽두개에 연결했을때)

 setup

 켜짐

 꺼짐

 켜짐

 true

 꺼짐

 켜짐

 꺼짐

 false

 켜짐

 꺼짐

 켜짐

 cleanup

 꺼짐

 꺼짐

 꺼짐



+추가

swap파일 없애기

ls -al

rm -f 파일이름