Thời gian Mở cửa: Các ngày trong tuần: 7:30 - 20:00

0 sản phẩm

  • Giỏ hàng của bạn trống!

Bắt đầu lập trình với ESP-IDF - Thiết lập môi trường phát triển và lập trình

04/12/2021   |   1371

Đây là bài hướng dẫn sử dụng các dòng ESP32, ESP32-S, ESP32-S2, ESP32-C3, ESP32-S3 trên ESP-IDF. 

ESP-IDF là công cụ phát triển ứng dụng chính hãng từ Espressif, hỗ trợ đầy đủ toolchain và library, example để chúng ta có thể phát triển nhanh nhất và hiệu quả

1. Tài liệu

ESP32 Get Started

ESP32 Windows Setup

2. Kit phát triển các bạn có thể mua tại link sau: 

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32-C3U

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32-C3S

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32-S3-DEVKITC-1

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32 S NODEMCU

KIT PHÁT TRIỂN 3G 4G SIM7600CE ESP32

3. Cài đặt môi trường phát triển

a. Cài đặt ESP32 IDF và tool chain

  • Đầu tiên các bạn truy cập vào đường dẫn: ESP32 Windows Setup
  • Tìm download ESP-IDF Tool chain:

  • Lưu ý:
    • Khi tải về các bạn nhớ chọn Online Installer
    • Nhớ lưu lại đường dẫn esp-idf để sau này dùng lại.
    • Esp-idf version sẽ là v4.4 (bản mới nhất tại thời điểm viết bài)
  • Cài đặt esp-idf

  • Tới bước chọn esp-idf version và đường dẫn, trường hợp này mình sẽ lưu ở đường dẫn D:\esp-idf-master. Các bạn nhớ lưu lại đường dẫn này

  • Có một số bước yêu cầu python, git, .,. các bạn cứ làm bình thường là được.

b. Project mẫu

  • Từ đường dẫn ESP_IDF trong bước a, các bạn truy xuất vào D:\esp-idf-master
  • Copy D:\esp-idf-master\examples\get-started\hello_world vào D:\hello_world

  • Lưu ý: Nếu các bạn cài đặt với đường dẫn esp-idf khác có thể chỉnh lại

set IDF_PATH="D:\esp-idf-master" => set IDF_PATH="<your esp-idf path>"

 


@echo off
set IDF_PATH="D:\esp-idf-master"
if "%IDF_TOOLS_PATH%" == "" (
    set IDF_TOOLS_PATH=%~dp0
    echo IDF_TOOLS_PATH not set. Setting to %~dp0
)

if exist "echo" (
    echo "File 'echo' was detected in the current directory. The file can cause problems with 'echo.' in batch scripts."
    echo "Renaming the file to 'echo.old'"
    move "echo" "echo.old"
)

set PATH=%IDF_TOOLS_PATH%;%PATH%
set TEMP_IDF_PYTHON_PATH="%TEMP%\idf-python-path.txt"
set TEMP_IDF_PATH=%TEMP%\idf-path.txt
:: Check whether IDF ID was specified as the first parameter
set PARAM=%1
if /i "%PARAM:~0,7%"=="esp-idf" (
    idf-env config get --property "path" --idf-id %PARAM%>%TEMP_IDF_PATH%
    idf-env config get --property python --idf-id %PARAM%>%TEMP_IDF_PYTHON_PATH%
    set /P IDF_PATH=<"%TEMP_IDF_PATH%"
) else (
    if "%IDF_PATH%" == "" (
        set IDF_PATH=%CD%
    )
    idf-env config get --property python --idf-path %IDF_PATH%\>%TEMP_IDF_PYTHON_PATH%
)

set /P IDF_PYTHON=<%TEMP_IDF_PYTHON_PATH%

set TEMP_IDF_GIT_PATH="%TEMP%\idf-git-path.txt"
idf-env config get --property gitPath>%TEMP_IDF_GIT_PATH%
set /P IDF_GIT=<%TEMP_IDF_GIT_PATH%

set PREFIX=%IDF_PYTHON% %IDF_PATH%
DOSKEY idf.py=%PREFIX%\tools\idf.py $*
DOSKEY esptool.py=%PREFIX%\components\esptool_py\esptool\esptool.py $*
DOSKEY espefuse.py=%PREFIX%\components\esptool_py\esptool\espefuse.py $*
DOSKEY otatool.py=%PREFIX%\components\app_update\otatool.py $*
DOSKEY parttool.py=%PREFIX%\components\partition_table\parttool.py $*

:: Clear PYTHONPATH as it may contain libraries of other Python versions
if not "%PYTHONPATH%"=="" (
    echo Clearing PYTHONPATH, was set to %PYTHONPATH%
    set PYTHONPATH=
)

:: Clear PYTHONHOME as it may contain path to other Python versions which can cause crash of Python using virtualenv
if not "%PYTHONHOME%"=="" (
    echo Clearing PYTHONHOME, was set to %PYTHONHOME%
    set PYTHONHOME=
)

:: Set PYTHONNOUSERSITE to avoid loading of Python packages from AppData\Roaming profile
if "%PYTHONNOUSERSITE%"=="" (
    echo Setting PYTHONNOUSERSITE, was not set
    set PYTHONNOUSERSITE=True
)

:: Get base name of Git and Python
for %%F in (%IDF_PYTHON%) do set IDF_PYTHON_DIR=%%~dpF
for %%F in (%IDF_GIT%) do set IDF_GIT_DIR=%%~dpF

:: Add Python and Git paths to PATH
set "PATH=%IDF_PYTHON_DIR%;%IDF_GIT_DIR%;%PATH%"
echo Using Python in %IDF_PYTHON_DIR%
%IDF_PYTHON% --version
echo Using Git in %IDF_GIT_DIR%
%IDF_GIT% --version

:: Check if this is a recent enough copy of ESP-IDF.
:: If so, use export.bat provided there.
:: Note: no "call", will not return into this batch file.
if exist "%IDF_PATH%\export.bat" %IDF_PATH%\export.bat
  • Tiếp theo từ cmd.exe --> Enter tại đường dẫn D:\hello_world

  • Chạy file idf_cmd_init.bat

Sau khi mọi thứ thiết lập xong sẽ có kết quả:

Done! You can now compile ESP-IDF projects.

Go to the project directory and run:

idf.py build

  • Thiết lập target: ESP32
    • Từ cmd.exe (ở bước trước)

Nếu target là esp32-c3:   idf.py set-target esp32c3

Nếu target là esp32-s3:   idf.py set-target esp32s3

      •  
  • Build code
    • Từ cmd.exe (ở bước trước)

idf.py build

    • Sau khi build code xong sẽ có kết quả như sau:

Project build complete. To flash, run this command:

D:\Software\WindowsApp\Develop\esp32\.espressif\python_env\idf4.4_py3.8_env\Scripts\python.exe ..\esp-idf-master\components\esptool_py\esptool\esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32c3  write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x0 build\bootloader\bootloader.bin 0x8000 build\partition_table\partition-table.bin 0x10000 build\hello-world.bin

or run 'idf.py -p (PORT) flash'

  • Nạp code vào chip: Trong trường hợp của mình cổng COM là COM6
    • Từ cmd.exe (ở bước trước)

idf.py -p COM6 flash

  • Kiểm tra code (qua cổng uart)
    • Từ cmd.exe (ở bước trước)

idf.py -p COM6 monitor

  • Nạp code và kiểm tra code đồng thời
    • Từ cmd.exe (ở bước trước)

idf.py -p COM6 flash monitor

4. Tổng kết

Vậy là bước thiết lập môi trường phát triển đã xong, từ đây bạn có thể phát triển các dự án của bạn trên nền này.

5. Link

ESP32/ESP32S

Module ESP32S

ESP32 Ethernet LAN8720A Module

ESP32 NodeMCU

Module ESP32 WROOM 32

ESP32-C3

Module ESP32-C3S: Đây là dòng Module tương thích Pin với ESP32-WROOM32 và ESP32S

Module ESP32-C3F: Đây là dòng Module tương thích Pin với ESP12E/ESP12F

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32-C3U

KIT PHÁT TRIỂN WIFI BLUETOOTH ESP32-C3S