'cloud funding'에 해당되는 글 2건

  1. 2020.08.11 Software | Blynk 사용해 보기
  2. 2017.09.25 Hardware | Magnetic Charging Cable 을 구매해 보자

Software | Blynk 사용해 보기

|

Arduino 나 ESP8266 을 사용하면서, sensor 로부터 받은 데이터를 표현해주는 방법이 몇 가지 있습니다.

일전에는 ThingSpeak 라는 것을 사용해 봤었죠.


* Software | ThingSpeak 등록하여 IoT 데이터 펼처보기

https://chocoball.tistory.com/entry/Software-ThingSpeak-IoT-monitoring


어느 분께서 댓글 달아 주시길, Blynk 도 좋다고 합니다. 사용해 봤습니다.





1. Blynk 란?


Data 는 있지만, 그 값들을 이해하기 쉬운 방법으로 표시해 주고 모니터링 해주는 어플리케이션 이죠.



클라우드 펀딩으로 시작한 솔루션 입니다.


* Blynk - build an app for your Arduino project in 5 minutes

- https://www.kickstarter.com/projects/167134865/blynk-build-an-app-for-your-arduino-project-in-5-m



Arduino project 를 5분만에 시작할 수 있다고 하지만, 숙련된 사람 이야기 이고, 학습하는 시간이 필요합니다.

다만, 각 프로젝트에 따른 예시나 모듈이 잘 되어 있어서, 하다 보면, 아니... 이렇게 쉽게? 라는 생각이 잠시 드는 때도 있습니다.


KickStarater 클라우드 펀딩을 성공적으로 마무리 하고, 아래 사이트에서 정식 런칭하였습니다.


* Blynk Inc

https://blynk.io/





2. Library 설치


저는 Arduino / ESP8266 에서 받은 값을 전달할 목적이므로, Arduino IDE 에서 모듈을 인스톨 합니다.


Tools > Manage Libraries > Blynk


모듈이 인스톨 되면, Arduino > libraries 에 등록 되어 있는 것을 확인 할 수 있습니다.



자동으로 설치해 주는 방법 외에도, 수동으로 파일을 받아서 설치 할 수도 있습니다.


* Blynk Arduino Library

https://github.com/blynkkk/blynk-library/releases/latest





3. App 설치


프로그래밍을 위한 환경이나 라이브러리가 설치되었으면, 실제로 그 값들을 모니터링 하고 확인할 수 있는 인터페이스가 필요합니다.

Blynk 는 모바일 환경에 최적화가 되어 있으므로, 스마트폰에 관련 어플을 설치합니다.


평점이 좋네요.





4. Project 시작하기


모바일앱에서 어플을 시작하면, 등록이 나옵니다.



Facebook 계정 연동으로 시작해도 되나, 저는 그냥 email 로 사용자 등록 하였습니다.



계정을 만들고 로그인 합니다.



New Project 를 선택합니다. My Apps 메뉴를 이용해서, 개인 전용앱 처럼 꾸밀 수도 있다고 합니다.



시작할 새로운 Project 는 주로 어떤 IoT 기기와 연결될 것 인지를 선택합니다.

저는 ESP8266 을 이용하여, WiFi 연결 뿐만 아니라, arduino 처럼 처리도 시킬 것이기 때문에, ESP8266 을 선택 했습니다.



포름알데히드 센서를 이용한 그래프 모니터링용 이니, 그에 맞게 Title / Device / Connection Type 을 선택해 줍니다.

저는 Formaldehyde / ESP8266 / WiFi 를 선택 했습니다.



Create Project 를 최종적으로 누르면, 새로 생성한 project 에 대한 전용 인증 코드가 생성됩니다.

이 코드는 project 마다 유니크 하며, 메일로도 알려 줍니다.



계정 생성시 사용 했던 email 로 관련된 정보가 왔습니다.


Auth Token





5. 소스코드 생성


누가 5분만에 가능하다 했나... 5분은 여기까지 오느라 훨씬 지났습니다.

다만, 코딩을 쉽게 도와주기 위해 "Sketch generator" 라는 메뉴가 준비되어 있어요.


* Sketch generator

https://examples.blynk.cc/


접속하면, 아래처럼 Board (Device) / Connection 방법 / Auth Token 및 예시를 선택하면 소스코드를 만들어 줍니다!



이 페이지에서 만들어준 기본 코드에, 포름알데히드 측정에 사용되었던 코드를 살짝 추가 하였습니다.


Blynk 사용하지 않은 코드


#include "ze08_ch2o.h"
#include "SoftwareSerial.h"
 
// Instantiate a serial port, whatever Stream you have
// SoftwareSerial ch2oSerial(4, SW_SERIAL_UNUSED_PIN); // RX, TX
SoftwareSerial ch2oSerial(14, 14); // RX, TX
 
// Instantiate a sensor connected to the previous port
Ze08CH2O ch2o{&ch2oSerial};
 
void setup() {
    ch2oSerial.begin(9600);
    ch2oSerial.listen();
    Serial.begin(115200); // Serial Monitor
}
 
void loop() {
    Ze08CH2O::concentration_t reading;
     
    if (ch2o.read(reading)) {
        Serial.print("New value: ");
        Serial.println(reading);
    }
}



Blynk 기능을 입힌 코드


#include "ze08_ch2o.h"
#include "SoftwareSerial.h"

SoftwareSerial ch2oSerial(14, 14); // RX, TX
Ze08CH2O ch2o{&ch2oSerial};

int sensorData;

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

#include "ESP8266WiFi.h"
#include "BlynkSimpleEsp8266.h"

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

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "XXXXXXXXXXXX";
char pass[] = "YYYYYYYYYYYYYYYYYYY";

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent() {
	// You can send any value at any time.
	// Please don't send more that 10 values per second.
	
	Ze08CH2O::concentration_t reading;
	if (ch2o.read(reading)) {
		Serial.print("ZE08-CH2O : ");
		Serial.println(reading);
		
		sensorData = reading;
	}
	Blynk.virtualWrite(V5, sensorData);
}

void setup() {
	// Debug console
	Serial.begin(115200);
	
	ch2oSerial.begin(9600);
	ch2oSerial.listen();
	
	Blynk.begin(auth, ssid, pass);
	// You can also specify server:
	//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
	//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
	
	// Setup a function to be called every second
	timer.setInterval(5000L, myTimerEvent);
}

void loop() {
	Blynk.run();
	timer.run(); // Initiates BlynkTimer
}


위의 Before / After 를 비교해 보면, "Sketch generator" 코드에서 자동으로 만들어준 소스에, 원래 소스를 살짝 입히기만 했습니다.

참 쉽죠?! 제가 작업한 것은 다음 세 가지 뿐 입니다.


- 기본 소스 코드 생성 (이것 마저도 인터넷에서 따옴)

- Sketch generator 이용하여 Blynk 연결 소스 만듬

- Auth Token / WiFi 접근 SSID / Password 적용


가장 눈여겨 들여다 봐야 할 부분은 아래 코드 부분입니다.


	Blynk.virtualWrite(V5, sensorData);


Blynk 는 ESP8266 / ESP32 등에서 받는 data 값 들을, 가상의 Pin 으로 보내는 기능이 있습니다.

Analog / Digital 값들이 다양한 Pin 들을 통해 들어온다 하여도, Blynk 로 보낼 때에는 하나의 가상 Pin 으로 고정해서 보낼 수 있습니다.


이렇게 되면, Device 가 변경되더라도 Blynk 앱에서는 변경을 하지 않아도 됩니다. 자세한 내용은 아래 링크를 참고해 보세요.


* What is Virtual Pins

http://help.blynk.cc/en/articles/512061-what-is-virtual-pins


* How to display ANY sensor data in Blynk app

http://help.blynk.cc/en/articles/512056-how-to-display-any-sensor-data-in-blynk-app





6. ESP8266 에서 실행


ESP8266 에 소스를 입히고 실행시키면, 다음과 같은 화면이 Serial Monitor 에 출력 됩니다.


[5220] Connected to WiFi
[5221] IP: 192.168.1.90
[5221] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v0.6.1 on ESP8266

[5227] Connecting to blynk-cloud.com:80
[5586] Ready (ping: 125ms).
ZE08-CH2O : 66
ZE08-CH2O : 112
ZE08-CH2O : 114
ZE08-CH2O : 117
ZE08-CH2O : 116
ZE08-CH2O : 114
...


ASCII code 를 이용하여 Blynk 문자를 잘 만들었네요 :-)



Library 는 Heartbeat 를 통한 연결상태 확인도 해주는 군요. 잘 만들어져 있습니다.



여기까지 진행하면 ESP8266 에서 할 것은 이제 다 했습니다.




7. Blynk 모바일앱에서 설정


Blynk 로 데이터는 들어오고 있으니, 받을 수 있도록 연동 설정하면 됩니다.

데이터를 표현해주는 방법은 여러 가지가 있으나, 대략 Gauge / SuperChart 로 해결 됩니다.


스마트 폰에서 Create Project 후에 나오는 빈 화면 아무곳을 터치하면, Widget Box 가 아래처럼 뜹니다.

건전지 아이콘에 2000 크레딧이 미리 충전 (무료) 되어 있습니다.

이걸 다 쓰면, 돈을 충전해서 사용해야 합니다. 각 메뉴 추가시 크레딧이 차감되니 신중하게 위젯을 만들어야 합니다.



처음에 멋도 모르고 "Value Display" 를 설정 했더랬습니다. 그냥 조금하게 값만 표시됩니다.



역시 데이터 값 표현은 차트죠. SuperChart 만들어 봅니다.

PIN 정보는 항상 "Virtual 5 PIN" 으로 했습니다만, 다른 Pin 들도 다이렉트로 사용할 수 있나 봅니다.



만들어진 위젯에 손가락을 잠깐 동안 올려 놓으면, 위치를 이동 시킬 수 있습니다.



이제 센서 값들의 모니터링은 일상으로 사용하는 스마트폰에서 바로바로 확인이 가능하게 됩니다.

웹페이지를 띄울 필요도 없고, 인증을 걸 필요도 없이, 하나의 앱 처럼 사용할 수 있어서 편하긴 합니다.




FIN


And

Hardware | Magnetic Charging Cable 을 구매해 보자

|

1. Lightning Charging Cable


iPhone 충전에 사용되는 케이블은 조금 쓰다보면 커넥터쪽이 말리면서 부스러집니다.

그러면서 단선이 생기지요. 요렇게...



Apple 정품으로 주는 번들 케이블이 매번 이정도이면, 뭔가 대책을 만들어야 할 터인데,

맨날 재구매를 하게 만듭니다.



아니면 써드파티 제품을 구매하게 하면서 생태계 공헌?




2. 자석 커넥터


언제부터인가 이 단자의 문제를 해결하기 위해,

아예 단자를 꼽아 놓고 자석으로 붙였다 띠었다 할 수 있도록 만든 아이디어 제품이 나오기 시작했습니다.


제가 자주가는 Kickstarter 의 클라우드 펀딩 사이트에는 2년 전부터 나오기 시작한것 같아요.

지금도 많은 비슷한 제품이 올라와 있네요.



인기가 좋은 제품을 우리 대상인들이 가만 놔둘리가 없겠죠?




3. AliExpress


작년까지만 해도 10 USD 이상으로 꽤 비쌌던 Magnetic Charging Cable 들이 5 USD 아래로 떨어졌습니다.

구매 적기인 듯 합니다. 마침 "정품" 충전 케이블도 망가졌구요. (위 사진)


AliExpress 에서 검색해 보면, 대표적으로 두가지 제품이 나옵니다.

제조사는 동일한 Garas.


케이블 보호를 위해 섬유로 덮혀있는 좋아보이는 제품이 3.54 USD 로 더 싸네요.


* 3.54 USD

https://ko.aliexpress.com/item/Magnet-Cable-For-Iphone-Android-Mobile-Phone-Magnetic-Cable-2IN1-Magnet-Mirco-USB-Cable-Fast-Charger/32804451742.html



위의 제품을 색깔별로 3개를 구입하고,

혹시 모를 차이점을 알고 싶어서, 여분 1개를 아래 비싼 제품으로 주문했습니다.


* 4.66 USD

https://ko.aliexpress.com/item/USB-Type-C-IOS-Android-3IN1-Magnetic-Cable-Type-C-USB-C-Fast-Charge-Adapter-Cable/32803550433.html





4. 도착


한 3주 걸려서 도착하였습니다.

포장은 안쪽에 뽁뽁이 봉투로 왔습니다.


자석부분이 좀 예민해 보이긴 하지만, 무난한 포장입니다.



섬유 케이블로 덮혀있는 제품은, 블링블링 금색/은색/검정으로 하였습니다.



가장 무난한 은색 케이블을 뜯어 봤어요.



Lightning 단자에 붙여넣고, 자석으로 연결되는 부분입니다.



자석이 네오디뮴 (Neodymium) 인듯 합니다. 엄청 잘 붙어요.



내구성은 조금 써봐야 알것 같습니다.

각 라인들은 저렇게 연결되게 해 놨습니다.


각 선을 눌러보면 쿠션처럼 들어가는 것을 보면, 안에 스프링이 들어있나 봅니다.



섬유 케이블로 쌓여있지 않은, "비싼" 버전의 케이블 입니다.

더 비싼 이유는 찾지 못하였습니다.

아마도 예전에 올린 제품으로 가격변동 없이 그대로 판매되고 있던것 같아요. (한놈만 걸려라?)


새로 구매하실꺼면, 보다 저렴하면서 섬유 케이블로 둘러쌓인 버전으로 구매하세요.



섬유 케이블 버전 한곳에 모아서 샷.





5. 구동 영상


실제로 충전한 동영상 입니다.



이미 충전이 완료되어 있으면, 충전 ready 상태의 불빛이 들어왔다가,

다시 조금 사용되면 충전 불빛 (좀 약한) 이 들어왔다가, 왔다갔다 합니다.


논리회로가 좀 약하군요.


충전을 계속해야 하는 경우는, ready 불빛이 충전 불빛으로 변합니다.





FIN


이하 총평입니다.


1. 자석으로 찰싹 붙고 떨어지는 구성으로 너무 너무 편하고 좋음.

2. 충전중이 아닐때에는 ready 상태인데, 무조건 고휘도 LED가 점등되어 있어 눈이 아픔. (저녁에 방 후레쉬 대용)

3. 완충 후, 불빛이 ready / 충전중 상태의 불빛으로 계속 왔다갔다 함.

4. 가격이 저렴하니, 여러군데 뿌려놓고 다니기 편함.

5. 자주 쓰다보면 급하게 분리시켰는데, 나중에 알고보면 단자까지 빠져있슴 !!!


좀 마무리가 아쉽지만, 이 가격에 막 쓰기에는 적당할것 같아요.


또한, iOS 11 로 업데이트하면 3rd party 제품은 동작 안한다 했는데, 잘 동작합니다. :-)

And
prev | 1 | next