
Na samym początku napiszę, iż nie używam i nie polecam środowiska PlatformIO dla Visual Studio Code. Co prawda instalacja frameworków dla esp (zarówno esp32 jak i esp8266) jest tam bardzo prosta to jednak niesie to ze sobą pewne problemy. Esp8266 rtos sdk dostępne w ramach PlatformIO jest przestarzałą wersją, mocno ograniaczoną, na którą nie warto tracić czasu. Dla układów esp32 zazwyczaj aktualizacje też pojawiają się z opóźnieniem, a gdy dzisiaj do dyspozycji mamy espressif-idf to też nie widzę tutaj wielkiego sensu.
Dotychczas polecałem instalację środowisk espressif na maszynie wirtualnej, w systemie linux. Przez ostatni czas jednak sporo się zmieniło i instalacja jak i sama obsługa środowisk jest niebywale prostsza. Wszystko dzięki wydanemu przez espressif oporgramowaniu ESPRESSIF-IDE. Jest to IDE bazujące na znanym Eclipse, gdzie tylko wybieramy używaną przez nas wersję czipu esp32, piszemy kod w wbudowanym edytorze i wgrywamy go jednym przyciskiem.
Dlatego to jest teraz jedyna polecana przeze mnie opcja programowania układów z serii esp32. Espressif-IDE nie obsługuje niestety porzuconych już przez espressif esp8266. Te dalej trzeba programować w starym środowisku.
Oficjalna strona projektu: https://docs.espressif.com/projects/espressif-ide/en/latest/index.html
Espressif-IDE – Pobieranie i konfiguracja

Espressif-IDE dostępne jest na każdy system operacyjny (MAC, Linux, Windows). Pobrać można go z oficjalnej strony producenta.
Pobierz: https://docs.espressif.com/projects/espressif-ide/en/latest/downloads.html
Jedyną rzeczą jaką musimy skonfigurować w naszym środowisku to zainstalowanie i wybranie wersji esp-idf. Co jest bardzo fajne, to fakt, że możemy mieć wgranych kilka wersji esp-idf i wybierać je do konkretnego projektu. To na pewno będzie przydatne przy rozgrzebywaniu starych projektów, bez IDE było to dość problematyczne.
Z menu kontekstowego wybieramy „Espressif” > „ESP-IDF Manager” i jeżeli nie mamy wgranego pożądanego przez nas esp-idf „Add ESP-IDF”.

Tutaj musimy podać lokalizację do wykonywalnych plików gita, oraz pythona. W przypadku Windowsa będą to pliki .exe, następnie wersje idf i lokalizację, gdzie ta ma zostać zapisana. Klikamy „Finish”, a reszta zrobi się już sama.

By stworzyć nowy projekt klikamy „File”>”New”>”Espressif IDF Project”. W tym miejscu możemy wybrać używaną wersję mikrokontrolera, a i załadować jako template jeden z przykładowych programów. By wgrać program do uC trzeba go zbudować (button „build”) i wgrać. Od razu powinien się też otworzyć wbudowany serial monitor.
Konfiguracja samego mikrokontrolera odbywa się tutaj w ramach okna „sdkconfig” wybieranego z drzewka projektu.

ESP8266 RTOS SDK – Instalacja
Odnośnie środowiska esp8266 rtos sdk – pozostaje przy tym samym rozwiązaniu, a więc odseparowanym systemie w ramach maszyny wirtualnej.
Instrukcja dla Windows, Mac i Linux dostępna poniżej. Ja oczywiście posłużę się Linuxem.
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html#setup-toolcha
Podjąłem decyzję by nie przedstawiać tutaj procedury instalacji. Środowisko ESP8266 RTOS SDK jest trochę bardziej oporne niżeli ESP-IDF. Nie jest ono już aktualizowane i polega na przestarzałych zależnościach przez co instalacja często wiąże się z rozwiązywaniem wielu problemów.
Postanowiłem zamieścić zrzut maszyny wirtualnej z wgranym lubuntu, a na nim środowiskiem esp.
Środowisko esp8266 rtos sdk nie jest już rozwijane, nie ulegnie zmianie, a więc nie będzie nigdy potrzeby w ingerencję tej konfiguracji.
https://drive.google.com/file/d/1szVEC-riNPMddbyTtBF_Hk7wI8sAZ_Qa/view?usp=sharing
Login: linux Hasło: linux123
Pierwszy projekt / flashowanie procesora
Jako pierwszy projekt użyjemy przykładu znajdującego się w środowisku.
cd ~/esp cp -r /ESP8266_ROTS_SDK/examples/get-started/hello_world . cd hello_world
Zmodyfikujmy program tak by działał poprawnie. Ten kod powinien wypisywać informacje o procesorze i restartować się po 10 sekundach. Dodam do niego zestaw poleceń inicjalizujących UART; w przeciwnym wypadku w podglądzie portu szeregowego, pojawiają mi się jakieś „krzaki”.
Wystarczy to dodać na początku funkcji „app_main”:
#include "driver/uart.h" // To dodajemy poza funkcją uart_config_t uart_config = { .baud_rate = 115200, .data_bits = UART_DATA_8_BITS, .parity = UART_PARITY_DISABLE, .stop_bits = UART_STOP_BITS_1, .flow_ctrl = UART_HW_FLOWCTRL_DISABLE }; uart_driver_install(UART_NUM_0, 2048, 0, 0, NULL, 0); uart_param_config(UART_NUM_0, &uart_config);
Z tą modyfikacją program powinien działać prawidłowo. Więcej informacji na temat uart’a znajdziesz pod tym linkiem: https://mcinm.pl/kurs-esp32-esp8266-4-uart/
By skompilować program używamy polecenia make, w katalogu projektu (nie – podkatalogu z kodem).
- make – kompiluje
- make clean – „czyści” projekt
- make flash – kompiluje i wgrywa program na mikrokontroler
- make menuconfig – otwiera menu konfiguracyjne projektu
Poniżej efekt działania programu.

Monitor portu szeregowego jaki używam to minicom, otwieram podgląd następującym poleceniem:
„minicom –device /dev/ttyUSB0 –baudrate 115200”. By go zamknąć wystarczy kombinacja klawiszy „ctrl + a” > „z” > „q” > „ENTER”.
Kolejna część: #2 – porty GPIO