:::: MENU ::::

Blynk 사용법

Blynk는 IoT응용을 쉽게만들어 주는 앱이다.  동작 방식은 아래 그림과 같이 앱이 서버를 거쳐서 디바이스에 접근을 하고, 디바이스역시 서버를 거쳐서 앱과 통신을 한다. 단 디바이스에는 Blynk에서 제공하는 라이브러리를 설치를 해야한다.

디바이스

현재 지원하는 디바이스는 아두이노, ESP8266, 라즈베리파이… 등 다양하며(지원하는 하드웨어), Bluetooth, WiFi등의 connectivity가 없는 경우에도 PC를 통해서 동작이 가능하다. 아두이노에서는 스케치 > 라이브러리 포함하기 > 라이브러리 관리…를 선택해서 Blynk로 검색을 하면 라이브러리 및 예제의 설치가 가능하다. 그리고 펌웨어에서는 앱을 통해 받은 토큰을 코드에 넣어서 서버와 통신을 한다.

다운로드 받은 앱에서는 사용자 등록을 하고 디바이스와 연결될 위젯을 선택하고 이 위젯에 연결할 물리적 핀을 할당한다. 즉 버튼을 추가하고, 이 버튼을 PIN13에 연결을 하면 앱에서 버튼을 누를때 마다 보드의 PIN13이 On/Off된다. 재미있는 것은 물리적인 핀뿐 아니라 Vitrual Pin을 지정해서 아무런 값이나 파라미터로 전달이 가능하다는 것.  BLYNK_WRITE 함수는 서버에서 virtual pin값을 쓰면 실행되는 함수, BLYNK_READ 함수는 디바이스에서  virtual pin에 값을 쓰면 서버에 반영이 되는 함수이다. 즉 read / write는 서버의 관점.

BLYNK_WRITE(vPIN)

BLYNK_WRITE defines a function that is called when device receives an update of Virtual Pin value from the server:

BLYNK_WRITE(V0)
{   
  int value = param.asInt(); // Get value as integer

  // The param can contain multiple values, in such case:
  int x = param[0].asInt();
  int y = param[1].asInt();
}

BLYNK_READ(vPIN)

BLYNK_READ defines a function that is called when device is requested to send it’s current value of Virtual Pin to the server. Normally, this function should contain some Blynk.virtualWrite calls.

BLYNK_READ(V0)
{
  Blynk.virtualWrite(V0, newValue);
}

예제

구체적인 것은 이 문서의 설명과 예제를 따라가면 쉽게 이해가 간다.

기타

Blynk Doc 참고


AC 전원

교류용 전선(3선)의 극성

접지선(EARTH) 

중립선(NEUTRAL) –

전력선(LIVE)        +

퓨즈는 전력선(LIVE)에 연결한다.

Hi-link사의 AC/DC 컨버터 모듈

데이터 시트에 AC연결이 어떻게 되는지 안나와 있는데, 위쪽이 N(Neutral)이고 아래핀이 L(Live)이다.

어떤 블로거의 이 모듈과 관련해서 테스트한 자료1 – Conducted emission fail 됨. 그래서 이후에 테스트한 자료 <= 결론은 싼 중국 파워제품을 무턱대로 사용하면 인증에서 골치아픔. 🙁

 




구글 스크립트

구글 캘린더에서 다음주 1주일의 일정을 불러와서 출력을 해주는 스크립트.

여기서 캘린더 ID는 구글 캘린더의 설정에 들어가서 원하는 캘린더의 세부설정 항목의 캘린더 주소 항목에서 찾을 수 있으며 다음과 같은 형태이거나 자신의 구글 계정정보이다.

[email protected]

위 코드는 Google Apps Scripts 에서 작성을 한다.


중국산 FTDI 보드 개조

Silab기반의 Serial to USB보드는 문제가 있어서 FTDI 기반의 보드를 구매하려다 보니, Sparkfun사의 보드는 18,000원이나 한다. 그래서 디바이스 마트에서 구매한 4,000원 짜리 중국산 보드.   뒷면에 점퍼로 3.3V로 변환이 가능하다고 해서, 당연히 TXD 시그널도 3.3V 라고 생각을 했는데, 5V 레벨이다. ㅠㅠ

그냥 USB로부터 5V 입력을 VDDIO(#4)에 같이 연결하고 3V3OUT(#17)를 출력에 연결을 해놨는데, 칩을 떼고 VDDIO에 연결된 5V패턴을 자르고 3V3OUT을 연결하면 시그널 레벨들도 3.3V가 된다.



IoT 비즈니스 모델

  1. Subscription model: IoT as a Service, freemium. ex) monitoring as a service” and “predictive maintenance as a service”.
  2. Outcome-based model: 기기자체의 가격이 아닌, 기기를 사용해서 얻은 이익에 대해 가격을 매김
  3. Asset-sharing model: ex) Smart battery. 초과 발전한 것을 grid에 되 팔 수 있는
  4. IoT Products as a Proxy to Sell Another Product: 아마존 dash button 같은
  5. IoT Products as a Vehicle to Monetize Data

참고: How to Monetize Your IoT Product


Mac OS에서 ESP8266 개발 환경

아두이노

1. Arduino > Preferences… 의 메뉴에서 추가적인 보드매니저 URLs에 다음의 링크를 입력한다.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

2. 툴 > 보드 > 보드 매니저… 의 메뉴의 필터에 ESP를 입력 후 esp8266을 선택후 설치한다.

Sming

맥에서는 https://github.com/SmingHub/Sming/wiki/MacOS-Quickstart 이 링크의 내용대로 따라하면 별 무리가 없다. 즉 이클립스, 툴체인, ESP SDK를 설치하고 Sming core를 빌드한다.

이클립스의 환경설정에서 SMING_HOME, ESP_HOME 설정을 한다.

 

SmingFramework의 Makefile-project.mk파일에서 ESPTOOL2의 경로를 다음과 같이 수정한다.

ESPTOOL2 ?= /opt/esp-open-sdk/utils/esptool2

Makefile-macos.mk파일에서 ESPTOOL의 경로를 다음과 같이 수정하고, COM_PORT항목도 환경에 맞게 수정한다.

ESPTOOL ?= $(ESP_HOME)/utils/esptool.py

Basic_Blink 프로젝트의 Makefile-user.mk파일도 다음과 같이 수정한다.

# Local build configuration

## Parameters configured here will override default and ENV values.

## Uncomment and change examples:

## Add your source directories here separated by space

MODULES = app

EXTRA_INCDIR = include

## ESP_HOME sets the path where ESP tools and SDK are located.

## Windows:

# ESP_HOME = c:/Espressif

## MacOS / Linux:

ESP_HOME = /opt/esp-open-sdk

## SMING_HOME sets the path where Sming framework is located.

## Windows:

# SMING_HOME = c:/tools/sming/Sming

## MacOS / Linux

SMING_HOME = /opt/sming/Sming

## COM port parameter is reqruied to flash firmware correctly.

## Windows:

# COM_PORT = COM3

## MacOS / Linux:

COM_PORT = /dev/tty.usbserial-A50285BI

## Com port speed

COM_SPEED= 115200

## Configure flash parameters (for ESP12-E and other new boards):

SPI_MODE = dio

## SPIFFS options

#DISABLE_SPIFFS = 1

SPIFF_FILES = files

Sming 프레임워크 소스코드를 불러와서 라이브러리를 빌드

  • Eclipse 실행
  • [File -> Import -> General -> Existing Project into Workspace] 선택
  • [Select root directory] 에서 SmingFramework 프로젝트 폴더를 선택
  • 프로젝트에서 Build

Blink 예제 빌드 확인

  • [File -> Import -> General -> Existing Project into Workspace] 선택
  • [Select root directory] Basic_Blink 프로젝트 폴더선택
  • 프로젝트에서 Build

프로젝트 빌드가 성공하면 [프로젝트 폴더\out\firmware] 폴더안에 *.bin 파일들이 생긴다.

참고