Kurs esp32/esp8266 | #1 – Instalowanie środowisk espressif

esp-idf_instalacja

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.

Konfiguracja ustawień mikrokontrolera (menuconfig)

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.

esp8266 rtos sdk hello world
esp8266 rtos sdk hello world

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

Kurs esp32 i esp8266 – spis treści

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *