[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편)
5편 말미에서 언급한 두가지 문제점을 해결하였다.
1. 터치가 가끔씩 안먹는다.
2. 터치로 스위치 상태가 변경되면 앱위젯(App Widget)으 아이콘이 엽뎃되지 않는다.
1번 문제는 터치가 가끔씩 안먹을 뿐만 아니라, 라즈베리파이(Raspberry Pi)에 다른 동작이 수행되면 터치신호가 입력된 것으로 오동작하기도 했다.
이 문제는 터치 신호를 받는 GPIO 앞단에 작은 저항을 삽입하여 해결하였고, 기존의 빵판배선을 쪽보드에 납땜한 후 말끔히 개선되었다.
2번 문제는 GCM Push 기능을 추가했다.
스마트 콘센트(Smart Plug)의 상태가 바뀔때마다 등록된 스마트폰에 Push를 보내 아이콘 모양이 업뎃되도록 했다.
우선 구현완료된 영상
뭔가 썰렁하지만 개인적으로는 구현한 첫날 몇번이고 동작시키며 만족해 했다.
아래 사진을 참고하자.
좌측의 터치 스위치를 터치하여 우측의 스마트폰 앱 위젯(App Widget)의 상태가 변경되는게 관전포인트이다.
구성도
스마트 콘센트(Smart Plug) + 터치스위치(Thuch Switch) + 앱 위젯(App Widget) + Push
라즈베리파이(Raspberry Pi)의 Node.js 가 위 구성의 핵심이다.
Node.js 에서 터치 스위치의 입력을 받고, 스마트 콘센트(Smart Plug)를 제어하며, 스마트폰에 GCM Push를 전송한다.
Push 기능을 구현하기 위해 필요한 절차
1. Google에 개발자 등록을 하고 프로젝트를 생성한다.
2. 프로젝트에 내 앱을 등록하고 프로젝트 ID와 API Key를 부여받는다.
3. App Widget에 Push 서버 등록 코드를 작성한다.
4. Node.js에 node-gcm 모듈을 설치하고 Push 등록 요청을 받는 코드를 작성한다.
5. Push 등록 요청 시 들어오는 스마트폰 ID와 등록키를 저장할 MySQL 서버를 구축한다.
6. Node.js 의 Toggle 기능에서 Push 보낼 스마트폰 목록을 MySQL에서 조회하여 Push 요청하는 코드를 작성한다.
7. App Widget에 Push를 수신할 Service 코드를 작성한다.
동영상만 등록되면 저장이 되지 않아 몇번이고 글을 날려먹었다.
오늘은 여기까지하고, 다음편부터 구현방법을 차근차근 올리도록 하겠다.
'Raspberry pi' 카테고리의 다른 글
2편 PLEX 최적화 - 라즈비안(Raspbian) 재설치 (0) | 2017.04.29 |
---|---|
7편 스마트 콘센트? Smart Plug! + Node.js Push 서버 (Firebase 등록) (0) | 2017.04.27 |
라즈비안(Raspbian) 시간동기화 (0) | 2017.04.23 |
1편 라즈베리파이(Raspberry Pi) PLEX 최적화 (0) | 2017.04.23 |
라즈베리파이(Raspberry Pi) + 미니보드 (0) | 2017.04.21 |