Do funkcji OTA w swoich projektach podchodziłem jak pies do jeża. W czasach gdy było mi to potrzebne obsługa bezprzewodowego ładowania projektu wymagało skomplikowanych procedur. Arduino już co prawdo oferowało tę funkcję ale ilość zgłaszanych problemów przewyższała korzyści. Dopiero w najnowszych wersjach Arduino funkcja to wydaje się działać w miarę poprawnie choć nie bez pewnych zacięć. OTA dostępna jest zarówno w najnowszej wersji 1.xx jak i 2.xx.
Nie będę jej szczegółowo opisywał - załączony do biblioteki przykład jest prosty. Należy zwrócić uwagę na kilka spraw:
- Jak zawsze staramy się nie dublować bibliotek w projekcie - u mnie to biblioteki wifi (co oczywiste) i UDP są już zdefiniowane w innych blokach
- W oryginalnym kodzie OTA odblokowujemy linię
ArduinoOTA.setPassword("admin");
Arduino teoretycznie może wgrać program bez hasła ale w praktyce hasło musi być i już. Chyba że ktoś umie pogrzebać w konfiguracji by wyłączyć tę opcję
- dodatkowo warto odblokować linię
ArduinoOTA.setHostname("myesp8266");
Nadanie nazwy naszemu układowi znakomicie ułatwi jego identyfikację gdy będziemy mieli większą ilość układów do przeprogramowania w swoim systemie.
- i najważniejsze - prawie na pewno próba zdalnego wgrania programu z waszego komputera nie powiedzie się. Windows standardowo ma załączony firewall blokujący możliwość połączenia z mikromodułem przez UDP na domyślnym (8266) porcie. A więc pierwszą rzeczą jaką musimy zrobić to wyłączyć firewall w komputerze
- po pierwszym wgraniu projektu z funkcją OTA bezwzględnie należy zrobić HARD RESET najlepiej wyłączając moduł. To nas upewni, że funkcja OTA została aktywowana.
- dosyć częstym objawem będzie to, że nie zobaczymy portu z IP naszego modułu w ustawieniach portu. Należy ponownie uruchomić Arduino i wszystko powinno być OK.
Brak komentarzy:
Prześlij komentarz