중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

blynk 사용하기

2015-06-02 09:05:17

개요

 

"홈 IoT 전쟁 막올랐다...구글, 애플, 삼성 플랫폼 경쟁" 

"SKT, 홈 IoT, 스마트홈 공개..시장 1위 노린다" 

"LGU+ 홈 IoT 6월말 사용화..첫 공개" 

 

홈 IoT와 관련된 기사들의 헤드라인입니다. 

헤드라인에서 알 수 있다시피 홈 IoT 시장에 대한 관심이 높아지고 있습니다. 

홈 IoT란 사물 간의 통신을 이용해 원거리에서 가전기기를 제어하거나, 자동화를 시킬 수 있는데요. 

이번 튜토리얼에서는 blynk라는 앱을 이용해, 블루투스 같은 통신 모듈 없이 원격으로 led를 제어해보도록 하겠습니다. 

 

그럼 blynk라는 앱을 알아볼까요?

 

blynk는 kickstarter에서 크라우드 펀딩을 진행했던 어플리케이션입니다. 

2014년 5월 크라우드 펀딩을 시작하여, 5500만원의 펀딩을 확보하였고, 올해 1월 서비스를 시작하였습니다.

 

 

blynk의 장점은 사용자가 어플리케이션을 통해 쉽게 컨트롤러를 구성하여, 아두이노를 원격으로 제어 할 수 있다는 점입니다. 

 

 

 

blynk와 아두이노가 통신하는 원리를 알아볼까요?

자세한 내용은 blynk 홈페이지에 설명되어 있습니다.

 

blynk에서 아두이노 

   1. blynk 앱의 컨트롤러의 상태 값을 blynk server로 전송. 

   2. blynk 서버에서 아두이노로 앱 컨트롤러의data를 전송. 

 

 

아두이노에서 blynk 

   1. 아두이노에서 blynk server로 센서값을 전송. 

   2. blynk server에서 아두이노에게서 받은 센서 값을 어플리케이션에 맵핑. 

 

 

 

위 그림에서 알 수 있다시피 아두이노와 blynk 서버와 통신하기 위해서는 ethernet shield이나 wifi shield를 이용 할 수 있다고 나와있습니다. 

sheild가 없으셔도 좌절하실 필요는 없습니다. 

이번 튜토리얼에서는 PC가 sheild의 역할을 대신하여, blynk 서버가 PC로 데이터를 전송하고, PC가 아두이노에게 데이터를 전송해 아두이노를 원격으로 제어하는 방법을 살펴보겠습니다. 

단 PC가 shield의 역할을 대신하기 때문에 PC와 아두이노가 연결되어 있어야 하고, PC가 인터넷에 연결되어 있어야 합니다. 또한 모바일도 인터넷에 연결 되어 었어야 하겠죠?

자 그럼 차근 차근 시작해볼까요?  

 

 

 

1. 어플리케이션 설치 및 회원가입, 로그인

 

blynk를 사용하기 위해서는 우선 어플리케이션을 설치해야 합니다. 링크를 통해 다운받으세요. 

 - andriod OS 사용자

 - IOS 사용자

 

다음과 같은 화면에서 creat account 탭에서 등록 후 로그인 하면 됩니다. 

 

 

 

2. blynk 라이브러리 설치

 

blynk를 사용하기 위해서는 라이브러를 아두이노에 import 시켜야합니다.

다음 링크를 통해 blynk 라이브러리를 다운로드 받으세요. 

 - blynk library for arduino

 

라이브러리를 추가하는 방법은 kocoafab 튜토리얼을 참고해주세요. 

 - Arduino 라이브러리 추가하기

 

 

 

3. 컨트롤러 구성하기

 

자 이제 어플리케이션에서 아두이노를 제어 할 컨트롤러를 구성할 차례입니다. 

저는 LED 3개를 제어하기 위해 button 3개를 만들도록 하겠습니다. 

 

create new project를 클릭하여 새로운 project를 생성합니다. 

 

 

 

 

create new project를 클릭하면 위와 같이 프로젝트 설정 페이지가 나옵니다. 

프로젝트의 이름과 micro controller의 종류를 설정합니다. 

Auth Token은 나중에 사용해야 하니 E-mail을 선택해 메일로 token을 보내놓습니다. 

 

 

 

 

프로젝트가 생성되면 빈 보드의 모습입니다. 

이제 우측 상단의 + 아이콘을 선택해서, 컨트롤러를 생성해봅시다. 

 

 

 

 

 

생성 할 수 있는 컨트롤러의 종류입니다. 

저는 버튼이 3개가 필요하기 때문에 버튼을 만들어 보겠습니다. 

필요한 컨트롤러를 선택하면 자동으로 프로젝트 보드에 컨트롤러가 생성됩니다.

 

 

 

 

 

생성된 컨트롤러를 클릭해서 컨트롤러의 속성을 지정해줘야 합니다. 

컨트롤러의 이름을 정하고, PIN 버튼을 눌러 제어할 핀을 설정해줍니다. 

 

 

 

 

 

컨트롤러를 드래그 하면, 위치를 변경 할 수 있습니다. 

자 이제 건물의 조명을 원격으로 제어할 컨트롤러 대시보드가 완성되었습니다. 

 

 

 

 

4. 아두이노 소프트웨어 코딩 및 하드웨어 메이킹

 

부품 목록

No 부품명 수량 상세 설명
1 arduino 1 orange board
2 저항 3 330 옴
3 led 3 blue color

 

부품명 아두이노 led 저항
부품 사진

 

 

 

하드웨어 메이킹

 

브레드 보드 레이아웃 

 

회로도

 

 

 

소프트웨어 코딩 

 

blynk library의 USB Serial 예제를 사용합니다. 

올바른 위치에 라이브러리를 삽입했다면 아두이노 IDE에서 [파일] - [예제] - [blynk] - [BoardsAndShields] - [Arduino_Serial_USB]을 실행하면 됩니다. 

프로젝트를 생성 했을 때 메일로 보내놓은 auth token을 소스 코드의 your token 부분에 삽입합니다. 

그리고 아두이노에 업로드 합니다.

 

 

/**************************************************************
 * Blynk is a platform with iOS and Android apps to control
 * Arduino, Raspberry Pi and the likes over the Internet.
 * You can easily build graphic interfaces for all your
 * projects by simply dragging and dropping widgets.
 *
 *   Downloads, docs, tutorials: http://www.blynk.cc
 *   Blynk community:            http://community.blynk.cc
 *   Social groups:              http://www.fb.com/blynkapp
 *                               http://twitter.com/blynk_app
 *
 * Blynk library is licensed under MIT license
 * This example code is in public domain.
 *
 **************************************************************
 * This example shows how to use ordinary Arduino Serial
 * to connect your project to Blynk.
 * Feel free to apply it to any other example. It's simple!
 *
 * 1. Optional, but recommended.
 *    Connect additional USB-serial adapter to see the prints.
 *
 * 2. Edit auth token and upload this sketch.
 *
 * 3. Run the script (script located in "scripts" folder of library root,
 *    e.g. 'blynk-library/scripts') for redirecting traffic to server:
 *
 *      for Windows:         scripts/blynk-ser.bat
 *      for Linux and OSX:   ./scripts/blynk-ser.sh (may need to run with sudo)
 *
 *    You can specify port, baud rate, and server endpoint like this:
 *      ./blynk-ser.sh -c -b -s -p 
 *
 *    For instance :
 *      ./blynk-ser.sh -c /dev/ttyACM0 -b 9600 -s cloud.blynk.cc -p 8442
 *
 *    Run blynk-ser.sh -h for more information
 *
 *    Be sure to select the right serial port (there may be multiple).
 *
 *    Attention!
 *        Arduino IDE may complain with "programmer is not responding".
 *        You need to terminate script before uploading new sketch.
 *
 * 4. Start blynking! :)
 *
 **************************************************************/

// You could use a spare Hardware Serial on boards that have it (like Mega)

#include <SoftwareSerial.h>
SoftwareSerial SwSerial(10, 11);
#define BLYNK_PRINT SwSerial
#include <BlynkSimpleSerial.h>

// 프로젝트를 생성할 때 메일로 보냈던 토근을 your token 자리에 삽입합니다. 

// 만약 메일로 보내지 않았다면, 프로젝트 보드의 우측 상단, 너트 버튼을 클릭하면 token을 볼 수 있습니다.
char auth[] = "your token";

void setup()
{
  SwSerial.begin(9600);
  Blynk.begin(auth);
}

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

 

 

 

5. 아두이노와 blynk 연결 

 

아두이노와 blynk를 연결하기 위해서 cmd를 이용해야 합니다. 

이번 튜토리얼의 주목적은 CLI 사용이 아니기 때문에 커멘드 명령어에 대한 설명은 생략하겠습니다. 

라이브러리를 정상적으로 임포트 시켰다면, 라이브러의가 있는 디렉토리 위치가 같기 때문에 copy and paste 하시면 됩니다. 

 

 

윈도우키와 R을 눌른 후 검색창에 cmd를 입력 후 확인을 클릭합니다. 

 

 

 

blynk 라이브러리가 위치하고 있는 디렉토리로 이동해야 합니다. 

우선 최상위 디렉토리로 이동하기 위해 cd \를 입력합니다. 

그 다음 blynk 라이브러리의 scripts 폴더로 이동하기 위해 cd Program Files/Arduino/libraries/blynk-library-0.2.1/scripts를 입력합니다.

디렉토리가 다른 분은 해당 디렉토리를 입력하면 됩니다. 

 

 

 

커멘드 입령 창에 blynk-ser.bat -c COM26 -b 9600 -s cloud.blynk.cc -p 8442를 입력합니다. 

여기서 COM26부분은 아두이노가 연결된 포트에 맞게 바꿔주셔야 합니다. 

즉 포트가 COM4라면 blynk-ser.bat -c COM4 -b 9600 -s cloud.blynk.cc -p 8442를 입력해주셔야 합니다. 

입력 후 enter를 누르면, COM00 not found, or may be busy Select serial port [~1] : 라는 문자열과 함께 입력을 기다리는데 여기서 그냥 enter를 한 번 더 누르시면 됩니다. 

위 사진과 동일하다면 연결 성공입니다. 

 

 

 

blynk 앱을 실행 시키고 프로젝트 보드에서 우측 상단에 재생 아이콘을 누르면, 아두이노와 연결되어, 제어가 가능해집니다.

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

blynk, 아두이노, 오렌지보드

김문권 2015-08-24 02:24:10

ㅎㅎ 좋은 자료 감사합니다.

장정일 2015-10-08 00:08:27

직접 해보니 좋네요. 그렇치 않아도, 며칠전 이 앱을 발견했는데, 혹시나 했는데, 연결강좌가 있어서 재미있게 실험했습니다. 이쪽 연결해서 좀더 오렌지보드에서 응요할수 있는게 많았으면 합니다. 너무 재미있네요. 특히 아주 간단하게 핸드폰에서 오렌지보드를 제어할수 있다는것이 매력적입니다.

김연주 2015-12-23 17:16:50

youtube 동영상이 삭제됐네요.아쉽아쉽 ㅠㅠ

csm 2016-05-10 09:47:38

안그래도 blynk앱이 궁금했었는데, 참고하면 좋을 것 같네요. 감사합니다.

김민상 2017-01-20 19:15:53

마지막에 10060에러가 계속 뜨는데 왜 그런건가요?

박병준 2017-07-13 23:47:53

매번 쓸 때 마다 위의 수정 내용을 해줘야 하나요?

아두이노로 다른 것을 하고 다시 오면 또 안되고, 안 돼서 위의 내용을 한번 더 수정하면 또 되네요.

kocoafab 2019-02-08 16:56:00

연결이 끊어지셧으면 번거롭지만 다시 연결해야합니다. 위 연결과정은 아두이노 셋팅이 아니라 아두이노가 연결된 컴퓨터와 블링크 서버와 연결하는 작업이기 떄문에 연결이 끊어지면 다시 같은 작업을 하셔야 합니다.

트라라라 2019-06-09 21:01:21

PC를 대신해서 라즈베리파이를 쓰려면 어떻게 해야하나요?