2016년 11월 10일 목요일

NodeMCU(ESP8266) / Blynk 기반 IoT 기기 개발 사례 소개

이 글은 Blynk와 ESP8266 NodeMCU를 이용해, IoT 기기를 개발하는 손쉬운 방법을 설명한다. ESP8266 NodeMCU는 ESP 여러 버전 중 하나이며, IO 핀이 포함되어 있어, IoT기기를 개발하기 매우 편리하다. AliExpress에서 3~4달러에 구입할 수 있다.
Blynk에 대해서는 앞의 글을 읽어 보길 바란다. ESP8266 NodeMCU 핀은 다음과 같다.
이 글은 다음 링크를 참고하였다.
이 예제에서는 다음과 같은 재료가 필요하다. 
1. Node MCU ESP8266 12E
2. 스마트폰
3. LED, 330 옴 저항
4. 브래드보드
5. 아두이노 IDE

1. 아두이노 NodeMCU(ESP8266) 보드 및 Blynk, Thingspeak 라이브러리 설치
설치된 아두이노 프로그램을 실행한다.

NodeMCU ESP8266 라이브러리리를 설치한다. 다음과 같이 파일>환경설정 메뉴에서 '추가적 보드 매니저'에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 을 입력후 확인한다.

툴>보드>보드 메니저 메뉴를 선택후, 다음 창에서 NodeMCU를 검색한다. 그리고 설치한다.

정상적으로 설치되면, NodeMCU 1.0 보드를 선택한다.

스케치>라이브러리 포함하기>라이브러리 관리 메뉴를 선택한다. 다음과 같이 Thingspeak 검색한 후 설치한다.

스케치>라이브러리 포함하기>라이브러리 관리 메뉴를 선택한다. 다음과 같이 Blynk 검색한 후 설치한다.

스마트폰에서 앱스토어를 실행한다. Blynk 앱을 검색해 설치한다. 설치한 후 Blynk 앱을 실행하고 가입한다.


2. Blynk 앱 프로젝트 개발
다음과 같이 앱을 실행해, 프로젝트를 개발한다. 

3. 회로 연결
회로를 연결한다. 

4. ESP 코드 업로드
아두이노 IDE의 파일 > 예제 > Blynk-Boards_WiFi > Esp8266Standalone 예제를 선택한다. 

보드는 NodeMCU 1.0을 선택한다. 포트 선택을 한다. 만약, 연결된 포트가 안보이면, NodeMCU 통신 포트 드라이버가 제대로 설치되지 않은 것이다. 아래 링크에서 드라이버 설치 프로그램 다운받아 설치한다.
소스코드에서 통신 속도는 115200으로 수정하고, 네트워크 ID와 PASSWORD를 코드에 입력한다. 아울러, Blynk 프로젝트의 토큰을 입력한다.

그리고 소스를 업로드한다.

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "...";    // Blynk 토큰 입력

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "...";    // wifi SSID 입력
char pass[] = "";     // wifi SSID 암호 입력

void setup()
{
  Serial.begin(115200);     // 통신속도 115200 수정
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}


5. 원격 LED 제어
앱을 원격으로 LED를 제어해 본다.

10k옴과 조도센서를 이용해 아날로그 값을 측정해 보자. 다음과 같이 조도센서의 신호출력핀은 NodeMCU의 A0와 연결한다.

그래프 위젯을 하나 삽입하고, 센서 데이터는 A0로 부터 받도록 설정하면, 다음과 같이, 정상적으로 조도 센서값을 받고 있는 것을 확인할 수 있다. 


이로써, 스마트폰이 네트워크와 연결된 곳이라면, NodeMCU를 이용해, 원격으로 센서 신호를 받고, 스위치나 모터와 같은 액추에이터를 끄고 컬 수 있음을 알 수 있다. 

이외에 제공되는 위젯들을 잘 활용하면, 매우 다양한 제어를 원격으로 할 수 있음을 알 수 있다. 상세한 Blynk 사용 방법은 다음 링크와 아두이노 통합개발환경의 예제 메뉴에서 Blynk 예제 파일들을 참고하길 바란다.
hackster.io/blynk 예제

댓글 없음:

댓글 쓰기