Raspberry pi

5편 스마트 콘센트? Smart Plug! + 터치스위치

[혜안] 2017. 4. 19. 21:57
728x90

[Raspberry pi] - 1편 스마트 콘센트? Smart Plug!

[Raspberry pi] - 2편 스마트 콘센트? Smart Plug!

[Raspberry pi] - 3편 스마트 콘센트? Smart Plug!

[Raspberry pi] - 4편 스마트 콘센트? Smart Plug! + 앱위젯

[Raspberry pi] - 5편 스마트 콘센트? Smart Plug! + 터치스위치

[Raspberry pi] - 6편 스마트 콘센트? Smart Plug! + Node.js Push 서버 (개요편)

[Raspberry pi] - 7편 스마트 콘센트? Smart Plug! + Node.js Push 서버 (Firebase 등록)

[Raspberry pi] - 8편 스마트 콘센트? Smart Plug! + Node.js Push 서버 (서버편)

[Raspberry pi] - 9편 스마트 콘센트? Smart Plug! + Node.js Push 서버 (App편)



스마트콘센트에 터치스위치를 추가했다.

위젯이 아무리 편해도 스마트폰을 들고다녀야 하고, 화면을 켜야하는 번거로움을 줄이기 위해....


우선 터치센서를 구매했다.


쿠킹호일을 이용한 터치센서 만들기도 있었으나, 기본 원리가 평소에 항상 전류를 흘리는 방식이라 맘에들지 않았다.

http://www.ictdiy.org/wp/archives/7372


그리고 터치센서 가격이 워낙에 싸다. 내가 구매한 가격은 1100원, 홍보한다고 할까봐 링크는 안걸겠지만, 검색하면 바로 나온다.


핀이 세개 있는데, VCC, GND, IN 이다.


node.js 코딩

역시 node.js 코딩은 간단하다. 

var express = require('express'),
    http = require('http'),
app = express(),
server = http.createServer(app),
bodyParser = require('body-parser'),
lirc_node = require('lirc_node'),
GPIO = require('onoff').Gpio,
plug = new GPIO(2, 'high'),
touch = new GPIO(26, 'in', 'rising');

touch.watch(function (err, value) {
if(err) {
throw err;
}

if(plug.readSync() == 1) {
plug.writeSync(0);
console.log("touch on");
}
else {
plug.writeSync(1);
console.log("touch off");
}
});


touch 라는 onoff.GPIO 객체를 정의하고, 입력모드로, rising 엣지에 반응하도록 했다.

onoff.GPIO에서는 watch라는 function을 제공한다.

26번 GPIO에 rising 엣지가 발생하면, watch function이 호출된다는 의미...

plug가 on이면 off시키고, off이면 on 시키는 간단한 코드만 추가했다.


시험

그동안 스마트콘센트(Smart Plug) 회로에도 개선이 되었다.

TR 개념을 다시 공부하고, NPN 과 PNP를 조합하였다. 회로도는 다음기회에...


스위치 연장하기

스텐드가 있는 곳과 터치스위치가 있는 곳은 위치가 다르다.

즉, 터치스위치를 연장시킬 랜포트가 다르므로 Y커플러를 넣은 단자함에서 배선이 필요하다. 사진은 생략.. 



안방에서 스위치 위치는, 문을 열고 들어가자 마자 있는 화장대이다.

다행히 화장대 밑에 랜포트가 하나 더 있다.

랜케이블 제작


랜케이블을 화장대 밑 랜포트에 연결

그리고 터치센서가 못생기고 날카로운 관계로  굴러다니던 열쇠고리 장식을 위에 붙였다.

장식은 와이프 협찬.

완성.


그런데 배선을  완료하고 나니, 터치가 안먹는다.

VCC 소스를 3.3v에서 5v로 바꾸니 해결, 아마도 In 신호를 서재방까지 보내기에는 힘에 부쳤다보다..



최종 시험


이제 좀 더 편해졌다.


두가지 문제점 발견

1. 터치가 가끔씩 안먹는다. 손가락을 바꾸면 먹는다... 그래도 위젯보단 편하지만, 개선이 필요하다.

2. 터치로 스위치 상태가 변경되면 앱위젯의 아이콘이 업뎃되지 않는다.

    사실 이문제는 와이프가 켰을때 내 폰의 앱위젯이 업뎃되지 않는 문제로, 이미 인식하고 있었다.

    이것도 역시 개선이....


728x90