코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
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 홈페이지에 설명되어 있습니다.
1. blynk 앱의 컨트롤러의 상태 값을 blynk server로 전송.
2. blynk 서버에서 아두이노로 앱 컨트롤러의data를 전송.
1. 아두이노에서 blynk server로 센서값을 전송.
2. blynk server에서 아두이노에게서 받은 센서 값을 어플리케이션에 맵핑.
위 그림에서 알 수 있다시피 아두이노와 blynk 서버와 통신하기 위해서는 ethernet shield이나 wifi shield를 이용 할 수 있다고 나와있습니다.
sheild가 없으셔도 좌절하실 필요는 없습니다.
이번 튜토리얼에서는 PC가 sheild의 역할을 대신하여, blynk 서버가 PC로 데이터를 전송하고, PC가 아두이노에게 데이터를 전송해 아두이노를 원격으로 제어하는 방법을 살펴보겠습니다.
단 PC가 shield의 역할을 대신하기 때문에 PC와 아두이노가 연결되어 있어야 하고, PC가 인터넷에 연결되어 있어야 합니다. 또한 모바일도 인터넷에 연결 되어 었어야 하겠죠?
자 그럼 차근 차근 시작해볼까요?
blynk를 사용하기 위해서는 우선 어플리케이션을 설치해야 합니다. 링크를 통해 다운받으세요.
- IOS 사용자
다음과 같은 화면에서 creat account 탭에서 등록 후 로그인 하면 됩니다.
blynk를 사용하기 위해서는 라이브러를 아두이노에 import 시켜야합니다.
다음 링크를 통해 blynk 라이브러리를 다운로드 받으세요.
라이브러리를 추가하는 방법은 kocoafab 튜토리얼을 참고해주세요.
자 이제 어플리케이션에서 아두이노를 제어 할 컨트롤러를 구성할 차례입니다.
저는 LED 3개를 제어하기 위해 button 3개를 만들도록 하겠습니다.
create new project를 클릭하여 새로운 project를 생성합니다.
create new project를 클릭하면 위와 같이 프로젝트 설정 페이지가 나옵니다.
프로젝트의 이름과 micro controller의 종류를 설정합니다.
Auth Token은 나중에 사용해야 하니 E-mail을 선택해 메일로 token을 보내놓습니다.
프로젝트가 생성되면 빈 보드의 모습입니다.
이제 우측 상단의 + 아이콘을 선택해서, 컨트롤러를 생성해봅시다.
생성 할 수 있는 컨트롤러의 종류입니다.
저는 버튼이 3개가 필요하기 때문에 버튼을 만들어 보겠습니다.
필요한 컨트롤러를 선택하면 자동으로 프로젝트 보드에 컨트롤러가 생성됩니다.
생성된 컨트롤러를 클릭해서 컨트롤러의 속성을 지정해줘야 합니다.
컨트롤러의 이름을 정하고, PIN 버튼을 눌러 제어할 핀을 설정해줍니다.
컨트롤러를 드래그 하면, 위치를 변경 할 수 있습니다.
자 이제 건물의 조명을 원격으로 제어할 컨트롤러 대시보드가 완성되었습니다.
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();
}
아두이노와 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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!