Skocz do zawartości

Sterowanie przydomowym, rozkładanym basenem. Opis rozwiązania.


resmiki

Rekomendowane odpowiedzi

Mam przydomowy rozkładany na lato basen. 4,5m średnicy, 12 kubików wody. Woda w nim nie była jednak zbyt ciepła. Kolega poradził mi zakup plastikowego kolektora do grzania wody, o powierzchni 3x1m. ustawiłem go na stelażu, podłączyłem pompę i zaczął grzać wodę. Stwierdziłem jednak, że pompa niepotrzebnie cały czas pracuje. Postanowiłem coś z tym zrobić, więc zakupiłem w Chinach układy SoC (System on Chip) ESP8266, cyfrowe czujniki temperatury DS18B20 i moduł przekaźnika na 220V. Całość wyniosła ok. 10$. Programuje się to ze środowiska Arduino w C++. Czujniki umieściłem:
1. W basenie przy dnie.
2. Na wyjściu kolektora słonecznego
3. Za kolektorem (temperatura powietrza)
ESP w pętli sprawdza temperatury. Ustawiłem załączanie pompy kiedy temperatura na wyjściu kolektora będzie większa o 1,5 st. niż w basenie, a wyłączanie kiedy będzie wyższa juz tylko o 0.2 stopnia.
Ruszyło i zaczęło działać.
Jednak było mi mało. ESP8266 ma obsługę wifi. W oparciu o inny ESP i moduł karty pamieci plus moduł zegara czasu rzeczywistego skonstruowałem drugi układ serwera. Pierwszy ESP łaczył się przez wifi z drugim w domu, ten drugi logował pomiary dokonywane co minute na karcie pamięci a ja przez siec mogłem kontrolowac temperatury.
W miedzyczasie zakupiłem Thin Client HP T520 za 170zł i zainstalowałem na nim Debiana bez srodowiska graficznego. Postawiłem na nim serwer plikow (Sambę), bazę PostrgeSQL. Zaświtało mi, zeby na nim zrobić webservice do gromadzenia danych, więc zainteresowałem sie jezykiem Rust, bo na linuxie kompiluje sie do kodu natywnego. Napisałem w jezyku Rust webservice do gromadzenia danych w bazie PostgreSQL - ruszyło. Zastąpiło to serwer na ESP. Webservice nie tylko zbiera dane, ale rownież udostępnia parametry. Jednakże przeglądanie tych danych klientem bazodanowym nie było zbyt wygodnie, postanowiłem więc napisać aplikacje na Androida do przeglądania danych i ustawiania parametrów sterownika basenu. Tak też zrobiłem. Mogę w aplikacji podglądać bieżace temperatury wody, kolektora słonecznego, powietrza i stan pompy (właczona/wyłaczona). Mogę tez z aplikacja na telefonie ustawiać roznice temperatur przy jakich ma się właczać/wyłaczać pompa, maksymalną temperature wody w basenie i manulanie sterowac pompą.
Mam OpenVPN do domu, więc z kazdego miejsca na swiecie mam do tego dostęp.
Telefon jest mały, wiec postanowiełm do analizy danych napisac aplikacje na PC w C# .NET Core. Aplikacja laczy się bezposrednio juz z bazą PostrgeSQL i wyswietla wykresy. Na razie tylko wykresy, jeszcze bez sterowania parametrami.

Teraz pytanie po co to zrobiłem? Dla własnej satysfakcji i zabawy. Takie hobby. Wiem, istnieją podobne rozwiązania, ale chciałem mieć od podstaw własne.
Następny krok to wstawienie w kuchni wyświetlacza 4x16 znaków, ktory będzie te informacje wyswietlał, bo żona nie zajrzy do telefonu jaka jest temperatura basenu. Łatwiej jej bedzie na wyswietlaczu zobaczyć.

Docelowo zrobię jeszcze kilka czujników temperatury na wifi, porozmieszczam je po domu i aplikacja na linuxie bedzie je analizować i sterować ogrzewaniem w domu. Można do tego dodać czujniki wilgotności, temperatury na zewnątrz, siły wiatru itp. Na pewno jakieś pomysły jeszcze przyjdą do głowy.

Jeżeli ktos jest zainteresowany podzielę się doświadczeniami.

android.jpg

sterownik.jpg

wykres.png

  • Lubię to 6
  • Dzięki 2
Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, bergerac napisał:

A pokaż też zdjęcie kolektora, jak to wszystko podłączyłeś.

 

Czujnik temperatury basenu jest po prostu wpuszczony do wody, a temperatury powietrza wisi pod kolektorem w cieniu.

czujnikkolektora.jpg

obieg.jpg

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

 

A to z dziś - ostatnie 24h.

 

1. Na poczatku dnia zaczeło grzac, pompa właczała sie i wyłączała.

2. Grzało stabilnie cały czas - pompa chodziła bez przerw

3. Pogoda zaczeła sie psuć, wyszły chmury, za trójką z prawej strony to juz nawet zaczeło kropić.

 

Widać chwilowe zachmurzenia, bo temperatura powietrza (niebieska linia) spadała.

z dzis.png

Edytowane przez resmiki
Odnośnik do komentarza
Udostępnij na innych stronach

Ja przy wykorzystaniu Arduino + listwa przekaźników, PHP, Postgre, ale zewnętrznego serwera do którego odwołuje się Arduino(UPC - brak IP widocznego z zewnątrz, do tego na tym etapie bezpieczeństwo - Arduino jest nie dostępne z netu, wada - działa z kilku sekundowym - maks 2s - opóźnieniem) zrobiłem sterowanie do oświetlenia i kontaktów w domu, teraz jestem na etapie przygotowania modułów bezprzewodowych, które mieściły by się w puszkach pod włącznikami/kontaktami + przeróbka włączników światła na "dzwonkowe" dzięki czemu wszystko będzie działać jak należy. :) Też w sumie "bo mi się chciało" to zrobiłem. :) 

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 26.07.2021 o 09:18, AstraC napisał:

Ja przy wykorzystaniu Arduino + listwa przekaźników, PHP, Postgre, ale zewnętrznego serwera do którego odwołuje się Arduino(UPC - brak IP widocznego z zewnątrz, do tego na tym etapie bezpieczeństwo - Arduino jest nie dostępne z netu, wada - działa z kilku sekundowym - maks 2s - opóźnieniem) zrobiłem sterowanie do oświetlenia i kontaktów w domu, teraz jestem na etapie przygotowania modułów bezprzewodowych, które mieściły by się w puszkach pod włącznikami/kontaktami + przeróbka włączników światła na "dzwonkowe" dzięki czemu wszystko będzie działać jak należy. :) Też w sumie "bo mi się chciało" to zrobiłem. :) 

 

A co sie stanie kiedy braknie netu?

Czy nie byłoby bezpieczniej jakiś serwer postawic lokalnie ?

Arduino masz, moduły pod przyciskami moga sie komunikowac z Arduino po socketach, http...

Do Arduino mozesz dodac karte pamieci, zegar czasu rzczywistego...kiedys tak zrobilem logger do plików, sieciowy. Z tym ze ja wolę uzywac ESP zamiast Arduino bo maja obsługę sieci od razu, prawie wszystkie.

Edytowane przez resmiki
Odnośnik do komentarza
Udostępnij na innych stronach

30 minutes ago, resmiki said:

 

A co sie stanie kiedy braknie netu?

Czy nie byłoby bezpieczniej jakiś serwer postawic lokalnie ?

Arduino masz, moduły pod przyciskami moga sie komunikowac z Arduino po socketach, http...

Do Arduino mozesz dodac karte pamieci, zegar czasu rzczywistego...kiedys tak zrobilem logger do plików, sieciowy. Z tym ze ja wolę uzywac ESP zamiast Arduino bo maja obsługę sieci od razu, prawie wszystkie.

Nie mogę, bo jak pisałem UPC nie jest zewnętrzne IP, do tego po to będzie para z włącznikiem dzwonkowym, żeby działało i w domu, a po necie chodziło o to że mogłem sobie włączać różne rzeczy w domu, jak byłem np. na święta, zasada prosta, a dzięki ręcznemu sterowaniu brak schematu. Dopiero później zacząłem myśleć nad całkowitym pozbyciem się tradycyjnych włączników i stąd nie od początku wszystko było pod to przygotowane.

Odnośnik do komentarza
Udostępnij na innych stronach

52 minuty temu, AstraC napisał:

Nie mogę, bo jak pisałem UPC nie jest zewnętrzne IP

 

Gdyby Ci się udało przekierować chocby jeden port na router domowy z zewnatrz to mogłbyz załozyc OpenVpn do domu.

Odnośnik do komentarza
Udostępnij na innych stronach

30 minutes ago, resmiki said:

 

Gdyby Ci się udało przekierować chocby jeden port na router domowy z zewnatrz to mogłbyz załozyc OpenVpn do domu.

Próbowałem nie da rady niestety w UPC, zewnętrzne IP jest tylko dla użytkowników biznesowych.

Odnośnik do komentarza
Udostępnij na innych stronach

5 minut temu, AstraC napisał:

Próbowałem nie da rady niestety w UPC, zewnętrzne IP jest tylko dla użytkowników biznesowych.

 

Od kiedy takie rzeczy?

Odnośnik do komentarza
Udostępnij na innych stronach

7 minutes ago, format said:

 

Od kiedy takie rzeczy?

A już dobrych kilka lat. Wcześniej miałem zewnętrzne, potem padł mi modem i wymienili i już lipa. Dzwoniłem to mi powiedzieli, że nie, nawet jak chce zapłacić.

Odnośnik do komentarza
Udostępnij na innych stronach

33 minuty temu, AstraC napisał:

Próbowałem nie da rady niestety w UPC, zewnętrzne IP jest tylko dla użytkowników biznesowych.

 

nawet jednego portu, jakiego np. 60000 ?!

 

Ja mam tak, ze podając ze swiata adres IP mojego dostawcy (ma zewnetrzny) i łącząc sie na konkretnym porcie, dobijam sie do mojego routera w domu, a dalej to juz serwer OpenVpn i siec domowa

Edytowane przez resmiki
Odnośnik do komentarza
Udostępnij na innych stronach

35 minut temu, AstraC napisał:

A już dobrych kilka lat. Wcześniej miałem zewnętrzne, potem padł mi modem i wymienili i już lipa. Dzwoniłem to mi powiedzieli, że nie, nawet jak chce zapłacić.

 

Ciekawe, wydaje mi się że jednak jesteś w błędzie. Mam silne argumenty.

Odnośnik do komentarza
Udostępnij na innych stronach

35 minutes ago, resmiki said:

 

nawet jednego portu, jakiego np. 60000 ?!

 

Ja mam tak, ze podając ze swiata adres IP mojego dostawcy (ma zewnetrzny) i łącząc sie na konkretnym porcie, dobijam sie do mojego routera w domu, a dalej to juz serwer OpenVpn i siec domowa

U mnie tak nie ma - próbowałem, ze dwa lata temu po zmianie sprzętu i nie dał rady niestety.
 

 

18 minutes ago, format said:

 

Ciekawe, wydaje mi się że jednak jesteś w błędzie. Mam silne argumenty.

Chyba że coś znów zmienili kto wie, będzie 2 lata jak się tematem interesowałem. :hmm:

Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 26.07.2021 o 09:18, AstraC napisał:

Ja przy wykorzystaniu Arduino + listwa przekaźników, PHP, Postgre, ale zewnętrznego serwera do którego odwołuje się Arduino(UPC - brak IP widocznego z zewnątrz, do tego na tym etapie bezpieczeństwo - Arduino jest nie dostępne z netu, wada - działa z kilku sekundowym - maks 2s - opóźnieniem) zrobiłem sterowanie do oświetlenia i kontaktów w domu, teraz jestem na etapie przygotowania modułów bezprzewodowych, które mieściły by się w puszkach pod włącznikami/kontaktami + przeróbka włączników światła na "dzwonkowe" dzięki czemu wszystko będzie działać jak należy. :) Też w sumie "bo mi się chciało" to zrobiłem. :) 

U mnie podobnie moduły są poukrywane wew sieci - jakoś nie wierzę tym chińskim zabawkom oraz chińskim chmurom. Pełnią rolę wykonawczą do czujników (np smogu) czy sterowania lampkami choinkowymi. U mnie nie ma zauważalnego opóźnienia (aplikacja/www -> serwerek na zewn IP -> Arduino). Reszta czujników jak wspomniane 1wire po kablu, może dlatego działają bez przerwy już 5-ty rok :).

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

5 hours ago, sherif said:

U mnie podobnie moduły są poukrywane wew sieci - jakoś nie wierzę tym chińskim zabawkom oraz chińskim chmurom. Pełnią rolę wykonawczą do czujników (np smogu) czy sterowania lampkami choinkowymi. U mnie nie ma zauważalnego opóźnienia (aplikacja/www -> serwerek na zewn IP -> Arduino). Reszta czujników jak wspomniane 1wire po kablu, może dlatego działają bez przerwy już 5-ty rok :).

Dlatego jestem na etapie zmian w technologii budowy systemu. :) Nad serwerem po stronie Arduino się faktycznie zastanowię, bo pozbawiło by to opóźnienia, wiadomo trzeba wtedy zadbać o bezpieczeństwo.

Odnośnik do komentarza
Udostępnij na innych stronach

12 godzin temu, AstraC napisał:

Dlatego jestem na etapie zmian w technologii budowy systemu. :) Nad serwerem po stronie Arduino się faktycznie zastanowię, bo pozbawiło by to opóźnienia, wiadomo trzeba wtedy zadbać o bezpieczeństwo.

Ja jako serwer mam Raspberry, ciągnie sporo usług i dla mnie w zupełności wystarcza.

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Używając tego serwisu, wyrażasz zgodnę na naszą Polityka prywatności oraz Warunki użytkowania.