Powiadomienia
Wyczyść wszystko

UWAGAStrona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.

W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉

Za niedogodności z góry przepraszam, admin

Kontakt

Środowisko programistyczne do AFE Firmware

11 Wpisów
3 Użytkownicy
1 Reactions
2,563 Wyświetleń
adrian
Wpisów: 4038
Admin Zasłużony dla Forum, Patron Strony
Autor tematu
(@adrian)
Szefu
Dołączył: 11 lat temu
wpf-cross-image

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

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:

Instalowanie Clang

  • 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

10 Odpowiedzi
Wpisów: 36
Donator 2K18 Donator 2K17
(@bom109)
Praktykant
Dołączył: 8 lat temu

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! 🙂

Odpowiedz
adrian
Wpisów: 4038
Admin Zasłużony dla Forum, Patron Strony
Autor tematu
(@adrian)
Szefu
Dołączył: 11 lat temu
Dodane przez: bom109

(...) jedynie dodam, że po kompilacji pliku .bin szukajcie w zależności od wersji w "...\AFE-Firmware-master\T0\.pioenvs\esp8285\firmware.bin". (...)

Dodałem taką informację do instrukcji, dzięki

Odpowiedz
Wpisów: 180
(@mirmil99)
Pomocny
Dołączył: 6 lat temu

czy ten opis jest aktualny? 🙂

Odpowiedz
1 Reply
adrian
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Dołączył: 11 lat temu

Szefu
Wpisów: 4038

@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

Odpowiedz
Wpisów: 180
(@mirmil99)
Pomocny
Dołączył: 6 lat temu

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 😉 

Odpowiedz
2 Odpowiedzi
adrian
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Dołączył: 11 lat temu

Szefu
Wpisów: 4038

@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.

Odpowiedz
(@mirmil99)
Dołączył: 6 lat temu

Pomocny
Wpisów: 180

@adrian

lib\AFE_APIs\AFE-MQTT.cpp: In member function 'boolean AFEMQTT::listener()':
lib\AFE_APIs\AFE-MQTT.cpp:85:28: error: 'class PubSubClient' has no member named 'topic'
message.topic = Broker.topic;
^
lib\AFE_APIs\AFE-MQTT.cpp:86:30: error: 'class PubSubClient' has no member named 'payload'
message.content = Broker.payload;
^
lib\AFE_APIs\AFE-MQTT.cpp:87:29: error: 'class PubSubClient' has no member named 'length'
message.length = Broker.length;
^
*** [.pio\build\AFE_T0_8266_1m-generic-domoticz\liba23\AFE_APIs\AFE-MQTT.cpp.o] Error 1

 

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

Odpowiedz
Strona 1 / 2
Udostępnij: