레이블이 스마트홈인 게시물을 표시합니다. 모든 게시물 표시
레이블이 스마트홈인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 28일 월요일

NodeMCU와 Blynk를 사용한 IoT - (2) 튜토리얼 1

이전 포스트(NodeMCU와 Blynk를 사용한 IoT - (1) 환경설정)에서 환경설정이 끝났으므로 이제 실제로 blnyk를 사용해 원격제어를 해 보겠다.



 Blynk 앱을 실행시키고 로그인을 하면 위와 같은 화면이 나온다. 여기서 'Create New Project'를 클릭한다.



 새로 만들 프로젝트 설정 화면이 나온다.



Project Name 부분에 프로젝트의 이름(여기서는 'Tutorial 1')을 넣고 'Arduino Uno'를 클릭하면 위와 같이 어떤 하드웨어를 사용할 지 선택할 수 있다. 여기서는 NodeMCU를 사용할 것이므로 아래쪽으로 내려가 'NodeMCU'를 선택해 준다.


이제  설정이 끝났으므로 'Create Project' 버튼을 눌러주면 된다. 단 위쪽의 AUTH TOKEN 부분의 파란 글자(여기서는 중간 부분을 일부러 흐리게 한 줄)는 잘 기억하고 있어야 한다. 나중에 NodeMCU에 프로그램을 넣어줄 때 AUTH TOKEN 값을 넣어줘야만 서로 통신이 가능하다.


이제부터 프로젝트 화면을 디자인 할 수 있다.



 화면의 아무 부분이나 터치하면 오른쪽에 위와 같이 위젯을 선택할 수 있는 화면이 열린다.


가장 위에 있는 BUTTON을 선택하면 화면에 버튼 위젯이 생성된다.


생성된 버튼 위젯을 누르면 위와 같이 위젯 설정 화면이 나오게 된다.


 'Button' 부분에 버튼의 이름(여기서는 'Orange')를 넣어주고  'PIN' 부분을 누르면 그 버튼에 연결될 출력핀을 선택할 수 있다.


첫번째 버튼은 Digital - D1 핀을 선택 해 준다.


마지막으로 MODE 부분에서 PUSH와 SWITCH 를 선택할 수 있는데 PUSH인 경우는 누르고 있어야만 on이 되는 타입이고, SWITCH인 경우는 토글 스위치로 동작한다. 여기서는 SWITCH 타입을 사용한다. 설정이 끝났으면 우측 상단의 'OK' 버튼을 눌러준다.


이제 첫번째 버튼 위젯 설정이 끝난 것이다. 버튼 위젯에 방금 넣어준 이름과 핀 번호가 표시된 걸 볼 수 있다.


동일한 방법으로 두개의 버튼을 더 만들어 준다. 각각 이름은 'Blue', 'Yellow'로 하고 핀은 D2, D3을 선택해 주면 된다. 


다시 화면의 빈 부분을 눌러 새 위젯 선택 화면으로 오면 이번엔 'Large Slider'를 선택한다.


Slider 설정화면에서 이름은 'Red Brightness'로 하고 핀은 D4를 선택 해 준다. 핀 번호 옆의 0~255 값은 슬라이더를 이동시켰을 때 변화하는 최소값, 최대값이다.


이제 프로젝트 화면 디자인이 끝났다. 화면 우측 상단의 삼각형 버튼을 누르면 디자인 한 프로젝트 화면을 실행하게 된다.


프로젝트를 실행시켰지만 아직 이 프로젝트에 연결된 하드웨어가 없기 때문에 'NodeMCU is offline'이라는 메시지가 나오게 된다. 

이제 프로젝트에 연동되는 하드웨어를 만들어 준다. 이번에 사용할 회로는 다음과 같다.

4개의 LED를 NodeMCU의 D1, D2, D3, D4에 각각 연결해 주면 된다. 여기서는 D1/2/3에 연결된 LED는 on/off로 제어하고 D4에 연결된 LED는 PWM을 사용해 밝기를 제어해 보도록 한다.

여기에 사용할 코드는 다음과 같다.

#define BLYNK_PRINT Serial   
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
 

char auth[] = ".......";   // AUTH TOKEN
void setup()
{
  Serial.begin(115200);
  Blynk.begin(auth, "....", "....");   // SSID & PASSWORD
}

void loop()
{
  Blynk.run();

}


아두이노 IDE에서 위와 같이 프로그램 코드를 넣어주면 된다. 소스코드에서 빨간색 '....' 부분은 각각 첫번째부터 Blynk 앱에서 프로젝트를 만들때 자동으로 생성된 AUTH TOKEN 값, 두번째는 자신의 공유기 SSID, 세번째는 공유기 암호로 바꿔 프로그램을 NodeMCU에 업로드 해 주면 된다.

프로그램 업로드가 끝나고 NodeMCU에서 실행되면 이제 다시 스마트폰의 앱으로 돌아와 버튼을 눌러보거나 슬라이더를 움직이면서 보드에 연결된 LED의 동작을 확인해 보면 된다.

NodeMCU의 경우 각 핀에 대해 별도의 설정이나 제어 코드가 하나도 없는데도 Blynk를 사용하는 것 만으로 쉽게 원격에서 제어가 가능해진다.

여기서는 단순히 LED를 연결했지만 LED 대신 릴레이를 연결해 주면 곧바로 가전제품을 원격제어 하는 식의 스마트 홈을 구축할 수 있게 된다. 아래의 경우 SSR(Solid State Relay)를 사용해 전원 스위치 역할을 하게 한 것이다.



(단 220V 교류를 제어하는건 최소한의 전기적인 기본 지식이 필요하다. 기본적인 지식도 없이 시도하다 보면 감전 및 화재등의 사고가 발생할 수 있으니 주의하기 바란다.)