ESP8266 i Arduino – OTA (Over The Air) Update

0
70
OTA (Over The Air) Update jest bardzo wygodnym mechanizmem, którego wykorzystanie znacznie podnosi wygodę korzystania z układu opartego na ESP8266. Jak sama nazwa sugeruje, wykorzystanie OTA pozwala na załadowanie programu do układu bez konieczności korzystania z programatora, portu szeregowego czy USB.
 

Takie rozwiązanie ma wiele zalet. W momencie zabudowania ESP8266 w obudowę, nie ma konieczności kombinowania jak tu wpiąć kabelek USB w urządzenie. Dużo szybciej można też zaktualizować oprogramowanie w większej ilości urządzeń podłączonych do sieci.

Postaram się, w tym poście, przedstawić w skrócie jak przygotować środowisko i samego ESP8266 do aktualizacji programu z wykorzystaniem OTA Update.

Do skorzystania z OTA potrzebny jest Python. Zarówno Arduino IDE jak i Visual Micro wykorzystuje skrypt napisany w Python-ie do zaktualizowania programu w ESP8266. Pierwszą czynnością, którą trzeba wykonać jest w związku z tym zainstalowanie Pythona w wersji 2.7.X. Po instalacji warto sprawdzić czy Python jest dodany do ścieżki systemowej i czy możemy go odpalić z konsoli wpisując: python.

Aby można było wybrać urządzenie sieciowe jako port docelowy do załadowania programu, zarówno Arduino IDE jak i Visual Micro muszą wykryć urządzenie podłączone do sieci. Wykorzystują do tego usługę Apple Bonjour (zdaję sobie sprawę, że to dziwne – ale tak własnie jest). Jeżeli więc nie mamy jej zainstalowanej – trzeba zainstalować. Z moich testów wynika, że wystarczy zainstalować Apple Bonjour dla drukarek. Ja pobrałem i zainstalowałem wersję, którą można znaleźć pod tym linkiem.

Teraz musimy odpowiednio przygotować ESP8266, do aktualizacji przez sieć. Najlepiej zacząć od gotowego przykładu, który mamy dostępny jeżeli zainstalowaliśmy obsługę ESP8266 do naszego IDE. Otwórzmy szkic BasicOTA.ino (w Arduino IDE znajdziemy go w menu Plik->Przykłady->Arduino OTA->Basic OTA.ino).

Szkic jest bardzo czytelny, nie będę się więc nad nim zbytnio rozwodził. Przed załadowaniem trzeba jeszcze właściwie uzupełnić zmienne ssid (nazwa naszej sieci WiFi) i password (hasło do sieci). Szkic ładujemy oczywiście klasycznie przez połączenie szeregowe.

Po załadowaniu szkicu powinniśmy uzyskać w menu połączenia nowy port sieciowy, który będzie się nazywał mniej więcej tak: esp8266-xxxxxx at adres_IP (jeżeli nowy port sieciowy nie pojawił się w menu, może być konieczny restart IDE).

Tak to wygląda w Arduino IDE:

 

Tak wygląda w VisualMicro:

 

Teraz możemy spróbować załadować szkic przez port sieciowy (czyli de-facto wykonać OTA Update) – i … to tyle :).

Szkic BasicOTA.ino możemy wykorzystać jako szkic bazowy, jeżeli chcemy wykorzystywać OTA w naszym projekcie i rozbudowywać go o inne funkcjonalności, których wymagamy od układu.

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here