코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-02-17 16:31:30
아두이노를 사용함에 있어서 가장 꽃이라고 한다면 무선이 아닐까 싶습니다. 그 중에서도 인터넷과 무선으로 연결할 수 이는 WiFi는 그 중에서 최고라고 할 수 있습니다.(kocoafab에도 블루투스와 더불어 가장 많은 문의 글이 올라오는 분야가 아닐까 싶습니다.)
WiFi통신을 사용하면 API를 통해 인터넷에서 날씨를 받아올 수도 있고, IoT구현이나 홈오토메이션, 블루투스, Zigbee를 대체할 수 있는 근거리 통신도 가능합니다.
<아두이노와 라즈베리파이를 이용한 홈 오토메이션 구상도>
하지만 WiFi를 사용하기 위해서는 별도의 모듈이나 쉴드가 필요한데, 사용하기는 쉽지만 크기나 가격이 사용자에게 상당한 부담으로 다가오게 됩니다.(쉴드의 경우 약 12만원 대)
<WiFi쉴드는 사용하기 편하지만 가격면에서는 상당히 아쉽다>
이럴 때 이 글에서 소개하는 ESP8266모듈은 이런 문제점을 대체할 수 있는 대안이 될 수 있습니다.
판매되는 가격은 약 $5달러 정도이며 국내에서는 대략 8,000원대로 구할 수 있었습니다. 쉴드와 비교한다면 1/10이상의 낮은 가격입니다.
사용해본 결과로는 방법이 약간 까다롭기는 하지만 사용할 수 있다면 싼 가격에 WiFi통신을 할 수 있는 매력적인 모듈입니다.
(ESP8266모듈이 나온지는 조금 지났지만 초창기에 ESP8266모듈이 중국쪽에서 나왔을때는 상당히 낮은 가격에 적잖은 충격을 안겨주었습니다.
기존의 아두이노 호환 WiFi모듈 가격에 비하면 터무니 없이 낮은 가격에 심지어 블루투스 HC-06보다도 낮은 가격에 WiFi통신을 할 수 있다는 점은 크나큰 메리트 였습니다.
하지만 낮은 가격에 비해 제공되는 정보가 너무 터무니 없이 없다보니 사용할 수 있는 방법을 찾기가 힘들었습니다.
이제는 나온지 꽤 됐기때문에 그나마 많은 정보를 얻을 수 있지만 그래도 인터넷에서 ESP8266을 검색하여 정보를 찾아보면 아직도 한국에서는 확실하게 그렇다 할 정보를 찾기가 힘듭니다.
정보를 구하기 힘들다는 것이 가장 큰 단점이 아닐까 싶습니다.)
이번 글에서는 간단하게 ESP에 대해 소개하고 펌웨어를 올리는 방법에 대해 설명하겠습니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | UNO 호환보드 |
2 | ESP8266 | 1 | WiFi통신 모듈 |
3 | FTDI모듈 | 1 | FTDI |
4 | mini USB케이블 | 1 | USB케이블 |
부품명 | 오렌지 보드 | ESP8266 | FTDI모듈 | mini USB케이블 |
파트 |
ESP8266은 TI CC3000과 같이 TCP/IP를 칩에 올려서 사용합니다.
ESP8266는 또 ATcommand를 통해 시리얼 모니터에서 명령어를 전송하여 WiFi통신을 제어할 수 있습니다.
그리고 가장 큰 특징은 내부에 32bit ARM-core 기반의 CPU가 존재하여 MCU가 할 수 있는 기능들(ADC, I2C, UART)을 모두 갖추어 있어 지금은 아두이노와 같이 사용하지만 추후에는 아두이노가 없이 ESP8266모듈만으로도 LED를 제어하는 것이 가능합니다.
Features
1. 802.11 b/g/n
2. Wi-Fi Direct (P2P), soft-AP
3. Integrated TCP/IP protocol stack
4. Integrated TR switch, balun, LNA, power amplifier and matching network
5. Integrated PLLs, regulators, DCXO and power management units
6. +19.5dBm output power in 802.11b mode
7. Power down leakage current of <10uA
8. 1MB Flash Memory
9. Integrated low power 32-bit CPU could be used as application processor
10. SDIO 1.1 / 2.0, SPI, UART
11. STBC, 1×1 MIMO, 2×1 MIMO
12. A-MPDU & A-MSDU aggregation & 0.4ms guard interval
13. Wake up and transmit packets in < 2ms
14. Standby power consumption of < 1.0mW (DTIM3)
Documents
SparkFun 데이터 시트 - https://cdn.sparkfun.com/datasheets/Wireless/WiFi/ESP8266ModuleV1.pdf(그래픽 데이터 시트)
Adafruit 데이터 시트 - https://www.adafruit.com/images/product-files/2471/0A-ESP8266__Datasheet__EN_v4.3.pdf
ESP의 정보를 구할 수 있는 곳 - http://www.electrodragon.com/w/ESP8266_wiring_with_Arduino(비록 영문 사이트이긴 하지만 정보가 잘 정리되어 있습니다.)
ESP8266 연결 핀
※ 연결하실 때 가장 주의 해야할 점은 3.3V를 연결해야 합니다. 5V를 연결했다가는 모듈이 망가질 수 있으니 주의 하세요.
ESP8266 - FTDI 연결하기
가장 좋은 방법은 데이터 시트를 보고 따라 연결하는 것이 제일 안전합니다. 아두이노에서 나오는 전압은 5V인데 ESP8266은 3.3V로 동작하기 때문에 연결하는 방법 또한 상당히 까다롭습니다.
자칫 무시하고 5V로 연결했다가는 제대로 작동이 안될 수도 있고 심하면 모듈 자체가 나가버리기도 합니다.(저 역시 2개 중 하나 5V에 잠깐 연결해 놨었는데 그냥 바로 망가졌습니다.)
5V USB-Serial 모듈을 사용할 경우 위 회로에 맞추어 연결하는 것이 좋습니다.
3.3V를 사용할 경우에는 위 회로와 같이 연결해도 큰 문제는 없어 보입니다.
저 같은 경우는 위 회로와 같이 연결하여 펌웨어 업데이트에 성공하였습니다.
FTDI---------------ESP8266
GND ------------- GND
GND ----------- GPIO0
VCC ------------- VCC
VCC ----------- CH_PD
TX -------------- RXD
RX -------------- TXD
ESP8266을 사용하기 위해서는 모듈 내부를 세팅해주어야 합니다.
아두이노와 ESP8266을 시리얼로 연결하기 위해서는 아두이노UNO가 UART통신을 1개만 가지고 있기 때문에 하드웨어 시리얼은 더 이상 불가능 합니다. 그렇기 때문에 소프트웨어적 시리얼 통신을 해야하는데 그러기 위해서는 시리얼 통신의 속도를 9600bps로 설정해 주어야 합니다.
일단 먼저 펌웨어를 업데이트 할 수 있는 프로그램을 아래 링크에서 받습니다.
https://docs.google.com/file/d/0B3dUKfqzZnlwVGc1YnFyUjgxelE/edit
그리고 펌웨어 파일도 아래 링크에서 내려 받습니다.
https://docs.google.com/file/d/0B3dUKfqzZnlwdUJUc2hkZDUyVjA/edit
펌웨어 프로그램을 실행시키면 아래와 같은 창을 볼 수 있습니다.
1. BIN을 누르면 펌웨어 파일을 선택할 수 있습니다. 위의 두 번째 링크에서 받은 파일의 디렉토리를 넣으면 됩니다.
2. COM1이라고 적혀진 부분에는 FTDI의 포트 번호를 적습니다. 장치관리자에서 확인 가능합니다.
3. 여기까지 따라하셨으면 Download를 하면 ESP8266 펌웨어 업데이트를 시작합니다.
업데이트가 끝나면 아래와 같이 Leaving이라고 뜹니다.
99%에서 멈추고 저 글씨가 떴더라도 Leaving이라는 글씨가 뜨면 펌웨어 업데이트가 완료된 것이니 선을 빼셔도 됩니다.
kocoafab
안녕하세요. 코코아팹 운영자입니다.