[책상 보조등 제어하기] 0. 구성

이 글은 4부작입니다.

너무 수업과 과제에 치이고만 살아서 이번 주말에는 다 때려치고 재미난 것을 시도했다.
책상에 붙어있는 12v LED 스트립을 제어해보는 것인데, 이왕 하는 김에 조금 범용성 있게 만들어 양산(?) 가능하게 만들어보려 한다.

사실 예전에 반쪽짜리로 만들고 묵혀놨던 물건인데, 이번에 마침 기회도 오고 부품도 있어서 삽질을 시작해봤다.

틀린 서술이 많을 것 같습니다.
혹시나 발견하신다면 댓글 남겨주시거나 potados99@gmail.com으로 피드백 보내주신 주신다면 정말 감사하겠습니다 :)

구성

큰 그림

목표는 책상 보조등을 아주 편안하게(마치 신체의 일부인 마냥) 제어하는 것이다. 당연히 켜거나 끌 수 있어야 하며 이에 더해 밝기 조절도 되었으면 한다.

별도의 장비가 아닌 내 휴대전화 또는 PC와 같은 기기들을 활용하고 싶다. 또한 내 기기와 제어장치(이하 노드)가 직접 통신하게 하고 싶다. 그래야 중계자가 사라졌을 때(서버가 죽었다든가)를 대비할 수 있다.

하드웨어

  • LED
    사용할 LED는 이것과 비슷한 제품이다. ebay에 12v LED strip warm whit 정도로 검색하면 나오는 제품이다. 길이는 1m 조금 안되게 잘라서 붙여놓았다.

  • 마이크로컨트롤러
    휴대전화 또는 PC가 노드와 직접 통신하는 가장 쉬운 방법은 무선 LAN을 활용하는 것이다. 시리얼 통신이나 433MHz 무선통신, ZigBee 등은 어렵다. 블루투스는 페어링이 귀찮다.
    Wi-Fi를 지원하는 제품 중 가장 저렴하고 널리 쓰이는 것이 ESP-8266 계열인데, 오리지날 ESP-8266 보드는 너무 작고 전원공급도 디버그도 불편해서 ESP-12E 모듈을 장착한 NodeMCU 확장 보드를 사용하기로 했다.

  • 디스플레이

반짝이는 상태창 같은게 달려 있어야 멋있다!

0.96인치짜리 128x64 해상도와 SPI 인터페이스를 지원하는 OLED 디스플레이를 사용하기로 했다. 드라이버는 SSD1306 칩을 사용하며, 예제가 아주 많다.

시나리오

이 구성이 완성되면 기존의 HAP-NodeJS + Raspberry Pi 조합에 힘입어 Siri로 기기를 제어할 수 있게 된다.

만약 그렇게 된다면…

누워서 책을 보다가 불을 끄고 자려고 한다. Siri에게 “불 꺼”라고 말하자 불이 꺼진다.

또는

밖에서 길을 걷다가 문득 책상 등이 켜져있는지 알고 싶다. Siri에게 “불 켜져있어?”라고 묻자 그렇다는 대답이 돌아온다.

만약 HomeKit 시스템이 사용할 수 없는 상황일 때에는

휴대전화에서 클라이언트 애플리케이션을 실행해 노드에게 직접 메시지를 보낸다.

또는

서버에서 shell 명령으로 노드를 직접 제어한다.

와 같은 시나리오가 가능해진다.

다음 글에서 이어집니다.

Reference

댓글