LAFVIN 로고ESP32 기본 스타터
전부

패킹 리스트

LAFVIN ESP32 기본 스타터 키트 - PackingList

ESP32 소개

ESP32를 처음 사용하시나요? 여기서 시작하세요! ESP32는 Espressif에서 개발한 저비용 저전력 SoC(System on a Chip) 마이크로컨트롤러 시리즈로, Wi-Fi 및 Bluetooth 무선 기능과 듀얼 코어 프로세서를 포함합니다. ESP8266에 익숙하다면 ESP32는 그 후속 제품으로, 많은 새로운 기능이 탑재되어 있습니다.LAFVIN ESP32 기본 스타터 키트 - ESP32 소개ESP32 사양
좀 더 기술적이고 구체적인 내용을 알고 싶다면 ESP32의 다음 자세한 사양을 살펴보세요(출처: http://esp32.net/)—자세한 내용은 데이터시트를 확인하세요):

  • 무선 연결 WiFi: HT150.0을 사용한 40Mbps 데이터 전송 속도
  • Bluetooth: BLE(Bluetooth Low Energy) 및 Bluetooth Classic
  • 프로세서: Tensilica Xtensa 듀얼 코어 32비트 LX6 마이크로프로세서, 160 또는 240MHz로 실행
  • 메모리:
  • ROM: 448KB(부팅 및 핵심 기능용)
  • SRAM: 520KB(데이터 및 명령어용)
  • RTC fas SRAM: 8KB(딥슬립 모드에서 RTC 부팅 중 데이터 저장 및 메인 CPU용)
  • RTC 느린 SRAM: 8KB(딥 슬립 모드 중 코프로세서 액세스용) eFuse: 1Kbit(256비트는 시스템(MAC 주소 및 칩 구성)에 사용되고 나머지 768비트는 플래시 암호화 및 칩 ID를 포함한 고객 애플리케이션에 예약됨)

내장형 플래시: ESP16-D17WD 및 ESP0-PICO-D1의 IO32, IO2, SD_CMD, SD_CLK, SD_DATA_32 및 SD_DATA_4을 통해 내부적으로 연결된 플래시입니다.

  • 0 MiB(ESP32-D0WDQ6, ESP32-D0WD 및 ESP32-S0WD 칩)
  • 2 MiB(ESP32-D2WD 칩)
  • 4 MiB(ESP32-PICO-D4 SiP 모듈)

저전력: 예를 들어 ADC 변환을 계속 사용할 수 있도록 보장합니다.ample, 깊은 잠을 자는 동안.
주변 장치 입력/출력:

  • 용량성 터치를 포함하는 DMA를 갖춘 주변 인터페이스
  • ADC(아날로그-디지털 변환기)
  • DAC(디지털-아날로그 변환기)
  • I²C(Inter-Integrated Circuit)
  • UART(Universal Asynchronous Receiver/Transmitter) (범용 비동기 수신기/송신기)
  • SPI(직렬 주변 장치 인터페이스)
  • I²S(통합 인터칩 사운드)
  • RMII(축소된 미디어 독립 인터페이스)
  • PWM(펄스 폭 변조)

보안: AES 및 SSL/TLS를 위한 하드웨어 가속기

ESP32 개발 보드

ESP32는 베어 ESP32 칩을 말합니다. 그러나 "ESP32"라는 용어는 ESP32 개발 보드를 지칭하는 데에도 사용됩니다. ESP32 베어 칩을 사용하는 것은 쉽지도 실용적이지도 않습니다. 특히 학습, 테스트 및 프로토타입을 만들 때 더욱 그렇습니다. 대부분의 경우 ESP32 개발 보드를 사용하고 싶을 것입니다.
ESP32 DEVKIT V1 보드를 참고로 사용하겠습니다. 아래 그림은 ESP32 DEVKIT V1 보드이며, GPIO 핀이 30개 있는 버전입니다.LAFVIN ESP32 기본 스타터 키트 - ESP32 개발 보드사양 – ESP32 DEVKIT V1
다음 표는 ESP32 DEVKIT V1 DOIT 보드의 기능과 사양을 요약한 것입니다.

코어 수 2(듀얼코어)
와이파이 2.4GHz 최대 150Mbits/s
블루투스 BLE(Bluetooth Low Energy) 및 레거시 Bluetooth
건축학 32 비트
클록 주파수 최대 240MHz
숫양 512킬로바이트
다리 30(모델에 따라 다름)
주변기기 정전식 터치, ADC(아날로그-디지털 변환기), DAC(디지털-아날로그 변환기), 12C(Inter-Integrated Circuit), UART(범용 비동기 수신기/송신기), CAN 2.0(Controller Area Network), SPI(직렬 주변 장치 인터페이스), 12S(Integrated Inter-IC
사운드), RMII(Reduced Media-Independent Interface), PWM(Pulse Width Modulation) 등이 있습니다.
내장된 버튼 RESET 및 BOOT 버튼
내장형 LED GPIO2에 연결된 내장형 파란색 LED, 보드에 전원이 공급되고 있음을 나타내는 내장형 빨간색 LED
USB에서 UART로
다리
CP2102

LAFVIN ESP32 기본 스타터 키트 - ESP32 DEVKIT이 보드에는 코드를 업로드하거나 전원을 공급하기 위해 보드를 컴퓨터에 연결하는 데 사용할 수 있는 microUSB 인터페이스가 함께 제공됩니다.
CP2102 칩(USB-UART)을 사용하여 직렬 인터페이스를 사용하여 COM 포트를 통해 컴퓨터와 통신합니다. 또 다른 인기 있는 칩은 CH340입니다. 보드에 있는 USB-UART 칩 컨버터가 무엇인지 확인하세요. 컴퓨터가 보드와 통신할 수 있도록 필요한 드라이버를 설치해야 하기 때문입니다(이에 대한 자세한 내용은 이 가이드의 뒷부분에서 설명합니다).
이 보드에는 보드를 재시작하기 위한 RESET 버튼(EN이라고 표시되어 있을 수 있음)과 보드를 플래싱 모드(코드 수신 가능)로 전환하기 위한 BOOT 버튼이 함께 제공됩니다. 일부 보드에는 BOOT 버튼이 없을 수 있습니다.
또한 GPIO 2에 내부적으로 연결된 내장형 파란색 LED가 함께 제공됩니다. 이 LED는 일종의 시각적 물리적 출력을 제공하기 위한 디버깅에 유용합니다. 보드에 전원을 공급하면 켜지는 빨간색 LED도 있습니다.LAFVIN ESP32 기본 스타터 키트 - 보드ESP32 핀아웃
ESP32 주변장치는 다음과 같습니다.

  • 18개의 아날로그-디지털 변환기(ADC) 채널
  • 3개의 SPI 인터페이스
  • 3개의 UART 인터페이스
  • 2개의 I2C 인터페이스
  • 16개의 PWM 출력 채널
  • 2개의 디지털-아날로그 변환기(DAC)
  • 2개의 I2S 인터페이스
  • 10개의 용량 감지 GPIO

ADC(아날로그-디지털 변환기) 및 DAC(디지털-아날로그 변환기) 기능은 특정 정적 핀에 할당됩니다. 그러나 어떤 핀이 UART, I2C, SPI, PWM 등인지 결정할 수 있습니다. 코드에서 할당하기만 하면 됩니다. 이는 ESP32 칩의 멀티플렉싱 기능 덕분에 가능합니다.
소프트웨어에서 핀 속성을 정의할 수 있지만 다음 그림과 같이 기본적으로 할당된 핀이 있습니다.LAFVIN ESP32 기본 스타터 키트 - ESP32 핀아웃또한 특정 프로젝트에 적합하거나 적합하지 않은 특정 기능이 있는 핀이 있습니다. 다음 표는 입력, 출력으로 사용하기에 가장 좋은 핀과 주의해야 할 핀을 보여줍니다.
녹색으로 강조 표시된 핀은 사용해도 됩니다. 노란색으로 강조 표시된 핀은 사용해도 되지만, 주로 부팅 시 예상치 못한 동작이 발생할 수 있으므로 주의해야 합니다. 빨간색으로 강조 표시된 핀은 입력이나 출력으로 사용하지 않는 것이 좋습니다.

GPIO 입력 산출 노트
0 끌어올렸다 OK 부팅 시 PWM 신호를 출력합니다. 플래싱 모드로 들어가려면 LOW여야 합니다.
1 TX 핀 OK 부팅 시 디버그 출력
2 OK OK 온보드 LED에 연결되어 있어야 하며, 깜박임 모드로 들어가려면 플로팅 또는 LOW 상태로 두어야 합니다.
3 OK RX 핀 부팅 시 HIGH
4 OK OK
5 OK OK 부팅 시 PWM 신호 출력, 스트래핑 핀
12 OK OK 부츠를 높이 잡아당기면 고장이 나고, 끈으로 고정합니다.
13 OK OK
14 OK OK 부팅 시 PWM 신호 출력
15 OK OK 부팅 시 PWM 신호 출력, 스트래핑 핀
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK 입력만 가능
35 OK 입력만 가능
36 OK 입력만 가능
39 OK 입력만 가능

ESP32 GPIO와 그 기능에 대한 보다 자세하고 심층적인 분석을 읽어보세요.
입력 전용 핀
GPIO 34~39는 GPI(입력 전용 핀)입니다. 이 핀에는 내부 풀업 또는 풀다운 저항이 없습니다. 출력으로 사용할 수 없으므로 이 핀은 입력으로만 사용하세요.

  • 지피오 34
  • 지피오 35
  • 지피오 36
  • 지피오 39

ESP-WROOM-32에 통합된 SPI 플래시
GPIO 6~GPIO 11은 일부 ESP32 개발 보드에 노출되어 있습니다. 그러나 이러한 핀은 ESP-WROOM-32 칩의 통합 SPI 플래시에 연결되어 있으며 다른 용도로는 권장되지 않습니다. 따라서 프로젝트에서 이러한 핀을 사용하지 마십시오.

  • GPIO 6(SCK/CLK)
  • GPIO 7(SDO/SD0)
  • GPIO 8(SDI/SD1)
  • GPIO 9(SHD/SD2)
  • GPIO 10(SWP/SD3)
  • GPIO 11(CSC/CMD)

정전식 터치 GPIO
ESP32에는 10개의 내부 정전식 터치 센서가 있습니다. 이 센서는 인간의 피부와 같이 전하를 유지하는 모든 것의 변화를 감지할 수 있습니다. 따라서 손가락으로 GPIO를 터치할 때 유도되는 변화를 감지할 수 있습니다. 이 핀은 정전식 패드에 쉽게 통합하여 기계적 버튼을 대체할 수 있습니다. 정전식 터치 핀은 ESP32를 딥 슬립에서 깨우는 데에도 사용할 수 있습니다. 이러한 내부 터치 센서는 다음 GPIO에 연결됩니다.

  • T0(GPIO 4)
  • T1(GPIO 0)
  • T2(GPIO 2)
  • T3(GPIO 15)
  • T4(GPIO 13)
  • T5(GPIO 12)
  • T6(GPIO 14)
  • T7(GPIO 27)
  • T8(GPIO 33)
  • T9(GPIO 32)

아날로그-디지털 변환기 (ADC)
ESP32에는 18 x 12비트 ADC 입력 채널이 있습니다(ESP8266에는 1x 10비트 ADC만 있습니다). ADC로 사용할 수 있는 GPIO와 해당 채널은 다음과 같습니다.

  • ADC1_CH0(GPIO 36)
  • ADC1_CH1(GPIO 37)
  • ADC1_CH2(GPIO 38)
  • ADC1_CH3(GPIO 39)
  • ADC1_CH4(GPIO 32)
  • ADC1_CH5(GPIO 33)
  • ADC1_CH6(GPIO 34)
  • ADC1_CH7(GPIO 35)
  • ADC2_CH0(GPIO 4)
  • ADC2_CH1(GPIO 0)
  • ADC2_CH2(GPIO 2)
  • ADC2_CH3(GPIO 15)
  • ADC2_CH4(GPIO 13)
  • ADC2_CH5(GPIO 12)
  • ADC2_CH6(GPIO 14)
  • ADC2_CH7(GPIO 27)
  • ADC2_CH8(GPIO 25)
  • ADC2_CH9(GPIO 26)

메모: ADC2 핀은 Wi-Fi를 사용할 때 사용할 수 없습니다. 따라서 Wi-Fi를 사용하고 ADC2 GPIO에서 값을 가져오는 데 문제가 있는 경우 대신 ADC1 GPIO를 사용하는 것을 고려해 보세요. 그러면 문제가 해결될 것입니다.
ADC 입력 채널은 12비트 분해능을 갖습니다. 즉, 0~4095 범위의 아날로그 판독값을 얻을 수 있으며, 여기서 0은 0V에 해당하고 4095~3.3V에 해당합니다. 또한 코드와 ADC 범위에서 채널의 분해능을 설정할 수 있습니다.
ESP32 ADC 핀은 선형적인 동작을 하지 않습니다. 아마도 0과 0.1V, 또는 3.2와 3.3V를 구별할 수 없을 것입니다. ADC 핀을 사용할 때 이 점을 염두에 두어야 합니다. 다음 그림에 표시된 것과 유사한 동작을 얻게 됩니다.LAFVIN ESP32 기본 스타터 키트 - 동작디지털-아날로그 변환기(DAC)
ESP2에는 디지털 신호를 아날로그 볼륨으로 변환하기 위한 8 x 32비트 DAC 채널이 있습니다.tage 신호 출력. DAC 채널은 다음과 같습니다.

  • DAC1(GPIO25)
  • DAC2(GPIO26)

RTC GPIO
ESP32에는 RTC GPIO 지원이 있습니다. RTC 저전력 서브시스템으로 라우팅된 GPIO는 ESP32가 딥 슬립 상태일 때 사용할 수 있습니다. 이러한 RTC GPIO는 Ultra Low가 딥 슬립 상태일 때 ESP32를 딥 슬립에서 깨우는 데 사용할 수 있습니다.
Power(ULP) 코프로세서가 실행 중입니다. 다음 GPIO는 외부 웨이크업 소스로 사용할 수 있습니다.

  • RTC_GPIO0(GPIO36)
  • RTC_GPIO3(GPIO39)
  • RTC_GPIO4(GPIO34)
  • RTC_GPIO5(GPIO35)
  • RTC_GPIO6(GPIO25)
  • RTC_GPIO7(GPIO26)
  • RTC_GPIO8(GPIO33)
  • RTC_GPIO9(GPIO32)
  • RTC_GPIO10(GPIO4)
  • RTC_GPIO11(GPIO0)
  • RTC_GPIO12(GPIO2)
  • RTC_GPIO13(GPIO15)
  • RTC_GPIO14(GPIO13)
  • RTC_GPIO15(GPIO12)
  • RTC_GPIO16(GPIO14)
  • RTC_GPIO17(GPIO27)

PWM
ESP32 LED PWM 컨트롤러는 서로 다른 속성을 가진 PWM 신호를 생성하도록 구성할 수 있는 16개의 독립 채널을 가지고 있습니다. 출력으로 작동할 수 있는 모든 핀은 PWM 핀으로 사용할 수 있습니다(GPIO 34~39는 PWM을 생성할 수 없음).
PWM 신호를 설정하려면 코드에서 다음 매개변수를 정의해야 합니다.

  • 신호의 주파수;
  • 듀티 사이클;
  • PWM 채널;
  • 신호를 출력할 GPIO입니다.

I2C
ESP32에는 두 개의 I2C 채널이 있으며 모든 핀은 SDA 또는 SCL로 설정할 수 있습니다. Arduino IDE와 함께 ESP32를 사용할 때 기본 I2C 핀은 다음과 같습니다.

  • GPIO 21(SDA)
  • GPIO 22(SCL)

와이어 라이브러리를 사용할 때 다른 핀을 사용하려면 다음을 호출하기만 하면 됩니다.
와이어 시작(SDA, SCL);
에스피에이
기본적으로 SPI의 핀 매핑은 다음과 같습니다.

에스피에이 모시 미소 클락 CS
VSPI 지피오 23 지피오 19 지피오 18 지피오 5
HSPI 지피오 13 지피오 12 지피오 14 지피오 15

인터럽트
모든 GPIO는 인터럽트로 구성될 수 있습니다.
스트래핑 핀
ESP32 칩에는 다음과 같은 스트래핑 핀이 있습니다.

  • GPIO 0 (부팅 모드로 들어가려면 LOW여야 함)
  • GPIO 2(부팅 중에는 플로팅 또는 LOW 상태여야 함)
  • 지피오 4
  • GPIO 5(부팅하는 동안 HIGH여야 함)
  • GPIO 12(부팅하는 동안 LOW여야 함)
  • GPIO 15(부팅하는 동안 HIGH여야 함)

이것들은 ESP32를 부트로더 또는 플래싱 모드로 전환하는 데 사용됩니다. 내장 USB/Serial이 있는 대부분의 개발 보드에서는 이러한 핀의 상태에 대해 걱정할 필요가 없습니다. 보드는 핀을 플래싱 또는 부트 모드에 적합한 상태로 전환합니다. ESP32 부트 모드 선택에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
하지만 주변 장치가 해당 핀에 연결되어 있는 경우 새 코드를 업로드하거나 ESP32를 새 펌웨어로 플래싱하거나 보드를 재설정하는 데 문제가 있을 수 있습니다. 스트래핑 핀에 주변 장치가 연결되어 있고 코드를 업로드하거나 ESP32를 플래싱하는 데 문제가 있는 경우 해당 주변 장치가 ESP32가 올바른 모드로 들어가는 것을 방해하기 때문일 수 있습니다. 부팅 모드 선택 설명서를 읽어 올바른 방향으로 안내받으세요. 재설정, 플래싱 또는 부팅 후 해당 핀은 예상대로 작동합니다.
부츠에서 핀이 높음
일부 GPIO는 부팅 또는 재설정 시 상태를 HIGH로 변경하거나 PWM 신호를 출력합니다.
즉, GPIO에 출력을 연결한 경우 ESP32를 재설정하거나 부팅할 때 예기치 않은 결과가 발생할 수 있습니다.

  • 지피오 1
  • 지피오 3
  • 지피오 5
  • GPIO 6~GPIO 11(ESP32 통합 SPI 플래시 메모리에 연결됨 - 사용 권장 안 함).
  • 지피오 14
  • 지피오 15

활성화(EN)
Enable(EN)은 3.3V 레귤레이터의 enable 핀입니다. 풀업되어 있으므로 접지에 연결하여 3.3V 레귤레이터를 비활성화합니다. 즉, 이 핀을 푸시버튼에 연결하여 ESP32를 재시작할 수 있습니다(예:amp르.
GPIO 전류 인출
ESP40 데이터시트의 "권장 작동 조건" 섹션에 따르면 GPIO당 인출되는 절대 최대 전류는 32mA입니다.
ESP32 내장 홀 효과 센서
ESP32에는 또한 주변 환경의 자기장 변화를 감지하는 내장 홀 효과 센서가 있습니다.
ESP32 아두이노 IDE
Arduino IDE용 애드온이 있는데, 이를 사용하면 Arduino IDE와 해당 프로그래밍 언어를 사용하여 ESP32를 프로그래밍할 수 있습니다. 이 튜토리얼에서는 Windows, Mac OS X 또는 Linux를 사용하든 Arduino IDE에 ESP32 보드를 설치하는 방법을 보여드리겠습니다.
필수 조건: Arduino IDE 설치
이 설치 절차를 시작하기 전에 컴퓨터에 Arduino IDE를 설치해야 합니다. 설치할 수 있는 Arduino IDE에는 버전 1과 버전 2의 두 가지 버전이 있습니다.
다음 링크를 클릭하여 Arduino IDE를 다운로드하고 설치할 수 있습니다. arduino.cc/en/메인/소프트웨어
어떤 Arduino IDE 버전을 추천합니까? 현재 몇 가지가 있습니다. plugins ESP32의 경우(SPIFFS와 유사) FileArduino 2에서 아직 지원되지 않는 시스템 업로더 플러그인)입니다. 따라서 나중에 SPIFFS 플러그인을 사용하려는 경우 레거시 버전 1.8.X를 설치하는 것이 좋습니다. Arduino 소프트웨어 페이지에서 아래로 스크롤하여 찾으면 됩니다.
Arduino IDE에 ESP32 애드온 설치
Arduino IDE에 ESP32 보드를 설치하려면 다음 지침을 따르세요.

  1. Arduino IDE에서 다음으로 이동하세요. File> 환경 설정LAFVIN ESP32 기본 스타터 키트 - 선호 사항
  2. 추가 보드 관리자에 다음을 입력하십시오. URLs” 필드:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
그런 다음 "확인" 버튼을 클릭하세요.LAFVIN ESP32 기본 스타터 키트 - "OK" 버튼메모: ESP8266 보드가 이미 있는 경우 URL, 당신은 URLs를 쉼표로 구분하면 다음과 같습니다.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
보드 관리자를 엽니다. 도구 > 보드 > 보드 관리자로 이동합니다…LAFVIN ESP32 기본 스타터 키트 - Espressif검색 ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 기본 스타터 키트 - Espressif그게 다입니다. 몇 초 후에 설치될 것입니다.LAFVIN ESP32 기본 스타터 키트 - 설치됨

테스트 코드 업로드

ESP32 보드를 컴퓨터에 연결합니다. Arduino IDE를 열고 다음 단계를 따르세요.

  1. 도구 > 보드 메뉴에서 보드를 선택하세요(내 경우에는 ESP32 DEV 모듈입니다)LAFVIN ESP32 기본 스타터 키트 - 도구 보드
  2. 포트를 선택하세요(Arduino IDE에 COM 포트가 보이지 않으면 CP210x USB-UART 브리지 VCP 드라이버를 설치해야 합니다):LAFVIN ESP32 기본 스타터 키트 - UART 브리지
  3. 다음 ex를 엽니다amp르 언더 File > 전amples > WiFi
    (ESP32) > WiFi스캔LAFVIN ESP32 기본 스타터 키트 - WiFiScanLAFVIN ESP32 기본 스타터 키트 - WiFiScan 1
  4. Arduino IDE에서 새로운 스케치가 열립니다.LAFVIN ESP32 기본 스타터 키트 - Arduino IDE
  5. Arduino IDE에서 업로드 버튼을 누릅니다. 코드가 컴파일되고 보드에 업로드될 때까지 몇 초 동안 기다리세요.LAFVIN ESP32 기본 스타터 키트 - 보드
  6. 모든 것이 예상대로 진행되었다면 "업로드 완료" 메시지가 표시될 것입니다.LAFVIN ESP32 기본 스타터 키트 - 업로드 완료
  7. Arduino IDE 직렬 모니터를 115200의 통신 속도로 엽니다.LAFVIN ESP32 기본 스타터 키트 - 모니터
  8. ESP32 온보드 활성화 버튼을 누르면 ESP32 근처에서 사용 가능한 네트워크가 표시됩니다.LAFVIN ESP32 기본 스타터 키트 - 활성화 버튼

문제 해결

ESP32에 새 스케치를 업로드하려고 하면 "치명적 오류가 발생했습니다. ESP32에 연결하지 못했습니다. 시간 초과... 연결 중..."이라는 오류 메시지가 나타납니다. 이는 ESP32가 플래싱/업로드 모드가 아니라는 것을 의미합니다.
올바른 보드 이름과 COM 포트를 선택한 후 다음 단계를 따르세요.
ESP32 보드에서 "BOOT" 버튼을 누르고 있습니다.LAFVIN ESP32 기본 스타터 키트 - “BOOT”

  • Arduino IDE에서 "업로드" 버튼을 눌러 스케치를 업로드하세요.LAFVIN ESP32 기본 스타터 키트 - ICON 6
  • Arduino IDE에서 "Connecting…." 메시지가 표시되면 "BOOT" 버튼에서 손가락을 뗍니다.LAFVIN ESP32 기본 스타터 키트 - “업로드 완료
  • 그 후, "업로드 완료" 메시지가 표시됩니다.
    그게 전부입니다. ESP32에서 새 스케치가 실행 중이어야 합니다. "ENABLE" 버튼을 눌러 ESP32를 재시작하고 새로 업로드한 스케치를 실행합니다.
    새로운 스케치를 업로드할 때마다 이 버튼 시퀀스를 반복해야 합니다.

프로젝트 1 ESP32 입력 출력

이 시작 가이드에서는 Arduino IDE와 함께 ESP32를 사용하여 버튼 스위치와 같은 디지털 입력을 읽고 LED와 같은 디지털 출력을 제어하는 ​​방법을 알아봅니다.
필수 조건
Arduino IDE를 사용하여 ESP32를 프로그래밍합니다. 따라서 진행하기 전에 ESP32 보드 애드온이 설치되어 있는지 확인하세요.

  • Arduino IDE에 ESP32 애드온 설치

ESP32 제어 디지털 출력
먼저, 제어하려는 GPIO를 OUTPUT으로 설정해야 합니다. 다음과 같이 pinMode() 함수를 사용합니다.
pinMode(GPIO, 출력);
디지털 출력을 제어하려면 digitalWrite() 함수를 사용하면 됩니다. 이 함수는 인수로 참조하는 GPIO(정수 숫자)와 HIGH 또는 LOW 상태를 받습니다.
디지털 쓰기(GPIO, STATE);
GPIO 6~11(통합 SPI 플래시에 연결됨) 및 GPIO 34, 35, 36 및 39(입력 전용 GPIO)를 제외한 모든 GPIO는 출력으로 사용할 수 있습니다.
ESP32 GPIO에 대해 자세히 알아보기: ESP32 GPIO 참조 가이드
ESP32 디지털 입력 읽기
먼저, 다음과 같이 pinMode() 함수를 사용하여 읽고자 하는 GPIO를 INPUT으로 설정합니다.
pinMode(GPIO, 입력);
버튼과 같은 디지털 입력을 읽으려면 digitalRead() 함수를 사용합니다. 이 함수는 인수로 참조하는 GPIO(int 숫자)를 사용합니다.
디지털 읽기(GPIO);
모든 ESP32 GPIO는 GPIO 6~11(통합 SPI 플래시에 연결됨)을 제외하고 입력으로 사용할 수 있습니다.
ESP32 GPIO에 대해 자세히 알아보기: ESP32 GPIO 참조 가이드
프로젝트 전ample
디지털 입력 및 디지털 출력을 사용하는 방법을 보여드리기 위해 간단한 프로젝트를 빌드해 보겠습니다.amp푸시버튼과 LED가 있는 le. 푸시버튼의 상태를 읽고 다음 그림에서 설명한 대로 그에 따라 LED를 켭니다.LAFVIN ESP32 기본 스타터 키트 - Project Example

필요한 부품
회로를 만드는 데 필요한 부품 목록은 다음과 같습니다.

  • ESP32 개발 키트 V1
  • 5mm LED
  • 220옴 저항
  • 누름 단추
  • 10k 옴 저항
  • 브레드보드
  • 점퍼 와이어

개략도
계속하기 전에 LED와 푸시버튼이 있는 회로를 조립해야 합니다.
LED를 GPIO 5에 연결하고 푸시버튼을 GPIO에 연결합니다. 4.LAFVIN ESP32 기본 스타터 키트 - 회로도암호
Arduino IDE에서 Project_1_ESP32_Inputs_Outputs.ino 코드를 엽니다.LAFVIN ESP32 기본 스타터 키트 - 코드LAFVIN ESP32 기본 스타터 키트 - 코드 1코드 작동 방식
다음 두 줄에서는 핀을 할당하기 위한 변수를 만듭니다.

LAFVIN ESP32 기본 스타터 키트 - Code Works버튼은 GPIO 4에 연결되고 LED는 GPIO 5에 연결됩니다. ESP32와 함께 Arduino IDE를 사용할 때 4는 GPIO 4에 해당하고 5는 GPIO 5에 해당합니다.
다음으로, 버튼 상태를 보관할 변수를 만듭니다. 기본적으로 0(눌리지 않음)입니다.
int 버튼 상태 = 0;
setup()에서 버튼을 INPUT으로 초기화하고 LED를 OUTPUT으로 초기화합니다.
이를 위해, 참조하는 핀과 INPUT 또는 OUTPUT 모드를 허용하는 pinMode() 함수를 사용합니다.
pinMode(버튼핀, 입력);
pinMode(ledPin, 출력);
loop() 내부에서 버튼 상태를 읽고 그에 따라 LED를 설정합니다.
다음 줄에서는 버튼 상태를 읽어서 buttonState 변수에 저장합니다.
이전에 살펴본 것처럼 digitalRead() 함수를 사용합니다.
버튼 상태 = 디지털 읽기(버튼 핀);
다음 if 문은 버튼 상태가 HIGH인지 확인합니다. 그렇다면 ledPin과 상태를 HIGH로 인수로 받는 digitalWrite() 함수를 사용하여 LED를 켭니다.
버튼상태가 높음인 경우LAFVIN ESP32 기본 스타터 키트 - Code Works 1버튼 상태가 HIGH가 아니면 LED를 끕니다. digitalWrite() 함수에서 두 번째 인수로 LOW를 설정하기만 하면 됩니다.LAFVIN ESP32 기본 스타터 키트 - digitalWrite코드 업로드
업로드 버튼을 클릭하기 전에 도구 > 보드로 가서 DOIT ESP32 DEVKIT V1 보드를 선택하세요.
도구 > 포트로 가서 ESP32가 연결된 COM 포트를 선택합니다. 그런 다음 업로드 버튼을 누르고 "업로드 완료" 메시지를 기다립니다.LAFVIN ESP32 기본 스타터 키트 - ICON 7참고: 디버깅 창에 점(연결 중...__...__)이 많이 표시되고 "ESP32에 연결 실패: 패킷 헤더 대기 시간 초과" 메시지가 표시되면 점이 표시된 후 ESP32 온보드 BOOT 버튼을 눌러야 함을 의미합니다.
나타나기 시작합니다.문제 해결

데모

코드를 업로드한 후 회로를 테스트합니다. 푸시버튼을 누르면 LED가 켜질 것입니다.LAFVIN ESP32 기본 스타터 키트 - 데모그리고 해제할 때 꺼주세요:LAFVIN ESP32 기본 스타터 키트 - 턴 오브

프로젝트 2 ESP32 아날로그 입력

이 프로젝트에서는 Arduino IDE를 사용하여 ESP32의 아날로그 입력을 읽는 방법을 보여줍니다.
아날로그 판독은 전위차계와 같은 가변 저항기나 아날로그 센서에서 값을 읽는 데 유용합니다.
아날로그 입력(ADC)
ESP32로 아날로그 값을 읽으면 다양한 볼륨을 측정할 수 있습니다.tag0V와 3.3V 사이의 레벨.
권tag측정된 e는 0~4095 사이의 값으로 지정되며, 여기서 0V는 0에 해당하고 3.3V는 4095에 해당합니다.tag0V와 3.3V 사이에는 해당 값이 주어집니다.LAFVIN ESP32 기본 스타터 키트 - 아날로그 입력ADC는 비선형입니다
이상적으로는 ESP32 ADC 핀을 사용할 때 선형적인 동작을 기대할 수 있습니다.
하지만 그런 일은 일어나지 않습니다. 당신이 얻는 것은 다음 차트에 표시된 것과 같은 행동입니다.LAFVIN ESP32 기본 스타터 키트 - 비선형이런 동작은 ESP32가 3.3V와 3.2V를 구별할 수 없다는 것을 의미합니다.
두 볼륨 모두 동일한 값을 얻게 됩니다.tag영어: es: 4095.
매우 낮은 볼륨의 경우에도 동일한 일이 발생합니다.tage 값: 0V와 0.1V의 경우 동일한 값인 0을 얻게 됩니다. ESP32 ADC 핀을 사용할 때 이 점을 명심해야 합니다.
analogRead() 함수
Arduino IDE를 사용하여 ESP32로 아날로그 입력을 읽는 것은 analogRead() 함수를 사용하는 것만큼 간단합니다. 읽고자 하는 GPIO를 인수로 허용합니다.
아날로그 읽기(GPIO);
DEVKIT V15보드(GPIO 1개 버전)에서는 30개만 사용 가능합니다.
ESP32 보드 핀아웃을 잡고 ADC 핀을 찾으세요. 아래 그림에서 빨간색 테두리로 강조 표시되어 있습니다.LAFVIN ESP32 기본 스타터 키트 - 테두리이 아날로그 입력 핀은 12비트 해상도를 가지고 있습니다. 즉, 아날로그 입력을 읽을 때 범위는 0에서 4095까지 다양할 수 있습니다.
참고: ADC2 핀은 Wi-Fi를 사용할 때는 사용할 수 없습니다. 따라서 Wi-Fi를 사용하고 ADC2 GPIO에서 값을 가져오는 데 문제가 있는 경우 대신 ADC1 GPIO를 사용하는 것을 고려해 보세요. 그러면 문제가 해결될 것입니다.
모든 것이 어떻게 연결되는지 보려면 간단한 ex를 만들어 보겠습니다.amp전위차계에서 아날로그 값을 읽는 방법.
필요한 부품
이 전직에 대해ample, 다음 부품이 필요합니다:

  • ESP32 DEVKIT V1 보드
  • 전위차계
  • 브레드보드
  • 점퍼 와이어

개략도
ESP32에 전위계 연결. 전위계 중간 핀은 GPIO 4에 연결해야 합니다. 다음 회로도를 참조로 사용할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 개요암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
Arduino IDE에서 Project_2_ESP32_Inputs_Outputs.ino 코드를 엽니다.LAFVIN ESP32 기본 스타터 키트 - 코드 2이 코드는 단순히 전위차계에서 값을 읽고 직렬 모니터에 해당 값을 출력합니다.
코드에서 먼저 전위계가 연결된 GPIO를 정의합니다. 이 예제에서는ampGPIO 4.LAFVIN ESP32 기본 스타터 키트 - examplesetup()에서 115200의 통신 속도로 직렬 통신을 초기화합니다.LAFVIN ESP32 기본 스타터 키트 - examp르 1loop()에서 analogRead() 함수를 사용하여 potPin으로부터 아날로그 입력을 읽습니다.LAFVIN ESP32 기본 스타터 키트 - examp르 2마지막으로, 전위차계에서 읽은 값을 직렬 모니터에 인쇄합니다.LAFVIN ESP32 기본 스타터 키트 - examp르 3제공된 코드를 ESP32에 업로드합니다. 도구 메뉴에서 올바른 보드와 COM 포트를 선택했는지 확인하세요.
전직 테스트ample
코드를 업로드하고 ESP32 재설정 버튼을 누른 후, 115200의 통신 속도로 직렬 모니터를 엽니다. 전위차계를 돌려 값이 변하는 것을 확인합니다.최대값은 4095이고 최소값은 0입니다.LAFVIN ESP32 기본 스타터 키트 - 최대 가치

마무리하기

이 글에서는 Arduino IDE와 함께 ESP32를 사용하여 아날로그 입력을 읽는 방법을 알아보았습니다. 요약하면 다음과 같습니다.

  • ESP32 DEVKIT V1 DOIT 보드(30핀 버전)에는 아날로그 입력을 읽는 데 사용할 수 있는 ADC 핀이 15개 있습니다.
  • 이 핀은 12비트의 분해능을 가지고 있는데, 즉 0~4095까지의 값을 얻을 수 있다는 뜻입니다.
  • Arduino IDE에서 값을 읽으려면 analogRead() 함수를 사용하면 됩니다.
  • ESP32 ADC 핀은 선형적인 동작을 하지 않습니다. 아마도 0과 0.1V, 또는 3.2와 3.3V를 구별할 수 없을 것입니다. ADC 핀을 사용할 때 이 점을 염두에 두어야 합니다.

프로젝트 3 ESP32 PWM(아날로그 출력)

이 튜토리얼에서는 Arduino IDE를 사용하여 ESP32로 PWM 신호를 생성하는 방법을 보여드리겠습니다. 전ampESP32의 LED PWM 컨트롤러를 사용하여 LED를 어둡게 하는 간단한 회로를 만들어 보겠습니다.LAFVIN ESP32 기본 스타터 키트 - AnalogOutputESP32 LED PWM 컨트롤러
ESP32에는 다양한 속성의 PWM 신호를 생성하도록 구성할 수 있는 16개의 독립 채널을 갖춘 LED PWM 컨트롤러가 있습니다.
Arduino IDE를 사용하여 PWM으로 LED를 어둡게 하려면 다음 단계를 따라야 합니다.

  1. 먼저 PWM 채널을 선택해야 합니다. 16에서 0까지 15개 채널이 있습니다.
  2. 그런 다음 PWM 신호 주파수를 설정해야 합니다. LED의 경우 5000Hz 주파수를 사용하면 좋습니다.
  3. 또한 신호의 듀티 사이클 해상도를 설정해야 합니다. 1~16비트의 해상도가 있습니다. 8비트 해상도를 사용하겠습니다. 즉, 0~255의 값을 사용하여 LED 밝기를 제어할 수 있습니다.
  4.  다음으로, 신호가 나타날 GPIO 또는 GPIO를 지정해야 합니다. 이를 위해 다음 함수를 사용합니다.
    ledcAttachPin(GPIO, 채널)
    이 함수는 두 개의 인수를 허용합니다. 첫 번째는 신호를 출력할 GPIO이고 두 번째는 신호를 생성할 채널입니다.
  5. 마지막으로 PWM을 사용하여 LED 밝기를 제어하려면 다음 함수를 사용합니다.

ledcWrite(채널, 듀티사이클)
이 함수는 PWM 신호를 생성하는 채널과 듀티 사이클을 인수로 받습니다.
필요한 부품
이 튜토리얼을 따르려면 다음 부품이 필요합니다.

  • ESP32 DEVKIT V1 보드
  • 5mm LED
  • 220옴 저항
  •  브레드보드
  • 점퍼 와이어

개략도
다음 회로도와 같이 LED를 ESP32에 연결합니다. LED는 GPIO에 연결해야 합니다. 4.LAFVIN ESP32 기본 스타터 키트 - 개요메모: 출력으로 작동할 수 있는 한 원하는 핀을 사용할 수 있습니다. 출력으로 작동할 수 있는 모든 핀은 PWM 핀으로 사용할 수 있습니다. ESP32 GPIO에 대한 자세한 내용은 다음을 참조하세요. ESP32 핀아웃 참조: 어떤 GPIO 핀을 사용해야 합니까?
암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
Arduino IDE에서 Project_3_ESP32_PWM.ino 코드를 엽니다.LAFVIN ESP32 기본 스타터 키트 - 코드 3LAFVIN ESP32 기본 스타터 키트 - 코드 4LED가 부착된 핀을 정의하는 것으로 시작합니다. 이 경우 LED는 GPIO 4에 부착됩니다.LAFVIN ESP32 기본 스타터 키트 - 코드 5그런 다음 PWM 신호 속성을 설정합니다. 5000Hz의 주파수를 정의하고, 신호를 생성할 채널 0을 선택하고, 8비트의 해상도를 설정합니다. 다른 속성을 선택하여 다른 PWM 신호를 생성할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 코드 6setup()에서 ledcSetup() 함수를 사용하여 이전에 정의한 속성으로 LED PWM을 구성해야 합니다. 이 함수는 다음과 같이 ledChannel, 주파수, 해상도를 인수로 받습니다.LAFVIN ESP32 기본 스타터 키트 - 코드 8다음으로, 신호를 받을 GPIO를 선택해야 합니다. 이를 위해 신호를 받을 GPIO와 신호를 생성하는 채널을 인수로 받는 ledcAttachPin() 함수를 사용합니다. 이 예제에서는ample, 우리는 GPIO 4에 해당하는 ledPin GPIO에서 신호를 얻을 것입니다. 신호를 생성하는 채널은 ledChannel이고, 채널 0에 해당합니다.LAFVIN ESP32 기본 스타터 키트 - 코드 9루프에서 듀티 사이클을 0~255 사이에서 변경하여 LED 밝기를 높입니다.LAFVIN ESP32 기본 스타터 키트 - 밝기그리고 255와 0 사이에서는 밝기를 낮춥니다.LAFVIN ESP32 기본 스타터 키트 - 밝기 1LED의 밝기를 설정하려면 신호를 생성하는 채널과 듀티 사이클을 인수로 받는 ledcWrite() 함수를 사용하면 됩니다.LAFVIN ESP32 기본 스타터 키트 - 밝기 28비트 해상도를 사용하므로 듀티 사이클은 0~255 사이의 값을 사용하여 제어됩니다. ledcWrite() 함수에서 GPIO가 아닌 신호를 생성하는 채널을 사용한다는 점에 유의하세요.

전직 테스트ample

ESP32에 코드를 업로드합니다. 올바른 보드와 COM 포트를 선택했는지 확인합니다. 회로를 살펴보세요. 밝기를 증가 및 감소시키는 디머 LED가 있어야 합니다.LAFVIN ESP32 기본 스타터 키트 - Ex 테스트ample

프로젝트 4 ESP32 PIR 모션 센서

이 프로젝트는 PIR 모션 센서를 사용하여 ESP32로 모션을 감지하는 방법을 보여줍니다. 모션이 감지되면 부저가 알람을 울리고, 사전 설정된 시간(예: 4초) 동안 모션이 감지되지 않으면 알람을 멈춥니다.
HC-SR501 모션 센서 작동 방식
.LAFVIN ESP32 기본 스타터 키트 - 모션 센서 작동HC-SR501 센서의 작동 원리는 이동하는 물체의 적외선 복사 변화에 기초합니다. HC-SR501 센서가 물체를 감지하려면 물체가 두 가지 요구 사항을 충족해야 합니다.

  • 물체가 적외선을 방출하고 있습니다.
  • 물체가 움직이거나 흔들리고 있습니다

그래서:
물체가 적외선을 방출하지만 움직이지 않는 경우(예: 사람이 움직이지 않고 가만히 서 있는 경우) 센서는 이를 감지하지 못합니다.
물체가 움직이지만 적외선을 방출하지 않는 경우(예: 로봇이나 차량) 센서는 이를 감지하지 못합니다.
타이머 소개
이 전에서amp또한 타이머도 소개하겠습니다. 움직임이 감지된 후 LED가 미리 정해진 초 동안 켜져 있기를 원합니다. 코드를 차단하고 정해진 초 동안 다른 작업을 할 수 없게 하는 delay() 함수를 사용하는 대신 타이머를 사용해야 합니다.LAFVIN ESP32 기본 스타터 키트 - 타이머 소개delay() 함수
delay() 함수는 널리 사용되므로 잘 알고 있어야 합니다. 이 함수는 사용하기 매우 간단합니다. 단일 int 숫자를 인수로 받습니다.
이 숫자는 프로그램이 다음 코드 줄로 넘어갈 때까지 기다려야 하는 시간을 밀리초 단위로 나타냅니다.LAFVIN ESP32 기본 스타터 키트 - 코드delay(1000)을 실행하면 프로그램은 해당 줄에서 1초 동안 멈춥니다.
delay()는 차단 함수입니다. 차단 함수는 해당 작업이 완료될 때까지 프로그램이 다른 작업을 수행하지 못하도록 합니다. 여러 작업이 동시에 발생해야 하는 경우 delay()를 사용할 수 없습니다.
대부분의 프로젝트에서는 지연을 사용하는 대신 타이머를 사용해야 합니다.
millis() 함수
millis()라는 함수를 사용하면 프로그램이 처음 시작된 이후로 경과한 밀리초 수를 반환할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 프로그램 처음 시작그 기능이 유용한 이유는? 수학을 사용하면 코드를 차단하지 않고도 얼마나 많은 시간이 지났는지 쉽게 확인할 수 있기 때문입니다.
필요한 부품
이 튜토리얼을 따르려면 다음 부품이 필요합니다.

  • ESP32 DEVKIT V1 보드
  • PIR 모션 센서(HC-SR501)
  • 액티브 버저
  • 점퍼 와이어
  • 브레드보드

개략도LAFVIN ESP32 기본 스타터 키트 - 회로도 1메모: 작업 볼륨tagHC-SR501의 e는 5V입니다. Vin 핀을 사용하여 전원을 공급합니다.
암호
이 튜토리얼을 진행하기 전에 Arduino IDE에 ESP32 애드온을 설치해야 합니다. 아직 설치하지 않았다면 다음 튜토리얼 중 하나를 따라 Arduino IDE에 ESP32를 설치하세요.(이미 이 단계를 수행했다면 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
Arduino IDE에서 Project_4_ESP32_PIR_Motion_Sensor.ino 코드를 엽니다.
데모
ESP32 보드에 코드를 업로드합니다. 올바른 보드와 COM 포트를 선택했는지 확인하세요. 코드 참조 단계 업로드.
115200의 통신 속도로 직렬 모니터를 엽니다.LAFVIN ESP32 기본 스타터 키트 - 데모 1PIR 센서 앞으로 손을 움직이세요. 부저가 켜지고, 시리얼 모니터에 "움직임 감지!부저 알람"이라는 메시지가 인쇄됩니다.
4초 후에 부저가 꺼져야 합니다.LAFVIN ESP32 기본 스타터 키트 - 부저

프로젝트 5 ESP32 스위치 Web 섬기는 사람

이 프로젝트에서는 독립 실행형을 만듭니다. web Arduino IDE 프로그래밍 환경을 사용하여 출력(두 개의 LED)을 제어하는 ​​ESP32가 있는 서버입니다. web 서버는 모바일 반응형이며 로컬 네트워크의 브라우저로 모든 기기에서 액세스할 수 있습니다. web 서버와 코드가 단계별로 작동하는 방식을 설명합니다.
프로젝트 오버view
프로젝트에 바로 들어가기 전에 우리의 목표를 개략적으로 설명하는 것이 중요합니다. web 서버에서 하면 나중에 단계를 따르기가 더 쉽습니다.

  • 그만큼 web 당신이 만들 서버는 ESP32 GPIO 26과 GPIO 27에 연결된 두 개의 LED를 제어합니다.
  • ESP32에 접근할 수 있습니다 web 로컬 네트워크의 브라우저에 ESP32 IP 주소를 입력하여 서버에 접속합니다.
  • 버튼을 클릭하면 web 서버를 사용하면 각 LED의 상태를 즉시 변경할 수 있습니다.

필요한 부품
이 튜토리얼을 진행하려면 다음 부품이 필요합니다.

  • ESP32 DEVKIT V1 보드
  • 2x 5mm LED
  • 2x 200 옴 저항기
  • 브레드보드
  • 점퍼 와이어

개략도
회로를 구축하는 것으로 시작합니다. 다음 회로도에 표시된 대로 ESP32에 두 개의 LED를 연결합니다. 한 LED는 GPIO 26에 연결되고 다른 LED는 GPIO 27에 연결됩니다.
메모: 우리는 32핀 ESP36 DEVKIT DOIT 보드를 사용하고 있습니다. 회로를 조립하기 전에 사용하는 보드의 핀아웃을 확인하세요.LAFVIN ESP32 기본 스타터 키트 - 개요암호
여기서 ESP32를 생성하는 코드를 제공합니다. web 서버. Project_5_ESP32_Switch_ 코드를 엽니다.Webarduino IDE에서 _Server.ino를 사용하지만 아직 업로드하지 마세요. 작동하도록 하려면 몇 가지 변경이 필요합니다.
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
네트워크 자격 증명 설정
네트워크 자격 증명으로 다음 줄을 수정해야 합니다: SSID 및 비밀번호. 코드에는 변경해야 할 위치에 대한 주석이 잘 나와 있습니다.LAFVIN ESP32 기본 스타터 키트 - 네트워크 자격 증명코드 업로드
이제 코드를 업로드할 수 있습니다. web 서버가 바로 작동합니다.
ESP32에 코드를 업로드하려면 다음 단계를 따르세요.

  1. ESP32 보드를 컴퓨터에 연결합니다.
  2. Arduino IDE에서 도구 > 보드에서 보드를 선택합니다(우리의 경우 ESP32 DEVKIT DOIT 보드를 사용합니다).LAFVIN ESP32 기본 스타터 키트 - 코드 업로드
  3. 도구 > 포트에서 COM 포트를 선택하세요.LAFVIN ESP32 기본 스타터 키트 - 도구 포트
  4. Arduino IDE에서 업로드 버튼을 누르고 코드가 컴파일되어 보드에 업로드될 때까지 몇 초간 기다리세요.LAFVIN ESP32 기본 스타터 키트 - ICON 7
  5. "업로드 완료" 메시지를 기다리세요.LAFVIN ESP32 기본 스타터 키트 - 업로드 완료 1

ESP IP 주소 찾기
코드를 업로드한 후 115200의 통신 속도로 직렬 모니터를 엽니다.LAFVIN ESP32 기본 스타터 키트 - ESP IP 주소ESP32 EN 버튼(재설정)을 누릅니다. ESP32가 Wi-Fi에 연결되고 직렬 모니터에 ESP IP 주소를 출력합니다. ESP32에 액세스하는 데 필요하므로 해당 IP 주소를 복사합니다. web 섬기는 사람.LAFVIN ESP32 기본 스타터 키트 - web 섬기는 사람접근하기 Web 섬기는 사람
접근하려면 web 서버에서 브라우저를 열고 ESP32 IP 주소를 붙여넣으면 다음 페이지가 나타납니다.
메모: 브라우저와 ESP32는 동일한 LAN에 연결되어야 합니다.LAFVIN ESP32 기본 스타터 키트 - 액세스 Web 섬기는 사람직렬 모니터를 살펴보면 백그라운드에서 무슨 일이 일어나고 있는지 볼 수 있습니다. ESP는 새 클라이언트(이 경우 브라우저)로부터 HTTP 요청을 받습니다.LAFVIN ESP32 기본 스타터 키트 - HTTP 요청HTTP 요청에 대한 다른 정보도 볼 수 있습니다.
데모
이제 테스트할 수 있습니다 web 서버가 제대로 작동 중입니다. 버튼을 클릭하여 LED를 제어합니다.LAFVIN ESP32 기본 스타터 키트 - 배경동시에, 직렬 모니터를 살펴보면 백그라운드에서 무슨 일이 일어나고 있는지 확인할 수 있습니다. 예를 들어ample, GPIO 26을 켜기 위해 버튼을 클릭하면 ESP32는 /26/on에서 요청을 수신합니다. URL.LAFVIN ESP32 기본 스타터 키트 - URLESP32가 해당 요청을 수신하면 GPIO 26에 연결된 LED를 켜고 해당 상태를 업데이트합니다. web 페이지.LAFVIN ESP32 기본 스타터 키트 - web 페이지GPIO 27의 버튼도 비슷한 방식으로 작동합니다. 제대로 작동하는지 테스트합니다.LAFVIN ESP32 기본 스타터 키트 - 제대로 작동

코드 작동 방식

이 섹션에서는 코드를 자세히 살펴보고 코드가 어떻게 작동하는지 살펴보겠습니다.
가장 먼저 해야 할 일은 WiFi 라이브러리를 포함시키는 것입니다.LAFVIN ESP32 기본 스타터 키트 - WiFi 라이브러리이전에 언급했듯이, 다음 줄의 큰따옴표 안에 ssid와 비밀번호를 삽입해야 합니다.LAFVIN ESP32 기본 스타터 키트 - 큰따옴표그 다음에는 다음을 설정합니다. web 서버를 포트 80으로 연결합니다.LAFVIN ESP32 기본 스타터 키트 - web 섬기는 사람다음 줄은 HTTP 요청의 헤더를 저장하는 변수를 생성합니다.LAFVIN ESP32 기본 스타터 키트 - HTTPrequest다음으로, 출력의 현재 상태를 저장하기 위해 보조 변수를 만듭니다. 출력을 더 추가하고 상태를 저장하려면 더 많은 변수를 만들어야 합니다.LAFVIN ESP32 기본 스타터 키트 - 변수또한 각 출력에 GPIO를 할당해야 합니다. 여기서는 GPIO 26과 GPIO 27을 사용합니다. 다른 적합한 GPIO를 사용할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 기타 적합설정()
이제 setup()으로 들어가보죠. 먼저 디버깅 목적으로 115200의 전송 속도로 직렬 통신을 시작합니다.LAFVIN ESP32 기본 스타터 키트 - 용도또한 GPIO를 OUTPUT으로 정의하고 LOW로 설정합니다.LAFVIN ESP32 기본 스타터 키트 - GPIO를 출력으로 사용다음 줄은 WiFi.begin(ssid, password)로 Wi-Fi 연결을 시작하고, 연결이 성공할 때까지 기다린 후 직렬 모니터에 ESP IP 주소를 출력합니다.LAFVIN ESP32 기본 스타터 키트 - 시리얼LAFVIN ESP32 기본 스타터 키트 - 시리얼 1고리()
loop()에서 새로운 클라이언트가 연결을 설정할 때 어떤 일이 발생하는지 프로그래밍합니다. web 섬기는 사람.
ESP32는 항상 다음 줄을 통해 들어오는 클라이언트를 수신합니다.LAFVIN ESP32 기본 스타터 키트 - 루프클라이언트로부터 요청을 받으면 들어오는 데이터를 저장합니다. 이어지는 while 루프는 클라이언트가 연결된 상태를 유지하는 한 계속 실행됩니다. 무엇을 하는지 정확히 알지 않는 한 코드의 다음 부분을 변경하지 않는 것이 좋습니다.LAFVIN ESP32 기본 스타터 키트 - 정확히LAFVIN ESP32 기본 스타터 키트 - 정확히 1개LAFVIN ESP32 기본 스타터 키트 - 정확히 2개if 및 else 문의 다음 섹션은 어떤 버튼이 눌렸는지 확인합니다. web 페이지를 만들고 그에 따라 출력을 제어합니다. 이전에 살펴본 것처럼, 우리는 다른 URL버튼의 종류에 따라 다릅니다.LAFVIN ESP32 기본 스타터 키트 - 버튼 누름LAFVIN ESP32 기본 스타터 키트 - 버튼 눌림 1예를 들어ample, GPIO 26 ON 버튼을 눌렀다면 ESP32는 /26/ON에서 요청을 수신합니다. URL (우리는 직렬 모니터에서 HTTP 헤더에 있는 정보를 볼 수 있습니다). 따라서 헤더에 GET /26/on 표현식이 포함되어 있는지 확인할 수 있습니다. 포함되어 있으면 output26state 변수를 ON으로 변경하고 ESP32는 LED를 켭니다.
다른 버튼에도 비슷하게 작동합니다. 따라서 출력을 더 추가하려면 코드의 이 부분을 수정하여 포함해야 합니다.
HTML 표시 web 페이지
다음으로 해야 할 일은 다음을 만드는 것입니다. web 페이지. ESP32는 HTML 코드를 사용하여 브라우저에 응답을 보내어 빌드합니다. web 페이지.
그만큼 web 페이지는 이 표현을 사용하여 클라이언트에게 전송됩니다 client.println(). 클라이언트에게 전송하려는 내용을 인수로 입력해야 합니다.
우리가 가장 먼저 보내야 할 것은 항상 다음 줄입니다. 이는 우리가 HTML을 보내고 있다는 것을 나타냅니다.LAFVIN ESP32 기본 스타터 키트 - HTML 전송그런 다음 다음 줄은 다음을 만듭니다. web 모든 페이지에서 반응형 web 브라우저.LAFVIN ESP32 기본 스타터 키트 - web 브라우저그리고 다음은 favicon에 대한 요청을 방지하는 데 사용됩니다. – 이 줄은 걱정할 필요가 없습니다.LAFVIN ESP32 기본 스타터 키트 - client.println

스타일링 Web 페이지

다음으로 버튼과 관련된 스타일을 지정하는 CSS 텍스트가 있습니다. web 페이지 모양.
Helvetica 글꼴을 선택하고, 표시할 콘텐츠를 블록으로 정의하고 중앙에 정렬합니다.LAFVIN ESP32 기본 스타터 키트 - 스타일링 Web 페이지우리는 #4CAF50 색상, 테두리 없음, 흰색 텍스트, 패딩 16px 40px로 버튼을 스타일링했습니다. 또한 text-decoration을 none으로 설정하고, 글꼴 크기, 여백, 커서를 포인터로 정의했습니다.LAFVIN ESP32 기본 스타터 키트 - 포인터또한 두 번째 버튼의 스타일을 정의하는데, 이전에 정의한 버튼의 모든 속성을 사용하지만 색상은 다릅니다. 이는 끄기 버튼의 스타일이 됩니다.LAFVIN ESP32 기본 스타터 키트 - client.println 1

설정하기 Web 페이지 첫 번째 제목
다음 줄에서는 첫 번째 제목을 설정할 수 있습니다. web 페이지. 여기에 “ESP32 Web 서버”라고 되어 있지만, 이 텍스트를 원하는 대로 변경할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - Web 페이지 제목버튼 및 해당 상태 표시
그런 다음 GPIO 26 현재 상태를 표시하는 단락을 작성합니다. 보시다시피 우리는 output26State 변수를 사용하여 이 변수가 변경되면 상태가 즉시 업데이트되도록 합니다.LAFVIN ESP32 기본 스타터 키트 - 다양한 변경 사항그런 다음 GPIO의 현재 상태에 따라 켜기 또는 끄기 버튼을 표시합니다. GPIO의 현재 상태가 꺼져 있으면 켜기 버튼을 표시하고, 그렇지 않으면 끄기 버튼을 표시합니다.LAFVIN ESP32 기본 스타터 키트 - OFF 버튼 표시GPIO 27에도 동일한 절차를 사용합니다.
연결 닫기
마지막으로 응답이 끝나면 헤더 변수를 지우고 client.stop()을 사용하여 클라이언트와의 연결을 중지합니다.LAFVIN ESP32 기본 스타터 키트 - 연결 종료

마무리하기

이 튜토리얼에서는 다음을 만드는 방법을 보여드렸습니다. web ESP32를 사용한 서버입니다. 간단한 ex를 보여드렸습니다.amp두 개의 LED를 제어하는 ​​파일이 있지만, 아이디어는 해당 LED를 릴레이나 제어하려는 다른 출력으로 교체하는 것입니다.

프로젝트 6 RGB LED Web 섬기는 사람

이 프로젝트에서는 ESP32 보드를 사용하여 RGB LED를 원격으로 제어하는 ​​방법을 보여드리겠습니다. web 색상 선택기가 있는 서버.
프로젝트 오버view
시작하기 전에, 이 프로젝트가 어떻게 작동하는지 살펴보겠습니다.LAFVIN ESP32 기본 스타터 키트 - 프로젝트 오버view

  • ESP32 web 서버가 색상 선택기를 표시합니다.
  • 색상을 선택하면 브라우저가 요청을 합니다. URL 선택한 색상의 R, G, B 매개변수가 포함되어 있습니다.
  • ESP32는 요청을 수신하고 각 색상 매개변수에 대한 값을 분할합니다.
  • 그런 다음 RGB LED를 제어하는 ​​GPIO에 해당 값을 포함한 PWM 신호를 전송합니다.

RGB LED는 어떻게 작동하나요?
공통 음극 RGB LED에서는 세 개의 LED가 모두 음극 연결(음극)을 공유합니다. 키트에 포함된 것은 모두 공통 음극 RGB입니다.LAFVIN ESP32 기본 스타터 키트 - RGB LED 작동다양한 색상을 만드는 방법은?
물론, RGB LED를 사용하면 빨간색, 녹색, 파란색 빛을 생성할 수 있으며 각 LED의 강도를 구성하면 다른 색상도 생성할 수 있습니다.
예를 들어ample, 순수한 푸른 빛을 생성하려면 푸른색 LED를 가장 높은 강도로 설정하고 녹색과 빨간색 LED를 가장 낮은 강도로 설정합니다. 흰색 빛의 경우 세 개의 LED를 모두 가장 높은 강도로 설정합니다.
색상 혼합
다른 색상을 생성하려면 세 가지 색상을 다른 강도로 결합할 수 있습니다. 각 LED의 강도를 조정하려면 PWM 신호를 사용할 수 있습니다.
LED가 서로 매우 가깝기 때문에 우리 눈은 세 가지 색상을 개별적으로 보는 것이 아니라 색상이 결합된 결과를 봅니다.
색상을 조합하는 방법에 대한 아이디어를 얻으려면 다음 표를 살펴보세요.
이것은 가장 간단한 색상 혼합 차트이지만, 색상 혼합 차트가 어떻게 작동하는지, 어떻게 다양한 색상을 만들어내는지에 대한 아이디어를 제공합니다.LAFVIN ESP32 기본 스타터 키트 - 다양한 색상필요한 부품
이 프로젝트에는 다음과 같은 부품이 필요합니다.

  • ESP32 DEVKIT V1 보드
  • RGB LED
  • 3x 220 옴 저항기
  • 점퍼 와이어
  • 브레드보드

개략도LAFVIN ESP32 기본 스타터 키트 - 개요암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)

  • Arduino IDE에 ESP32 애드온 설치

회로를 조립한 후 코드를 엽니다.
프로젝트_6_RGB_LED_WebArduino IDE의 _Server.ino.
코드를 업로드하기 전에 ESP가 로컬 네트워크에 연결할 수 있도록 네트워크 자격 증명을 삽입하는 것을 잊지 마세요.LAFVIN ESP32 기본 스타터 키트 - 로컬 네트워크코드 작동 방식
ESP32 스케치는 WiFi.h 라이브러리를 사용합니다.LAFVIN ESP32 기본 스타터 키트 - WiFi.h 라이브러리다음 줄은 요청의 R, G, B 매개변수를 보관하기 위한 문자열 변수를 정의합니다.LAFVIN ESP32 기본 스타터 키트 - 문자열 redString다음 4개의 변수는 나중에 HTTP 요청을 디코딩하는 데 사용됩니다.LAFVIN ESP32 기본 스타터 키트 - HTTP 요청스트립 R, G, B 매개변수를 제어할 GPIO에 대한 세 개의 변수를 만듭니다. 이 경우 GPIO 13, GPIO 12, GPIO 14를 사용합니다.LAFVIN ESP32 기본 스타터 키트 - GPIO 필요이러한 GPIO는 PWM 신호를 출력해야 하므로 먼저 PWM 속성을 구성해야 합니다. PWM 신호 주파수를 5000Hz로 설정합니다. 그런 다음 각 색상에 대한 PWM 채널을 연결합니다.LAFVIN ESP32 기본 스타터 키트 - 각 색상마지막으로 PWM 채널의 해상도를 8비트로 설정합니다.LAFVIN ESP32 기본 스타터 키트 - PWM 채널setup()에서 PWM 속성을 PWM 채널에 할당합니다.LAFVIN ESP32 기본 스타터 키트 - PWM 채널PWM 채널을 해당 GPIO에 연결합니다.LAFVIN ESP32 기본 스타터 키트 - 해당 GPIO다음 코드 섹션은 색상 선택기를 표시합니다. web 페이지로 이동하고 선택한 색상에 따라 요청을 합니다.LAFVIN ESP32 기본 스타터 키트 - 선택됨LAFVIN ESP32 기본 스타터 키트 - client.printlnLAFVIN ESP32 기본 스타터 키트 - client.println 1색상을 선택하면 다음 형식의 요청을 받게 됩니다.LAFVIN ESP32 기본 스타터 키트 - 다음 형식

따라서 R, G, B 매개변수를 얻기 위해 이 문자열을 분할해야 합니다. 매개변수는 redString, greenString, blueString 변수에 저장되며 0~255 사이의 값을 가질 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 헤더LAFVIN ESP32 기본 스타터 키트 - 헤더 1ESP32로 스트립을 제어하려면 ledcWrite() 함수를 사용하여 HTTP에서 디코딩된 값으로 PWM 신호를 생성합니다. 요구.LAFVIN ESP32 기본 스타터 키트 - HTTP 요청 1메모: ESP32를 사용한 PWM에 대해 자세히 알아보기: 프로젝트 3 ESP32 PWM(아날로그 출력)
ESP8266으로 스트립을 제어하려면 다음을 사용하면 됩니다.
HTPP 요청에서 디코딩된 값으로 PWM 신호를 생성하는 analogWrite() 함수입니다.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
문자열 변수에서 값을 가져오므로 toInt() 메서드를 사용하여 이를 정수로 변환해야 합니다.
데모
네트워크 자격 증명을 삽입한 후 올바른 보드와 COM 포트를 선택하고 ESP32에 코드를 업로드합니다. 코드 업로드 참조 단계.
업로드 후, 시리얼 모니터를 115200의 전송 속도로 열고 ESP 활성화/재설정 버튼을 누릅니다. 보드 IP 주소를 얻어야 합니다.LAFVIN ESP32 기본 스타터 키트 - 동일 LAN브라우저를 열고 ESP IP 주소를 입력합니다. 이제 색상 선택기를 사용하여 RGB LED의 색상을 선택합니다.
그런 다음 색상이 적용되도록 "색상 변경" 버튼을 눌러야 합니다.LAFVIN ESP32 기본 스타터 키트 - RGB LEDRGB LED를 끄려면 검은색을 선택하세요.
가장 강한 색상(색상 선택기 맨 위에 있음)이 더 좋은 결과를 낳습니다.LAFVIN ESP32 기본 스타터 키트 - 더 나은 결과

프로젝트 7 ESP32 릴레이 Web 섬기는 사람

ESP32와 함께 릴레이를 사용하면 원격으로 AC 가전제품을 제어할 수 있는 좋은 방법입니다. 이 튜토리얼에서는 ESP32로 릴레이 모듈을 제어하는 ​​방법을 설명합니다.
릴레이 모듈의 작동 방식, 릴레이를 ESP32에 연결하는 방법 및 릴레이를 구축하는 방법을 살펴보겠습니다. web 릴레이를 원격으로 제어하는 ​​서버.
릴레이 소개
릴레이는 전기적으로 작동하는 스위치이며 다른 스위치와 마찬가지로 켜거나 끌 수 있으며 전류를 흐르게 하거나 흐르지 않게 할 수 있습니다. 저전압으로 제어할 수 있습니다.tagESP3.3 GPIO에서 제공하는 32V와 마찬가지로 이를 통해 고전압을 제어할 수 있습니다.tag12V, 24V 또는 메인 전압과 같은tage (유럽에서는 230V, 미국에서는 120V).LAFVIN ESP32 기본 스타터 키트 - 릴레이 소개왼쪽에는 고전압을 연결하기 위한 3개의 소켓이 2세트 있습니다.tages, 그리고 오른쪽에 있는 핀(저용량)tage) ESP32 GPIO에 연결합니다.
메인볼tage 연결LAFVIN ESP32 기본 스타터 키트 - 메인 Voltage 연결이전 사진에 나온 릴레이 모듈에는 커넥터가 두 개 있고, 각 커넥터에는 소켓이 세 개 있습니다. 즉, 공통(COM), 일반적으로 닫힘(NC), 일반적으로 열림(NO)입니다.

  • COM : 제어하려는 전류(주전원 볼륨)를 연결합니다.tag이자형).
  • NC(Normally Closed): Normally Closed 구성은 릴레이를 기본적으로 닫고 싶을 때 사용됩니다. NC는 COM 핀이 연결되어 있으므로 ESP32에서 릴레이 모듈로 신호를 보내 회로를 열고 전류 흐름을 멈추지 않는 한 전류가 흐릅니다.
  • NO(일반적으로 개방): 일반적으로 개방 구성은 반대로 작동합니다. NO와 COM 핀 사이에 연결이 없으므로 ESP32에서 회로를 닫는 신호를 보내지 않는 한 회로가 끊어집니다.

컨트롤 핀LAFVIN ESP32 기본 스타터 키트 - 제어 핀저볼륨tage 측면에는 1개 핀 세트와 1개 핀 세트가 있습니다. 첫 번째 세트는 모듈에 전원을 공급하기 위한 VCC와 GND, 각각 하단 및 상단 릴레이를 제어하기 위한 입력 2(IN2) 및 입력 XNUMX(INXNUMX)로 구성됩니다.
릴레이 모듈에 채널이 하나뿐이라면 IN 핀이 하나뿐입니다. 채널이 네 개라면 IN 핀이 네 개이고, 이런 식으로 계속됩니다.
IN 핀에 보내는 신호는 릴레이가 활성화되었는지 여부를 결정합니다. 릴레이는 입력이 약 2V 아래로 내려가면 트리거됩니다. 즉, 다음과 같은 시나리오가 발생합니다.

  • 일반적으로 닫힌 구성(NC):
  • HIGH 신호 – 전류가 흐르고 있습니다
  • LOW 신호 – 전류가 흐르지 않음
  • 일반적으로 열린 구성(NO):
  • HIGH 신호 – 전류가 흐르지 않음
  • LOW 신호 – 흐르는 전류

전류가 항상 흐르고 가끔만 멈추고 싶은 경우에는 정상적으로 닫힌 구성을 사용해야 합니다.
가끔씩 전류가 흐르게 하려는 경우(예: 일반적으로 열린 구성을 사용하세요)ample, all을 켜다amp 가끔).
전원 공급 장치 선택LAFVIN ESP32 기본 스타터 키트 - 전원 공급 장치 선택두 번째 핀 세트는 GND, VCC, JD-VCC 핀으로 구성됩니다.
JD-VCC 핀은 릴레이의 전자석에 전원을 공급합니다. 모듈에는 VCC와 JD-VCC 핀을 연결하는 점퍼 캡이 있습니다. 여기에 표시된 것은 노란색이지만, 여러분의 것은 다른 색상일 수 있습니다.
점퍼 캡을 씌우면 VCC와 JD-VCC 핀이 연결됩니다. 즉, 릴레이 전자석은 ESP32 전원 핀에서 직접 전원을 공급받으므로 릴레이 모듈과 ESP32 회로는 물리적으로 서로 분리되지 않습니다.
점퍼 캡이 없으면 JD-VCC 핀을 통해 릴레이의 전자석에 전원을 공급하기 위해 독립적인 전원을 제공해야 합니다. 이 구성은 모듈의 내장 광커플러로 릴레이를 ESP32에서 물리적으로 분리하여 전기 스파이크가 발생해도 ESP32가 손상되는 것을 방지합니다.
개략도LAFVIN ESP32 기본 스타터 키트 - 개요경고: 높은 볼륨 사용tag전원 공급장치는 심각한 부상을 초래할 수 있습니다.
따라서 고공급량 대신 5mm LED를 사용합니다.tag실험에서 전구. 메인 볼륨에 익숙하지 않은 경우tag누군가에게 도움을 요청하세요. ESP를 프로그래밍하거나 회로를 배선하는 동안 모든 것이 주전원에서 분리되었는지 확인하세요.tage.LAFVIN ESP32 기본 스타터 키트 - 메인 볼륨tageESP32 라이브러리 설치
이것을 빌드하려면 web 서버에서는 ESPAsync를 사용합니다.Web서버 라이브러리 및 AsyncTCP 라이브러리.
ESPAsync 설치Web서버 라이브러리
다음 단계에 따라 설치하세요. 에스파싱크Web섬기는 사람 도서관:

  1. ESPAsync를 다운로드하려면 여기를 클릭하세요.Web서버 라이브러리. 당신은 가지고 있어야 합니다
    다운로드 폴더에 .zip 폴더가 있습니다.
  2. .zip 폴더를 압축 해제하면 ESPAsync를 얻을 수 있습니다.Web서버 마스터 폴더
  3. ESPAsync에서 폴더 이름 바꾸기Web서버 마스터에서 ESPAsync로Web섬기는 사람
  4. ESPAsync를 이동합니다WebArduino IDE 설치 라이브러리 폴더의 서버 폴더

또는 Arduino IDE에서 스케치 > 포함으로 이동할 수 있습니다.
라이브러리 > .ZIP 라이브러리 추가…를 클릭하고 방금 다운로드한 라이브러리를 선택하세요.
ESP32용 AsyncTCP 라이브러리 설치
그만큼 에스파싱크Web섬기는 사람 도서관에 필요합니다 비동기 TCP 도서관에서 일하다. 팔로우
해당 라이브러리를 설치하기 위한 다음 단계:

  1. 여기를 클릭하여 AsyncTCP 라이브러리를 다운로드하세요. 다운로드 폴더에 .zip 폴더가 있어야 합니다.
  2. .zip 폴더의 압축을 풀면 AsyncTCP-master 폴더가 나옵니다.
    1. 폴더 이름을 AsyncTCP-master에서 AsyncTCP로 변경합니다.
    3. AsyncTCP 폴더를 Arduino IDE 설치 라이브러리 폴더로 이동합니다.
    4. 마지막으로 Arduino IDE를 다시 엽니다.

또는 Arduino IDE에서 스케치 > 포함으로 이동할 수 있습니다.
라이브러리 > .ZIP 라이브러리 추가…를 클릭하고 방금 다운로드한 라이브러리를 선택하세요.
암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
필요한 라이브러리를 설치한 후 Project_7_ESP32_Relay_ 코드를 엽니다.WebArduino IDE의 _Server.ino.
코드를 업로드하기 전에 ESP가 로컬 네트워크에 연결할 수 있도록 네트워크 자격 증명을 삽입하는 것을 잊지 마세요.LAFVIN ESP32 기본 스타터 키트 - ocal 네트워크데모
필요한 변경을 한 후 ESP32에 코드를 업로드합니다. 코드 업로드 참조 단계.
115200의 전송 속도로 직렬 모니터를 열고 ESP32 EN 버튼을 눌러 IP 주소를 가져옵니다. 그런 다음 로컬 네트워크에서 브라우저를 열고 ESP32 IP 주소를 입력하여 액세스합니다. web 섬기는 사람.
115200의 전송 속도로 직렬 모니터를 열고 ESP32 EN 버튼을 눌러 IP 주소를 가져옵니다. 그런 다음 로컬 네트워크에서 브라우저를 열고 ESP32 IP 주소를 입력하여 액세스합니다. web 섬기는 사람.LAFVIN ESP32 기본 스타터 키트 - web 섬기는 사람메모: 브라우저와 ESP32는 동일한 LAN에 연결되어야 합니다.
코드에서 정의한 릴레이의 개수만큼 버튼이 두 개 있는 다음과 같은 결과가 나와야 합니다.LAFVIN ESP32 기본 스타터 키트 - 스마트폰이제 스마트폰을 사용하여 릴레이를 제어할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 스마트폰 1

프로젝트 8 출력 상태 동기화 Web_섬기는 사람

이 프로젝트는 ESP32 또는 ESP8266 출력을 제어하는 ​​방법을 보여줍니다. web 서버와 물리적 버튼을 동시에 사용할 수 있습니다. 출력 상태는 다음에서 업데이트됩니다. web 페이지가 물리적 버튼을 통해 변경되는지 여부 또는 web 섬기는 사람.
프로젝트 오버view
이 프로젝트가 어떻게 진행되는지 간단히 살펴보겠습니다.LAFVIN ESP32 기본 스타터 키트 - 프로젝트 오버viewESP32 또는 ESP8266은 다음을 호스팅합니다. web 출력 상태를 제어할 수 있는 서버

  • 현재 출력 상태는 다음에 표시됩니다. web 섬기는 사람;
  • ESP는 동일한 출력을 제어하는 ​​물리적 푸시 버튼에도 연결됩니다.
  • 물리적 푸시버튼을 사용하여 출력 상태를 변경하는 경우 현재 상태도 업데이트됩니다. web 섬기는 사람.

요약하자면, 이 프로젝트를 사용하면 다음을 사용하여 동일한 출력을 제어할 수 있습니다. web 서버와 푸시 버튼을 동시에 사용할 수 있습니다. 출력 상태가 변경될 때마다 web 서버가 업데이트되었습니다.
필요한 부품
회로를 만드는 데 필요한 부품 목록은 다음과 같습니다.

  • ESP32 DEVKIT V1 보드
  • 5mm LED
  • 220옴 저항기
  • 누름 단추
  • 10k 옴 저항
  • 브레드보드
  • 점퍼 와이어

개략도LAFVIN ESP32 기본 스타터 키트 - 회로도 1ESP32 라이브러리 설치
이것을 빌드하려면 web 서버에서는 ESPAsync를 사용합니다.Web서버 라이브러리와 AsyncTCP 라이브러리. (이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
ESPAsync 설치Web서버 라이브러리
ESPAsync를 설치하려면 다음 단계를 따르세요.Web서버 라이브러리:

  1. ESPAsync를 다운로드하려면 여기를 클릭하세요.Web서버 라이브러리. 당신은 가지고 있어야 합니다
    다운로드 폴더에 .zip 폴더가 있습니다.
  2. .zip 폴더를 압축 해제하면 ESPAsync를 얻을 수 있습니다.Web서버 마스터 폴더
  3. ESPAsync에서 폴더 이름 바꾸기Web서버 마스터에서 ESPAsync로Web섬기는 사람
  4. ESPAsync를 이동합니다WebArduino IDE 설치 라이브러리 폴더의 서버 폴더
    또는 Arduino IDE에서 스케치 > 포함으로 이동할 수 있습니다.
    라이브러리 > .ZIP 라이브러리 추가…를 클릭하고 방금 다운로드한 라이브러리를 선택하세요.

ESP32용 AsyncTCP 라이브러리 설치
ESPAsyncWeb서버 라이브러리는 작동하려면 AsyncTCP 라이브러리가 필요합니다. 다음 단계에 따라 해당 라이브러리를 설치하세요.

  1. 여기를 클릭하여 AsyncTCP 라이브러리를 다운로드하세요. 다운로드 폴더에 .zip 폴더가 있어야 합니다.
  2. .zip 폴더의 압축을 풀면 AsyncTCP-master 폴더가 나옵니다.
  3. 폴더 이름을 AsyncTCP-master에서 AsyncTCP로 변경하세요.
  4. AsyncTCP 폴더를 Arduino IDE 설치 라이브러리 폴더로 이동합니다.
  5. 마지막으로 Arduino IDE를 다시 엽니다.
    또는 Arduino IDE에서 스케치 > 포함으로 이동할 수 있습니다.
    라이브러리 > .ZIP 라이브러리 추가…를 클릭하고 방금 다운로드한 라이브러리를 선택하세요.

암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
필요한 라이브러리를 설치한 후 코드를 엽니다.
프로젝트 8 출력 상태 동기화WebArduino IDE의 _Server.ino.
코드를 업로드하기 전에 ESP가 로컬 네트워크에 연결할 수 있도록 네트워크 자격 증명을 삽입하는 것을 잊지 마세요.LAFVIN ESP32 기본 스타터 키트 - 코드

코드 작동 방식

버튼 상태 및 출력 상태
ledState 변수는 LED 출력 상태를 유지합니다. 기본적으로 web 서버가 시작되면 낮습니다.LAFVIN ESP32 기본 스타터 키트 - Code Works

buttonState와 lastButtonState는 푸시버튼이 눌렸는지 여부를 감지하는 데 사용됩니다.LAFVIN ESP32 기본 스타터 키트 - 눌렸습니다버튼(web 섬기는 사람)
우리는 index_html 변수에 버튼을 생성하기 위한 HTML을 포함시키지 않았습니다.
그 이유는 푸시 버튼으로 변경할 수 있는 현재 LED 상태에 따라 변경할 수 있는 기능을 원하기 때문입니다.
따라서, 나중에 코드에서 HTML 텍스트로 대체되어 버튼을 생성할 수 있는 %BUTTONPLACEHOLDER% 버튼에 대한 플레이스홀더를 만들었습니다(이 작업은 Processor() 함수에서 수행됩니다).LAFVIN ESP32 기본 스타터 키트 - 1개 눌림프로세서()
프로세서() 함수는 HTML 텍스트의 모든 플레이스홀더를 실제 값으로 대체합니다. 먼저 HTML 텍스트에 다음이 포함되어 있는지 확인합니다.
플레이스홀더 %BUTTONPLACEHOLDER%.LAFVIN ESP32 기본 스타터 키트 - 프로세서그런 다음 현재 출력 상태를 반환하는 outputState() 함수를 호출합니다. 우리는 그것을 outputStateValue 변수에 저장합니다.LAFVIN ESP32 기본 스타터 키트 - outputState그런 다음 해당 값을 사용하여 올바른 상태로 버튼을 표시하는 HTML 텍스트를 생성합니다.LAFVIN ESP32 기본 스타터 키트 - 코드 4출력 상태 변경을 위한 HTTP GET 요청(JavaScript)
버튼을 누르면, thetoggleCheckbox() 함수가 호출됩니다. 이 함수는 다른 것에 대한 요청을 합니다. URLLED를 켜거나 끕니다.LAFVIN ESP32 기본 스타터 키트 - JavaScriptLED를 켜려면 /update?state=1에 요청을 합니다. URL:LAFVIN ESP32 기본 스타터 키트 - element.checked그렇지 않으면 /update?state=0에 대한 요청을 합니다. URL.
상태 업데이트를 위한 HTTP GET 요청(JavaScript)
출력 상태를 최신 상태로 유지하려면 web 서버에서는 /state에 대한 새로운 요청을 만드는 다음 함수를 호출합니다. URL 매초마다.LAFVIN ESP32 기본 스타터 키트 - 상태 업데이트LAFVIN ESP32 기본 스타터 키트 - 업데이트 상태 1요청 처리
그런 다음 ESP32 또는 ESP8266이 해당 요청을 수신할 때 발생하는 일을 처리해야 합니다. URLs.
루트 /에서 요청이 수신되면URLHTML 페이지와 프로세서도 함께 보냅니다.LAFVIN ESP32 기본 스타터 키트 - 핸들 요청LAFVIN ESP32 기본 스타터 키트 - 핸들 요청 1다음 줄은 /update?state=1 또는 /update?state=0에서 요청을 받았는지 확인합니다. URL 이에 따라 ledState를 변경합니다.LAFVIN ESP32 기본 스타터 키트 - ledStateLAFVIN ESP32 기본 스타터 키트 - inputParam/state에서 요청이 수신되면 URL, 현재 출력 상태를 보냅니다:LAFVIN ESP32 기본 스타터 키트 - 출력 상태고리()
loop()에서 푸시버튼의 바운스를 해제하고 ledState 값에 따라 LED를 켜거나 끕니다. 변하기 쉬운.LAFVIN ESP32 기본 스타터 키트 - 루프 1데모
ESP32 보드에 코드를 업로드하세요. 코드 참조 단계를 업로드하세요.
그런 다음 115200의 통신 속도로 직렬 모니터를 엽니다. 온보드 EN/RST 버튼을 눌러 IP 주소를 가져옵니다.LAFVIN ESP32 기본 스타터 키트 - 데모로컬 네트워크에서 브라우저를 열고 ESP IP 주소를 입력하세요. 다음에 액세스할 수 있어야 합니다. web 아래와 같이 서버가 표시됩니다.
메모: 브라우저와 ESP32는 동일한 LAN에 연결되어야 합니다.LAFVIN ESP32 기본 스타터 키트 - 브라우저버튼을 토글할 수 있습니다 web LED를 켜는 서버입니다.LAFVIN ESP32 기본 스타터 키트 - web 1 서버물리적 푸시 버튼으로 동일한 LED를 제어할 수도 있습니다. 상태는 항상 자동으로 업데이트됩니다. web 섬기는 사람.

프로젝트 9 ESP32 DHT11 Web 섬기는 사람

이 프로젝트에서는 비동기 ESP32를 빌드하는 방법을 알아봅니다. web Arduino IDE를 사용하여 온도와 습도를 표시하는 DHT11이 있는 서버입니다.
필수 조건
그만큼 web 우리가 구축할 서버는 새로 고침할 필요 없이 자동으로 판독값을 업데이트합니다. web 페이지.
이 프로젝트를 통해 다음을 배울 수 있습니다.

  • DHT 센서에서 온도와 습도를 읽는 방법
  • 비동기를 구축하다 web 서버를 사용 에스파싱크Web서버 라이브러리;
  • 새로 고침할 필요 없이 센서 판독값을 자동으로 업데이트합니다. web 페이지.

비동기 Web 섬기는 사람
빌드하려면 web 우리가 사용할 서버 에스파싱크Web서버 라이브러리 비동기를 쉽게 구축할 수 있는 방법을 제공합니다. web 서버. 비동기 구축 web 서버에는 여러 가지 장점이 있습니다tag라이브러리 GitHub 페이지에 언급된 것과 같습니다.

  • “동시에 두 개 이상의 연결을 처리합니다”
  • "응답을 보내면 서버가 백그라운드에서 응답을 보내는 동안 다른 연결을 처리할 준비가 즉시 완료됩니다."
  • “템플릿을 처리하기 위한 간단한 템플릿 처리 엔진”

필요한 부품
이 튜토리얼을 완료하려면 다음 부품이 필요합니다.

  • ESP32 개발 보드
  • DHT11 모듈
  • 브레드보드
  • 점퍼 와이어

개략도LAFVIN ESP32 기본 스타터 키트 - 회로도 2라이브러리 설치
이 프로젝트를 위해서는 몇 가지 라이브러리를 설치해야 합니다.

DHT 센서 라이브러리 설치
Arduino IDE를 사용하여 DHT 센서에서 읽으려면 다음을 설치해야 합니다. DHT 센서 라이브러리. 다음 단계에 따라 라이브러리를 설치하세요.

  1. 여기를 클릭하여 DHT 센서 라이브러리를 다운로드하세요. 다운로드 폴더에 .zip 폴더가 있어야 합니다.
  2. .zip 폴더를 압축 해제하면 DHT-sensor-library-master 폴더가 나옵니다.
  3. 폴더 이름을 DHT-sensor-library-master에서 DHT_sensor로 변경하세요.
  4. DHT_sensor 폴더를 Arduino IDE 설치 라이브러리 폴더로 이동합니다.
  5. 마지막으로 Arduino IDE를 다시 엽니다.

Adafruit Unified 센서 드라이버 설치
또한 설치해야 합니다 Adafruit 통합 센서 드라이버 라이브러리 DHT 센서로 작업합니다. 다음 단계에 따라 라이브러리를 설치합니다.

  1. 여기를 클릭하여 Adafruit Unified Sensor 라이브러리를 다운로드하세요. 다운로드 폴더에 .zip 폴더가 있어야 합니다.
  2. .zip 폴더를 압축 해제하면 Adafruit_sensor-master 폴더가 나옵니다.
  3. 폴더 이름을 Adafruit_sensor-master에서 Adafruit_sensor로 변경하세요.
  4. Adafruit_sensor 폴더를 Arduino IDE 설치 라이브러리 폴더로 이동합니다.
  5. 마지막으로 Arduino IDE를 다시 엽니다.

ESPAsync 설치Web서버 라이브러리

다음 단계에 따라 설치하세요. 에스파싱크Web섬기는 사람 도서관:

  1. ESPAsync를 다운로드하려면 여기를 클릭하세요.Web서버 라이브러리. 당신은 가지고 있어야 합니다
    다운로드 폴더에 .zip 폴더가 있습니다.
  2. .zip 폴더의 압축을 풀면 됩니다.
    ESPAsync를 받으세요Web서버 마스터 폴더
  3. ESPAsync에서 폴더 이름 바꾸기Web서버 마스터에서 ESPAsync로Web섬기는 사람
  4. ESPAsync를 이동합니다WebArduino IDE 설치 라이브러리 폴더의 서버 폴더

ESP32용 비동기 TCP 라이브러리 설치
그만큼 에스파싱크Web섬기는 사람 도서관에 필요합니다 비동기 TCP 라이브러리를 작동시킵니다. 다음 단계에 따라 라이브러리를 설치합니다.

  1. 여기를 클릭하여 AsyncTCP 라이브러리를 다운로드하세요. 다운로드 폴더에 .zip 폴더가 있어야 합니다.
  2. .zip 폴더의 압축을 풀면 AsyncTCP-master 폴더가 나옵니다.
  3. 폴더 이름을 AsyncTCP-master에서 AsyncTCP로 변경하세요.
  4. AsyncTCP 폴더를 Arduino IDE 설치 라이브러리 폴더로 이동합니다.
  5. 마지막으로 Arduino IDE를 다시 엽니다.

암호
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요(이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치
필요한 라이브러리를 설치한 후 코드를 엽니다.
프로젝트_9_ESP32_DHT11_WebArduino IDE의 _Server.ino.
코드를 업로드하기 전에 ESP가 로컬 네트워크에 연결할 수 있도록 네트워크 자격 증명을 삽입하는 것을 잊지 마세요.LAFVIN ESP32 기본 스타터 키트 - 코드코드 작동 방식
다음 문단에서는 코드가 어떻게 작동하는지 설명합니다. 더 자세히 알아보려면 계속 읽거나 데모 섹션으로 이동하여 최종 결과를 확인하세요.
라이브러리 가져 오기
먼저 필요한 라이브러리를 임포트합니다. WiFi, ESPAsyncWeb서버와 ESPAsyncTCP가 필요합니다. web 서버. Adafruit_Sensor와 DHT 라이브러리는 DHT11 또는 DHT22 센서에서 읽는 데 필요합니다.LAFVIN ESP32 기본 스타터 키트 - 라이브러리 가져오기LAFVIN ESP32 기본 스타터 키트 - 코드 작동 방식변수 정의
DHT 데이터 핀이 연결된 GPIO를 정의합니다. 이 경우 GPIO 4에 연결됩니다.LAFVIN ESP32 기본 스타터 키트 - 변수 정의그런 다음 사용 중인 DHT 센서 유형을 선택합니다. 우리의 example, 우리는 DHT22를 사용하고 있습니다. 다른 유형을 사용하는 경우 센서의 주석을 해제하고 다른 모든 센서에 주석을 달면 됩니다.LAFVIN ESP32 기본 스타터 키트 - 변수 정의 1

이전에 정의한 유형과 핀을 사용하여 DHT 객체를 인스턴스화합니다.LAFVIN ESP32 기본 스타터 키트 - 변수 정의 2비동기 생성Web포트 80의 서버 객체.LAFVIN ESP32 기본 스타터 키트 - 변수 정의 3온도 및 습도 기능 읽기
우리는 두 가지 함수를 만들었습니다. 하나는 온도를 읽는 함수입니다. 우리는 두 가지 함수를 만들었습니다. 하나는 온도를 읽는 함수(readDHTTemperature())이고, 다른 하나는 습도를 읽는 함수(readDHTHumidity())입니다.LAFVIN ESP32 기본 스타터 키트 - readDHTHumidityLAFVIN ESP32 기본 스타터 키트 - 센서 판독센서 판독값을 얻는 것은 dht 객체에서 readTemperature() 및 readHumidity() 메서드를 사용하는 것만큼 간단합니다.LAFVIN ESP32 기본 스타터 키트 - 개체또한 센서가 판독값을 얻지 못하는 경우 두 개의 대시(-)를 반환하는 조건도 있습니다.LAFVIN ESP32 기본 스타터 키트 - 판독판독값은 문자열 유형으로 반환됩니다. 부동 소수점을 문자열로 변환하려면 String() 함수를 사용합니다.LAFVIN ESP32 기본 스타터 키트 - 스트링기본적으로 우리는 섭씨 온도로 온도를 읽습니다. 화씨 온도로 온도를 얻으려면 섭씨 온도에 주석을 달고 화씨 온도의 주석을 해제하면 다음과 같습니다.LAFVIN ESP32 기본 스타터 키트 - 화씨LAFVIN ESP32 기본 스타터 키트 - 화씨 1코드 업로드
이제 ESP32에 코드를 업로드하세요. 올바른 보드와 COM 포트를 선택했는지 확인하세요. 코드 참조 단계 업로드.
업로드 후, 시리얼 모니터를 115200의 전송 속도로 엽니다. ESP32 리셋 버튼을 누릅니다. ESP32 IP 주소는 시리얼에 인쇄되어야 합니다. 감시 장치.LAFVIN ESP32 기본 스타터 키트 - 코드 업로드데모
브라우저를 열고 ESP32 IP 주소를 입력하세요. web 서버는 최신 센서 판독값을 표시해야 합니다.
메모: 브라우저와 ESP32는 동일한 LAN에 연결되어야 합니다.
온도 및 습도 판독값은 새로 고침할 필요 없이 자동으로 업데이트됩니다. web 페이지.LAFVIN ESP32 기본 스타터 키트 - 데모 1

프로젝트_10_ESP32_OLED_디스플레이

이 프로젝트에서는 Arduino IDE를 사용하여 0.96 인치 SSD1306 OLED 디스플레이를 ESP32와 함께 사용하는 방법을 보여줍니다.
0.96인치 OLED 디스플레이 소개
그만큼 OLED 디스플레이 이 튜토리얼에서 사용할 모델은 SSD1306 모델입니다. 다음 그림과 같이 0.96×128픽셀의 단색 64인치 디스플레이입니다.LAFVIN ESP32 기본 스타터 키트 - OLEDDisplayOLED 디스플레이는 백라이트가 필요 없어 어두운 환경에서 매우 좋은 대비를 제공합니다. 또한 픽셀은 켜져 있을 때만 에너지를 소모하므로 OLED 디스플레이는 다른 디스플레이에 비해 전력을 덜 소모합니다.
OLED 디스플레이는 I2C 통신 프로토콜을 사용하기 때문에 배선이 매우 간단합니다. 다음 표를 참조로 사용할 수 있습니다.

OLED 핀 ESP32
3.3V
접지 접지
에스씨엘 지피오 22
재림교회 지피오 21

개략도LAFVIN ESP32 기본 스타터 키트 - 개요SSD1306 OLED 라이브러리 설치 – ESP32
ESP32로 OLED 디스플레이를 제어하는 ​​데 사용할 수 있는 라이브러리가 여러 개 있습니다.
이 튜토리얼에서는 두 개의 Adafruit 라이브러리를 사용합니다. Adafruit_SSD1306 라이브러리 그리고 Adafruit_GFX 라이브러리.
다음 단계에 따라 라이브러리를 설치하세요.

  1. Arduino IDE를 열고 Sketch > Include Library > Manage Libraries로 이동합니다. Library Manager가 열립니다.
  2. 검색창에 "SSD1306"을 입력하고 Adafruit에서 SSD1306 라이브러리를 설치합니다.LAFVIN ESP32 기본 스타터 키트 - OLEDLibrary–
  3. Adafruit에서 SSD1306 라이브러리를 설치한 후 검색 상자에 "GFX"를 입력하고 라이브러리를 설치합니다.LAFVIN ESP32 기본 스타터 키트 - 라이브러리
  4. 라이브러리를 설치한 후 Arduino IDE를 다시 시작하세요.

암호
필요한 라이브러리를 설치한 후 Arduino IDE에서 Project_10_ESP32_OLED_Display.ino를 엽니다. 코드
Arduino IDE를 사용하여 ESP32를 프로그래밍하므로 계속 진행하기 전에 ESP32 애드온이 설치되어 있는지 확인하세요. (이미 이 단계를 완료한 경우 다음 단계로 건너뛸 수 있습니다.)
Arduino IDE에 ESP32 애드온 설치LAFVIN ESP32 기본 스타터 키트 - 코드 1LAFVIN ESP32 기본 스타터 키트 - 코드 2LAFVIN ESP32 기본 스타터 키트 - 코드 3코드 작동 방식
라이브러리 가져 오기
먼저 필요한 라이브러리를 가져와야 합니다. I2C를 사용하기 위한 Wire 라이브러리와 디스플레이에 쓰기 위한 Adafruit 라이브러리: Adafruit_GFX와 Adafruit_SSD1306.LAFVIN ESP32 기본 스타터 키트 - Code Works 1LAFVIN ESP32 기본 스타터 키트 - Code Works 2OLED 디스플레이 초기화
그런 다음 OLED 너비와 높이를 정의합니다. 이 예에서ample, 우리는 128×64 OLED 디스플레이를 사용하고 있습니다. 다른 크기를 사용하는 경우 SCREEN_WIDTH 및 SCREEN_HEIGHT 변수에서 변경할 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - OLED 디스플레이그런 다음 I2C 통신 프로토콜(&Wire)을 사용하여 앞서 정의한 너비와 높이로 디스플레이 객체를 초기화합니다.LAFVIN ESP32 기본 스타터 키트 - 통신 프로토콜(-1) 매개변수는 OLED 디스플레이에 RESET 핀이 없다는 것을 의미합니다. OLED 디스플레이에 RESET 핀이 있는 경우 GPIO에 연결해야 합니다. 그런 경우 GPIO 번호를 매개변수로 전달해야 합니다.
디버깅 목적으로 setup()에서 직렬 모니터를 115200의 통신 속도로 초기화합니다.LAFVIN ESP32 기본 스타터 키트 - 용도다음과 같이 begin() 메서드를 사용하여 OLED 디스플레이를 초기화합니다.LAFVIN ESP32 기본 스타터 키트 - display.beginLAFVIN ESP32 기본 스타터 키트 - Serial.println이 스니펫은 디스플레이에 연결할 수 없는 경우를 대비해 직렬 모니터에 메시지를 인쇄합니다.

LAFVIN ESP32 기본 스타터 키트 - Serial.println 1다른 OLED 디스플레이를 사용하는 경우 OLED 주소를 변경해야 할 수 있습니다. 우리의 경우 주소는 0x3C입니다.LAFVIN ESP32 기본 스타터 키트 - 주소디스플레이를 초기화한 후 OLED가 텍스트를 쓰기 전에 초기화할 수 있는 충분한 시간을 확보할 수 있도록 2초 지연 시간을 추가합니다.LAFVIN ESP32 기본 스타터 키트 - 지연디스플레이 지우기, 글자 크기, 색상 설정 및 글자 쓰기
디스플레이를 초기화한 후 clearDisplay() 메서드를 사용하여 디스플레이 버퍼를 지웁니다.LAFVIN ESP32 기본 스타터 키트 - 디스플레이

텍스트를 작성하기 전에 텍스트 크기, 색상, OLED에서 텍스트가 표시되는 위치를 설정해야 합니다.
setTextSize() 메서드를 사용하여 글꼴 크기를 설정합니다.LAFVIN ESP32 기본 스타터 키트 - 디스플레이 1setTextColor() 메서드로 글꼴 색상을 설정합니다.
WHITE는 흰색 글꼴과 검은색 배경을 설정합니다.
setCursor(x,y) 메서드를 사용하여 텍스트가 시작되는 위치를 정의합니다. 이 경우, 텍스트를 (0,0) 좌표, 즉 왼쪽 상단 모서리에서 시작하도록 설정합니다.LAFVIN ESP32 기본 스타터 키트 - setTextColor 1마지막으로, 다음과 같이 println() 메서드를 사용하여 텍스트를 디스플레이로 보낼 수 있습니다.LAFVIN ESP32 기본 스타터 키트 - 코드 5그런 다음 display() 메서드를 호출하여 실제로 텍스트를 화면에 표시해야 합니다.LAFVIN ESP32 기본 스타터 키트 - 디스플레이

Adafruit OLED 라이브러리는 텍스트를 쉽게 스크롤할 수 있는 유용한 방법을 제공합니다.

  • startscrollright(0x00, 0x0F): 텍스트를 왼쪽에서 오른쪽으로 스크롤합니다.
  • startscrollleft(0x00, 0x0F): 텍스트를 오른쪽에서 왼쪽으로 스크롤합니다.
  • startscrolldiagright(0x00, 0x07): 텍스트를 왼쪽 아래 모서리에서 오른쪽 위 모서리로 스크롤합니다. startscrolldiagleft(0x00, 0x07): 텍스트를 오른쪽 아래 모서리에서 왼쪽 위 모서리로 스크롤합니다.

코드 업로드
이제 ESP32에 코드를 업로드합니다. 코드 업로드 참조 단계.
코드를 업로드하면 OLED에 스크롤 텍스트가 표시됩니다.LAFVIN ESP32 기본 스타터 키트 - 스크롤 텍스트LAFVIN 로고

문서 / 리소스

LAFVIN ESP32 기본 스타터 키트 [PDF 파일] 사용설명서
ESP32 기본 스타터 키트, ESP32, 기본 스타터 키트, 스타터 키트

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *