7월, 2017의 게시물 표시

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

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

(머신러닝-5) 머신러닝을 위한 파이썬 Basic

현재 공개된 텐서플로우의 예제들이 파이썬 언어로 작성되어 있기 때문에 파이썬을 이용해서 머신러닝을 공부하는 것이 좋다. 파이썬은 네덜란드의 개발자 Guido Van Rossum이 개발한 언어로 다른 언어와 비교해서 문법이 쉽고 간결하다. 동적언어이며 인터프리터 언어이다. Hello World a = "Hello World" print(a) print("Hello World!") 자료형은 다른 언어와 같다. int, float, bool, str 등 그러나 파이썬은 선언 과정이 없기 때문에 입력된 값에 맞춰 자료형을 판단한다. a = 1 b = 1.0 sum = a + b print(a) print(b) print(sum) 또한 파이썬은 데이터 자료형이 다를 때 자동 형 변환이 된다. 자료구조 분류 자료형 설명 예 리스트 list 파이썬 객체들의 모음을 표현하는 자료형으로 '목록'처럼 순서 있는 값들을 나열한다. [1,2,3,4], ['a','b','c','d'],[[1,2],[3,4]], [1,2,'a','b'] 튜플 tuple 파이썬 객체들의 모음을 표현하는 자료형으로 순서있는 값들을 나열한다. 내용을 바꿀 수 없다. ('a','b','c','d'). (1,2,(3,4)), (1,2,[3,4]) #괄호을 빼도 된다. 딕셔너리 dict 파이썬 객체들의 모음을 표현하는 자료형으로써 순서가 없는 값들을 나열합니다. '사전'처럼 미리 키(key)를 등록해 놓고 그 키를 통해 값을 이용할 수 있다. {'one':1, 'two':2}, {1:1,2:2}, {'one':'un', 'two':'de