ESP8266

덤프버전 :

1. 개요
2. 사양
3. 특징
4. 모듈 및 개발 보드
4.1. ESP-01 모듈
4.2. ESP-05
4.3. Lolin WeMos D1 시리즈
4.4. NodeMCU Devkit
5. 여담
6. 관련 문서



1. 개요[편집]


ESP8266(또는 ESP8266EX)은 Wi-Fi 무선 통신 기능을 탑재한 저전력 마이크로컨트롤러로, 중국 상하이에 소재한 에스프레시프 시스템즈(Espressif Systems/乐鑫信息科技)사에서 2014년에 출시하였다.[1] 같은 회사에서 개발한 후속 제품인 ESP32[2]와 함께, 저렴한 가격에 IoT 시나리오를 구현할 수 있는 마이크로컨트롤러로 널리 사용되고 있다.

현재는 나온지도 좀 된데다 추가적인 제품 업데이트도 없어서 제조사 측에서도 ESP32-C2제품으로 옮겨갈것을 권장하고 있다.

2. 사양[편집]


현재 나오는 모든 제품들은 전부 ESP8266EX 베이스다
하드웨어
스펙
CPU
Tensilica Xtensa® L106(Diamond Standard 106Micro) @80/160MHz (32-bit RISC)
동작전압
2.7V~3.6V
Wi-Fi(MODE)
802.11 b/g/n(HT20) 프로토콜[3]
I/O(pinout)
17[4]
메모리(RAM)
160KB(iRAM64KB,dRAM96KB) [5]
메모리(SRAM)
1KB
외장플래쉬
512KB(최소사양),OTA(on the air)최소사양(1MB)~16MB까지 지원[6][7]

3. 특징[편집]


제품이 처음 출시된 2014년 당시에는 개발사가 영세한 업체였던지라, 영어로 된 데이터시트 하나가 없을 정도였다. 하지만 Wi-Fi, TCP/IP 스택을 한꺼번에 처리 가능한 칩을 중국에서 말도 안 되는 가격에 풀고 있다더라... 라는 입소문을 타고 세계적으로 인기를 끌기 시작했고, 개발사는 일약 스타덤에 올랐다.

현재는 제조사에서 공식적으로 Non-OS SDKFreeRTOS SDK를 제공한다. 그 외에도 커뮤니티에서 개발한 아두이노 코어 호환 SDK를 사용하면 아두이노 호환 보드처럼 사용할 수 있고, NodeMCU를 이용해 Lua 언어로 개발할 수도 있다. (둘 다 Non-OS SDK 기반)

매우 저렴하게 Wi-Fi를 쓸 수 있다는 점 때문에 와이파이를 지원하지 않는 보드와 조합하여 시리얼 Wi-Fi 어댑터 용도로도 쓰기도 한다. 예를 들어 Arduino UNO Wi-Fi 보드는 우노에다가 ESP8266을 달아놓는 식으로 구현되었다.

단점은 I/O 성능이 좀 많이 모자르다. 전체 핀 개수가 32개이긴 하나 이중 유저가 실제로 사용 가능한 I/O는 17개인데 이중에서 6개는 상위 문단에서 설명한것처럼 프로그램용 외장 플래시용으로 할당되어 있기 때문에 실제로는 11개만 사용가능하며 주변기능도 4채널밖에 없는 PWM과 1채널짜리인 ADC등 많이 빈약하다.

4. 모듈 및 개발 보드[편집]


시장에는 ESP8266 칩과 무선 안테나, SPI 플래시 등을 조합하여 구성된 반제품 모듈과 개발 보드가 여럿 존재한다. 이 중 반제품 모듈로 많이 팔리는 ESP-xx 시리즈는 서드파티 제조사인 Ai-Thinker(安信可科技)에서 개발한 것이고, ESP-WROOM 시리즈는 Espressif에서 직접 제작한 것이다.

ESP-xx 시리즈의 경우 히트스프레더에 Ai 로고가 찍혀 있지 않은 것들은 짝퉁이다. 다만 원체 구조가 단순하기 때문에 짝퉁이라도 작동에 별 문제는 없다.

그 외에도 NodeMCU DevKit, SparkFun ESP8266 Thing 등의 서드파티 모듈이 존재한다.

4.1. ESP-01 모듈[편집]


파일:ESP8266_ESP01.svg
ESP8266을 SMD 장착한 아두이노 WiFi모듈(ESP-01)의 그래픽 예시
ESP8266은 와이파이 모드(mode)에서는 AP(다이렉트 WiFi),STA(무선업로드OTA) 그리고 AP및STA동시동작 모드를 지원하고 있다. [8][9] [10]
ESP-01 모듈은 다음과 같은 라이브러리들을 사용해 아두이노 언어로도 프로래밍할 수 있도록 지원하고 있다.

#include <ESP8266WiFi.h>

#include <WiFiUdp.h>

#include <ESP8266HTTPClient.h>


4.2. ESP-05[편집]


ESP-05는 ESP 8266 시리즈중에서 유일하게 프로그래밍이 지원되지 않는 통신모듈이다. [11][12]
추가적으로 방향형 안테나를 물리적으로 지원하고 있으며 AT커맨드를 사용해 중계 및 확장이 가능하다.[13]


4.3. Lolin WeMos D1 시리즈[편집]


Lolin이라는 서드파티 브랜드 제품으로, ESP8266의 Arduino SDK 호환성에 주목하여 Wi-Fi 통신이 가능한 아두이노 호환품이라는 컨셉으로 제작된 제품군이다. 물론 근본적으로는 Pinout만 아두이노처럼 해 놓은 ESP8266 보드이기 때문에 꼭 아두이노 SDK를 쓰지 않아도 작동은 한다.

후속작으로 ESP32 MCU를 사용한 WeMos D32가 있다.


4.4. NodeMCU Devkit[편집]


Vowstar라는 아이디를 쓰는 중국인 개발자 황루이(黄锐)등이 제작한 ESP8266 보드. 오픈소스 하드웨어로, GitHub설계도 파일이 올라와 있어서 많은 제조사에서 찍어내고 있다. 조립 시 ESP-12E 모듈을 이용한다.

Lua 언어로 ESP8266 프로그래밍이 가능하도록 해 주는 NodeMCU 펌웨어는, 초기 개발 당시 이 보드에 쓸 것을 상정하고 만들어졌기 때문에 같은 이름이 붙었다. 다만 현 시점에서는 NodeMCU Devkit을 쓴다고 NodeMCU 펌웨어를 꼭 이용해야 하는 것은 아니고, 그 반대의 경우도 마찬가지이다.


5. 여담[편집]


수천원대의 엄청난 가성비와 성능 덕분에 다양한 용도로 널리 사용되고 있으며, 최근에는 레트로 게임쪽에서도 여러가지로 활용되고 있는 추세. ESP8266은 가성비 업스캔 컨버터로 인기를 얻은 GBS-C의 개조 펌웨어 탑재용으로 사용되었으며, ESP32는 다수의 레트로 콘솔에 블루투스 컨트롤러를 지원시켜주는 Blue Retro에 활용되었다.


6. 관련 문서[편집]



파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-24 06:53:40에 나무위키 ESP8266 문서에서 가져왔습니다.

[1] Espressif Systems - Milestones[2] 8266은 wifi만 지원하는 데 반해 ESP32는 wifi + 블루투스까지 지원하나 체급 자체가 다른 제품군인데다 보통 블루투스 지원 제품은 노르딕 사의 nRF제품군이 최우선으로 고려되기 때문에 덜 유명하다.[3] \[ESP8266 Arduino Core\] ESP8266WiFi libraryhttps://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html[4] 이중 6핀은 프로그래밍용 플래시/ROM용으로 고정되어 있어 실제로는 사용이 제한된다.[5] \[espressif\] ESP8266 Non-OS SDK API Referencehttps://www.espressif.com/sites/default/files/documentation/2c-esp8266_non_os_sdk_api_reference_en.pdf#page=20[6] ESP8266칩 자체는 플래시가 없는데 내장된 플래시가 없으면 프로그래밍에 지장이 있기 때문에 실제로 쓰는 WROOM모듈의 경우에는 아무리 낮아도 1MB의 플래시가 같이 장착되며 때문에 모듈은 17개의 I/O중에 6핀이 플래시용으로 떨어져 나간다. 공식 데이타시트에서는 1MB(OTA지원시) 또는 512KB이상(OTA(over the air)미지원)을 권장하고 있다.[7] ESP8266EX Datasheet Version 6.8 ,Espressif Systems https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf[8] \[ESP8266 Arduino Core\] WiFi(ESP8266WiFi library) http://arduino.esp8266.com/Arduino/versions/2.1.0-rc1/doc/libraries.html[9] arduino.cc(아두이노 공식사이트 포럼) ESP8266 WIFI_AP_STA with internethttps://forum.arduino.cc/t/esp8266-wifi_ap_sta-with-internet/673601[10] (깃허브) esp8266/Arduino 라이브러리https://github.com/esp8266/Arduino[11] \[Makey\]ESP-05 와의 UDP 첫 걸음 https://time2love.tistory.com/17[12] Espressif Systems - ESP8266 https://www.espressif.com/en/products/socs/esp8266ex/resources/[13] \[Espressif Systems\] ESP-AT User Guide https://espressif-docs.readthedocs-hosted.com/_/downloads/esp-at/en/release-v2.2.0.0_esp8266/pdf/