Poniżej opisuję środowisko programistyczne do AFE Firmware dla osób, które chciałyby dodawać własne funkcjonalności.
AFE Firmware pisane jest w
- Arduino/C
- w ATOM z dodatkiem pakietu PlatformIO
Wszystkie wymagane zewnętrzne biblioteki dodaję w pliku konfiguracyjnym projektu. Dzięki temu nie trzeba doinstalowywać dodatkowych bibliotek dla AFE Firmware. Są one doinstalowywane automatycznie podczas pierwszej kompilacji.
Oczywiście można korzystać z innych środowisk programistycznych, np. IDE Arduino, natomiast wymagać to może zmiany struktury lokalizacji plików oraz ręcznego doinstalowywania bibliotek.
Instalacja oprogramowania
Konfiguracja opisana jest pod Windows.
Co będzie instalowane:
- Clang LLVM native C/C++/Objective-C compiler
- ATOM
- Dodatek PlatformIO do Atom
- Opcjonalnie: GitHub Desktop
Instalowanie Clang
- Otwieramy stronę Clang LLVM native C/C++/Objective-C compiler
- Pobieramy najnowszą wersję dla Widows 32bit lub 64bit, a następnie instalujemy ją
- Ważne: Podczas instalacji wybieramy wprowadzenie ścieżki do oprogramowania Clang do zmiennej PATH. Można wybrać opcję dla wszystkich użytkowników Windowsa, albo tylko aktualnego (w zależności od potrzeb)
Instalacja GitHub Desktop
Instalacja GitHub nie jest konieczna, natomiast sugeruję instalację tego oprogramowania do łatwiejszego ściągania kodu źródłowego z repozytorium, wersjonowania wersji itp. Korzystanie z GitHub jest jedyną możliwością kontrybuowania do oficjalnej wersji AFE Firmware.
- Otwieramy stronę: GitHub Desktop
- Pobieramy najnowszą wersję, a następnie instalujemy ją
- Po zainstalowaniu uruchamiamy GitHub Desktop oraz logujemy się do GitHub’a lub tworzymy własne darmowe konto w GitHub
Instalacja ATOM
- Otwieramy stronę ATOM
- Pobieramy najnowszą wersję oprogramowania ATOM, a następnie instalujemy ją
- Po zainstalowaniu uruchamiamy ATOM
Instalacja dodatku PlatformIO do ATOM’a
- W uruchomionym ATOM wchodzimy w sekcję instalowania pakietów
- W sekcji Instalowania pakietów wciskamy przycisk: Open Installer, następnie wpisujemy platformio-ide w wyszukiwarce i wciskamy przycisk Packages. W wyszukanych pakietach odnajdujemy pakiet platform-ide, a następnie wciskamy przycisk Install.
- Po instalacji PlatformIO pojawi się komunikat o konieczności zresetowania ATOM’a
Przygotowanie środowiska pod AFE Firmware
Pobranie kodów źródłowych AFE Firmware
- Logujemy się do GitHub’a
- Robimy Fork’a aktualnej wersji AFE Firmware do naszego konta w GitHub
- Wchodzimy do repozytorium AFE Firmwara
- Wciskamy przycisk Fork, który spowoduje, że aktualna wersja kodu źródłowego AFE Firmware zostanie skopiowana do Twojego konta w GitHub
- Otwieramy GitHub Desktop
- Klonujemy kod źródłowy z GitHub do Twojego komputera wciskając przycisk Clone Repository
- To co powinniśmy zobaczyć to listę naszych wszystkich projektów (repozytoriów) w GitHub. Wybieramy AFE Firmware, ustawiamy i zapamiętujemy ścieżkę, gdzie zapiszemy kod źródłowy AFE Firmware na naszym komputerze, a następnie wciskamy przycisk Clone
- Po sklonowaniu kodu źródłowego AFE Firmware powinniśmy zobaczyć mniej więcej coś takiego w GitHub Desktop. Teraz już można zamknąć GitHub Desktop.
Dodawanie projektu AFE Firmware do ATOM
- Uruchamiamy ATOM
- Dodajemy projekt AFE Firmware do ATOM’a wciskając przycisk Open Project
- Wyszukujemy folder, w którym znajdują się pliki źródłowe AFE Firmware, a następnie wciskamy przycisk Open „AFE-Firmware”
- To co powinniśmy zobaczyć to katalogi i pliki źródłowe AFE Firmware z lewej strony okna
- Dodajemy teraz dodatkowe foldery projektu. Wciskamy prawy przycisk myszy na katalogu AFE-Firmware (lewe drzewko u samej góry), a następnie wybieramy Add Project Folder
- To co wybieramy to folder T0 w ramach foldery z kodami źródłowymi AFE Firmware
- Tę samą operację powtarzamy dla pozostałych folderów T1,T2,T3 itd. Na koniec w drzewku projektu powinniśmy zobaczyć coś takiego
- Zrobione
Struktura folderów projektu AFE-Firmware
AFE Firmware to różne wersje oprogramowania do ESP8266/ESP8285 różniące się między sobą obsługiwanym sprzętem dodatkowym oraz funkcjonalnościami. Każda wersja AFE Firmware ma swój numer rozpoczynający się od litery T np. T0, T1 itp. Wersje AFE Firmware opisane są tutaj
Foldery
- Kod źródłowy każdej wersji oprogramowania umieszczony jest w folderze Tx np. T0, T1. Zaznaczone na żółto na poniższym zdjęciu
- W katalogu lib, zaznaczonym na pomarańczowo, mieści się kod wspólny dla wszystkich wersji AFE Firmware
- Podczas kompilacji w pierwszej kolejności kod umieszczony w katalogach Tx jest pobierany do kompilacji, w drugiej kolejności kod wspólny z katalogu lib najwyższego poziomu
Kompilacja
- Aby skompilować określoną wersję AFE Firmware, trzeba wejść do katalogu src w danej wersji Tx a następnie rozpocząć kompilację
- Podczas pierwszej kompilacji, ATOM pobierze wszystkie zewnętrzne biblioteki, które są wymagane na potrzeby konkretnej wersji AFE Firmware (pierwsza kompilacja może trwać dłużej)
- Skompilowana wersja znajduje się w folderze:
- ścieżka do ..\AFE Firmware\Tx\.pioenvs\esp01_1m – dla wersji ESP8266
- ścieżka do ..\AFE Firmware\Tx\.pioenvs\esp8285 – dla wersji ESP8285
- plik firmware.bin
Daj znać w komentarzach jeśli są braki w tej instrukcji, coś nie działa lub jest niejasne
Dziękuję! U mnie wszystko działa, jedynie dodam, że po kompilacji pliku .bin szukajcie w zależności od wersji w „…\AFE-Firmware-master\T0\.pioenvs\esp8285\firmware.bin".Jeszcze raz dziękuje i pozdrawiam! 🙂
Dodałem taką informację do instrukcji, dzięki
czy ten opis jest aktualny? 🙂
@mirmil99
kilka kroków z tej instrukcji nie jest wymaganych, kilka dodatkowych trzeba dodać – te dodatkowe do dodania sa bardzo proste.
osobiście z Atom’a przesiadłem się na Visual Studio Code , w którym analogicznie trzeba zainstalować pakiet PlatformIO
Ok ja sobie ogarnalem i pod Atomem oczywiscie tez dziala, i spokojnie sie kompiluje;), pytanie bylo tylko o opis, bo faktycznie to teraz jaby prosciej jest, niz 2 lata temu
@mirmil99
2 lata temu każda wersja miała osobny kod – miałeś tam te Tx wersje/foldery – teraz jest jeden kod i steruje się parametrami dot. kompilacji kodu w pliku plarformio.ini
do wersji nie T0 trzeba dodatkowo kilka innych moich „repo" ściągnać z gitHub i tyle.
@adrian
to moze podpowiesz czego brakuje dla wersji 2.1.0? doinstalowalem standardowe Arduinojson (wersja 5.x) i SubPubClient ale tu chyba trzeba czegos innego;), oczywiscie klonuje Afe-Firmware z Gita
PubSub weź mojego, którego przebudowałem i zminimalizowałem na potrzeby AFE
Sklonuj do lib-external
https://github.com/tschaban/pubsubclient
z ArduinoJson raczej nic nie robiłem – ale w AFE używam swojego klona – wersja 5 bo 6 nie jest optymalizowana pod kątem rozmiaru/wydajności
https://github.com/tschaban/ArduinoJson
@adriani od razu kompiluje sie i dziala AFE_T0_8266_1m-generic-domoticz;), wystarczylo PubSub, ArduinoJson chyba moze byc standardowe, natomiast z pewnych niewyjasnionych przyczyn wynikowy plik wyszedl o 1kB (390 672B) mniejszy niz ten zamieszczone przez Ciebie
@mirmil99
nie wiem z kiedy tam jest wersja – codziennie coś modyfikuję, nie codziennie wrzucam. Różne wersje można skompilować, pod rózne sprzęty, PL, EN, z włączonym DEBUG, wyłaczonym itd. tym nie martwiłbym się