아두이노에 사용가능 하기 위한 Esp8266-01 펌웨어 업로드 (AT모드)

ESP8266-01 펌웨어 업로드하려면 아두이노 우노가 필요 하다.

( 다른것을 사용해도 됩니다. USB to 232 통신으로 업로드 가능)

ESP8266-01 핀 배열은 아래와 같다.

아두이노와 연결 방법은 밑에 그림과 같이 연결을 하면 됩니다.

다른곳들을 찾아보면 저항이 없이 연결을 하는데 그러면 안됩니다.

ESP8266은 3.3V 를 이용한 제품입니다.

아두이노는 5V를 이용하고 있고요. RX,TX 조차 5V 전압으로 통신을 하기 때문에 3.3V로 만들어 줘야지 확실한 방법입니다.

 ESP-01

Arduino UNO

 설명

 1

 VCC

 VCC (3.3V)

 3.3V 전원을 넣어줘야 합니다.

 2

 RST

 생략

 생략 해도 됩니다.

 3

 CH_PD

 VCC (3.3V)

 VCC와 같이 3.3V 전원을 넣어줘야 합니다.

 4

 TXD

 TXD

 데이터 송신

 5

 RXD

 RXD

 데이터 수신

 6

 GPIO0

 GND

 펌웨어 업로드 할때만 그라운드에 연결해 줍니다.

 7

 GPIO2

 생략

 생략

 8

 GND

 GND

 그라운드 접지에 연결 합니다.

사진에서 빨간색 네모박스와 분홍색 부분이 GPIO0번 부분이다.

이부분에서는 펌웨어 업로드 할때문 사용하고 그 이후에는 제거를 해야 한다.

제일 중요한 부분이니 잊으시면 안됩니다.

 

  1. ESP8266_flasher_V00170901_00_Cloud Update Ready

2. v0.9.2.2 AT Firmware

ESP8266_flasher_V00170901_00_Cloud Update Ready.zip 압축을 풀면 아래와 같은 파일이 나온다.

esp8266_flasher.exe 프로그램을 이용하여 업로드를 하는것인다.

ESP_8266_BIN0.92.bin 이 파일은 115200bps용으로 AT명령어를 사용가능함

 

COM3 -> 아두이노 우노 연결된 포트를 적는다.

BIN 버턴을 눌러서 2번 파일을 설정후 다운로더를 한다.

그럼 위와 같은 그림과 같이 끝났다고 나옵다.

이때

저 빨간 박스와 같은 글씨가 아닌 다른 글씨가 보일 경우 다시 실행을 한다.

*GPIO0번을 제거한다!!

위의 업로드가 끝이 나면 아두이노 시리얼을 열어서 확인을 한다.

명령어를 실행 하려면 9600baud로 맞춰야지만 글씨가 깨지지 않을 것이다.

이렇게 하면 펌웨어는 성공적으로 완료~!!

 

 

—-추가——

아두이노 소스 SoftwareSerialExample.ino

/*
Software serial multple serial test

Receives from the hardware serial, sends to software serial.
Receives from software serial, sends to hardware serial.

The circuit:
* RX is digital pin 10 (connect to TX of other device)
* TX is digital pin 11 (connect to RX of other device)

Note:
Not all pins on the Mega and Mega 2560 support change interrupts,
so only the following can be used for RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

Not all pins on the Leonardo and Micro support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

created back in the mists of time
modified 25 May 2012
by Tom Igoe
based on Mikal Hart’s example

This example code is in the public domain.

*/
#include <SoftwareSerial.h>

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

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}

Serial.println(“Goodnight moon!”);

// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.println(“Hello, world?”);
}

void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}

 

연결 방법

처음에 연결할때와 다른것은 소프트 시리얼을 사용한다는것이다.