Forum Smart'ny Dom

Stacja pogody na ESP8266 z AFE Firmware  

Strona 1 / 3
  RSS
adrian
(@adrian)
Prezes

Dzisiaj na światło dzienne wychodzi nowa wersja AFE Firmware (T6), którą nazwałem "Stacja pogody". Nazwa jakoś mi nie leży, ale nie mogłem wpaść na nic innego, co lepiej opisywałoby możliwości tego softu. Jeśli komuś przyjdzie do głowy pomysł na inną nazwę i będzie to właśnie TO - to chętnie przejmę.

Jakie pomiary wykonuje urządzenie z tym oprogramowaniem:
  • pyły zawieszone: PM2.5 oraz PM10
  • lotne związki organiczne (VOC)
  • temperatura (st.C)
  • wilgotność (%)
  • ciśnienie atmosferyczne (hPa)
  • natężenie światła (lux)

Pominę może co to jest temperatura, wilgotność i ciśnienie atmosferyczne, a krótko przybliżę VOC, PM2.5, PM10.

VOC to substancje, które można znaleźć w powietrzu, a ich duże stężnie nie jest bez wpływu na nasze zdrowie. To samo dotyczy pyłów zawieszonych PM2.5/PM10, o których głośno jest ostatnimy czasy w radio i telewizji, temat szczególnie gorący w okresie grzewczym.

  • VOC możemy znaleźć w farbach, klejach, procesie spalania, benzynie, zmywaczach, rozpuszczalnikach, odświeżaczach powietrza, papierosach, itp.  Chcesz wiedzieć więcej o lotnych związkach organicznych, to zajrzyj w wikipedię
  • PM2,5 to pył zawieszony o średnicy nie większej niż 2,5 μm, który zdaniem WHO, jest najbardziej szkodliwym zanieczyszczeniem atomosferycznym dla zdrowia człowieka spośród innych zanieczyszczeń
  • PM10 to również pył zawieszony nie większy niż 10 μm. Wśród nich są takie substancje, jak benzopireny, które są silnymi substancjami rakotwórczymi. Występowanie PM10 jest związane między innymi z procesami spalania paliw stałych i ciekłych

Zakładając, że czytelnicy tej strony to osoby, które śmieci segregują i wyrzucają do kosza, a nie spalają we własnych piecach. To ponad to nie mają na codzień większego wpływu na to co fruwa w powietrzu. No chyba, że używają  AFE Frimware :-))

Zbierając na bieżąco dane o jakości powietrza na zewnątrz możemy odkryć trendy kiedy najlepiej wietrzyć mieszkanie / dom tak, aby jak najmniej zatrutego powietrza przeleciało przez nasze cztery ściany. Możemy też automatycznie odpalać flitry powietrza, gdy czujnik wykryją za wysokie stężenie zanieczyszczeń powietrza znajdującego się w naszym lokum.

Czego nie było jeszcze w AFE Firmware to czujnik natężenia światła. Do czego można go wykorzystać? Ot, np. do automatycznego włączania oświetlenia na zewnątrz lub wewnątrz naszego domu w zależności jak jasno / ciemno jest na zewnątrz.

Jest to pierwsza wersja, więc jeszcze się rozwinie o kilka dodatkowch możliwości, np.:

  • planuję umożliwić zasialanie bateryjne takiej stacji pogody. A żeby to miało sens, rozsądne wydaje się dodanie funkcjonalności usypiania urządzenia, aby wydłużyć żywotność baterii i ewentualnie umożliwić ładowanie takiej baterii małym solarem. Wtedy urządzenie powinno stać się samowystarczalne.

Dzisiaj udostępniam Wam oprogramowanie, natomiast urządzenie trzeba sobie już samemu zbudować. A ponieważ wszystko można kupić w sklepie, to ktoś, kto kiedyś układał choć raz klocki lego i trzymał lutownicę w ręku powinnien dać sobie radę.

Za jakiś czas pokażę jak taki sprzęt amatorsko można złożyć krok po kroku.

Komponenty:
  • Oprogramowanie pracuje na chip'ie ESP8266 lub ESP8285

W zależności od tego na jakich pomiarach nam zależy do wyboru mamy następujące czujniki:

Bosch BME680 temperatura, wilgotność, ciśnienie atmosferyczne, VOC
Bosch BME280 temperatura, wilgotność, ciśnienie atmosferyczne
Bosch BMP180 temperatura, ciśnienie atmosferyczne
Bosch BMO085 temperatura, ciśnienie atmosferyczne
BH1750 natężenie swiatła
Honeywell HPMA115S0 pyły zawieszone PM2.5 oraz PM10
Podłączenie  do ESP8266:
  • Czujniki Bosch oraz BH1780 podłączamy pod jedną szynę I2C
  • Honeywell pod dwa GPIO skonfigurowane jako port szeregowy UART

Czyli w przypadku takiego ESP jak na zdjęciu poniżej, czujniki podłaczamy w następujący sposób:

  • I2C to GPIO5 oraz GPIO4
  • a UART możemy zrobć na GPIO 12 oraz GPIO14

Tak są ustawione wartości domyślne w oprogramowaniu

Pozostałe funkcjonalności tego oprogramowania:
  • obsługa jednego przekaźnika
  • obsługa do 2 przycisków / włączników - z czego jeden może być przyciskiem systemowym
  • przyciski mogą być jedno- lub dwu-stanowe (za wyjątkiem przycisku systemowego)
  • obsługa 2 diod LED
  • częstotliwość pomiarów można zdefiniować
  • w przypadku czujnika pyłów zawieszonych możemy go usypiać między odczytami, aby zwiększyć żywotność lasera
  • integracja z Domoticz
  • integracja za pomocą protokołów wymiany wiadmości MQTT oraz HTTP
  • możliwość ustawienia wartości domyślnej przekaźnika podczas uruchomienia urządzenia (power on)
  • możliwość ustawienia wartości domyślnej przekaźnika podczas podłączenia się do Brokera MQTT
  • przy wykorzystaniu MQTT Brokera, mamy informację, kiedy urządzenie straci połączenie z MQTT Brokerem i/lub siecią WiFi
  • konfiguracja oraz aktualizacja oprogramowania odbywa się przez przeglądarkę internetową

 

Konfiguracja AFE Firmware

Poniżej pokażę specyficzne dla tej wersji AFE Firmware ekrany konfiguracyjne. Pozostałe informacje dot. konfiguracji znajdziesz tutaj.

Konfiguracja sprzętu

Konfiguracja polega na wybraniu ilości diod LED, przekaźników, przycisków oraz czujników, które mamy podłączone do ESP8266.

Konfiguracja UART

UART, układ umożliwiający transmisję danych. Do niego podłączamy czujnik pyłów zawieszonych Honeywell HPMA115S0

To co konfigurujemy to przypisujemy numery GPIO do portu RX oraz UX, które będą wykorzystywane do transmisji danych / podłączenia urządzenia.

Konfiguracja czujnika Honeywell HPMA115S0

Opcje konfiguracyjne to:

  • Interwał odczytów: czyli co ile sekund mają zostać dokonane odczyty. Minimalny czas to 5 sekund maksymalny 86400 sekund co odpowiada 24-em godzinom
  • Pomiar po czasie:
    • jeśli parametr ma wartość inną niż zero to czujnik Honeywell jest usypiany między pomiarami (wiatraczek zasysający powietrze oraz laser są wyłączane)
    • ustawiona wartość, definiuje na ile sekund przed odczytem czujnik ma zostać uruchomiony. Czyli jeśli ustawimy np. 10 to 10 sekund przed dokonaniem odczytu czujnik zostanie włączony, a po odczycie zostanie wyłączony na okres równy wartości parametru Interwał Odczytów minus parametr Pomiar po czasie.
    • Parametr Pomiar po czasie musi być mniejszy od parametru Interwał odczytów
    • Sugeruję, aby wartość tego parametru była nie mniejsza niż 5sek, aby wiatrak mógł zassać powietrze do czujnika i odczyt był bardziej precyzyjny.

Parametry IDX wykorzystywane są do konfiguracji wymiany danych z Domoticz. Opisane w części dotyczącej Integracji z Domoticz

Konfiguracja czujników z serii BMP085, BMP180, BME280, BME680
  • Czujniki te pracują na szynie I2C.
  • Każdy z tych czujników ma adres I2C, który należy wybrać z listy I2C Adres
  • Interwał odczytów definiuje, jak często mają być dokonywane odczyty

Lista z adresami I2C zawiera potencjalne nazwy czujników. Nie jest to gwarantowana nazwa / typ czujnika. Nazwy wyświetlane to standardowe typy czujników dostępnych na rynku, które pracują na takich adresach.

Jeśli na liście nie wyświetla się żaden czujnik, to jest coś nie tak z podłączeniem czujnika do szyny I2C w ESP8266

Czujniki z seri BMx dokonują odczytu bardzo szybko, ale zalecam ustawienie czasu odczytów na nie mniejszy niż 5 sekund. Odczytane dane muszą zostać "przesłane" do systemu automatyki, a to może już chwilkę potrwać w zależności od:

  • użytego systemu do automatyki,
  • ilości danych,
  • odległości urządzenia od routera WiFi.

Parametry IDX wykorzystywane są do konfiguracji wymiany danych z Domoticz. Opisane w części dotyczącej Integracji z Domoticz

Konfiguracja czujnika natężenia światła BH1750
  • Podobnie jak w czujnikach BMx, czujnik natężenia światła BH1750 pracuje na szynie I2C
  • Konieczne jest wybranie  Adresu I2C czujnika oraz
  • ustwienie, jak często mają zostać robione pomiary. Parametr: Interwał odczytów 
  • Parametru Czułość nie można zmienić. W tym momencie czułość czujnika jest ustawiona na maksimum

Parametry IDX wykorzystywane są do konfiguracji wymiany danych z Domoticz. Opisane w części dotyczącej Integracji z Domoticz

 

Integracja z Domoticz

Integracja z Domoticz polega na:

  • utworzeniu wirtualnego sprzętu. Robi to się w Domoticz -> Menu -> Konfiguracja -> Sprzęt

  • a następnie dodania do niego następujących czujników (oczywiście dodajemy tylko te, które mamy podłączone do naszego ESP8266)
    • Przełącznik
    • Temperatura
    • Wilgotność
    • Barometr
    • Custom sensor dla
      • PM2.5
      • PM10
      • VOC

Można też utworzyć jeden wirtualny czujnik dla: temperatury, wilgotności oraz ciśnienia atmosferycznego; nazywa się on:

  • Temp + Wilg + Baro

Każdemu z tych czujników Domoticz nadaje identyfikator IDX, który można odszukać w menu: Konfiguracja -> Urządzenia

  • Na poniższym ekranie to wartości w zielonej ramce

Odpowiedni IDX należy wprowadzić w konfiguracji AFE Firmware pod odpowiednim elementem/czujnikem urządzenia. Np. tak to wygląda dla czujnika BME680 - zielona ramka.

Jeśli wartość IDX pozostanie z wartością 0 w AFE Firmware to te dane nie będą wysyłane z urządzenia do Domoticz.

Integracja z openHAB

 

Jeśli jesteś zaawansowanym użytkownikem openHAB to tutaj jest definicja Thing dla urządzenia z AFE Firmware T6

  • /t6/ - to MQTT Temat zdefiniowany w konfiguracji MQTT Brokera w AFE Firmware
  • switch - to nazwa przekaźnika zdefiniowana w konfiguracji przekaźnika w AFE Firmware
    Thing mqtt:topic:T6 "MQTT Device: Development T6" {
    Channels:
        Type switch : Relay "Relay: switch" [ stateTopic="/t6/switch/state", commandTopic="/t0/switch/cmd", on="on", off="off" ]
        Type switch : RelayToggle "Relay: toggle" [ stateTopic="/t6/switch/state", commandTopic="/t0/switch/cmd", on="toggle", off="toggle" ]
        Type switch : RelayGet "Relay: get " [ commandTopic="/t6/switch/cmd", on="get", off="get" ]
        Type switch : RelayGetDefault "Relay: get system default " [ stateTopic="/t6/switch/get/state" ]
    
        /* BME680, BME280, BMP180,085 */
        Type number : Temperature "Temperature" [ stateTopic="/t6/BMx80/all", transformationPattern="JSONPATH:$.temperature" ]

        /* BME680, BME280 */
        Type number : Humidity "Humidity" [ stateTopic="/t6/BMx80/all", transformationPattern="JSONPATH:$.humidity" ]

        /* BME680, BME280, BMP180,085 */
        Type number : Pressure "Pressure" [ stateTopic="/t6/BMx80/all", transformationPattern="JSONPATH:$.pressure" ]

        /* BME680 */ 
        Type number : GasResistance "Gas Resistance" [ stateTopic="/t6/BMx80/all", transformationPattern="JSONPATH:$.gasResistance" ]

        /* HPMA115S0 */
        Type number : PM25 "PM2.5" [ stateTopic="/t6/HPMA115S0/all", transformationPattern="JSONPATH:$.PM25" ]
        Type number : PM10 "PM10" [ stateTopic="/t6/HPMA115S0/all", transformationPattern="JSONPATH:$.PM10" ]

        /* BH1750 */
        Type number : Lux "Lux" [ stateTopic="/t6/BH1750/lux" ]

        Type switch : Connected "Connected" [ stateTopic="/t6/state", on="connected", off="disconnected" ]
        Type switch : Configuration "Configuration Mode" [ commandTopic="/t6/cmd", on="configurationMode", off="configurationMode" ]
        Type switch : Reboot "Reboot" [ commandTopic="/t6/cmd", on="reboot", off="reboot" ]
        Type switch : APIDomoticz "API Domoticz" [ stateTopic="/t6/configuration/api/domoticz/state", commandTopic="/t6/configuration/api/domoticz/cmd", on="on", off="off" ]
        Type switch : APIHTTP "API HTTP" [ stateTopic="/t6/configuration/api/http/state", commandTopic="/t6/configuration/api/http/cmd", on="on", off="off" ]
    }

Przykłady items

Number  t6_PM25                 "PM2.5 [%.2f µg/m3]"     {channel="mqtt:topic:T6:PM25"}
Number  t6_PM10                 "PM10 [%.2f µg/m3]"      {channel="mqtt:topic:T6:PM10"}
Number  t6_bme680_temperature   "Temperatura[%.2f C]"    {channel="mqtt:topic:T6:Temperature"}
Number  t6_bme680_humidity      "Wilgotność [%.2f %%]"   {channel="mqtt:topic:T6:Humidity"}
Number  t6_bme680_pressure      "Ciśnienie [%.2f hPa]"   {channel="mqtt:topic:T6:Pressure"}
Number  t6_bme680_gasResistance "VOC [%.2f kOm]"         {channel="mqtt:topic:T6:GasResistance"}
Number  t6_bh1750_lux           "Światło lux [%.3f lx]"  {channel="mqtt:topic:T6:Lux"}
Switch  t6_switch               "Przełącznik"            {channel="mqtt:topic:T6:Relay"}
Switch  t6_configuration_mode   "Konfiguracja"           {channel="mqtt:topic:T6:Configuration"}
Switch  t6_reboot               "Reboot"                 {channel="mqtt:topic:T6:Reboot"}
Switch  t6_state_connected      "Urządzenie podłączone?" {channel="mqtt:topic:T6:Connected"}
Switch  t6_state_domoticz       "Domoticz API"           {channel="mqtt:topic:T6:APIDomoticz"}
Switch  t6_state_http           "HTTP API"               {channel="mqtt:topic:T6:APIHTTP"}

Wiadomości MQTT

Przykład odczytu pyłów zawieszonych:

  • /mqttTopic/ - zdefiniowane w AFE Firmware w konfiguracji MQTT Brokera
Temat   Wiadomość Działanie
/mqttTopic/HPMA115S0/cmd Wejściowa get Żądanie odczytania danych z czujnika HPMA115S0
/mqttTopic/HPMA115S0/all Wyjściowa String JSON {PM25: Intiger, PM10: Intiger}

 

Wszystkie wiadomości MQTT w AFE Firmware znajdują się tutaj

Integracja z wykorzystaniem HTTP

Przykład: odczyt pyłów zawieszonych

  • http://adres-ip-urządzenia/?device=HPMA115S0&name=PM2.5&command=get
  • http://adres-ip-urządzenia/?device=HPMA115S0&name=PM10&command=get

Wszystkie komendy HTTP w AFE Firmware znajdują się tutaj


Cytuj
Dodane : 05/01/2019 1:28 pm
Daro1003
(@daro1003)
Brygadzista

Jest możliwość złożenia stacji i jej prawidłowo działania tylko na dwóch czujnikach Bosch BME680 i BH1750 na obecną chwile bez czujnika Honeywell HPMA115S0 - zostanie dołożony w późniejszym etapie.

Czy jest możliwość rozbudowy tej stacji o wyświetlacz ? Jeśli tak czy masz w planach taką rozbudowę ?

A co planujesz dalej ? Może jaka mała zapowiedz kolejnych urządzeń ?

Dariusz

OdpowiedzCytuj
Dodane : 05/01/2019 9:38 pm
adrian
(@adrian)
Prezes
  • tak można złożyć na dowolnych z tych czujników np, tylko BME680 i BH1750
  • na razie nie planuję wyświetlacza, może kiedyś. Jej zadanie to wysyłanie danych do Domoticz, openHAB - z tego można dowolnie wyświetlać
  • tutaj jest wątek w kontekście dalszego rozwoju i propozycji co dodawać
  • w najbliższym czasię będę dodawł
    • wejście NO/NC, które pozwoli na dodawani takich dwu stanowych czujników
    • możliwość zasilania bateryjnego + z usypianiem całego urządzenia
OdpowiedzCytuj
Dodane : 05/01/2019 9:45 pm
Daro1003
(@daro1003)
Brygadzista

A wiatr prędkość siła ? Też byłaby fajna sprawa teraz wstając rano do roboty człowiek spogląda na wiatrak przed domem i myśli czy potrzeba wrzucić kalesony czy nie 🙂

Dariusz

OdpowiedzCytuj
Dodane : 05/01/2019 9:53 pm
adrian
(@adrian)
Prezes

To mi się podoba. Trzeba jakiś sprzęt wybrać.

OdpowiedzCytuj
Dodane : 05/01/2019 9:56 pm
Daro1003
(@daro1003)
Brygadzista

Moim zdaniem wiatr powinien w takiej stacji być zerkniesz na temperaturę i na wiatr i odrazu wiesz jak się ubierać.

Czujnik deszczu o którym pisał Isom też spoko jest brama garażowa z napędem i system dzięki czujnikowi wyzwoli przekaźnik który wpięty jest pod zacisk napędu CLOSE i zamknie bramę.

Dodatkowo można wyzwolić jakiś sygnał alarmowy w domu o deszczu żona ciśnie po pranie a ja zasunąć szyby w samochodzie.

Dariusz

OdpowiedzCytuj
Dodane : 05/01/2019 10:24 pm
isom
 isom
(@isom)
Zasłużony Moderator

Z tym wiatrem i pomiarem napięcia baterii jednocześnie może być kłopot , czujniki wiatru (kierunek prędkość ) przekazują sygnał analogowy czyli kierunek wyznaczany jest przez zmianę rezystancji więc trzeba wykorzystać ADC , które zajmuje już pomiar baterii.

OdpowiedzCytuj
Dodane : 05/01/2019 11:31 pm
Daro1003
(@daro1003)
Brygadzista

Mim zdaniem pomysł takiej stacji na baterie .... chyba że do tymczasowego podtrzymania z którego i tak chyba niewiele. Na baterie to pilot, latarka, drobne elektronarzędzia czyli urządzenia nie używane ciągle tylko czasowo natomiast taka stacja to tylko zasilana z sieci.

Dariusz

OdpowiedzCytuj
Dodane : 05/01/2019 11:51 pm
adrian
(@adrian)
Prezes
  • nie każdy na zewnątrz ma zasilanie
  • bateria, solar, usypanie urządzenia między odczytami i będzie się zasilało
OdpowiedzCytuj
Dodane : 06/01/2019 1:05 am
lukas121
(@lukas121)
Brygadzista

@Daro1003 i tu się mylisz, zasilanie bateryjne to podstawa takiej stacji. Jak chcesz jeszcze mierzyć prędkość wiatru. Sens takiej rozbudowanej stacji to umieszczenie je dalej od domu i tu problem z zasilaniem. Nie każdy chce dziurawić okna lub ściany do przeciągnięcia kabla. @adrian prosisz i masz:

https://pl.aliexpress.com/item/Free-Shipping-Spare-part-for-weather-station-to-test-the-wind-speed/32791312886.html?

Ja zamówiłem sobie taki czujnik, sterowany zliczaniem impulsów a tu przykład szkicu od 10min.

https://www.youtube.com/watch?v=slzOhgBeQjc

 

OdpowiedzCytuj
Dodane : 06/01/2019 10:28 am
adrian polubień
Daro1003
(@daro1003)
Brygadzista

@lukas121 jak kto woli ja na pewno pociągnę przewód z zasilaniem nie jestem zwolennikiem urządzeń na baterie więc gdzie się da to zasilam z sieci. Przyjdzie zima i może baterię trafi i będę się zastanawiał czemu stacja nie działa i grzebał przy niej na mrozie to ma być zrobione raz i działać. Oczywiście nie wykluczam żadnych usterek bo może jakiś gryzoń przegryźć przewód ale mało prawdopodobne. Ładowanie solarne fajny temat ale i tak wolałbym walczyć z przeciągnięciem przewodu.

Takie jest moje zdanie nie ważne @lukas121 czy mam racje czy nie ale bynajmniej tak u siebie będę chciał zrobić każdy robi wg swojego uznania. Jak to mówił mój sąsiad jeden woli jabłka drugi córkę ogrodnika 🙂

 

Dariusz

OdpowiedzCytuj
Dodane : 06/01/2019 12:43 pm
lukas121
(@lukas121)
Brygadzista

Też jestem zwolennikiem kabli i nie chodziło mi o rezygnację z zasilania kablowego ani nikogo do tego nie namawiam. Zasilanie bateryjne to dobry dodatek to takiej stacji. Mam parę lamp solarnych z czujnikami ruch kupionych w Lid... i działają już dobre parę lat. Jak kupisz dobrą baterię to nie ma powodu do zmartwienia, jak do tego dojdzie monitorowanie stanu można spać spokojnie 🙂

OdpowiedzCytuj
Dodane : 06/01/2019 2:16 pm
Daro1003
(@daro1003)
Brygadzista

Trzeba korzystać z energii odnawialnej więc funkcja baterii i solara to podejście rozwojowe jednakże gdyby chodziło o w wybór bateria czy czujnik wiatru zdecydowanie wybrałbym czujnik wiatru.

Dariusz

OdpowiedzCytuj
Dodane : 06/01/2019 2:42 pm
lukas121
(@lukas121)
Brygadzista

To dobrze się składa, ten czujnik co podałem nie zajmuje złącza ADC. Więc bateria i czujnik prędkości wiatru może razem pracować.

OdpowiedzCytuj
Dodane : 06/01/2019 4:40 pm
janusz15813
(@janusz15813)
Młodzik

świetna sprawa  ta wersja AFE T6 (Stacja pogody) tylko mam prośbę  - nie dałoby się odczyty  UART zrobić na  GPIO1 i GPIO2

zamiast na GPIO12 i 14. Chciałbym podpiąć Sonoff pod te czujniki ale tam są wyprowadzone tylko GPIO 1,2 i 14 ,chyba że się mylę.

OdpowiedzCytuj
Dodane : 10/01/2019 8:12 pm
adrian
(@adrian)
Prezes

@janusz15813 - jan napisałem w opisie UART sobie konfigurujesz, a GPIO ustawiasz pod swoje potrzeby.

Nie na wszystkich GPO pójdźie ale na 1,2 raczej powinien - jak nie spróbujesz to nie będziesz wiedział

OdpowiedzCytuj
Dodane : 10/01/2019 11:43 pm
janusz15813
(@janusz15813)
Młodzik

OK a co z I2C  GPIO4 i GPIO5 można zmienić ?

OdpowiedzCytuj
Dodane : 11/01/2019 11:42 am
isom
 isom
(@isom)
Zasłużony Moderator

  @janusz15813  Teoretycznie można, ustaw sobie UART na GPIO 1,3 a I2C na GPIO 2 i 14 i sprawdź  GPIO 3 to - RX GPIO 1 to - TX

OdpowiedzCytuj
Dodane : 11/01/2019 11:56 am
adrian
(@adrian)
Prezes

I2C na razie nie można w oprogramowaniu zmienić

OdpowiedzCytuj
Dodane : 11/01/2019 8:38 pm
sp5mbx
(@sp5mbx)
Młodzik

Coś dla rozluźnienia tematu,  😉   https://www.elektormagazine.com/magazine/elektor-70/42351   - do poczytania o innej stacji pogodowej.

OdpowiedzCytuj
Dodane : 11/01/2019 9:42 pm
Strona 1 / 3
Udostępnij:



Udostępnij
  • 1
    Share
  
Pracuję

Proszę Zaloguj Się lub Zarejestruj