본문 바로가기
만들기/아두이노

공대생 감성 아두이노 스마트 전등 스위치봇 만들기

by 훨훨날아 2021. 7. 25.

밤에 자기 전 전등 스위치를 끄러 움직이는 것은 귀찮은 일이다. 그래서 스마트 스위치를 검색하면 크게 세 종류의 스마트 스위치를 찾아볼 수 있다.

1. 전등에 스위치를 연결하여 원하는 곳에 무선 스위치를 만드는 형태
2. IoT기능이 내장된 스위치를 기존 스위치와 교체하는 형태
3. 물리적으로 스위치를 누를 수 있는 스위치 봇을 만드는 형태

각각의 장단점을 살펴보면 1번 무선 스위치 스마트 전등은 가격대가 1만 원대로 저렴하지만 스위치를 물리적으로 어딘가 설치해야 한다. 2번 IoT 스마트 스위치는 핸드폰으로 조절 가능하고 업체에서 제공하는 스케쥴링 기능 등 다양한 기능이 있지만 가격대가 3만 원 이상으로 비싸다. 3번 스위치 봇은 스위치가 설치된 형태와 상관없이 사용 가능하지만 역시 가격대가 3만 원 정도이다.

가장 깔끔하고 좋은 방법은 2번 IoT 스마트 스위치를 설치하는 것이겠지만 스위치에 3만 원을 사용하기에는 뭔가 끌리지 않아서 스위치 봇 형태로 직접 만들어 만들어보았다.

 

스위치 봇

스위치 봇의 원리를 살펴보면 네모난 제품 안에 서보모터가 들어있고 인터넷 혹은 블루투스로 핸드폰과 연결되어 앱을 통해 서보모터의 움직임을 조절해 불을 켜고 끄는 방법이다. 불을 끌 때는 돌출된 버튼이 스위치를 누르고 켤 때는 끈에 연결되어 당기게 된다. (스위치가 좌우로 움직이면서 스위치를 켜고 끄는 방식도 있다)

 

https://smartstore.naver.com/wakers/products/4761379644?NaPm=ct%3Dkrije1i8%7Cci%3D099c4d7310d63fa68a11f5ac162049b06e61afb1%7Ctr%3Dsls%7Csn%3D991225%7Chk%3D3d333f38dc96f13c17959dd3984ec68f3b1619fc

 

아두이노를 이용한 스위치 봇 만들기

기본 개념을 살펴보면 다음과 같은 기능들이 필요하다. 

핸드폰 앱을 통한 연결 - 인터넷이 가능한 아두이노 - 서보모터 - 스위치

1. 핸드폰 앱을 통한 연결 -  blynk
예전에는 앱을 만들기 위해서 앱인벤터와 같이 약간은 공부가 필요한 앱 제작 툴을 사용했다. 하지만, 요즘에는 더 간단하게 앱을 만들고 IoT 제품들을 조작할 수 있는 도구들이 많이 생겼다.
내가 사용한 앱은 blynk라는 앱으로 인터넷 혹은 블루투스로 제품들을 연결하고 조작하고 데이터를 받아올 수 있다.

blynk : 한 개의 서비스에 대해서 무료

2. 인터넷이 가능한 아두이노
아두이노에는 기본적으로 와이파이가 없지만 와이파이 모듈을 통해서 인터넷을 연결할 수 있다. esp8266 은 아두이노처럼 사용 가능하지만 와이파이가 내장되어 있어 쉽게 사용할 수 있다.

esp8266 : 7000천 원 정도

3. 서보모터
스위치를 켜고 끄는 데는 큰 힘이 필요하지 않기 때문에 기본적인 SG-90 미니 서보모터를 사용하였다.

SG-90 : 2000천 원 이하

4. 기타 부품
아두이노 연결선, 5핀 usb연결선, 강력한 양면테이프

 

만들기

esp8266 설정과 서보모터 연결하기

https://kyoungin90.tistory.com/258

 

[ESP8266] 와이파이를 이용한 스마트스위치 만들기

와이파이가 연결가능한 esp8266을 이용하여 물리적 움직임이 포함된 스마트스위치를 만들어 보았다. 시간이 오래 걸릴줄 알았는데 생각보다 간단하게 만들 수 있었다. 준비물 1. 와이파이가 가능

kyoungin90.tistory.com

 

코딩
#include <Servo.h> // 서보모터 라이브러리를 불러옴 https://www.arduino.cc/reference/en/libraries/servo/attach/
#include <ESP8266WiFi.h> // esp8266 와이파이사용 라이브러리를 불러옴 
#include <BlynkSimpleEsp8266.h>  // esp8266 라이브러리를 불러옴 

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "블링크앱 인증키";

// Your WiFi credentials.
// Set password to "" for open network.3\89/.
char ssid[] = "와이파이이름";
char pass[] = "와이파이 비밀번호";


Servo servo; // 서보모터라이브러리를 servo로 불러옴

void setup() {


  Blynk.begin(auth, ssid, pass); // esp8266과 블링크 인터넷 연결

 
}

void loop(){
  
  Blynk.run(); // 블링크 실행
 
  }

// 블링크앱 버튼설정

BLYNK_WRITE (V5) {
  int pinValue = param.asInt (); // V5에서 입력되는 값을 pinValue에 할당
  if (pinValue == 1){         // pinValue에 1의 값이 입력되면 다음의 코드를 실행
    servo.attach(5,544,2400); // 서보모터를 5번에 연결함 (보드상에선 D1)
    delay(1000);              // 잠시 멈췄다가
    servo.write(120);         // 초기 위치로 이동
    delay(1000);             
    servo.write(76);          // 스위치를 누르는 각도로 이동
    delay(1000);
    servo.write(120);         // 초기 위치로 이동
    delay(1000);
    
    servo.detach();           // 서보모터 연결해제
     }
  }

 

 

완성

서보모터를 스위치 위에 붙여준 다음 서보모터의 각도를 조절해준다. 서보모터의 각도가 너무 크면 서보모터가 들리면서 스위치로부터 떨어지게 된다. esp8266에는 usb를 통하여서 전원을 계속 공급해준다.

더보기

esp8266은 와이파이와 연결하면 전력소비가 많다고 한다. 찾아보니 esp8266이 소비전력은 15 µA and 400mA이고 보통 70mA정도로 작동한다고 한다. 구동전압이 3.3V로 작동할 때 70mA를 소비하면 

W = U * I = 3.3V * 70mA = 231mW이고 400mA를 사용하면 1329mW이다. 다음 기사에서 와이파이에 연결될 때 150mA의 값을 보여주었으므로 500mW 정도 사용한다고 생각할 수 있다. 이것을 1년으로 바꾸면 365 * 24 * 0.4 = 4390 Wh 은 전기를 사용한다.

kWh 누진구간마다 다르겠지만 최댓값이 500 kWh를 초과했을 때 kWh 당 요금이 700원 정도인 것을 생각하면 esp8266을 연결하여 사용하면 3200원 정도의 전기세가 나갈 것 같다.

https://diyi0t.com/how-to-reduce-the-esp8266-power-consumption/

 

 

단점

1. 선이 지저분하다.
2. 선이 지저분하다.
3. 서보모터가 스위치에 잘 붙어있지 못하면 불이 안 꺼진다.
4. 서보모터의 작동전압이 5V인데 esp8266의 출력전압이 3.3V여서 서보모터가 빠릿빠릿하게 작도하지 않는다.

 

결론

직접 불 끄는 스위치 봇을 만드는 경험을 하고싶다면 한번 도전해보길 추천한다.

반응형