ESP32란 무엇인가?
ESP32는 아무 데서나 나타난 듯했습니다. 이제는 어디에나 있습니다! Wi-Fi 네트워크와 Bluetooth 장치와의 연결을 간소화하여 메이커 커뮤니티의 필수품이 되었습니다. 간략한 역사, 시작 방법, 제공되는 개발 지원을 살펴보겠습니다.
ESP32는 메이커 친화적이고 Wi-Fi를 지원하는 다양한 개발 보드와 칩을 통틀어 부르는 용어가 되었습니다. 이들은 2008년에 설립된 중국에 있는 패블리스 실리콘 공급업체인 Espressif의 실리콘을 사용합니다. 첫 번째 제품인 2.4GHz Wi-Fi 시스템 온 칩(SoC)은 2013년에 출시되었습니다. ESP8089라는 이름은 태블릿과 셋톱 박스 애플리케이션을 대상으로 했습니다. 하지만 이 제품군을 메이커 커뮤니티의 주목을 받게 한 것은 2014년에 출시된 ESP8266입니다.
Espressif의 비전은 무선 지원, 저전력 기술을 통해 최첨단 사물 인공지능(AIoT) 솔루션을 시장에 출시하는 데 중점을 두고 있습니다. ESP8266은 Wi-Fi 네트워크를 통해 통신하는 데 필요한 소프트웨어와 결합된 사용하기 쉬운 단일 칩 장치를 제공함으로써 이러한 스레드를 하나로 모았습니다.
ESP32의 전원은?
ESP8266의 내부는 Tensilica Xtensa L106 32비트 RISC 프로세서로 구동됩니다. 이 다소 이국적인 아키텍처는 Cadence에서 라이선스 가능한 지적 재산(IP)으로 제공되며, 2007년 보도 자료에 따르면 Arm Cortex-M3보다 더 많은 Dhrystone MIPS 성능을 제공했습니다. 또한, 그들은 코어가 MHz당 더 낮은 mW에서 작동한다고 주장했는데, 이는 배터리로 구동되는 사물 인터넷(IoT) 애플리케이션을 다룰 때 매력적일 것입니다.
메이커 커뮤니티는 2014년 Hackaday가 Seeed Studio를 통해 판매되는 새로운 5달러짜리 Wi-Fi 모듈을 출시한다고 발표했을 때 이러한 장치를 처음 알게 되었습니다. ESP-01로 알려진 이 모듈은 중국에 본사를 둔 타사 제조업체인 Ai-Thinker에서 제작했습니다. 8개의 핀 중 2개가 AT 명령을 통해 모듈을 제어하는 UART 인터페이스를 제공했기 때문에 이 모듈은 Arduino 플랫폼과 쉽게 통합할 수 있었고 Arduino Uno와 같은 간단한 보드에도 인터넷 연결을 제공했습니다. 유일한 걸림돌은 모든 문서가 중국어로 작성되었다는 것입니다. 그러나 자원봉사자들이 Google Translate를 사용하여 사용 가능한 문서를 번역하고 소프트웨어 라이브러리를 작성하면서 메이커 커뮤니티에게는 사소한 방해가 되었습니다.
ESP32가 왜 그렇게 저렴할 수 있을까요?
ESP8266 기반 모듈의 장점(그림 1)은 기능적인 Wi-Fi 모듈을 구축하는 데 필요한 구성 요소의 수가 제한되어 있다는 것입니다. 3.3V 전원이 가능하다고 가정하면 설계에는 소수의 저항과 커패시터, PCB 안테나, 외부 QSPI 직렬 플래시, 24~52MHz 사이에서 작동하는 크리스털만 있으면 됩니다. 전원을 켜면 ESP8266은 플래시에서 펌웨어를 가져온 다음 실행되는 내부 SRAM에 복사합니다.
그림 1: 클록 애플리케이션에 Wi-Fi 연결을 제공하는 ESP8266
물론 모듈이 완전한 마이크로컨트롤러 솔루션이라는 것은 명백했습니다. 프로세서는 범용 입출력(GPIO), 펄스 폭 변조(PWM) 출력, 아날로그-디지털 변환기(ADC) 및 모든 표준 직렬 인터페이스를 갖추고 있습니다. 그렇다면 중간자를 없애고 ESP8266 자체를 프로그래밍할 수 있는데 왜 Arduino나 다른 프로세서를 위한 코드를 개발해야 할까요?
2014년 말까지 Espressif는 사용자 코드를 Wi-Fi 소프트웨어와 함께 실행할 수 있는 소프트웨어 개발 키트(SDK)를 출시했습니다. 마침내 IoT 유형 애플리케이션이 ESP-01과 같은 모듈에서 독립적으로 실행될 수 있었습니다. SDK는 두 가지 유형으로 제공되었습니다. 실시간 운영 체제 FreeRTOS 기반 버전과 콜백 및 타이머를 사용하여 사용자 코드가 Wi-Fi 소프트웨어 스택과 공정하게 처리 시간을 공유하도록 보장하는 또 다른 버전입니다. 데이터시트에 따르면 개발자는 코드에 약 50kB의 메모리만 남았습니다.
새로운 ESP32 제품 출시
그 이후로 Espressif는 무선 SoC의 성공을 꾸준히 쌓아 왔습니다. 그들은 실리콘을 공급할 뿐만 아니라 제작자와 개발자가 애플리케이션을 빠르게 프로토타입화할 수 있도록 하는 다양한 기성 모듈도 제공합니다.
현재 출시된 ESP32 시리즈 기기는 듀얼 코어 Tensilica Xtensa LX6 32비트 마이크로프로세서를 탑재하고 있습니다. 48핀으로 520kB의 SRAM을 제공하고 일부 기기의 경우 4~8MB의 플래시 메모리를 제공합니다. 2.4GHz Wi-Fi 및 Bluetooth/Bluetooth LE 버전 4.2는 연결 측면에서 사용할 수 있습니다. 기본적으로 프로그래밍 가능한 유한 상태 머신(FSM)인 초저전력(ULP) 코프로세서도 사용할 수 있습니다. 이는 절전 모드에서 일부 주변 장치를 모니터링할 수 있으므로 배터리 구동 애플리케이션에서 센서의 웨이크 신호를 감지하는 데 이상적입니다.
56핀 ESP32-S2(단일 코어) 및 ESP-S3(듀얼 코어) 시리즈를 사용하면 개발자는 Xtensa LX7 32비트 프로세서의 이점을 누릴 수 있습니다. 이 240MHz 코어는 벡터 명령어를 제공하여 신경망과 신호 처리에서 사용하는 코드에 대한 가속을 제공합니다. Wi-Fi와 Bluetooth가 모두 탑재되어 있지만, 후자는 버전 5.0으로 업그레이드되었습니다. 인터페이스 주변 장치는 USB 온더고(OTG)와 TWAI™(Two-Wire Automotive Interface) 모듈이 추가되어 거의 동일하게 유지됩니다. 후자는 ISO 11898-1(CAN이라고도 함)과 호환됩니다. RSA 기반 보안 부팅, 플래시 암호화, 해시 기반 메시지 인증 코드(HMAC) 가속기를 사용할 수 있어 보안도 강화되었습니다.
최근에는 RISC-V 프로세서가 라인업에 도입되었습니다. ESP32-C3는 단일 코어 옵션과 최대 160MHz 작동만 제공하지만(그림 2), 2.55 CoreMark/MHz 성능은 기본적으로 ESP32-S 시리즈의 Xtensa LX7과 동일합니다. 그렇지 않으면 주변 장치와 메모리 측면에서 기능 세트는 ESP32-S와 거의 일치하지만 핀 수는 32개로 제한됩니다.
그림 2: ESP32-C3는 ESP32-S 시리즈와 기본적으로 동일한 주변 장치 옵션을 제공하지만 핀 수가 적고 Xtensa LX7을 대체하는 RISC-V 코어가 있습니다.
ESP32 애플리케이션 빌드
개발자로서 애플리케이션 코드를 빌드할 때 다양한 옵션을 사용할 수 있습니다. Arduino에 대한 경험이 있는 제작자의 경우 가장 쉽게 시작할 수 있는 곳은 기존 Arduino IDE 설치입니다. 파일 -> 환경 설정을 통해 Arduino-ESP32 패키지의 위치를 추가한 다음 도구 -> 보드 -> 보드 관리자에서 ESP32를 선택하기만 하면 됩니다(그림 3). 완료되면 모든 표준 Arduino 플랫폼과 마찬가지로 파일 -> 예제 아래에 다양한 예제가 표시됩니다. 소스 코드는 표준 '.ino' 파일로 저장되고, 애플리케이션은 익숙한 setup() 및 loop() 함수로 작성됩니다.
그림 3: Arduino IDE에 익숙한 사람은 보드 관리자를 통해 ESP32 지원을 통합할 수 있습니다.
일반적인 마이크로컨트롤러 개발의 좌절 중 하나는 작동하는지 확인하기 전에 코드를 컴파일한 다음 다운로드해야 한다는 것입니다. 이는 상당한 시간이 필요할 수 있으며 코드 한 줄을 변경했다고 해서 더 빨리 진행되지 않습니다. 더 빠른 코딩 환경을 원하시면 Annex WiFi RDS에서 제공하는 BASIC 옵션을 살펴보세요. 개발 환경은 웹 브라우저 기반입니다. 환경은 도구로 코드를 플래시하면 대상 ESP32 장치에 다운로드되어 Wi-Fi에 연결됩니다. 연결되면 선택한 브라우저를 사용하여 코드(목록 1)를 작성할 수 있으며 컴파일이 아닌 해석되므로 완료되는 즉시 코드가 실행됩니다.
led = 2 ’ GPIO02. Change with the pin where your led is connected
pin.mode led, output
for z = 0 to 1000
pin(led) = 1 - pin(led)
pause 500
next z
리스트 1: Annex WiFi RDS 개발 환경을 사용하여 LED를 깜빡이는 BASIC 코드 예.
물론 IoT 솔루션을 만드는 데 있어 타사의 풍부한 지원을 간과할 수 없습니다. Espressif는 Amazon AWS와 함께 ESP-EYE 개발 보드로 이미지 인식 및 오디오 처리를 위한 완벽한 인공 지능 솔루션을 제공합니다. 또는 Amazon Alexa 지원을 찾고 있다면 ESP32-WROVER-E 시리즈 모듈을 기반으로 하는 ESP32-Vaquita 보드도 있습니다.
무엇을 만들까요?
Espressif가 ESP32 칩과 모듈로 이렇게 짧은 시간 안에 성공을 거둔 것은 매우 인상적입니다. 몇몇 기존 유럽 및 미국 MCU 공급업체와 비교해 보면, 그들은 세부 사항에 대한 진정한 관심을 보였고, 좋은 문서화를 했으며, 주변 장치를 작동시키는 데 필요한 소프트웨어를 제공했고, 상당한 범위의 예제 애플리케이션도 제공했습니다.
그림 4: 이 ESP32 기반 소형 Mac이 증명하듯, 여러분의 상상력만이 한계입니다!
그리고 우리는 깜박이는 LED와 ADC를 읽는 것에 대해서만 이야기하는 것이 아닙니다. 일부 애플리케이션은 전문 엔지니어링 팀에게도 육즙이 많고 도전적일 것입니다. 제작자들이 흥미로운 점은 코드 개발에 사용할 수 있는 다양한 개발 플랫폼과 이 강력한 작은 칩을 뒷받침하는 훌륭한 커뮤니티입니다. 따라서 무엇을 만들고 싶든 무선 연결이 필요하다면 ESP32를 사용하면 크게 실수하지 않을 것입니다.
https://www.elektormagazine.com/articles/what-is-the-esp32
'ESP32' 카테고리의 다른 글
ESP32 4개의 센서 모니터링, 18개의 릴레이(12개 릴레이 + 예약된 릴레이 6개) 제어 (4) | 2024.11.29 |
---|---|
ESP32 Arduino IDE에 설치하기 (2) | 2024.11.26 |
Arduino core for the ESP32, Github 자료 (2) | 2024.11.26 |
시간 간격을 설정하고 그 시간이 지났는지 확인하는 코드 (2) | 2024.11.26 |
ESP32 SerialBT 사용할 때 파싱 문자 반복 인식 (0) | 2024.11.25 |
ESP32-S3 개발 기판 2.4G Wi-Fi 모듈용 아두이노용 ESP IDF ESP32-S3-WROOM-1 N8R2 N16R8 44핀 Type-C 8M PSRAM ESP32 S3 (1) | 2024.11.24 |
ESP32 부저 회로도 (0) | 2024.11.22 |
ESP32 WROOM 핀아웃: ESP32 GPIO 핀 사용 (1) | 2024.11.19 |
더욱 좋은 정보를 제공하겠습니다.~ ^^