Ventbot - lokalny sterownik do wentylacji domowej

Ventbot - lokalny sterownik do wentylacji domowej

Czy masz pokoje w swoim domu, w których zimą jest chłodniej niż w innych pokojach? Lub, jeśli masz klimatyzację, czy któreś pokoje nie są cieplejsze niż inne pokoje latem? Często zdarza się to w pomieszczeniach najbardziej oddalonych od centralnej dmuchawy klimatyzatora lub nagrzewnicy pieca (w przypadku ogrzewania ciepłym powietrzem). Jednym z rozwiązań jest dołożenie w pomieszczeniu wentylatorów wspomagających, które montuje się u wylotu instalacji w pomieszczeniach.

Wentylatory wspomagające, montowane w instalacji u wylotów najdalszych szybów można łatwo zainstalować w każdym z problematycznych pomieszczeń. Dzięki opisanemu projektowi można nie tylko zbudować własny moduł wentylatorów, ale także kontroler do nich, co sprawi, że ich działanie będzie w pełni kontrolowane.

Projekt zawiera powszechnie dostępne i niedrogie wentylatory do obudów PC. Mała płytka drukowana z mikroprocesorem zapewniają inteligentną kontrolę. Kiedy piec lub klimatyzator nadmuchuje, odpowiednio, ciepłe lub chłodne powietrze do pomieszczenia, Ventbot automatycznie włącza wentylatory, aby zapewnić zwiększenie przepływu powietrza w odległych krańcach instalacji. Kiedy piec lub klimatyzator przestaje dmuchać, Ventbot wyłącza wentylatory, aby nie zużywały one niepotrzebne energii i nie hałasowały. Po zbudowaniu i zainstalowaniu można wentylatory po prostu skonfigurować i o nich zapomnieć.

Projekt zawiera wiele ciekawych rozwiązań. Jest dostępny na licencji open-source, więc można jego elementy stosować do innych zastosowań, a także dowolnie modyfikować układ, aby dopasować go do swoich potrzeb. Aby to ułatwić, autor konstrukcji przygotował precyzyjny i dokładny opis systemu, aby ułatwić ewentualne modyfikacje. Dodatkowo, podejście to sprawia, że system będzie łatwiej skonstruować również amatorom, czy osobom, które nie mają za wiele do czynienia z mikrokontrolerami.

Do wykonania systemu, oprócz podstawowej umiejętności lutowania potrzebny będzie dostęp do drukarki 3D, jak i umiejętność jej obsłużenia. System wymaga wydrukowania kilku elementów, aby zamontować wentylatory w kanale wentylacyjnym, a także by umocować elementy sterujące. Dodatkowo, potrzebna jest też elementarna umiejętność obsłużenia komputera z Arduino IDE - środowisko to potrzebne będzie do załadowania oprogramowania układowego na płytkę. Oprogramowanie jest już napisane przez autora i poza elementami do konfiguracji, nie wymaga żadnej znajomości programowania w Arduino.

Potrzebne elementy

Lista materiałów potrzebnych do skonstruowania systemu wygląda na długą i skomplikowaną, co może być nieco zniechęcające. Jest tak, dlatego, że podczas kompletowania poszczególnych części należy przemyśleć pewne opcje projektowe. Dlatego też, wraz z listą poszczególnych elementów zawarto ich opis oraz szereg innych informacji przydatnych podczas realizacji projektu. Zanim przystąpimy do kompletowania elementów czy tym bardziej do budowy układu, należy wszystko dobrze rozplanować. W przeciwnym razie można zmarnować pieniądze, kupując rzeczy, których nie potrzebujemy do realizacji projektu, a tego nikt nie chce. Przyjrzyjmy się, zatem, jak poszczególne elementy do siebie pasują.

Podstawą całego sterownika jest płytka drukowana, na której zainstalowane zostaną wszystkie elementy. Płytka (bez elementów) pokazana jest na rysunku 1. Jednym z kluczowych elementów jest moduł z mikrokontrolerem ESP32. Po załadowaniu do jego pamięci firmware, układ ten będzie zarządzał pracą całego systemu.

Rysunek 1. Wygląd płytki drukowanej kontrolera wentylatorów

Na jednym końcu płytki drukowanej znajdują się złącza do podłączenia kabli od wentylatorów. Do modułu podłączony jest również czujnik temperatury, który ma swoje przeznaczone złącze.

Obudowa dla układu może być wykonana na drukarce 3D. Na stronie z projektem znajdują się pliki z elementami do druku. Oprócz obudowy dla elektroniki na drukarce 3D wydrukować należy wsporniki do trzymania wentylatorów razem i instalowania ich we wnęce wentylacyjnej.

Kontroler może współpracować z maksymalnie 4 wentylatorami, ale zarówno płytka drukowana, jak i oprogramowanie mogą działać z mniejszą liczbą wentylatorów. Zarówno płytka drukowana, jak i obudowa wydrukowana w 3D mają oznaczenia wskazujące, który wentylator jest, który. Oczywiście w systemie potrzebny jest, co najmniej 1 wentylator, inaczej układ nie ma sensu. Jeśli używamy w układzie tylko jednego wentylatora, powinien to być Fan 1, aby zminimalizować zamieszanie. Inne wentylatory mogą być dowolną kombinacją Fan 2, Fan 3 lub Fan 4. Oprogramowanie automatycznie wykryje, które wentylatory są obecne. Wiele elementów w układzie jest powielanych dla każdego wentylatora, więc jeśli nieokreślony wentylator w systemie nie będzie używany, można nie montować niektórych części na PCB. Istnieją również elementy opcjonalne dla każdego obwodu, dodające pewne funkcje. Można z nich zrezygnować i również nie montować.

W zależności od wyboru opcjonalnych części, tego, gdzie kupujemy itd. całkowity koszt modułu powinien zamknąć się w około 60 dolarach (ok. 240 zł). Można kupić gotowy wentylator wspomagający za podobną cenę, jeśli uda nam się go znaleźć, ale stracimy sporo frajdy z samodzielnej budowy, a także ograniczmy możliwości kontrolowania jego pracy - opisana tutaj konstrukcja, nie dość, że zapewnia dosyć szeroki zakres kontroli, to może być dowolnie modyfikowana w czasie budowy.

W repozytorium projektu można znaleźć zestawienie materiałowe (BOM) utworzone przez oprogramowanie EDA (do projektowania układów elektronicznych) - KiCad. Poniżej wypisano te elementy wraz z komentarzem i stosownymi adnotacjami:

  • moduł z ESP32C, najlepiej, aby była to wersja 4. (wersja C) modułu, która ma 38 wyprowadzeń,
  • cyfrowy czujnik ciśnienia BMP28,
  • wentylatory - od jednej do czterech sztuk,
  • oporniki (wszystkie przewlekane):
    • 4,7 kΩ (4 na wentylator),
    • 27 kΩ (1 na wentylator),
    • 10 kΩ (1 na wentylator),
  • kondensatory elektrolityczne:
    • 10 µF (1 na wentylator),
  • tranzystory:
    • tranzystor bipolarny NPN: (1 na wentylator,
    • tranzystor MOSFET z kanałem typu N: (1 na wentylator,
  • zworki i goldpiny (opcjonalnie):
    • 3-pinowe goldpiny 0,1 cala: opcjonalnie, do 6 sztuk,
    • 2-pinowe goldpiny, jako zworki: po jednym dla każdego 3-pinowego złącza,
  • złącza zewnętrzne:
    • złącza wentylatora: (1 na wentylator),
    • złącza I²C (przynajmniej jedno z 3 możliwości),
    • gniazdo zasilania,
  • stabilizator napięcia - przetwornica napięcia lub regulator liniowy 7805 z opcjonalnym radiatorem,
  • zasilacz wtyczkowy 12 V.

Sercem systemu jest moduł z ESP32. Dostępnych jest wiele modułów ESP32 o różnych rozmiarach i konfiguracjach pinów. Przed montażem należy upewnić się, że mamy właściwy. Projekt zawiera ESP32-DevKitC V4 z modułem ESP32-WROOM-32D. Istnieją inne odmiany, które również będą działać, ale nie wszystkie są kompatybilne wyprowadzeniami. Najważniejsze jest, aby zakupić wersję z 38 wyprowadzeniami i aby rozłożenie pinów było takie same, jak te, których używa projekt, przynajmniej dla sygnałów, które są faktycznie używane. Jeśli tego nie zachowamy układ może nie działać, aczkolwiek moduły ESP32 zapewniają dosyć dużą elastyczność, jeśli chodzi o konfigurowanie wyjść. Mimo że ten moduł jest już dość stary, wciąż można znaleźć ESP32-DevKitC V1, który ma nieco inne wymiary fizyczne ale nadal będzie działać i pasuje do płytki.

Istotnym elementem systemu jest czujnik temperatury. Autor zastosował w tym projekcie sensor BMP280 firmy Bosch. Są one powszechnie dostępne i niedrogie. Bez żadnych zmian oprogramowania układowego można alternatywnie zastosować czujnik BME280, aby uzyskać również możliwość pomiaru wilgotności względnej, chociaż pamiętać należy, że BME280 jest droższy. Zarówno dla BMP280, jak i BME280, zastosowano interfejs I²C, ale mają one również interfejs SPI, który wyprowadzony jest w niektórych modułach. Zaprezentowany projekt korzysta z interfejsu I²C.

Oprogramowanie układowe odczytuje również ciśnienie z BMP280 lub BME280 oraz wilgotność względną z BME280, ale nie korzysta z tych danych a tylko raportuje ich wartości. W rzeczywistości oprogramowanie układowe automatycznie próbuje znaleźć kilka różnych czujników temperatury obsługiwanych przez ESPHome, ale autor przetestował tylko BMP280 i BME280. Oznacza to, że mogą działać i inne, ale nie jest to potwierdzone przez autora. Można też zastosować zupełnie inny termometr. Będzie to całkiem proste, jeśli czujnik taki korzysta z I²C i jest już obsługiwany przez ESPHome.

Elementy z interfejsem I²C są czasami dostępne w dwóch wersjach: dla 3,3 V i dla 5 V. W tym systemie potrzebujemy elementów w wersji 3,3 V, aby były kompatybilne z modułem ESP32.

Do zasilania zastosowano powszechnie dostępny zasilacz 12 V DC ze złączem baryłkowym 2,1/5,5 mm. Wydajność 1 ampera przy 12 V DC powinna być wystarczająca. Ponieważ będzie on podłączony przez cały czas, najlepiej użyć zasilacza dobrej, jakości z normą UL lub ETL. Dobierając zasilacz należy wybrać taki, który sięgnie do gniazdka, które zapewne będzie umieszczone daleko od otworów wentylacyjnych.

Uchwyt wentylatorów

Otwory wentylacyjne w naszym domu mogą być takie same jak autora, ale mogą być też zupełnie inne. Trzeba dobrać uchwyty wentylatorów do wielkości ujścia kanału wentylacyjnego w naszym domu. W większości domów wszystkie otwory wentylacyjne będą miały ten sam rozmiar, na ogół są one standardowe, jednak istnieje też kilka nietypowych.

W instalacji autor zastosował standardowe wentylatory do obudów komputerów PC, ich wymiary wymuszą pewne decyzje. Powszechnie dostępne rozmiary wentylatorów to 80 mm, 92 mm i 120 mm (typowo, istnieje jeszcze kilka innych rozmiarów - większych i mniejszych, te są jednak najpopularniejsze). Wentylatory, muszą pasować poziomo do ujścia kanału wentylacyjnego. Muszą być skierowane łopatkami na zewnątrz otworu, aby pompowały powietrze w odpowiednim kierunku. W otworze wentylacyjnym montujemy największy mieszczący się wentylator. Możemy zamontować też kilka obok siebie, jeśli otwór wentylacyjny ma kształt prostokąta. Na przykład w domu autora otwory wentylacyjne mają nominalnie 4 cale na 12 cali. Używa on wentylatorów 92 mm w zestawie po 3 sztuki. Wszystkie elementy montażowe Ventbota schowane są w kanale wentylacyjnym, jak pokazano na fotografii 1.

Fotografia 1. Wentylatory zainstalowane w kanale wentylacyjnym przy jego wyjściu

Po założeniu osłony wyglądają schludnie i nie rzucają się w oczy. Do montażu zastosowane są drukowane w 3D plastikowe elementy, jakie pokazano na fotografii 2.

Fotografia 2. Plastikowe uchwyty wentylatorów z drukarki 3D, zamontowane na trzech wentylatorach 92 mm

W systemie zastosowano wentylatory ze sterowaniem PWM, czasami opisywane, jako wentylatory 4-przewodowe. Pozwala to kontrolować prędkość obrotową wentylatora za pomocą sygnału z modulacją PWM (modulacja wypełnienia impulsów). Można także użyć innych wentylatorów, ale będą one tylko całkowicie wyłączone lub całkowicie włączone, a to może powodować hałas i będzie denerwujące. Nie ma dużej różnicy w cenie między wentylatorami 3-przewodowymi i 4-przewodowymi, ponieważ oba są często używane w komputerach PC. Dobierając konkretny wentylator do naszej instalacji, warto kierować się poziomem hałasu, jaki generuje, zwłaszcza, jeśli instalujemy je w sypialni itp. Są takie, które mają bardzo niski poziom emitowanego hałasu. Jest to na ogół kompromis między hałasem, ilością powietrza, które mogą przenieść, a tym, ile trzeba za nie zapłacić.

Układ elektroniczny

Na rysunku 2 pokazano schemat ideowy modułu. Budowa układu jest bardzo prosta. Centralnym elementem jest moduł z ESP32, do którego podłączone są wszystkie wejścia i wyjścia. Mikrokontroler mierzy parametry otoczenia poprzez sensor podłączony przez I²C i zadaje wartości prędkości obrotowej wentylatorom. ESP32 mierzy też prędkość, jaką raportują poszczególne wentylatory, aby raportować ją do systemu i monitorować ich pracę.

Rysunek 2. Schemat ideowy kontrolera wentylatorów

Układ zasilany jest z napięcia 12 V podłączonego do wejścia J10. Zasila ono bezpośrednio wentylatory i podawane jest na stabilizator U2, który stabilizuje napięcie 3,3 V do zasilenia mikrokontrolera i sensorów. W zastosowanym module z ESP32 znajduje się wbudowany liniowy stabilizator napięcia (zwykle AMS1117), który może stabilizować 3,3 V z wejścia 12 V. Problem polega na tym, że liniowy stabilizator napięcia może się dość mocno nagrzać od rozpraszania tak dużej ilości ciepła. W rzeczywistości może to nawet doprowadzić do jego uszkodzenia. Aby poradzić sobie z zasilaniem przy tak dużej różnicy napięć, na płytce PCB przewidziano miejsce na dodatkowy stabilizator napięcia. Można użyć go do obniżenia napięcia z 12 V do 5 V, co jest znacznie łatwiejsze w obsłudze dla wbudowanego stabilizatora napięcia w module z ESP32. Autor przewidział trzy możliwe opcje, jakie zastosować można tutaj do stabilizacji tego napięcia.

Domyślną opcją jest instalacja układu 7805 lub kompatybilnego w obudowie TO-220. Zamiast tego można jednak zastosować kompatybilny mechanicznie moduł z przetwornicą impulsową, która pozwoli uniknąć generowania nadmiernej ilości ciepła ze stabilizatora liniowego. Jednym z przykładów jest CUI VXO7805-500, ale są też inne. Ten stabilizator zasila tylko moduł ESP32, więc wystarcza skromna wydajność rzędu kilkuset miliamperów. Trzecią opcją jest zmostkowanie tego elementu i sprawienie, że całe ciepło uwalniane będzie na stabilizatorze wbudowanym w moduł ESP32.

Mając już wszystkie elementy, można przystąpić do montażu układu. Najpierw montujemy najniższe części. Na sam koniec montujemy na ogół najwyższe, ale także najdroższe czy też najdelikatniejsze elementy. Pozwala to nie tylko wygodnie montować system, ale także zrobić to w bezpieczny sposób. W tej konstrukcji moduł ESP32 jest drogi w porównaniu do innych elementów, więc należy go zostawić na koniec, tym bardziej, że jego 38 wyprowadzeń zasadniczo utrudnia usunięcie go po przylutowaniu.

Duże tranzystory MOSFET są zorientowane tak, że można je pochylić i położyć pod kątem, aby zmniejszyć całkowitą wysokość. Tranzystory te mają możliwość zamocowania radiatora, ale nie jest to potrzebne w tym systemie z uwagi na niewielką ilość prądu, jaki przez nie płynie.

W projekcie zastosowano czujnik temperatury i wilgotności BMP280 (lub inny czujnik temperatury na I²C). Jest on zewnętrzny względem kontrolera i połączony z nim przewodami. Płytka drukowana zawiera miejsce do montażu złącza, jednak zaprojektowano ją tak, aby możliwe było tam zainstalowanie jednego z wielu złączy. Autor przewidział możliwość montażu następujących gniazd:

  • JST-SH (tak samo jak Adafruit STEMMA QT i Sparkfun Qwiic). Chociaż złącza te są dostępne zarówno w wersji poziomej, jak i pionowej, z tą płytką można używać tylko wersji poziomej. Jest to element montowany powierzchniowo z bardzo drobnym rastrem - 1,0 mm. Jego przylutowanie wymaga sporego doświadczenia;
  • JST-PH (taki sam jak oryginalny Adafruit STEMMA i dość podobny do Seeed Studio Grove). Są one dostępne w wersji poziomej lub pionowej i obie mogą być używane z tą płytką drukowaną;
  • Seeed Studio Grove. Można skorzystać z tego złącza, jeśli już mamy podzespoły ekosystemu Grove. To dobry system, ale niektóre jego aspekty mogą być nieco mylące w tym konkretnym projekcie;
  • 4-pinowe złącze z goldpinami. To najtańsze rozwiązanie, które jest również bardzo elastyczne. Dostępne jest, jako złącze z jednym lub dwoma rzędami pinów w wariantach THT dostępne jest, jako proste i kątowe. Płytka drukowana ma miejsce na 2×4 goldpiny do podłączenia sensorów.

Na wybór używanego złącza może mieć wpływ zastosowany czujnik temperatury. Najtańsze są na płytkach noname, które mają najczęściej wystawione goldpiny. Istnieją również wersje Adafruit, Seeed Studio i innych producentów ze złączami JST-SH, JST-PH, STEMMA, STEMMA QT lub Grove. Sygnały elektryczne są takie same we wszystkich tych odmianach, chociaż występować mogą w różnej kolejności.

Fotografia 3. Zmontowane urządzenie

Zmontowana płytka pokazana jest na fotografii 3. Jest ona umieszczona w dolnej części obudowy, która wykonana jest w technologii druku 3D. Wszystkie potrzebne do druku pliki umieszczono na stronie z projektem, jak i w repozytorium, więc nic nie stoi na przeszkodzie, aby samodzielnie wydrukować obudowę (pokazano ją na rysunku 3).

Rysunek 3. Projekt obudowy do druku 3D

Oprogramowanie

Po przygotowaniu całego hardware możemy przystąpić do oprogramowania modułu. ESP32 musi być zaprogramowany za pomocą firmware, aby pełnił swoją rolę. Aby to zrobić, należy podłączyć komputer do portu USB modułu za pomocą kabla USB (moduł ESP32 najpewniej wyposażony jest w gniazdo micro-USB). Kolejne aktualizacje oprogramowania będzie można już dokonywać przez Wi-Fi (tzw. over-the-air, OTA). Podłączenie kabla do portu USB może być trudne, gdy moduł i inne części zostaną przylutowane do płytki drukowanej, dlatego najlepiej jest wykonać pierwsze wgranie oprogramowania układowego zanim zostanie on wlutowany na PCB. Uwaga: Jeśli decydujemy się na programowanie ESP32 w układzie, to należy upewnić się, że zasilacz 12 V nie jest podłączony w tym samym czasie, co komputer PC.

Framework używany do oprogramowania nazywa się ESPHome. Ma on naprawdę dobrą dokumentację na https://esphome.io. Nie ma sensu powtarzać w tym artykule wszystkich informacji tam zawartych. Jedyne, o czym należy wspomnieć, to to, że nie trzeba posiadać Home Assistanta, aby korzystać z ESPHome. Są to powiązane elementy oprogramowania z wieloma synergiami, ale można używać ESPHome bez Home Assistanta. Z wyjątkiem ewentualnych aktualizacji oprogramowania układowego, Ventbot może działać całkowicie samodzielnie, bez żadnej komunikacji zewnętrznej. W dalszej części artykułu opisano jak zastosować te synergie i używać tych dwóch elementów razem, ale jest to całkowicie opcjonalne.

W pierwszej kolejności należy zainstalować ESPHome na swoim komputerze i uruchomić je, postępując zgodnie z instrukcjami na stronie. Następnie pobieramy pliki konfiguracyjne ESPHome Ventbota do katalogu konfiguracyjnego ESPHome. Znajdują się one w repozytorium. Są to pliki YAML. Nie ma znaczenia, który z nich pobierzemy z repozytorium, można też po prostu pobrać je wszystkie.

Podczas edytowania któregokolwiek z plików konfiguracyjnych, należy zwracać uwagę na wcięcia i zawsze używać do nich spacji, nigdy nie używaj tabulatorów. YAML jest bardzo wybredny pod tym względem. Jeśli zamierzamy mieć wiele Ventbotów w domowej sieci, należy każdemu z nich nadać unikalną nazwę. Nazwy mogą być dowolne, oby tylko były unikalne, ponieważ rejestrują się w sieci Wi-Fi z tymi nazwami. Autor nazwał je kolorami, od kolorów obudowy, w jakim dany moduł jest zamknięty. Jeśli chcemy nazwać Ventbota chuzzlewit, zmieniamy nazwę pliku konfiguracyjnego ventbot-red.yaml na ventbot-chuzzlewit.yaml.

Plik o zmienionej nazwie otwieramy w edytorze tekstu. Szukamy w nim ## CONFIG ##, który jest znacznikiem rzeczy, które można zmienić. Wszędzie są komentarze, opisujące, czego dotyczy dany parametr. Następnie należy utworzyć plik secrets.yaml w tym samym katalogu. Wszystko w ventbot.yaml oznaczone, jako !secret faktycznie pochodzi z tego pliku. Wpis taki jak !secrets foo oznacza, że parametr ten będzie pobrany z pliku secrets.yaml spod tagu foo i użyje powiązanej wartości. Korzystanie z pliku secrets.yaml jest dobrą praktyką, ale nie jest wymagane - można po prostu zmienić wpisy !secrets, aby miały konkretne wartości.

Po skonfigurowaniu wszystkich plików można zbudować oprogramowanie układowe i wgrać je za pomocą ESPHome, łącząc się przez USB z modułem ESP32. Ostatnim etapem jest zalogowanie modułu do sieci Wi-Fi za pośrednictwem strony generowanej przez moduł. Po tym kroku można z poziomu ESPHome upewnić się, że moduły są widoczne i dostępne, aby przeprowadzić aktualizację OTA.

Konfigurowanie Wi-Fi

Ogólny plik konfiguracyjny oprogramowania układowego Ventbot nie zna SSID i hasła Wi-Fi. Jednym ze sposobów konfiguracji tego jest dodanie poświadczeń Wi-Fi do pliku konfiguracyjnego (np. za pomocą pliku secrets.yaml). Można w ten sposób również skonfigurować statyczny adres IP. Jeśli chcemy to zrobić, to prawdopodobnie trzeba również zmodyfikować plik ventbot.yaml.inc.

Dostępny jest drugi sposób konfiguracji sieci. Kiedy ESP32 uruchomi się (z oprogramowaniem ESPHome), i nie będzie mogło się połączyć z siecią Wi-Fi uruchomi się w trybie AP i wyświetli stronę. Nazwą sieci tego AP będzie nazwa Ventbota, po której następuje Config AP - na przykład ventbot-chuzzlewit Config AP. Należy połączyć się z tą siecią za pomocą telefonu lub komputera i otworzyć przeglądarkę na stronie http://192.168.4.1. Znajduje się tam formularz, który pozwoli wprowadzić informacje dotyczące sieci Wi-Fi. Na rysunku 4 pokazano zrzut ekranu podczas konfiguracji. Oprogramowanie układowe zapisze te informacje w pamięci Flash i automatycznie połączy się z tą siecią za każdym razem, gdy ESP32 uruchomi się ponownie.

Rysunek 4. Konfiguracja sieci Wi-Fi

Uruchamianie i kalibracja

Kiedy instrukcja mówi, że trzeba skalibrować jakieś urządzenie, to zawsze mamy w głowie trudny proces, który wymagać może laboratoryjnego sprzętu. W tym przypadku kalibracja oznacza jedynie dostrojenie układu do działania w określonym środowisku. Wszystkie kroki są dość proste. Wszystko można zrobić przez Wi-Fi. Do regulacji kalibracji używany jest ponownie ESPHome, ale aktualizacje wgrywane są bezprzewodowo. Założymy, że Ventbot nazywa się ventbot-chuzzlewit. W grę wchodzą dwa pliki ESPHome. Każdy Ventbot ma swój konkretny plik, taki jak ventbot-chuzzlewit.yaml, który odwołuje się do znacznie większego pliku ventbot.yaml.inc. Ten sam plik jest używany przez wszystkie Ventboty i nie trzeba wprowadzać w nim żadnych zmian. Poszczególne pliki, takie jak ventbot-chuzzlewit.yaml, zawierają wszystkie konfigurowalne ustawienia.

Kalibracja - wyzwalacze temperatury

Ventbot włącza wentylatory, jeśli wykryje temperaturę powyżej określonego punktu lub poniżej określonego punktu. Pomiędzy tymi dwiema wartościami (zakres nazywa się strefą neutralną) Ventbot wyłącza wentylatory. HIGH_TRIGGER i LOW_TRIGGER to tylko liczby. Można wyrazić je w stopniach Fahrenheita lub Celsjusza. Ustawienie towarzyszące, TRIGGERS_ARE_CENTIGRADE, wskazuje, jakie jednostki zastosowano. Inne pokrewne ustawienie, SENSOR_IS_CENTIGRADE, wskazuje, jakiej skali używa czujnik temperatury (prawie na pewno będzie to stopień Celsjusza).

Jakich wartości należy użyć dla wyzwalaczy temperatury? Można arbitralnie dobrać te wartości albo odczytać je z logów dziennika Ventbota, jeśli jest on już jakiś czas zainstalowany w naszym domu.

Uwaga: jeśli mamy wiele Ventbotów w domu, wykonajmy ten krok niezależnie dla każdego z nich osobno. Może okazać się, że będą występować dość znaczące różnice w zakresie niskiej i wysokiej temperatury wyzwalającej urządzenie, zależnie od miejsca instalacji modułu. Przykładową konfigurację w pliku YAML pokazano poniżej:

HIGH_TRIGGER: “85.1”
LOW_TRIGGER: “60.5”
TRIGGERS_ARE_CENTIGRADE: ‘false’
SENSOR_IS_CENTIGRADE: ‘true’

Kalibracja - rampa w górę i w dół

Aby uzyskać maksymalny efekt wzmocnienia, możesz po prostu włączyć wszystkie wentylatory na maksymalną prędkość natychmiast, gdy potrzebne jest przyspieszenie. Ventbot może jednak stosować bardziej skomplikowane podejście, ponieważ maksymalne obroty oznaczają również maksymalny hałas.

Może to być szczególnie ważne w pomieszczeniach, w których śpią ludzie. Aby rozwiązać ten problem, Ventbot używa konfigurowalnej tabeli wartości, aby powiedzieć jak szybko wentylatory powinny się obracać i jakie kroki należy podjąć. Charakterystyka ta nazywana jest rampą. Może się to wydawać dość skomplikowane. Najważniejszą rzeczą do podjęcia decyzji jest maksymalna prędkość, jaką mają osiągnąć wentylatory oraz liczba kroków i przerw, które należy wykonać. Można również rozważyć, ile kroków i przerw należy zastosować podczas wyłączania wentylatorów, ale dla większości ludzi prawdopodobnie będzie to mniej ważne. Prędkości wentylatora są wyrażone, jako procent wartości maksymalnej zamiast pewnej liczby obrotów na minutę. Jest to bardziej intuicyjne. Tabela z konfiguracją rampy pokazana jest na listingu 1.

Listing 1. Konfiguracja działania wentylatora - tzw. rampa

RAMP_TABLE: |-
{0, 0, { 0, 0, 0, 0}},
{2, 1, { 2, 0, 0, 0}},
{2, 1, { 2, 2, 0, 0}},
{2, 1, { 2, 2, 2, 0}},
{5, 5, { 20, 20, 20, 20}},
{5, 5, { 40, 40, .40, 40}},
{5, 5, { 60, 60, 60, 60}},
{5, 5, { 80, 80, 80, 80}},

Integracja z Home Assistantem

Można użyć ESPHome do monitorowania zachowania Ventbota, przeglądając pliki dziennika, ale Ventboty będą działać autonomicznie i nie będą zależne od połączenia z czymkolwiek. ESPHome oraz Home Assistant to całkiem kompletny system automatyki domowej i ściśle powiązane projekty open-source. Bardzo łatwo jest skonfigurować Ventbota do zgłaszania swoich danych do serwera Home Assistant, a nawet łatwo jest użyć ekranu pulpitu nawigacyjnego Home Assistant, aby powiedzieć Ventbotowi, aby coś zrobił.

Opisanie, jak to skonfigurować, wykracza poza zakres tego artykułu. Przykład tego, co da się zrobić, pokazano na rysunku 5. Wykresy te pozwalają na monitorowanie zmian w czasie. Dodatkowo serwer Home Assistant, wiedząc, kiedy działa ogrzewanie lub chłodzenie (i kilka innych rzeczy) może lepiej sterować Ventbotami. Zamiast używać czujników temperatury podłączonych do Ventbotów, można użyć jego wiedzy o tym, kiedy włączone jest ogrzewanie lub chłodzenie, aby nakazać uruchamianie i zatrzymywanie wentylatorów.

Rysunek 5. Home Assistant prezentujący dane z Ventbotów

Podsumowanie

Pokazana wersja PCB to aż czwarta wersja urządzenia. Jest to ciekawe rozwiązanie dosyć konkretnego problemu. Dla wielu osób może być zbyt skomplikowane, jednak możliwość integracji z automatyką domową może być ciekawą alternatywą. Urządzenie, jakkolwiek przeznaczone do konkretnej roli, może być rozbudowane (np. można dołączyć inne sensory na I²C) i pełnić szerszą rolę w domowym systemie automatyki.

Nikodem Czechowski, EP

Źródła:

  1. https://shorturl.at/tALV1
  2. https://gitlab.com/wjcarpenter/ventbot
  3. https://hackaday.io/project/186808
Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2023

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik luty 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje luty 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna luty 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich marzec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów