Jump to content

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


resmiki
 Share

Recommended Posts

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

  • Like 6
  • Thanks 2
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

Posted (edited)

 

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

Edited by resmiki
Link to comment
Share on other sites

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. :) 

  • Like 2
Link to comment
Share on other sites

9 hours ago, tomkowski said:

Dokładasz sprężynki? Jak tak, to gdzie dorwałeś?

Znalazłem, że albo Simon albo Legrand mają nawet dwodznkowe podwójne włączniki i z nich skorzystam. 

Link to comment
Share on other sites

3 godziny temu, AstraC napisał:

Znalazłem, że albo Simon albo Legrand mają nawet dwodznkowe podwójne włączniki i z nich skorzystam. 

Ok. Czyli wymieniasz istniejące.

  • Like 1
Link to comment
Share on other sites

Posted (edited)
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.

Edited by resmiki
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Posted (edited)
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

Edited by resmiki
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

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 :).

  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.