ESP32를 기반으로 기상 관측소 데이터 표시를 구현하는 방법을 소스 코드와 함께 자세히 소개합니다.

ESP32 기상 관측소

특징:

  1. 드라이버 ili9341

  2. JD.com에서 날씨 데이터 가져오기

사용을 시작하다

열쇠를 얻으세요

1. JD.com에서 계정을 등록하세요

2. 웹사이트에서 키를 획득하세요  ESP32 기상 관측소

 

ESP32 SDK 설치

ESP-IDF 프로그래밍 가이드 - ESP32 - — ESP-IDF 프로그래밍 가이드 최신 문서

노트:

이 프로젝트는 ESP-IDF 3.X 브랜치 및 4.0 브랜치와 호환됩니다. 4.0 브랜치의 경우 make나 CMake를 사용할 수 있지만 CMake를 권장합니다. 최신 툴체인 idf.py(CMake 호출) 사용에 대한 지침이 여기에 제공되지만 make로 변환하는 것은 쉽습니다. 예를 들어 를 실행하는 대신 idf.py menuconfig을 실행하면 됩니다 make menuconfig.

이 저장소를 독립적으로 구축하고 데모를 실행하세요.

하드웨어가 올바르게 지원되고, 연결되고, 구성되었는지 확인하려면 먼저 이것을 시도해 보십시오.

  1. 이 항목을 얻으십시오:git clone --recurse-submodules https://github.com/donny681/ESP32_Weather_station.git

  2. 루트에서 실행idf.py menuconfig

  3. 디스플레이 키트나 보드 및 기타 옵션을 선택하세요. 구성 옵션을 확인하세요.

  4. main/my_https.c에 키를 입력하면 정의된 내용을 볼 수 있습니다.KEY

  5. idf.py build

  6. idf.py -p (YOUR PORT) flash(make를 사용하면 make flash3.x에서 PORT를 구성할 수 있습니다  menuconfig)

이 프로젝트를 자신의 프로젝트에 라이브러리 하위 모듈로 설치하십시오.

이 저장소를 IDF 프로젝트의 git 저장소에 하위 모듈로 설치하는 것이 좋습니다. 구성 시스템은 이 저장소의 파일을 복사하거나 편집할 필요가 없도록 설계되었습니다. 하위 모듈 디렉터리를 깨끗하게 유지하면 이 업스트림 저장소에서 반복 가능한 빌드와 쉬운 업데이트를 보장할 수 있습니다.

CMake

다음 예는 ESP-IDF  Blink 예에서 가져온 것입니다. 이를 복사하여 자신의 프로젝트에 대한 기초로 사용할 수 있습니다. 프로젝트 루트 CMakeLists.txt 파일은 다음과 같이 추가 구성 요소 디렉터리를 경로에 추가하기 위해 프로젝트 앞에 줄을 추가해야 합니다.

#CMakeLists.txt
cmake_minimum_required(버전 3.5)

포함($ENV{IDF_PATH}/tools/cmake/project.cmake)

설정(EXTRA_COMPONENT_DIRS 외부/lv_port_esp32_ili9341/구성 요소)

프로젝트(깜박임)

CMakeLists.txt 파일 또는 LVGL을 사용하는 구성 요소에서 /main이 프로젝트의 드라이버 및 lvgl 자체에 대한 REQUIRES 지시문을 함수에 추가해야 합니다 idf_component_register.

#main/CMakeLists.txt
idf_comComponent_register(
    SRCS "blink.c"
    INCLUDE_DIRS "."
    lvgl_ili9341 lvgl이 필요합니다.
)

파일 생성

make를 사용하는 경우 프로젝트의 루트 Makefile에 EXTRA_COMPONENT_DIRS를 추가하면 됩니다.

PROJECT_NAME := 깜박임
EXTRA_COMPONENT_DIRS := 외부/lv_port_esp32_ili9341/구성 요소

$(IDF_PATH)/make/project.mk 포함

구성 옵션

다양한 구성 옵션을 사용할 수 있으며 모두 idf.py menuconfig-> 구성 요소 -> LittlevGL(LVGL)을 통해 액세스할 수 있습니다.

 메인 메뉴  구성요소 메뉴  구성요소 메뉴

 

 

옵션은 다음과 같습니다:

  • 디스플레이 해상도 - 디스플레이의 높이와 너비를 설정합니다.
  • 터치 컨트롤러의 존재
  • 디스플레이 반전 - 텍스트와 개체가 거꾸로 되어 있는 경우 이 기능을 활성화할 수 있습니다.
  • GPIO를 통한 백라이트 제어 활성화(하드와이어 연결 시)
  • 백라이트 활성 높음 또는 낮음 - 일부 모니터에서는 백라이트를 활성화하기 위해 높은(1) 신호를 기대하고 다른 모니터에서는 높은(1) 신호(기본값)를 기대합니다. 백라이트가 꺼져 있는 경우 이를 전환해 보십시오.

ESP32 보드에 따라 올바른 핀 할당을 할당하세요.

ESP32 칩을 기반으로 한 다양한 개발 보드가 있으므로 TFT 디스플레이 보드와 인터페이스하는 신호에 올바른 핀 번호를 할당해야 합니다. 아래의 사전 정의된 구성이 권장되지만 디스플레이 컨트롤러와 터치 컨트롤러에 대해 별도의 핀을 가질 수도 있습니다.

 다리  다리

사전 정의된 디스플레이 구성

 사전 정의됨

 

연결된 디스플레이가 있는 개발 키트의 경우 모든 올바른 설정이 알려져 있으며 menuconfig첫 번째 옵션인 "사전 정의된 디스플레이 구성 선택"에서 선택할 수 있습니다. 일단 선택하면 다른 모든 옵션은 기본값으로 설정되어 메뉴에 표시되지 않습니다.

현재 이사회에서는 다음과 같이 정의합니다.

38개의 GPIO를 갖춘 ESP32 개발 보드

 ESP32에서 LittlevGL을 사용하는 GUI 예

 

ILI9341-HSPI

목시 시계 펄스 CS DC 빠른 회복 시간 BCKL
13 14 5 19 18 23

XPT2046-VSPI

목시 된장 시계 펄스 CS 중단 요청
32 35 26 33 25

30개의 GPIO를 갖춘 ESP32 DevKit v1

GPIO가 30개만 제공되는 또 다른 개발 키트가 있습니다.

 30개의 GPIO가 있는 ESP32 키트의 LittlevGL

 

ILI9341

ILI9341 HSPI를 사용하려면 핀 구성을 components/drv/disp_spi.h다음과 같이 수정하세요.

ILI9341-HSPI

목시 시계 펄스 CS DC 빠른 회복 시간 BCKL
13 14 15 2 4 21

XPT2046-VSPI

목시 된장 시계 펄스 CS 중단 요청
23 19 18 5 25

38개의 GPIO를 갖춘 ESP32 DevKit v4

자세한 내용은 이 PDF를 참조하세요: https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32d_esp32-wroom-32u_datasheet_en.pdf

ILI9341-HSPI

목시 시계 펄스 CS DC 빠른 회복 시간 BCKL
13 14 15 번호 17 25 26

XPT2046-VSPI

목시 된장 시계 펄스 CS 중단 요청
23 19 18 5 27

다른 보드

menuconfig물론 사전 정의된 핀이 보드나 프로젝트 요구 사항을 충족하지 못하는 경우 모든 개별 핀을 구성할 수 있습니다. 기본적으로 사전 정의된 옵션은 비활성화되고 30핀 개발 보드의 핀은 기본값으로 설정됩니다.

spiffs 빈 생성

  1. spiffs 도구 다운로드 

  2. bin을 컴파일하고 생성합니다. spiffs 지침을 확인하세요(  GitHub - igrr/mkspiffs: SPIFFS 이미지 빌드 및 압축 풀기 도구  ) .

  3. 출력함을 플래시 주소 0x310000으로 다운로드

또는 "spiffs1.img"를 새로 고칠 수 있습니다.

python esp-idf/comComponents/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB1 --baud 2000000 write_flash 0x1000 spiffs1.img

전체 코드 다운로드 링크

링크: https://pan.baidu.com/s/1XZOgO1bQYR82eWaA5cCe5Q 
추출 코드: m4ml

Supongo que te gusta

Origin blog.csdn.net/tianqiquan/article/details/132433457
Recomendado
Clasificación