ESP8266

섬네일|Ai-Thinker의 ESP8266EX SoC가 장착된 ESP-01 모듈

ESP8266은 중국 상하이의 Espressif Systems에서 생산된 저비용 와이파이마이크로칩으로, 내장된 TCP/IP 네트워킹 소프트웨어와 마이크로컨트롤러 기능을 갖추고 있다.

이 칩은 2014년 8월, 타사 제조업체 Ai-Thinker가 만든 ESP-01 모듈을 통해 영어권 메이커 커뮤니티에서 인기를 얻었다. 이 작은 모듈은 마이크로컨트롤러가 와이파이 네트워크에 연결하고 헤이즈 스타일 명령을 사용하여 간단한 TCP/IP 연결을 할 수 있도록 한다. 그러나 처음에는 이 칩과 칩이 수용하는 명령에 대한 영어 문서가 거의 없었다. 매우 낮은 가격과 모듈에 외부 부품이 거의 없다는 사실은 대량 생산 시 매우 저렴해질 수 있음을 시사하며, 많은 해커들이 모듈, 칩 및 소프트웨어를 탐구하고 중국어 문서를 번역하도록 이끌었다.

ESP8285는 1 MiB 플래시 메모리가 내장된 유사한 칩으로, 와이파이를 통해 연결할 수 있는 단일 칩 장치를 설계할 수 있도록 한다.

이 마이크로컨트롤러 칩들은 ESP32 제품군에 의해 계승되었다.

 특징 
섬네일|ESP-01 모듈 와이어프레임 도면
 프로세서: 80 또는 160 MHz에서 작동하는 Tensilica Diamond Standard 106Micro 기반의 L106 32비트 RISC 마이크로프로세서 코어
 160 Kbytes의 RAM 메모리는 다음으로 분할된다.
 32 KB 명령어 RAM (iRAM)
 32 KB 명령어 캐시 RAM
 96 KB의 dRAM은 SDK 및 힙 메모리용 80 KB dRAM과 ROM용 16 KB로 분할됨
 외부 QSPI 플래시: 최대 16 MiB 지원 (일반적으로 512 KiB ~ 4 MiB 포함)
 IEEE 802.11 b/g/n 와이파이
 통합 TR 스위치, 발룬, LNA, 전력 증폭기 및 매칭 네트워크
 WEP 또는 WPA/WPA2 인증 또는 개방형 네트워크
 17 GPIO 핀
 SPI
 I²C (소프트웨어 구현)
 DMA가 있는 I²S 인터페이스 (GPIO와 핀 공유)
 전용 핀의 UART 및 GPIO2에서 송신 전용 UART 활성화 가능
 10비트 ADC (축차 근사 ADC)

 ESP-01 핀 배열 
섬네일|ESP-01 모듈 핀 배열
일반적인 ESP-01 모듈의 핀 배열은 다음과 같다:
 GND, 접지 (0 V)
 GPIO 2, 범용 입출력 2번
 GPIO 0, 범용 입출력 0번
 RX, 수신 데이터 입력, 또한 GPIO3
 VCC, 전압 (+3.3 V; 최대 3.6 V까지 처리 가능)
 RST, 리셋
 CH_PD, 칩 전원 차단
 TX, 송신 데이터 출력, 또한 GPIO1

섬네일|ESP8266 다이샷

 SDK 
2014년 10월, Espressif Systems는 칩을 직접 프로그래밍할 수 있는 SDK를 출시하여 별도의 마이크로컨트롤러가 필요 없게 되었다. 그 이후로 Espressif는 여러 공식 SDK 릴리스를 발표했으며, Espressif는 두 가지 버전의 SDK를 유지하고 있다. 하나는 FreeRTOS 기반이고 다른 하나는 콜백 기반이다.

Espressif의 공식 SDK 외의 대안으로는 Max Filippov가 유지 관리하는 GCC 툴체인 기반의 오픈 소스 ESP-Open-SDK가 있다. 또 다른 대안은 Mikhail Grigorev의 "비공식 개발 키트"이다.

주로 오픈 소스인 다른 SDK는 다음과 같다.
 아두이노 — C++ 기반 펌웨어. 이 코어로 ESP8266 CPU와 와이파이 구성 요소를 다른 아두이노 장치처럼 프로그래밍할 수 있다. ESP8266 아두이노 코어는 깃허브를 통해 이용할 수 있다.
 ESP8266 BASIC — 특히 사물인터넷(IoT)에 맞춰진 오픈 소스 베이직 유사 인터프리터. 자체 호스팅 브라우저 기반 개발 환경.
 ESP Easy — 가정 자동화 애호가들이 개발.
 ESPHome — ESPHome은 간단하면서도 강력한 구성 파일로 ESP8266/ESP32를 제어하고 가정 자동화 시스템을 통해 원격으로 제어하는 시스템이다.
 Tasmota - 가정 자동화를 위한 오픈 소스 펌웨어.
 ESP-Open-RTOS — 오픈 소스 FreeRTOS 기반 ESP8266 소프트웨어 프레임워크.
 ESP-Open-SDK — ESP8266/ESP8285 칩용으로 가능한 한 자유롭고 개방적인 통합 SDK.
 Espruino — Node.js를 밀접하게 모방한 활발히 유지 관리되는 자바스크립트 SDK 및 펌웨어. ESP8266을 포함한 몇몇 MCU를 지원.
 ESPurna — 오픈 소스 ESP8285/ESP8266 펌웨어.
 Forthright — 존스 포스(Jones Forth)의 ESP8266 마이크로컨트롤러 포트.
 MicroPython — ESP8266 플랫폼으로 마이크로파이썬(임베디드 장치용 파이썬 구현)을 포팅한 것.
 Moddable SDK — ESP8266용 자바스크립트 언어 및 라이브러리 지원 포함
 Mongoose OS — 연결된 제품을 위한 오픈 소스 운영 체제. ESP8266 및 ESP32 지원. C 또는 자바스크립트로 개발.
 NodeMCU — Lua 기반 펌웨어.
 PlatformIO — 아두이노 코드 및 라이브러리 위에 있는 크로스 플랫폼 IDE 및 통합 디버거.
 Punyforth — ESP8266용 포스(Forth)에서 영감을 받은 프로그래밍 언어.
 Sming — 뛰어난 성능과 다양한 네트워크 기능을 갖춘 활발히 개발 중인 비동기 C/C++ 프레임워크.
 uLisp — 제한된 RAM을 가진 프로세서에서 실행되도록 특별히 설계된 리스프 프로그래밍 언어 버전.
 ZBasic for ESP8266 — 널리 사용되는 마이크로소프트 비주얼 베이직 6의 서브셋으로, ZX 마이크로컨트롤러 제품군 및 ESP8266의 제어 언어로 채택되었다.
 Zerynth — 파이썬으로 ESP8266 및 기타 마이크로컨트롤러를 프로그래밍하기 위한 IoT 프레임워크.
 EspOS 웹 서버, 쉬운 IoT 솔루션.

 Espressif 모듈 
섬네일|ESP-WROOM-02
다음은 Espressif에서 만든 ESP8266 기반 모듈 시리즈이다.

위 표(및 이어지는 두 표)에서 "활성 핀"은 외부 장치를 ESP8266 MCU에 연결할 수 있는 GPIO 및 ADC 핀을 포함한다. "피치"는 ESP8266 모듈의 핀 간 간격으로, 장치를 브레드보드에 사용할 경우 알아야 할 중요한 정보다. "폼 팩터"는 "2 × 9 DIL"과 같이 모듈 패키징을 설명하는데, 이는 DIP IC의 핀처럼 "듀얼 인 라인"으로 배열된 9개 핀의 두 줄을 의미한다. 많은 ESP-xx 모듈에는 작은 온보드 LED가 포함되어 있어 깜빡이도록 프로그래밍하여 활동을 나타낼 수 있다. ESP-xx 보드에는 트레이스 안테나, 온보드 세라믹 안테나, 외부 Wi-Fi 안테나를 연결할 수 있는 외부 커넥터 등 여러 안테나 옵션이 있다. Wi-Fi 통신은 많은 RFI(무선 주파수 간섭)를 발생시키므로, FCC와 같은 정부 기관은 다른 장치와의 간섭을 최소화하기 위해 차폐된 전자 장치를 선호한다. 일부 ESP-xx 모듈은 FCC 승인 스탬프가 찍힌 금속 상자에 들어 있다. 선진국 시장에서는 FCC 승인 및 차폐된 Wi-Fi 장치가 요구될 가능성이 높다.

 Ai-Thinker 모듈 
alt=ESP-01 모듈|섬네일|Ai-Thinker ESP8266 모듈(ESP-12F, 검은색)이 브레이크아웃 보드(흰색)에 납땜되어 있다
다음은 타사 제조업체 Ai-Thinker가 ESP8266으로 만든 첫 번째 모듈 시리즈이며 가장 널리 사용된다. 이들은 총칭하여 "ESP-xx 모듈"이라고 불린다. 작동 가능한 개발 시스템을 구축하려면 추가 구성 요소, 특히 직렬 TTL-USB 어댑터(때로는 USB-UART 브리지라고도 함)와 외부 3.3V 전원 공급 장치가 필요하다. 초보 ESP8266 개발자는 USB-UART 브리지와 3.3V 전압 레귤레이터가 보드에 내장된 마이크로 USB 커넥터가 포함된 NodeMCU와 같은 대형 ESP8266 Wi-Fi 개발 보드를 고려하는 것이 좋다. 프로젝트 개발이 완료되면 이러한 구성 요소는 필요하지 않으며, 이러한 저렴한 ESP-xx 모듈은 생산 실행을 위한 저전력, 소형 풋프린트 옵션이다.

참고 열에서 플래시 메모리 크기는 주어진 모듈과 표의 모든 하위 모듈에 적용된다. 단일 모듈에 적용되는 예외는 괄호 안에 표시된다.

 기타 보드 
섬네일|SparkFun ESP8266 Thing
이 보드들이 초기 ESP-xx 모듈보다 인기가 있는 이유는 온보드 USB-UART 브리지(Silicon Labs의 CP2102 또는 WCH CH340G 등)와 마이크로 USB 커넥터가 포함되어 있기 때문이다. 이들은 3.3V 레귤레이터와 결합되어 보드에 전원을 공급하고 호스트(소프트웨어 개발) 컴퓨터, 즉 콘솔과 연결성을 제공하여 쉬운 개발 플랫폼이 된다. 초기 ESP-xx 모듈에서는 이 두 가지 항목(USB-직렬 어댑터 및 레귤레이터)을 별도로 구매하여 ESP-xx 회로에 연결해야 했다. NodeMCU와 같은 최신 ESP8266 보드는 작업하기 더 쉽고 더 많은 GPIO 핀을 제공한다. 여기에 나열된 대부분의 보드는 ESP-12E 모듈을 기반으로 하지만, 새로운 모듈이 몇 달마다 계속해서 출시되고 있는 것처럼 보인다.

 ESP32-C3 
2020년, Espressif는 ESP8266과 핀 호환이 되는 새로운 칩인 ESP32-C3를 발표했다. 이 칩은 최대 160 MHz의 클럭 속도를 가진 단일 코어 RISC-V 32비트 CPU를 기반으로 하며, 400 KiB의 SRAM과 384 KiB의 ROM 저장 공간이 내장되어 있다.

 같이 보기 
 ESP32 – Espressif의 후속 제품
 사물인터넷
 MCU (마이크로컨트롤러 유닛)

 각주 

 외부 링크 

 아두이노 IDE용 ESP8266 코어

분류:마이크로컨트롤러
분류:사물인터넷
분류:2014년 설립