2018년 8월 22일 수요일

Blynk 앱을 이용하여 집 밖에서 통신하기-Blynk 앱 설치 및 예제연습

개요


Blynk앱 사용법을 터득하고, nodemcu를 이용, 앱을 통해 led를 제어할 수 있다.
nodemcu에 대한 설명은 nodemcu 를 참조하길 바란다.


Blynk 란?


자신이 만든 제품을 스마트폰을 통해 제어하려면 어플과 서버구축 등이 필요하다. 이를 초보자가 다 만들기에는 시간과 비용이 많이 든다. 이를 해결해 준 어플이 바로 Blynk 앱이다. 심지어 무료이다. (단, 부분유료이다. 일정 할당량을 초과하면 돈을 주고 추가로 구입해야한다.) 즉, iot를 입문자가 실현시킬 수 있는 매우 유용한 어플이다.

Blynk 원리



Blynk 앱 > 아두이노 제어,

앱을 통해 데이터를 보내면, Blynk 서버가 데이터를 받는다. 그러면 서버가 다시 아두이노로 데이터를 보내 아두이노가 이를 받고 정해진 일을 수행하는 형태이다.

아두이노 > Blynk 앱 

물론 반대도 가능하다. 아두이노에서 받은 센서값을 서버가 받고 이를 어플로 보내어 가공된 데이터를 확인하는 형태이다.

시작하기


1. 먼저 https://github.com/blynkkk/blynkkk.github.io/blob/master/SupportedHardware.md
에서 자신이 쓰는 모듈이 블링크앱에서 호환이 되는지 찾아보자. (다 코딩하고 마지막에 지원이 안되서 실패하는 불상사를 막자)

2. https://www.blynk.cc/getting-started/에서 안드로이 또는 ios 버전을 다운받자.

3. 블링크 라이브러리 다운. (설치주소에 같이 있다.) > 모든 파일들을 아두이노의 스케치북 라이브러리 폴더에 붙여넣기 한다. 아두이노 스케치북 폴더는 IDE에서 파일-환경설정에서 스케치북 위치를 확인 할 수 있다.


연습하기 ( 앱을 통해 nodemcu led on/off )


1. 앱 실행 회원 가입 후, 프로젝트를 만든다.

2. 내가 제어하고 싶은 하드웨어(nodemcu)를 선택, Connection은 WiFi 를 선택

3. AUTH TOKEN 에서 E-mail 버튼을 눌러 해당 토큰을 메일로 받는다. 그리고 Create 실행

4. 버튼을 끌어 들이고 클릭, OUTPUT에서 D4 를 디지털 출력핀으로 설정한다.

5. 아두이노 IDE를 실행 > 파일 > 예제 > Blynk > Board_WiFi > nodemcu 스케치 불러오기

6. 스케치에서 char auth[] 부분에 메일에서 받은 토크를 입력하고
                  char ssid[] 부분에서 스마트폰이 연결된 와이파이 이름 입력
                  char pass[] 에 와이파이 비밀번호를 입력한다.

7. 업로드 후, 앱을 통해 nodemcu에서 led가 빛나는 지 확인한다.







2018년 8월 21일 화요일

nodemcu 이용하기 - 아두이노 개발환경 적용하기.

개요


nodemcu에 대해 간략히 이해하고, 이를 바탕으로 드라이버 및 개발환경 설치를 할 수 있다. (세부적인 설명은 LED 제어하기에서 설명하겠다.)

nodemcu 란?



WIFI가 가능한 ESP-8266 기반 보드이다. 즉, 독립적으로 소스를 올려 여러가지 모듈을 WIFI통신을 통해 제어 할 수 있다. nodemcu는 Lua라는 언어기반으로 개발환경이 적용되어 있지만, 사람들이 많이 사용하는 아두이노IDE로 개발이 가능하다.

장점 


   >모듈이 아니다. 보드이다. 즉, 아두이노 등 플랫폼 없이 독립적으로 아두이노 처럼 여러       모듈을 제어할 수 있다. (물론 모듈처럼 아두이노와 시리얼 통신이 가능하다.)

   >ESP8266은 ESP-01 부터 12까지 많다. 하지만 숫자가 낮은 시리즈는 개발하기에 너무
     제한적인 요소가 많고( 전압제어하기, 펌웨어 등), 따로 납땜을 하고 핀을 설치해야 하         기 때문에 불편하다. 이러한 모든 요소들을 해결한 12시리즈가 나오게 되었다.                 nodemcu는 12시리즈 기반이다.

    >가격이 저렴하다. 7천원 정도에 와이파이 환경을 개발할 수 있다. (ESP-01 사지말자..)

    > LUA라는 언어기반이지만 아두이노IDE로 개발이 가능하다.

    > 많은 사람들이 이용하기 때문에 많은 정보를 쉽게 찾을 수 있다.


단점


       모듈이 아니기 때문에, 외부전원이 필요하다. 마이크로 USB케이블로 연결한다.

       Nodemcu 마다 다르지만 일부는 펌웨어 업그레이드가 필요하다.

NODEMCU 사용법


보드 뒷면에도 간략히 적혀 있다. CP2102 드라이버 설치하고, 9600의 통신속도를 이용한다.
NODEMCU는 크게 2가지 칩으로 나뉜다. CP2102 칩과 ch340 칩이 있다. 자기의 칩에 맞게 설치를 해야한다.

C2102 칩 


1. 드라이버 설치하기

https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers#windows 에 접속하면,

위와 같은 페이지가 나온다. 자신의 컴퓨터 운영체제에 맞는 SOFTWARE를 다운받는다.(Release notes 는 설명서 정도이다. 그 옆에 VCP로 끝나는 프로그램을 다운받자. 필자는 윈도우 10이라, 가장 상단에 있는 프로그램을 다운 받았다. 실행하면, x86, x64 버전이 있는데, 자신의 컴퓨터 램이 4gb이상이면 x64, 이하이면 x86을 선택한다. 설치가 끝나면 nodemcu를 연결하여 확인하다. 

1-1. 펌웨어 설치하기(연결이 안되는 분)

플래시 다운하기.
https://github.com/nodemcu/nodemcu-flasher 에서 초록색 버튼을 클릭하여 Download ZIP을 선택하여 다운받는다.

펌웨어 다운하기.
https://github.com/nodemcu/nodemcu-firmware/releases 에서 2.2.0-master_2018~의 파란 글씨가 보이는데, 날짜가 가장 최근의 글에서 Source code (zip) 을 다운받는다.

플래시 프로그램을 설치하고, 실행하여 config 을 클릭, 톱니바퀴 클릭하여 다운받은 펌웨어를 선택한다. 이후 Operation 의 Flash 버튼을 눌러 펌웨어를 보드에 업로드 한다.\

CH340시리즈



1. http://www.wch.cn/product/CH340.html 접속하여 하단에 os 별로 선택한다.

   window 10 같은 경우 ch341ser.exe 를 다운받는다.
 
2. 실행하여 INSTALL 버튼을 누르면 된다. 드라이버 설치가 잘 안되면 프로그램실행전 우

   측 클릭하여 관리자 권한으로 실행하길 바란다.

3. 아두이노 IDE를 실행하고 파일-환경설정을 들어간다.

4. 추가적인 보드 매니저 URLs 에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 입력 후 확인.

5. 툴-보드-보드매니저를 클릭 후 검색에 esp8266을 입력하여 해다 보드를 다운 받는다.

6. 이 후 보드를 nodemcu 1.0 esp-12e를 선택 후 nodemcu 해당 포트를 선택하면 끝이다.













기초 회로의 이해


개요.


 비 전공자의 관점에서 강의를 듣고 강의를 요약한 내용이다. 이를 통해 회로의 기초와
이 회로가 LCD와 OLED에 어떻게 적용되어 있는지 이해할 수 있다.

기초 회로 이론.


     전압 : +에서 저항을 만나 -로 전류가 흐를 떄, 전위는 감소 혹은 '0'이 된다. 그 떄+, -                  사이의 전위 차를 전압이라 한다.
회로란? : 전자소자들을 연결하여 전류를 흐르게 하는 시스템(통로)을 회로란 한다.
            전자소자는 전압과 전류의 관계의 특성이라 말할 수 있다. 즉 전류에 따라 비례하              는 전압의 관계를 갖는 것을 의미한다. 한편 i,v 관계식이 같으면 모양이 달라도                같은 소자라 불린다. 이를 식으로 나타내면 옴의법칙 즉,

v=iR

이다. 달리 말하면 소자의 특성은 저항이라고 말할 수 있다.

  한편, 옴의 법칙은 '전류(원인)의 의해 저항을 만나면, 전압(결과)가 생긴다. 반대로 전압의 의해 저항을 만나 전류가 흐른다.'라고 볼 수 있다.

직렬

여러 저항들이 한 개의 회로에 위치할 떄 이를 직렬이라 불린다. 직렬의 특성은 각 저항마다 같은 전류가 흐른다.

병렬

병렬은 저항들이 여려 회로의 위치할 떄를 의미하고, 특성은 모든 회로의 전압이 동일하다는 것이다. 만약 R1과 R2가 병렬로 연결되어 있을 떄, 1개의 저항으로 모델링 한다면
 그 저항은


이 된다.  만약,

 이면

사라지므로 R2 가 된다. 즉, 큰 저항이 사라진다, 왜냐하면 저항이 너무 커 전류가 거의 안가기 떄문에 저항의 인지를 못하기 떄문이다. 

한편,  
이 된다.

Capacitor


C라고 표시하는데, 전극 사이가 비어 있고, 전압을 걸어 줄 때 이 현상이 나타난다. 
+전극에선 +가 모이게 되고 -전극에선 -가 모이게 되는데 두 전극의 면적 과 거리 만큼 전기력(전극사이의 밀고 당기는 힘)이 형성된다. 이를 전기장이라 한다. 
전하량은 전압에 비례하는데, 비례상수는 C이다.

유도체


유도체는 전극(도체)와 전극(도체)사이는 전류가 안흐르므로 부도체라 하는데, 부도체가 곧 유도체이다. 

C는 면적의 비례하고 거리의 반비례한다.
C=eA/d (e=유전율)
비례상수는 유도체의 유전율이다.

Q=CV 를 시간에 대해 미분

i=dQ/dt (시간당 전하량)

dQ/dt=d(CV)/dt

C는 면적과 거리, 유전율의 관계식인데, 모두 상수 이므로 

                                           dQ/dt=C(dV/dt) 가 된다.

따라서 i=C(dV/dt)이다.

이를 v로 표현하면 idt=Cdv 이므로 양변 적분을 하면

 =v(t)

이 된다. Cap(Capacitor)은 v와 i의 방정식이다. 
   
Cap의 일률(전력)=에너지/시간 의 표현

p=vi=Cv(dv/dt)

p*시간은 총 에너지 이므로 

t에 대해 적분 하면 

이다.

Cap의 직렬은 저항의 병렬과 같은 모델링 수식을 가지고, 반대도 마찬가지이다.
                                                v0(t)
                                                        C
v0(t)의 시간에 따른 전압과 그 식은 어떻게 될까??

v0(0)일 때는, 

Q=CV
  0     0   > V=0

시간이 갈 수록 전하는 채워짐.. 즉 전압이 증가.. 

SO, VS와V0의 전위 차이가 줄어듬.> 전류 낮아짐

전압이 같아 지게 됨...

액정은 Cap이다. ITO는 도체, ITO 사이에 액정이 있으므로 
Cap이다.

시상수

목표값에 몇 퍼센트 도달하는 데 걸린 시간



전류는


C를 양변에 나눠주면,

 t에대해 적분하면


시간 t를 rc라 하면 그 에 따른 목표값의 퍼센테이지를 알 수 있음.

ex) 5RC는 VS의 99%이다./

Cap 쪽으로 얘기하면, 충전을 99%까지 하늗네 5RC가 걸린다는의미이고,
RC의 단위는 s이다. 







                                             

릴레이 제어

0. 개요

릴레이의 개념을 이해하고, 220V로 작동되는 제품을 아두이노로 제어하는 법을 알 수 있다.

1. 릴레이란?

 낮은 전압(즉 아두이노)으로 고전압(220V작동되는 제품)을 ON/OFF 제어할 수 있는
장치이다.
 릴레이의 원리는 솔레노이드 코일을 이용하여 도체를 이동시켜 전류를 ON할지 OFF할 지 결정 짓는 것이다. 여기서 솔레노이드 코일은 전류가 흘려지면 전자석으로 성격이 변한다.
이런 전자석을 이용해 도체를 제어하여 전류를 제어하는 것이다.

2. 릴레이 구조 및 연결

 릴레이는 한쪽에 S, +, - 가 있다. S는 아두이노 디지털 핀에 연결하고, +는 5V 핀에 -는 GND에 연결을 해주면 된다. 또 다른 쪽엔 NC, COM, NO 가 있다. 이 부분은 220V 제품에 연결되어 진다.
NC는 Normal Close 의 약자이며, 평시 붙어 있는 접점이다. 솔레노이드가 작동되면 떨어진다. 전류가 흐르지 않으면 평시 붙어 있다.
NO는 Normal Open 의 약자로, 평시 떨어져 있는 접점이다. 솔레노이드가 흐르면 붙여진다. 마찬가지로 전류가 흐르지 않으면 평시 떨어져 있다. 즉, NC는 초기상태가 전원이 ON상태이며 NO는 초기상태가 전원 OFF 상태이다.
 마지막으로 COM은 Common Terminal(공통단자)의 약자이다. 항상 연결해 줘야 하는 포트이다. COM은 VCC로 보면 된다. 따라서 연결할 때 보통은 NC, COM 이나 NO, COM에만 연결한다. NC. NO는 각각  OUTPUT1, 2로 보면되고, COM은 VCC로 보면 된다.



3. 적합한 릴레이 모듈 선택하기

 릴레이마다 제어할 수 있는 전류나, 전압 등이 다양하다. 따라서 제품의 정확한 스펙을 확인 후 그에 맞는 릴레이를 사용해야한다. 릴레이 윗면에 10A 250VAC ~ 10A 30VDC 등이 적혀 있는데 이는 10암페어 250V 교류, 10암페어 30 직류 까지 제어할 수 있다는 것이다.
 필자는 전기밥솥을 제어하기 때문에 DATA SHEET를 찾아보니 소비전력이 최대 400W라는 것을 알게 되었다.  P=VI 이므로 I=1.82 A 가 나오므로 일반적인 릴레이를 사용해도 된다.

4. IDE를 통한 코딩 및 설계도.

 매우 간단하다. LED 제어 코딩과 거의 비슷하다.

void setup()
{
  pinMode(51, OUTPUT);  // 디지털 51번핀을 출력모드로 설정합니다.
}
  void loop() {
  digitalWrite(51, HIGH); // 릴레이가 연결된 디지털 51번핀에 HIGH(ON) 신호를 보냅니다.
  delay(3000);            // 3초동안 기다립니다.
  digitalWrite(51, LOW);   // 릴레이가 연결된 디지털 51번핀에 LOW(OFF) 신호를 보냅니다.
  delay(3000);            // 3초동안 기다립니다.
}
 




구글 스프레드 함수를 활용한 내 입맛대로 자산(주식) 통합 관리하기!(자산분배)-(1)

흩어진 주식계좌! 내 입맛대로 실시간 통합관리하기 1.  2% 아쉬운 MY데이터 활용한 자산 통합관리 지인에게서 퀀트투자라는 생소한 투자법을 들은 후 매력을 느껴 더욱 깊이 알아보고자 강형국의 퀀트투자라는 책을 읽게 되었다. 이 책은 나의 투자 가치관...