馃 ESP32 STEP 2. ESP-IDF Espressif's official IoT Development Framework

:robot: ESP32 STEP 2. ESP-IDF Espressif鈥檚 official IoT Development Framework


艢rodowisko Espressif ESP-IDF jest oficjaln膮 platform膮 projektow膮 dla mikrokontroler贸w ESP32.
IDF u偶ywa C/C++ jako g艂贸wnego j臋zyka programowania i obs艂uguje cross-compilation (generowania kodu maszynowego dla platformy/procesora innej ni偶 ta, na kt贸rej zosta艂 ten kompilator uruchomiony). IDF dzia艂a w systemach operacyjnych, takich jak Linux, Mac i Windows.

W tym wpisie poka偶臋 jak w Visual Studio Code uruchomi膰 program napisany w 艣rodowisku IDF.
Podobnie jak w kroku 1. nie b臋d臋 ospisywa艂 jak zainstalowa膰 IDF i skonfigurowa膰 toolchain(na偶臋dzia potrzebne do cross-compilation) tylko dostarcz臋 gotowy kontener kt贸ry wystarczy uruchomi膰 w VS.

Klonowanie repozytorium z projektem w IDF

W konsoli wpisujemy

git clone https://github.com/sviete/AIS-ESP-DEV-PROJECTS.git

lub je偶eli mieli艣my ju偶 wcze艣niej sklonowane repozytorium z STEP 1. to w konsoli przechodzimy do folderu AIS-ESP-DEV-PROJECTS i wykonujemy aktualizacj臋 kod贸w:

cd AIS-ESP-DEV-PROJECTS
git pull

Otwieramy projekt IDF w VS Code

W VS Code wybieramy FileOpen Folder a nast臋pnie wybieramy nasz sklonowany projekt step-2-idf

Uruchamiamy projekt w kontenerze Docker

Projekt ma skonfigurowany kontener Dockera w kt贸rym s膮 pobierane i instalowane pakiety, 艣rodowisko IDF i dodatek PlatformIO . W CS Code uruchamiamy wiersz polece艅 kombinacj膮 klawiszy: Ctrl + Shift + p a nst臋pnie w wierszu polece艅 wyszukujemy komendy Reopen in container

Instalujemy program na ESP32

W konfiguracji pliku platformIO mamy ustawion膮 p艂yt臋 jako esp32-s3-devkitc-1 (bo tak膮 mam) i framework espidf

pod艂膮czamy nasz膮 p艂yt臋 z ESP32 do USB i instalujemy (wybieraj膮c w PlatformIO zadanie Upload) nasz pierwszy program w IDF

Program

Po zainstalowaniu nasz program robi 3 rzeczy:

  1. Loguje powitanie za pomoc膮 standardowej komendy C printf

  2. Loguje informacje o uk艂adze ESP32

  3. Przechodzi do niesko艅czonej p臋tli - tzw. Super Loop

Debug

Nasz projekt step-2-idf bazuje na projekcie step-1-debug, w kontenerze mamy te偶 zainstalowane narz臋dzia do debugowania kodu, dzi臋ki czemu mo偶emy ustawi膰 pu艂apk臋 (brekpoint) na pocz膮tku naszego kodu i przej艣膰 do jego wykonywania krok po kroku:

Wynik programu w konsoli

Jak wida膰 nasz program wszed艂 w niesko艅czon膮 p臋tl臋 tzw. Super Loop, w tej p臋tli mo偶e odbywa膰 si臋 to co nasz program ma robi膰, czyli wykonywa膰 zadania jedno po drugim, np. mierzy膰 jak膮艣 warto艣膰 z czujnika pod艂膮czonego do GPIO i raportowa膰 np. do Home Assistant czy do chmury.

Podej艣cie z niesko艅czon膮 p臋tl膮 jest ca艂kowicie poprawne i szeroko stosowane w frameworku Arduino. Jednak nasze ESP32 potrafi wi臋cej, bo dzia艂a na systemie operacyjnym freeRTOS (real time operating system) kt贸ry mo偶e wykonywa膰 zadania jednocze艣nie. Dzi臋ki Espressif IDF mamy 艂atwy dost臋p do mo偶liwo艣ci systemu freeRTOS i mo偶emy uruchamia膰 zadania w osobnych w膮tkach - to podej艣cie do programowania ESP32 poka偶臋 w kroku 3.

1 polubienie