전기관련실험2014. 1. 30. 00:29

반응형

라즈베리파이를 이용한 콘센트 제어를 시도해 보았다.


아직 실력이 모자라서 야매스러운 방법으로 한 것이지만, 추후 홈 오토메이션 시스템을 직접 구성해 보는 것이 최종 목표이다. 


야매스러운 방법이란, C언어로 제작한 프로그램이 GPIO 단자를 제어하는데, 이 프로그램은 특정 텍스트 파일을 0.5초 마다 읽어서 이 파일의 내용에 따라 GPIO 단자에 출력을 내보낸다. 


그리고 PHP 스크립트는 이 텍스트 파일에 내용을 기록하는 일을 한다. 웹상에서 제어를 하므로 PC와 스마트폰 등 인터넷이 가능한 장치에서 제어가 가능하다.




전체적인 하드웨어적 구성이다. 콘센트에 연결된 것은 대용량 부하를 개폐할 수 있는 전자접촉기 이다. 




라즈베리파이에 있는 GPIO 단자에 전선을 연결하였다. C언어로 LED 를 켜는 예제는 http://www.rasplay.org/?p=3241 를 참조하였다. 



220V 부하를 개폐할 때에는 서지전압 등이 라즈베리파이쪽으로 튈 수 있기 때문에 전원을 분리하였다. 배선 부분은 10분 정도만에 완성할 수 있었다. 


릴레이를 켜고 끄는 회로는 CDS 를 이용한 회로이고, 이 CDS 에 LED 의 빛을 가하는 방식으로 테스트를 해 보았다. 


이 부분은 LED-CDS 로 하여 외부 빛을 차단해 주거나, 포토커플러 등을 이용하면 된다. 



라즈베리파이의 IP 주소인 10.0.0.13 에 접속하여 테스트를 해 보았다. 


AJAX 를 이용하여 텍스트 파일을 읽어들여서 현재의 GPIO 단자의 출력상태를 표시한다. 


해당 LED가 켜져있으면 노란색 바탕으로 되고, 해당 LED가 꺼져있으면 회색 바탕으로 된다. 버튼을 누르면 색깔이 바뀌면서 해당 LED의 상태도 바뀐다.





PHP 에서 직접 GPIO 단자를 컨트롤할 수 있는 라이브러리를 찾거나, PHP 를 이용하여 직접 GPIO 를 제어하는 프로그램을 실행시킬 수 있다면 좀 더 깔끔한 방법이 될 수 있을 것 같다. 아직은 권한 문제로 인해서 PHP 에서 프로그램을 직접 실행하면 GPIO 단자를 컨트롤할 수 없는 상태이다. 


외부에서 제어를 하려면 VPN 을 이용하거나 포트포워딩 등을 이용해야 한다. 보안을 위해서 IPTIME 공유기에 내장된 VPN 기능을 이용할 예정이다. 대문 개폐장치 등을 이것으로 열면 편리할 것 같다. 


추후 파이썬이나 node.js 등을 이용한 방법들도 시도해 볼 예정..

반응형
Posted by 블루토파즈