라벨이 [IoT]인 게시물 표시

휴가철 빈집털이 방지를 위한 IoT 전등. 2편.

이미지
휴가철 빈집털이 예방을 위한 IoT 전등(2/2) 인터넷을 통해 집안의 전등을 켜고 끄는 프로젝트를 진행하고 있습니다.  지난 회 에서는 하드웨어를 준비했습니다. 이번 마지막 회에서는 S/W를 개발하는 부분을 진행해 보겠습니다. 업무 부분이라고 할 수 있는 전등을 켜고 끄는 코드는 아주 간단합니다. 상대적으로 웹 개발 부분이 훨씬 큽니다. 릴레이 테스트 코드 일단 링크 를 참조해서 GrovePi 라이브러리와 예제를 라즈베리파이에 설치합니다. GrovePi 보드의 디지털 3번 포트에 연결한 경우입니다. 스위치 켜는 코드 import grovepi grovepi.digitalWrite(3, 1) 스위치 끄는 코드 import grovepi grovepi.digitalWrite(3, 0) 보시다시피 아주 간단합니다. 라이브러리를 가져오고 보드의 API를 통해 특정 포트에 디지털 신호를 주거나(1) 끊습니다(0). 웹 애플리케이션 개발 아무래도 릴레이를 컨트롤하는 라이브러리가 파이썬으로 되어 있으니 같은 환경에서 개발하는게 좋을 것 같습니다. 파이썬 웹 프레임워크로는 크게 django 와 flask 가 있습니다. 조금이나마 익숙한 django로 진행해 보겠습니다. Django Girls 의 튜토리얼을 많이 참조하였습니다. 개발환경 준비 django를 설치합니다. 파이썬 패키지 관리자인 pip를 사용합니다. $ pip install django 개발 진행 Django 프로젝트 만들기 : django 커맨드로 프로젝트를 시작합니다. 프로젝트명은 homeauto로 정했습니다. $ django-admin startproject homeauto 프로젝트 디렉터리(homeauto)로 이동해 일단 웹 서버가 정상적으로 뜨는지 확인해 봅니다. 서버가 정상적으로 가동되면 브라우저에 locahost의 8000번 포트로 접속합니다. 환영 페이지가 나올꺼예요. $ python manage.py runserver 몇 가지 설정을

휴가철 빈집털이 방지를 위한 IoT 전등. 1편.

이미지
휴가철 빈집털이 예방을 위한 IoT 전등(1/2) 7말 8초 휴가철 입니다. 장기간 집을 비울 때 어디에서나 우리집의 전등을 켜고 끌 수 있는 IoT(좀 거창한가..) 프로젝트를 소개해 드립니다. 총 2편으로 구성되어 있으며 이번 편에서는 전체적인 계획과 H/W 구성을 진행해 보려고 합니다. 다음 편에서는 파이썬으로 간단한 웹 서비스를 만드는걸 진행 하겠습니다. 주의 : 220v 전기를 건드려야 합니다. 감전 위험이 높으니 주의가 필요합니다. 전기 작업시 꼭 연결된 배전함의 스위치를 내려 전류를 끊고 작업하시기 바랍니다. 또한 스위치 역할을 하는 릴레이의 경우 감전과 화재 위험이 있습니다. 마찬가지로 주의 바랍니다. 계획 우리의 목표는 벽에 있는 전등 스위치를 인터넷을 통해 켜고 끄는 것입니다. 여러가지 가능한 방법이 있을 것 같습니다. 최근에 비슷한 목적으로 만들어진 기계를 파는것도 본것 같네요. IoT 기능이 내장된 전등 스위치도 아마 있을 것입니다. 직접 만든다고 해도 여러 방법이 있습니다. 스위치를 눌러 켜고 끄는 기계를 레고로 만드는 것도 괜찮을 것 같습니다. 또는 회전각도를 조절할 수 있는 모터인  서보 모터 를 사용해 기계적으로 스위치를 누르게 만들수도 있습니다. 하지만 벽에 구멍을 내지 말라는 요청을 받아서.. 그리고 움직이는 기계는 아무래도 복잡하더라구요. 가장 간단하고 직접적인 방법인 전기적 스위치 즉, 릴레이를 이용해 보기로 했습니다. 전등 연결 - 전등 스위치에서 전선을 분리. 스위치 - 전기적 스위치 역할을 하는 릴레이 를 사용. 컨트롤러 - 외부 신호를 입력받아 릴레이(스위치)에 신호를 주거나 끊습니다. 웹 서비스를 구상하고 있으므로 라즈베리파이 가 적절해 보입니다. 프로그래밍 - 라즈베리파이 + 웹 서비스를 구현하기 쉬운 파이썬을 선택하였습니다. Tip. 컴퓨터는 회로로 구성되어 있고 전기로 돌아가지만 프로그래머에게 전기와 회로는 낯선 존재인 것 같습니다. 논리가 아닌 실제 물질