Zautomatyzowanie we wnętrzu domu staje się standardem. Jednak naprawdę nieporównywalne korzyści może przynieść automatyzacja takiego obiektu jak przydomowy basen, szczególnie w zakresie koniecznych nakładów czasu, potrzebnych do jego utrzymania pieniędzy i obciążenia dla środowiska. Głównym celem prezentowanego poniżej projektu jest zbudowanie taniego i modułowego systemu, który umożliwia sterowanie urządzeniami związanymi z basenem. Do sterowania zastosowano komputer jednopłytkowy Raspberry Pi, oferujący dużą moc obliczeniową, co pozwala na implementację wielu zaawansowanych algorytmów sterowania.
Wstęp
Urządzenia do automatyzacji, stosowane w domach czy ogrodach, najczęściej kontrolują kilka parametrów i wykonują kilka zadań przy realizacji swego celu. Zwykle są to urządzenia autonomiczne, to znaczy, że zbierają jakieś informacje z otoczenia a następnie dobierają odpowiednie parametry pracy dla dołączonego osprzętu. Informacja o zebranych danych i o odpowiedzi urządzenia nie jest dostępna dla innych urządzeń. Problem pojawia się w momencie, gdy w systemie znajdują się dwa lub więcej urządzeń, które próbują regulować ten sam parametr. Przykładem mogą być systemy kontroli pH w basenie. Na ten parametr wpływa działanie wielu urządzeń w systemie, od systemów dozujących do wody w basenie solankę, poprzez specjalne pompy kontrolujące filtrowanie, aż do zwykłych pomp z kontrolą czasową, które pompują wodę do/z basenu. Taki sprzęt tylko częściowo rozwiązuje zadania automatyzacji i nie pozwala na żaden rodzaj rozbudowy lub ulepszenia.
Podejście prezentowane w opisywanym projekcie jest zupełnie inne. Autor proponuje, aby urządzenia peryferyjne były ekstremalnie proste (więc także tanie) i realizowały tylko swoje główne zadanie - pompa: filtruje, roztwór soli: wytwarza chlor etc. Natomiast centralny sterownik odpowiada za całą automatyzację. Właśnie w ten sposób konstruowane są profesjonalne systemy sterowania, ale te mają dwie podstawowe wady: są bardzo drogie oraz najczęściej zmuszają do zakupu wszystkich komponentów tej samej marki.
Opis systemu
System korzysta z zespołu sensorów umieszczonych w rurze, będącej obejściem pompy, która przepompowuje wodę z basenu przez filtr. W pojedynczej rurze z PCV należy umieścić sensory: ORP (potencjał oksydacyjny), pH oraz temperatury. Oczywiście, projekt można uzupełnić dodatkowymi sensorami, według własnych potrzeb.
Elementami wykonawczymi są: pompa filtrująca wodę oraz dwie pompy perystaltyczne, przeznaczone do podawania do wody w basenie roztworów do zakwaszania wody (redukcji pH) oraz chlorku sodu, którego zadaniem jest sterylizowanie wody. System można uzupełnić o sterowane grzałki do wody czy elektrozawory podające wodę z sieci wodociągowej dla uzupełnienia jej braku.
Wszystkimi systemami steruje pojedynczy komputer jednopłytkowy Raspberry Pi z zainstalowanym systemem operacyjnym Hassbian. Jest to dystrybucja Raspbiana, na którym domyślnie zainstalowany jest pakiet oprogramowania Home Assistant - otwarta platforma automatyki domowej.
Potrzebne komponenty
Do zbudowania systemu automatyzacji basenu potrzebne będą następujące elementy:
- Komputer jednopłytkowy Raspberry Pi, najlepiej w wersji 3 lub 4, wraz z kartą pamięci (rekomendowana jest karta o pojemności co najmniej 32 GB i klasie prędkości A1) oraz zasilaczem USB o wydajności prądowej nie mniejszej niż 2 A.
- Sensor pH (EZO pH od Atlas Scientific),
- Sensor ORP (EZO ORP od Atlas Scientific),
- Płytki nośne od Atlas Scientific do podłączenia modułów do systemu,
- Termometr DS18B20 w wodoodpornej obudowie wraz z opornikiem 4,7 kV, który podłącza się bezpośrednio do GPIO Raspberry Pi,
- Przekaźniki i styczniki do sterowania urządzeniami elektrycznymi: pompami do filtrów, pompami perystaltycznymi, grzałkami etc. Pamiętajmy, aby dobrać elementy sterujące do posiadanych przez nas urządzeń; prąd i napięcie pracy styków przekaźników musi być nie mniejsze niż napięcie zasilające urządzenie i prąd przez nie pobierany. Część z przekaźników stosowana jest również do kontroli silników, jeżeli np. mają one dwa biegi z różnymi prędkościami obrotowymi.
- Opcjonalnie - monitor zużycia energii elektrycznej, który można podłączyć do Raspberry Pi. Na rynku jest wiele tego rodzaju sensorów. Pozwoli on nam zmierzyć, ile prądu pobiera nasz system basenowy, co umożliwi dostrojenie algorytmu kontroli tak, by system był możliwie energooszczędny.
Obejście systemu - pętla dla sensorów
Na rysunku 1 pokazano rurę, w której umieszczono sensory. Jest ona instalowana jako obejście głównej pompy z filtrami. Umieszczamy w obejściu wszystkie sondy (pH, ORP i temperatury, a także inne, według uznania), jak zaprezentowano na rysunku. Dołączenie takiego układu do systemu wodnego w basenie jest proste i nie powinno być dla nikogo problemem.
Do zbudowania obejścia potrzebnych jest kilka elementów - trochę rur PCV, klej do PCV oraz podstawowe narzędzia, takie jak wiertarka czy śrubokręt. Całe obejście nie powinno kosztować więcej niż 200 zł plus koszt sond, jakie w nim umieścimy. Podczas budowy tego elementu trzeba zwrócić uwagę na trzy rzeczy:
- budując obejście, dobrze jest zmontować i spasować je ze sobą i z istniejącymi już rurami, zanim wszystko skleimy i połączymy na stałe. Możemy robić to wielokrotnie, aby dopasować do siebie otwory, pozycje kolanek etc.,
- rura, w której znajdują się sondy (D50 - średnica 50 mm), powinna być ułożona możliwie nisko i poziomo w systemie, tak aby zawsze zapełniona była wodą. Zaleca się, aby odległość pomiędzy sondami a komputerem z modułami pomiarowymi nie była większa niż 3 m.
- krawędzie rur, które ze sobą łączymy, należy lekko zaokrąglić pilnikiem bądź elektryczną szlifierką. Dobrze jest przećwiczyć wykonywanie takiej czynności na krawędzi rur na niepotrzebnym, odciętym fragmencie.
Podstawowe oprogramowanie na Raspberry Pi
Aby oprogramowanie działało na naszym Raspberry Pi, trzeba zainstalować na nim Hassbiana - jest to dystrybucja Raspbiana wyposażona w oprogramowanie Home Assistant. Zaawansowani użytkownicy Linuksa, mogą zainstalować Home Assistanta niezależnie, na istniejącej już instalacji systemu operacyjnego Raspbian lub innego systemu dla tego komputera jednopłytkowego.
Warto zapewnić łączność z Internetem naszemu systemowi. Dzięki temu nie tylko instalacja oprogramowania czy aktualizacji będzie prostsza, ale będzie możliwa także integracja systemu z popularnymi systemami automatyki domowej, takimi jak Sonos, Kodi czy ekosystemami Alexa, Google Home itp. Dodatkowo połączenie z Internetem pozwala na korzystanie z usług takich jak np. If This Then That (IFTTT) do tworzenia własnych algorytmów automatyki.
Jeśli to Wasze pierwsze zetknięcie z Home Assistantem, możecie być przytłoczeni ogromną liczbą zintegrowanych narzędzi dostępnych w tej aplikacji. Niniejszy projekt jest dobrą metodą na rozpoczęcie korzystania z tego pakietu, szczególnie że wszystkie pliki do korzystania z poszczególnych sond i pliki konfiguracyjne są dostępne do pobrania.
Na repozytorium w GitHubie projektu (http://bit.ly/2NbuBt3) znajdujemy foldery custom_components i packages, które musimy skopiować na nasz minikomputer.
Tak samo musimy postąpić z plikiem konfiguracyjnym ui-lovelace.yaml, który opisuje wygląd przedniego panelu Raspipool. Plik ten umieszczamy w folderze konfiguracyjnym Home Assistanta (zazwyczaj /home/homeassistant/.homeassistant/). Trzeba ponadto zmodyfikować plik configuration.yaml, tak jak pokazano na listingu 1. Wpisujemy tam dane dotyczące lokalizacji czy inne informacje dla różnych API, z których korzystać może system.
homeassistant:
name: RaspiPool
# Dane lokalizacyjne potrzebne są do obliczenia godziny wschodu
# i zachodu słońca
latitude: !secret latitude
longitude: !secret longitude
unit_system: metric
customize: !include customize.yaml
packages: !include_dir_named packages
default_config:
# Wyłączenie automatycznego wykrywania urządzeń
# discovery:
tts:
- platform: google_translate
logger:
default: critical
logs:
homeassistant.components.sensor.atlas_scientific: debug
homeassistant.components.switch.command_line: debug
group: !include groups.yaml
# Wyłączenie automatyzacji
# automation: !include automations.yaml
script: !include scripts.yaml
lovelace:
mode: yaml
Podłączanie sensorów do minikomputera
Możemy teraz podłączyć poszczególne sensory do minikomputera Raspberry Pi. Na rysunku 2 zaprezentowano schemat podłączenia poszczególnych sensorów do Raspberry Pi.
Termometry DS18B20 podłączone są do jednego pinu Raspberry Pi (można podłączyć ich wiele do jednego pinu). Moduły EZO z sensorami podłączone są do interfejsów UART minikomputera. Aby interfejs szeregowy działał, musimy zmienić wpis w pliku konfiguracyjnym config.txt. W tym celu w linii komend wpisujemy:
Nikodem Czechowski, EP