Blynk 시작하기: 간단한 DIY IoT 장치

Blynk 시작하기: 간단한 DIY IoT 장치

Blynk [Broken URL Removed]는 원격 제어 및 장치에서 센서 데이터를 최대한 빠르고 쉽게 읽을 수 있도록 설계된 사물 인터넷(IoT) 서비스입니다. 이 기사에서는 Blynk가 정확히 무엇인지, 어떻게 작동하는지 설명하고 NodeMCU 및 Raspberry Pi 개발 보드를 사용하여 서비스를 서로 다른 용도로 사용하는 두 가지 짧은 예제 프로젝트를 제공합니다.





마이크로컨트롤러를 사용하여 스마트 개체 개발을 시작하는 것이 그 어느 때보다 쉬워졌으며 최근 몇 년 동안 IoT 장치가 빠르게 인기를 얻었습니다. Arduino 또는 Raspberry Pi와 같은 개발 보드를 사용하여 가정의 전원 소켓에서 동작으로 작동되는 크리스마스 장식에 이르기까지 모든 것을 제어할 수 있습니다.





초심자에게 문제가 될 수 있는 영역 중 하나는 코딩과 네트워킹입니다. Blynk는 광범위한 코딩의 필요성을 없애고 스마트폰 어디에서나 장치에 쉽게 액세스할 수 있도록 하는 것을 목표로 합니다. 취미 활동가와 개발자는 무료로 사용할 수 있지만 상업적으로 유료로 사용할 수도 있습니다. 회사는 Blynk를 사용하여 자체 앱과 시스템을 만든 다음 자체 브랜드로 판매할 수 있습니다.





Blynk는 서비스를 작동시키기 위해 자체 서버와 라이브러리를 사용하지만, Blynk 앱이 가장 큰 장점인 것 같습니다.

Blynk 앱 입력

Blynk 앱은 Android 및 iOS에서 무료로 사용할 수 있습니다. IoT 설정을 위한 사용자 지정 컨트롤을 구축하기 위해 사용하기 쉬운 끌어서 놓기 시스템을 특징으로 하는 프로젝트의 시작점입니다. 워크플로는 빠릅니다. 새 프로젝트를 시작할 때 광범위한 목록에서 개발 보드와 연결 방법을 선택하라는 메시지가 표시됩니다. 그런 다음 앱은 Blynk 서버를 통해 장치에 연결하기 위해 이메일을 통해 인증 토큰을 보냅니다.



page_fault_in_nonpaged_area 윈도우 10

제어 요소는 위젯 : 버튼, 슬라이더, 조이스틱, 그래프 및 텍스트 피드백을 포함한 다양한 유형의 입력 방법 및 출력 디스플레이. LED, LCD 디스플레이 및 라이브 스트리밍 비디오를 위한 스타일화된 컨트롤이 있는 구성 요소별 위젯도 있습니다. Twitter에 자동 게시 및 사용자 지정 알림과 같은 기능을 추가하는 위젯도 주목할 만합니다.

앱은 무료이지만 모든 '에너지' 비용을 제공하여 한 번에 사용할 수 있는 위젯의 수를 제한합니다. 이 앱은 플레이할 수 있는 2,000의 잔액을 제공하며 필요한 경우 추가 구매 옵션을 제공합니다.





제공된 시작 균형이 여기에 나열된 예제 프로젝트에 충분하다는 것을 알았습니다. 하지만 설정이 더 복잡하면 주스가 매우 빨리 고갈될 수도 있습니다.

각 위젯에는 이름과 색상을 변경할 수 있는 편집 메뉴가 있습니다. 그런 다음 보낼 값의 범위와 함께 영향을 줄 핀(보드의 핀이든 Blynk의 가상 핀 중 하나이든)을 선택합니다. 그래프 및 텍스트 상자와 같은 출력 디스플레이의 경우 업데이트 빈도를 선택할 수도 있어 잠재적으로 귀중한 대역폭을 절약할 수 있습니다.





Blynk는 또한 앱과 하드웨어 간의 사용자 구성 연결인 '가상' 핀에 명령을 할당하는 기능을 제공합니다. 따라서 앱의 단일 버튼을 사용하여 기기에서 다양한 이벤트를 트리거할 수 있습니다. 이 문서의 뒷부분에서 이를 사용하는 방법을 다룰 것입니다.

앱은 다른 사람과 프로젝트를 공유할 수 있는 옵션을 제공합니다. 이메일을 통해 보내거나 직접 스캔할 수 있는 QR 코드가 생성되며 Blynk 앱이 있는 사람이라면 누구나 사용할 수 있습니다. 공유하는 사람은 프로젝트를 변경할 수 없으므로 빠르고 편리한 방법으로 장치 제어를 공유할 수 있습니다. 그러나 다른 사용자가 하드웨어에 액세스할 수 있으려면 앱의 프로젝트가 실행되고 있어야 합니다.

하드웨어에 대한 액세스를 허용하지 않고 프로젝트를 공유할 수도 있습니다. 이는 사람들에게 조명을 켜고 끄지 않고도 앱 사용 방법을 가르치는 좋은 방법입니다!

저는 앱을 매우 빠르고 직관적으로 만드는 것을 발견했습니다. 일단 생성되면 오른쪽 상단 모서리에 있는 재생 기호를 눌러 즉시 사용할 수 있습니다. 나중에 변경해야 하는 경우 동일한 버튼을 눌러 편집 모드로 돌아갈 수 있습니다.

블링크 서버

장치를 제어하는 ​​앱을 만든 후에는 두 가지 방법으로 통신할 수 있습니다.

Blynk 클라우드 서버는 빠르고 반응이 빠르며 무료입니다. Wi-Fi 장치에 연결하는 것은 생성된 인증 코드를 Arduino 스케치에 복사하고 Wi-Fi 세부 정보를 제공하는 것만큼 쉽습니다. Raspberry Pi의 경우 Blynk는 동일한 효과를 위해 인증 코드로 실행할 수 있는 테스트 스크립트를 제공합니다. 이 기사의 뒷부분에서 우리는 Blynk 라이브러리를 사용하여 서비스에 연결하는 자체 스크립트를 만들 것입니다.

두 번째 옵션은 자신의 호스트 블링크 서버. Blynk는 컴퓨터 또는 Raspberry Pi에서 실행할 수 있는 오픈 소스 Netty 기반 Java 서버를 제공합니다. 이것은 기능 및 보안 측면에서 일부 사용자에게 다양한 이점을 제공하지만 여기의 예에서는 제공된 Blynk 클라우드 서버 사용에 집중할 것입니다.

블링크 라이브러리

Blynk의 세 번째이자 마지막 요소는 블링크 라이브러리 . 이 라이브러리는 앱과 하드웨어 간의 통신을 허용하기 위해 방대한 개발 보드 목록과 함께 작동합니다.

가장 간단하게 필요한 것은 라이브러리를 설치하고 주석이 잘 달린 예제 스케치 중 하나를 로드하는 것입니다.

블링크: 초기 설정

스마트폰에 Blynk 앱을 설치하고 계정을 만드세요. 인증 토큰이 전송될 이메일 주소를 실제로 액세스할 수 있는지 확인하십시오. 이제 사용할 보드와 연결 방법을 선택하여 프로젝트를 만듭니다. 여기에 있는 두 가지 예는 모두 Wi-Fi를 통해 연결되지만 Bluetooth, 이더넷 및 GSM을 통한 연결도 가능합니다.

프로젝트를 만듭니다. 그러면 자동으로 인증 토큰이 전송됩니다. 받지 못한 경우 프로젝트 설정 아이콘(작은 너트)을 선택하고 장치를 선택한 다음 '이메일'을 선택하여 다시 보낼 수 있습니다.

그런 다음 Blynk 웹 사이트에서 Blynk 라이브러리를 설치합니다. Arduino의 경우 파일을 복사하여 라이브러리를 설치합니다. 아두이노 > 라이브러리 폴더. Arduino를 처음 사용하는 경우 다음을 참조하십시오. 시작하기 위한 가이드 .

Raspberry Pi의 경우 먼저 Node.js가 설치되어 있는지 확인해야 합니다. 필요한 경우 이 기사에 설치된 Node.js에 대한 가이드가 있습니다.

먼저 Pi가 최신 버전이고 빌드 필수 패키지가 설치되어 있는지 확인하십시오.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

그런 다음 설치 노드 패키지 관리자 , NS 켜기 끄기 도서관, 그리고 깜박 거리다 터미널 창에 이것을 입력하여 라이브러리를 엽니다.

sudo npm install -g npm
sudo npm install -g onoff
sudo npm install -g blynk-library

Blynk 테스트 스크립트를 실행하여 모든 것이 제대로 작동했는지 확인할 수 있습니다.

blynk.js [YourAuthorizationTokenHere]

모두 작동하는 경우 다음과 같아야 합니다.

오류가 발생하면 NPM, OnOff 및 Blynk 라이브러리를 다시 설치하기 전에 Pi가 최신 버전이고 최신 버전의 Node.js가 설치되어 있는지 확인하십시오.

NodeMCU로 빠른 설정

이 첫 번째 예는 Blynk를 사용하여 간단한 시스템을 설정하는 것이 얼마나 빠른지 보여줍니다. 코딩이 필요하지 않으며 일단 설정하면 완전히 독립형입니다. 보드가 Wi-Fi 연결에 액세스할 수 있는 한 스마트폰을 사용하여 어디서나 액세스할 수 있습니다.

시작하려면 브레드보드에 간단한 회로를 설정합니다. 핀 연결 D0 LED의 양극 다리에 연결하고 220 Ohm 저항을 통해 GND 핀으로 다시 연결합니다.

Blynk 앱에서 NodeMCU 프로젝트를 엽니다. 오른쪽에서 단추 메뉴에서 위젯. 프로젝트에서 버튼을 선택하여 속성 메뉴를 엽니다. 여기에서 이름을 지정하고 NodeMCU 보드에서 영향을 줄 핀을 선택할 수 있습니다. 선택하다 핀 D0 출력 목록에서 스위치 모드를 선택하여 순간적인 푸시 스위치가 아닌 켜기 및 끄기 스위치로 만듭니다.

뒤로(모든 변경 사항이 자동으로 저장됨)를 누른 다음 오른쪽 상단 모서리에 있는 재생 아이콘을 눌러 앱을 시작합니다. 언제든지 동일한 버튼을 눌러 프로젝트 편집으로 돌아갈 수 있습니다.

다음으로 Arduino IDE를 열고 도구 메뉴에서 NodeMCU 보드와 포트를 선택합니다. 이 메뉴에 보드가 표시되지 않으면 ESP8266 라이브러리를 설치해야 할 수도 있습니다(이 가이드가 도움이 될 것입니다).

이제 라이브러리에 제공된 ESP8266 독립 실행형 스크립트 Blynk를 엽니다. 파일 > 예제 > Blynk > Boards_WiFi > ESP8266_Standalone . 인증 토큰의 자리 표시자를 이메일을 통해 받은 것으로 바꾸고 Wi-Fi 세부 정보를 입력합니다.

char auth[] = 'YourAuthToken';
char ssid[] = 'YourNetworkName';
char pass[] = 'YourPassword';

스케치를 새 이름으로 저장하고 보드에 업로드합니다. 이제 앱에서 버튼을 누르면 LED가 켜지고 꺼집니다. 작동하지 않으면 앱에서 재생 아이콘을 눌렀는지 확인하십시오.

이와 같은 간단한 경우 Blynk는 설정이 매우 빠릅니다.

이것은 Blynk 서버를 사용하기 때문에 보드가 홈 Wi-Fi 연결에 액세스할 수 있고 스마트폰에 모바일 데이터 액세스가 있는 한 어디에서나 보드를 제어할 수 있다는 점도 주목할 가치가 있습니다.

라즈베리 파이에서 블링크

Blynk 테스트 스크립트를 사용하여 Raspberry Pi에서 위의 예와 정확히 동일한 방식으로 Blynk를 사용할 수 있지만 Blynk의 가상 핀이 제공하는 몇 가지 더 깊은 기능이 있으므로 지금 살펴보겠습니다.

Blynk는 Node.js를 사용하여 작동하므로 오늘 작성할 코드는 Javascript로 작성됩니다. 언어를 처음 접하는 경우 시작하기에 좋은 입문서가 될 것입니다.

우리는 Blynk 라이브러리를 사용하여 도어 센서가 열렸는지 닫혔는지 보고하고 문이 열리면 이메일과 푸시 알림을 휴대폰으로 보내는 앱을 만들 것입니다.

필요할 것이예요:

  • 도어 자석 스위치(리드 스위치라고도 함)
  • 1x 1k? 저항기
  • 1x10k? 저항기
  • 1x220? 저항기
  • 1x LED
  • 브레드보드 및 연결 와이어

다음과 같이 브레드보드를 ​​설정합니다.

sim 프로비저닝되지 않음 mm #2

Blynk의 라이브러리는 Pi 핀의 GPIO 번호를 사용하므로 이 프로젝트 전체에서 사용할 것입니다. 5V 및 GND 핀을 브레드보드의 전원 레일에 연결합니다. Raspberry Pi의 GPIO 핀 22를 LED 양극에 연결하고 음극을 220? 저항기. GPIO 핀 17을 1k? 저항을 연결하고 10? 저항을 반대쪽에 연결하고 전원 레일의 5V 쪽에 연결합니다. 마지막으로 리드 스위치를 한쪽의 전원 레일의 GND 쪽에 연결하고 1k? 그리고 10만? 저항은 다른 쪽에서 만납니다. 이 풀업 저항 설정으로 인해 스위치가 열릴 때 핀 17의 전압이 높게 읽힙니다.

Blynk 앱에서 새 프로젝트를 만들고 Raspberry Pi 보드를 선택합니다. 위젯 메뉴에서 레이블이 지정된 값, 이메일 및 알림 위젯을 선택합니다.

레이블이 지정된 값을 선택하고 이름을 지정한 다음 가상 핀 V0 입력 핀이기 때문입니다. 정보가 표시되는 방식을 변경할 수도 있습니다. 이 경우 레이블 탭에서 /pin/ 앞에 'door is '를 추가합니다. 읽기 빈도 값을 기본 설정으로 둘 수 있지만 다른 속도로 앱에 데이터를 보내도록 변경할 수 있습니다.

나중에 코드에 추가할 것이기 때문에 실제로 이메일 위젯에 이메일 주소를 입력할 필요는 없지만 위젯이 작동하려면 해당 위젯이 있어야 합니다.

앱이 마음에 들면 오른쪽 상단 모서리에 있는 재생 버튼을 누릅니다.

이제 블링크도어.js . 전체 코드는 완전히 주석 처리되어 제공됩니다. 여기 .

sudo nano blynkdoor.js

Blynk 라이브러리를 가져와서 인증 키를 추가하고 스크립트에서 사용할 Blynk 인스턴스를 만드는 것으로 시작해야 합니다.

var blynklib = require('/usr/local/lib/node_modules/blynk-library');
var AUTH ='PasteAuthorizationCodeHere'
var blynk = new blynklib.Blynk(AUTH);

또한 OnOff 라이브러리를 가져오고 리드 스위치와 LED를 설정하는 변수를 선언해야 합니다. Blynk 앱에서 설정한 가상 핀에 대한 변수도 생성합니다.

var Gpio = require('onoff').Gpio,
reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closed
led = new Gpio(22, 'out');
var virtualPin = 0;

이제 우리는 손목 시계 OnOff 라이브러리의 기능을 사용하여 리드 스위치의 변경 사항을 관찰합니다. 도어 스위치는 다음 중 하나에 있습니다. 0 또는 1 , 그리고 그 값이 바뀔 때마다 우리는 그 변화를 LED 핀에 씁니다.

reed.watch(function(err,value){
led.writeSync(value);

값을 사용하여 Blynk 앱에 데이터를 보낼 수도 있습니다. 문이 닫혀 있으면 Labeled Value 위젯에서 이를 확인할 수 있기를 바랍니다. 문이 열리면 알림과 이메일을 받고 싶습니다. 우리는 if 문으로 이것을 하고 다음을 사용합니다. 가상 쓰기 , 알리다 , 그리고 이메일 Blynk 라이브러리의 기능. Blynk에 대한 전체 문서를 찾을 수 있습니다. 여기 .

if(value==0){
blynk.virtualWrite(virtualPin,'Closed');
console.log('Door Closed');
};
if(value==1){
blynk.notify('The door just opened!');
blynk.email('email@address.here', 'Front Door', 'The front door just opened.');
blynk.virtualWrite(virtualPin,'Open');
console.log('Door Open');
};
});

이제 리드 스위치가 값 변경을 등록할 때마다 데이터가 가상 핀으로 전송되고 문이 열리면 앱의 알림 위젯이 열리고 콘솔에 기록됩니다. 마지막 중괄호는 우리가 시작한 곳에서 손목 시계 위의 기능.

마지막으로 프로그램이 종료되면 핀을 재설정해야 합니다. 이것은 다음과 동일합니다. GPIO.cleanup() 당신은 아마 이미 익숙합니다.

process.on('SIGINT', function () {
led.unexport();
reed.unexport();
});

이제 코드를 저장하고 종료합니다. 노드를 사용하여 스크립트를 실행합니다.

sudo node blynkdoor.js

이제 자석을 리드 센서에서 멀리 옮기면 문이 열리고 레이블이 지정된 디스플레이가 변경되어야 한다는 알림을 받아야 합니다. 스위치를 다시 닫으면 레이블이 지정된 디스플레이가 다시 변경되는 것을 볼 수 있습니다.

이메일은 앱 실행 여부에 관계없이 작동하지만 푸시 알림을 받으려면 Blynk 앱이 휴대전화에서 실행되고 있어야 합니다.

지금까지 Blynk와 함께한 짧은 시간 동안 사용하기 매우 쉬운 서비스인 것 같습니다. 코딩 지식이 없는 사람도 DIY 홈 자동화 시스템을 쉽게 구축할 수 있습니다. 약간의 추가 코딩 지식으로 훨씬 더 강력해져서 앱에서 단일 버튼을 눌러 훨씬 더 복잡한 시스템과 다중 이벤트 트리거를 허용합니다.

이 프로젝트는 Blynk에 대한 기본적인 소개였지만 여기에서 다룬 내용은 거의 모든 홈 자동화 또는 마이크로컨트롤러 프로젝트에서 쉽게 수정할 수 있습니다.

블링크를 사용해 보셨습니까? 우리와 공유하고 싶은 서비스를 사용하는 미친 복잡한 시스템이 있습니까? 아래 의견에 알려주십시오!

이미지 크레디트: 주세페 카카발레 YouTube.com을 통해

공유하다 공유하다 트위터 이메일 Canon vs. Nikon: 어느 카메라 브랜드가 더 낫습니까?

Canon과 Nikon은 카메라 업계에서 가장 큰 두 회사입니다. 그러나 어느 브랜드가 더 나은 카메라와 렌즈 라인업을 제공합니까?

다음 읽기
관련 항목
  • DIY
  • 똑똑한 집
  • 아두이노
  • 라즈베리 파이
  • 홈 오토메이션
  • 사물 인터넷
  • 전자제품
저자 소개 이안 버클리(216건의 기사 게재)

Ian Buckley는 독일 베를린에 거주하는 프리랜스 저널리스트, 음악가, 공연자 및 비디오 프로듀서입니다. 글을 쓰지 않거나 무대에 오르지 않을 때는 미친 과학자가 되기 위해 DIY 전자 제품이나 코드를 만지작거리고 있습니다.

이안 버클리가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.