2017년 3월 31일 금요일

Arduino에 ESP-01 WiFi Module 연결 방법.

Arduino Uno에 ESP-01 Module을 연결하는 방법을 소개한다.
여기서는 "Fritzing"사용에 대한 연습이다.
관련해서는 Arduino Blug를 참조하기 바란다.

Arduino Uno에 ESP-01 WiFi Module을 연결해서 사용하는 경우에는 Arduino Uno의 Firmware를 Upload해서 ESP-01 WiFi Module은 인터넷 연결도구로써 사용된다.
앞서 ESP-01 단독 실행에서는 ESP8266 Firmware를 Upload하여야 한다.

"Fritzing"에서는 "브레드 보드"와 "스케메틱", "PCB", "Code"탭을 작성할 수 있다.
"Code"탭을 제외한 3개의 탭은 모두 연결되어 있기 때문에 3개 중에 1개만 작성해도 모두 연결이 구현된다.( 단, 각각의 탭이 다르게 연결되어있다면, 서로 충돌이 발생할 수 있기 때문에 연결에 주의하여야 한다.)


"Fritzing"에서 Arduino Code를 Build하고, Download하기 위해서는 Arduino IDE에 대한 설정이 되어 있어야 한다.
"Fritzing"을 실행하고, "편집" -> "환경설정..."을 클릭한다.
 
"Code View"탭으로 이동해서 설치된 "Arduino IDE"를 등록한다.
 
Arduino IDE를 설정한 후에는 "Code"탭에서 Arduino Uno 보드에 대한 설정이 되어야만 한다.

"Fritzing"의 "Code"탭에서 하단에 Platform, 보드, Port를 설정해야 한다.
"Platform"은 Arduino IDE가 설정되어 있기 때문에 Arduino가 선택되고, "보드"는 현재 사용하고 있는 보드를 선택한다.
"Port"는 PC에 연결된 Arduino의 COM Port를 선택한다.
"Upload"버튼을 클릭하면, 작성된 code(스케치)를 Arduino 보드에 Upload한다.
"Serial Monitor"버튼을 클릭하면, Arduino 보드와 연결된 COM Port를 open한다.


Arduino Uno와 Serial 통신으로 ESP-01 WiFi Module을 제어하고, WiFi를 통해서 Arduino Uno를 제어하거나 상태를 확인할 수 있다.
Arduino Uno의 2번 핀과 ESP-01의 8번 핀(TX)이 연결되고, Arduino Uno의 3번 핀은 ESP-01의 1번 핀(RX)와 연결한다. 즉, Arduino Uno의 Software Serial에서 Rx는 2번 핀으로 할당하고, Tx는 3번 핀으로 할당해야만 한다.
자세한 내용은 Arduino Uno 스케치를 확인하기 바란다.

1. 브레드 보드 연결하기.
"Fritzing"을 실행하고, 부품창에서 "Arduino Uno"와 "ESP-01" Module을 가져와서 아래와 같이 연결한다. 연결이 완료되면, "파일" -> "내보내기" -> "이미지" -> "PNG"를 선택해서 그림 파일로 저장할 수 있다.

 

2. 회로 설계.
"스케메틱(Schematic)"탭에서 아래와 같이 회로를 연결한다.
 

3. PCB Layout.
"PCB"탭에서 아래와 같이 Layout을 연결한다. PCB Layout은 기본적으로 양면 PCB를 기준으로 진행되고, 부품이 Hole을 갖는 경우에는 Top과 Bottom으로 모두 배선 할 수 있다.
 

4. Code 작성.
Blynk Server를 통해서 핸드폰 어플을 통해서 Arduino를 제어하거나 상태를 확인할 수 있는 code를 작성한다. 아래 Code는 Arduino Uno가 ESP-01 WiFi Module을 통해서 Blynk Server에 접속하는 기능은 제공한다.(단, auth[]와 ssid[], pass[]는 각자의 환경에 맞게 설정되어야 한다.)
Blynk 어플 작성 및 사용에 대해서는 향후 Blynk 블로그를 작성할 계획이다.
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

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

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

// Software Serial on Uno, Nano...
#include <SoftwareSerial.h>

SoftwareSerial EspSerial(3, 2); // RX, TX

// Your ESP8266 baud rate:
#define ESP8266_BAUD 9600

ESP8266 wifi(&EspSerial);

void setup()
{
  // Set console baud rate
  Serial.begin(9600);
  delay(10);

  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);

Blynk.begin(auth, wifi, ssid, pass);
delay(100); }
void loop() { Blynk.run(); }
"Fritzing"의 "Code"탭에서 "Platform", "보드", "Port"가 설정되었다면, "Upload"버튼을 클릭해서 작성된 code의 동작을 확인할 수 있다.

Fritzing Code

Fritzing 설치 및 부품 추가하기.

Fritzing은 회로 설계 및 PCB 제작을 쉽게 할 수 있는 Open Tool이다.

1. Fritzing 설치하기.
먼저, Home Page에 젒속해서 설치 파일을 Download받는다.


Download Site로 접속하고, 기부 여부를 선택하고, 자신의 PC 환경에 맞는 설치 파일을 Download받는다.


설치 파일을 설치한다.(별다른 어려움이 없기 때문에 따로 기술하지 않는다.)

2. 개별 부품(Library) 추가하기.
참고로, ESP-01 모듈 부품이 기본적으로 제공되지 않는다. 따라서 해당 부품을 인터넷에서 찾아서 Fritzing에 추가해야만 한다.
파일확정자가 xxx.fzpz이면, 단일 부품이고, xxx.fzbz이면 부품 그룹을 나타낸다.

Google에서 ESP8266 부품을 찾는다. 검색할때 "Fritzing ESP8266"등으로 검색한다.

4번째 사이트로 접속한다.

오른쪽 "Clone or download" 버튼을 클릭해서 Library를 Download받는다.

download 받은 파일을 "C:\Users\khjung\Documents\Fritzing\parts"폴더에 압축 해제한다.

"Fritzing"을 실행한다.

오른쪽 부품창에서 "MINE"항목을 선택한다.(다른 부분에 넣어도 되지만, 부품 관리를 위해서 MINE 부품 목록에 추가한다.)
"My Parts" 화면에서 마우스 우클릭하거나, 오른쪽 구석에 화살표와 목록 아이콘을 클릭한다.
 
"Import"를 선택하고, 팝업 탐색기에서 추가할 부품을 선택하고, "열기"를 클릭한다.
 
"Fritzing"의 "부품창"에 "ESP8266 WiFi Module"이 추가된 것을 확인할 수 있다.
부품이 추가됨과 동시에 추가된 부품이 "C:\Users\khjung\Documents\Fritzing\parts\user" 폴더에 복사된다.

나머지 7개의 부품을 동일한 방법으로 추가한다.

부품을 추가한 후에 "Fritzing"을 닫을 경우 아래와 같은 팝업창이 발생한다.
 
즉, 추가한 부품 정보를 저장해야만 향후 지속적으로 사용할 수 있다.

3. 패키지 부품(Library) 추가하기.
Adafruit 부품들을 추가해 보도록 하자!
Google에서 "fritzing adafruit library"를 검색한다.

첫번째 항목에 접속한다.(GitHub이므로 저장소라고 판단됨)

화면의 오른쪽 "Clone or Download"를 클릭해서 Download 받고, "C:\Users\khjung\Documents\Fritzing\parts" 폴더에 압축해제한다.


"Fritzing"을 실행하고, 아래와 같은 과정으로 부품을 추가한다.
앞서와 동일하게 "부품창"의 "MINE" 항목에서 마우스 우클릭으로 "Import"를 클릭하고, "Fritzing-Library-master"폴더에서 "Adafruit Arduino.fzbz"을 선택한다.
 
확정자가 xxxx.fzbz 파일은 개별 부품이 아닌 부품 그룹이므로 부품창에 새로운 그룹이 생성되고, 여기에 관련 부품들이 모두 추가된다.

즉, 부품창에 "Adafruit Arduino" 항목이 생성되고, 관련된 부품이 모두 추가된다.
같은 방법으로 7개의 그룹을 모두 추가한다.
...
모두 추가한 후에 "Fritzing"을 닫을때 아래와 같이 추가된 부품을 저장하기 위한 팝업창이 뜬다.
 
모두 저장되어야만 이후로 계속 추가된 부품을 사용할 수 있다. 저장되는 부품의 확정자는 xxx.fzb로 저장되고, 저장 폴더는 "C:\Users\khjung\Documents\Fritzing\bins"이다.

ESP-01 WiFi Module 연결 회로 만들기

ESP-01 WiFi Module을 사용하는 방법은 2가지 방법이 있으며, 각각의 경우 추가 회로가 필요한다. 1. ESP-01을 단독으로 사용하는 방법.    - 3.3V 전원부가 필요하다.    - Button 입력 회로가 필요하다.    ...