Home

Sterownik CO

Prace nad tym projektem trwały z przerwami około 3 miesięcy.
Założenie było takie aby na podzespołach Arduino zbudować układ który by sterował piecem gazowym centralnego ogrzewania.
Dlaczego Arduino? Bo można kupić za niewielkie pieniądze gotowe moduły które wystarczy połączyć
 i zaprogramować.
Do rozwiązania było kilka kwestii, a mianowicie:
- Jaki wybrać moduł sterujący.
- Czym mierzyć temperaturę w pomieszczeniu.
- W jaki sposób sterować układem.
- W jaki sposób połączyć termometr z sterownikiem
- W jakiej obudowie umieścić gotowe układy.
Przede wszystkim założyłem że czujnik temperatury będzie w salonie a układ sterujący w kotłowni oddalonej
od salonu kilka metrów. Poza tym nie wchodziło w rachubę kucie ścian żeby położyć przewody
zasilające i sterownicze.
Sterowanie układem będzie odbywało się przy pomocy smartfona a w przyszłości ma się znaleźć możliwość sterowania przez sieć internetową z dowolnego miejsca na ziemi.
W związku z tym zakupiłem na serwisie Allegro dwie obudowy po około 5 zł sztuka dwa układy zasilające 230/5V po 8 zł sztuka, dwa układy Wemos D1 mini w cenie 15 zł jeden, czujnik temperatury DS18B20
w cenie 5 zł, poza tym drobiazgi takie jak rezystory, płytki przewody znalazłem w swoich zasobach warsztatowych.

Łączny koszt projektu:
Obudowy   10 zł
Zasilacze   16 zł
Wemos D1 30 zł
Czujnik         5 zł
Razem:       61 zł

Jak się orientowałem oryginalny zestaw sterowniczy kosztuje minimum około 250 zł.
Więc gra warta świeczki. Więc biorę się do roboty.

Czujka temperatury
20180124_121440Do zbudowania czujnika temperatury użyłem modułu
„Wemos D1 mini, zasilacza 230/5V DC oraz czujnika DS18B20.
Układ „Wemos wybrałem dlatego iż jest niewielki, ma wbudowany interfejs WiFi oraz micro-usb, ma wiele portów.
Zasilacz ma wymiary około 2,5 na 1,5 cm jest gotową przetworniczką którą wystarczy tylko zasilić i mamy na wyjściu potrzebne 5V DC.
W początkowej fazie projektu zastosowałem czujnik temperatury
typu DHT 11 ale okazało się że ma zbyt małą rozdzielczość pomiaru, a to jest ważne jeżeli chodzi o w miarę precyzyjne sterowanie
piecem CO.
W końcu stanęło na wspomnianym układzie DS18B20 ponieważ
umożliwia pomiar z dokładnością dwóch miejsc po przecinku.
Takie parametry idealnie nadawały się do mojej konstrukcji.
W związku z tym że układ jest banalnie prosty postanowiłem
go złożyć na płytce uniwersalnej którą dopasowałem wymiarami
do zakupionej obudowy.

Schemat połączeń:

Czujnik BS18B20

20180124_121525

Jak widać na załączonych obrazkach niewiele tego a spełnia swoje zadanie.
Czujkę wyposażyłem dodatkowo w dwie diody led. Czerwona wskazuje obecność napięcia zasilającego natomiast żółta informuje nas czy układ jest połączony z siecią WiFi.
 
Regulator
20171127_183616Do budowy wykorzystałem również układ „Wemos
oraz moduł zasilający, dodatkowo układ wyposażyłem
w wyświetlacz OLED na którym mają wyświetlać
się bieżące informacje dotyczące stanu urządzenia
oraz komunikaty na przykład alarmowe.
Oczywiście niezbędny jest element wykonawczy bezpośrednio sterujący piecem.
Do tego celu użyłem modułu z przekaźnikiem.
W związku z tym że układ jest o wiele bardziej złożony zaprojektowałem i wykonałem płytkę PCB na której
umieściłem niezbędne elementy.
Do wyjścia przekaźnika podłączony będzie dwu żyłowy przewód który będzie wpięty w układ sterowniczy pieca.
Jak widać na zdjęciach obudowy są w formie wtyczek. Doszedłem do wniosku że to będzie praktyczne
 rozwiązanie które uprości montaż systemu w mieszkaniu.
Schemat połączeń: Schemat_sterownika
 Wydaje mi się że zamieszczony schemat jest na tyle przejrzysty że nie wymaga mojego komentaża.
Jako wyjaśnienie dodam tylko że konstrukcja finalna pozbawiona jest dwu przycisków sterujacych
Jest to pozostałość ale i przyszłość po moich pierwotnych planach.
Pomysł był taki żeby można było regulować sterownikiem bezpośrednio na urządzeniu.
W końcu stanęło na tym że zrezygnowałem z przycisków ponieważ w dzisiejszych czasach praktycznie
każdy ma w pobliżu smartfona, regulacji ustawień dokonuje się sporadycznie i to rozwiązanie upraszcza wykonanie obudowy.
Na schemacie jednak je zostawiłem bo jak znam życie pewnie pojawi się kolejna doskonalsza wersja sterownika w której mogę wrócić do pierwotnych planów.
Jest to tylko kwestia montażu przycisków w obudowie i zmodyfikowanie oprogramowania w sterowniku.
  20171127_182253Pozostało tylko zaprogramować układy „Wemos.
Postanowiłem zrobić to w klasycznym języku „C
jaki współpracuje z wyżej wspomnianym układem.
Jako transmisję danych wykorzystałem WiFi UDP.
 Przyjąłem taki rodzaj ponieważ nie obciąża w sposób
ciągły domowej sieci WiFi i daje możliwość sterowania sterownikiem kontroli pieca praktycznie z dowolnego
urządzenia podłączonego do domowej sieci WiFi.
 
Program zainstalowany w czujce realizuje następujące funkcje:
Przede wszystkim podłącza czujkę do domowej sieci, następnie kontroluje to połączenie. W przypadku zaniku połączenia gaśnie żółty LED.20171127_183512
Następnie odczytuje z DS18B20 aktualną temperaturę. Następnie porównuje ją z temperaturą zadaną. Temperatura zadana jest to wielkość do jakiej piec CO ma nagrzać pomieszczenie.
Domyślnie w chwili startu programu czujki ustawiona jest na poziomie 20 °C ponieważ w przypadku zaniku zasilania temperatura zadana jest resetowana i poziom 20 °C jest bezpiecznym progiem który nie przegrzewa pomieszczenia
ani go nie schładza do zbyt niskiej temperatury.
Przy okazji wykorzystałem ustawienia pieca które mają maksymalną i minimalną wartość zadaną bez względu
na to jak sterują nim sterownik.
Oczywiście można by zapisać wartość zadaną temperatury
do pamięci i odczytać ją po przywróceniu zasilania
ale to związane by było z dodatkowym zbędnym rozbudowaniem układu.
Następnie program porównuje temperaturę odczytaną z zadaną i w zależności od wyniku wysyła do sterownika komendę załączenia lub wyłączenia pieca.
Między czasie nasłuchuje czy nie zostały wysłane komendy sterownicze np. ze smartfona lub dowolnego innego urządzenia podłączonego do sieci. Jak się domyślacie układ możemy dowolnie zaprogramować. Jesteśmy ograniczeni tylko naszą pomysłowością.
W moim przypadku program tak napisałem aby oczekiwał zmiany nastaw temperatury wysyłanych ze smartfona.
Poza tym potrafi wysłać do urządzenia pytającego informację o bieżącej temperaturze i nastawie.

Z kolei program sterownika podobnie jak i czujki łączy i kontroluje stan połączenia z domową siecią Wi-Fi
i w zależności od otrzymanych komend załącza lub wyłącza wbudowany przekaźnik sterujący piecem CO.
Równolegle z tym procesem wyświetla na wbudowanym wyświetlaczu informacje na temat stanu sterownika.
W przyszłości planuje dołożyć możliwość sterowania przez sieć internetową.
Screenshot_2018-02-06-11-55-46Pozostał ostatni element układu,
a mianowicie program na smartfona.
Sama aplikacja jest prosta jak i cały układ który zbudowałem.
Realizuje tylko trzy potrzebne funkcje,
a mianowicie zmianą nastawy temperatury zadanej w czujce temperatury oraz odczyt bieżących parametrów jakie przesyła czujnik temperatury.   
Program na smartfona jak i na pozostałe
urządzenia będzie można pobrać z mojego serwera wykorzystując zamieszczone linki pod artykułem.
Podstawą działania systemu jest to aby wszystkie trzy elementy znalazły się w jednej sieci WiFi.
Może być to sieć domowa ewentualnie każda inna uruchomiona przez nas na potrzeby
obsługi całego systemu.
Jak się domyślacie tego typu sieć wymaga podania nazwy i hasła dostępu.
Jeżeli chodzi o sterownik i czujkę trzeba pobrać pliki zawierające programy następnie musimy je otworzyć w programie Arduino wersja 1.65 i w miejscu kodu gdzie
są wpisane nazwa sieci oraz hasło sieci podmieniamy na swoje dane czyli nazwę
i hasło do sieci z jaką się chcemy połączyć.
Po tej operacji wgrywamy programy do naszych urządzeń. Jeżeli wszystko zrobiliśmy prawidłowo to po podaniu zasilania na nasze świeżo zbudowane moduły w przypadku czujki temperatury zapali się na niej żółta dioda Led a na wyświetlaczu sterownika zobaczymy komunikat potwierdzający połączenie z siecią.
Inaczej będzie z aplikacją na telefon.
Przede wszystkim musimy w ustawieniach telefonu w zakładce bezpieczeństwo zaznaczyć zakładkę
mówiącą o zezwoleniu na instalację z innych źródeł niż Google Play następnie pobraną aplikację na nasz smartfon instalujemy wykorzystując menadżera aplikacji.
Po instalacji programu odznaczamy zakładkę w ustawieniach bezpieczeństwa.
Teraz można w końcu uruchomić nasz program i zacząć sterować piecem CO.
Wirtualnymi klawiszami plus, minus zwiększamy lub zmniejszamy wartość zadanej temperatury.
Po każdym użyciu któregoś z klawiszy dostajemy informacje o zmianie parametrów.
Wybierając funkcję Stan otrzymamy informację zwrotną o bieżącej nastawie i temperaturze

Uruchomienie
Zanim uruchomimy sterownik warto przyjrzeć się kodowi czajnika temperatury oraz sterownika.
Otóż cały system kontroli oparty jest o komunikację UDP. W związku z tym poszczególne elementy muszą posiadać swój indywidualny nr IP oraz PORT najlepiej o stałym adresie. Jak widać w kodzie który
udostępniłem przypisałem czujnikowi nr. IP 192.168.1.160 port 6000 a sterownikowi IP 192.168.1.150
port 5000.
Oczywiście możemy przypisać inne parametry . Warto tylko nadać w ostatnim członie adresu IP wysokie numery najlepiej powyżej 100 ponieważ serwer DHCP niższe adresy nadaje domyślnie urządzeniom bezpośrednio z nim współpracującym. To samo dotyczy parametrów połączenia WiFi z routerem naszej domowej sieci, muszą być zgodne  z ustawieniami routera ponieważ nie uzyskamy prawidłowego
połączenia WiFi.
Program w telefonie też ma na stałe wpisany numer IP i portu taki jak w czujce temperatury.
Za to nie musimy mu nadawać stałego adresu ponieważ Czajka odpowiada na zapytanie z dowolnego
urządzenia które się z nim komunikuje.
W najbliższym czasie zamieszczę aktualizację programu na smatfona w której program będzie umożliwiał przypisanie w ustawieniach adresu IP i portu jaki nadaliśmy czujce temperatury.
Również musimy zwrócić uwagę na jakość sygnału WiFi ponieważ mogą pojawiać się błędy w przekazie komend sterujących. W przypadku musiałem zmniejszyć zwłokę w wysyłaniu komend między czujką
a sterownikiem niemal że aż do 0 żeby sterownik prawidłowo reagował na polecenia.

Program na smartfona - link
Sterownik - link.
Czujnik temperatury - link

Aplikacja „Sterownik CO v1.1Screenshot_2018-02-22-15-37-13

Jak zapowiadałem zamieszczam wersję programu rozszerzoną
o możliwość zmiany numeru IP oraz adresu portu odbiornika
w tym konkretnym przypadku „Czujki temperatury.

Zasada działania:
Program podczas pierwszego uruchomienia po instalacji szuka
w pamięci telefonu danych dotyczących numeru Ip oraz adresu portu.
W przypadku gdy ich nie znajdzie ustawia domyślnie
IP 192.168.0.160, port 6000.
Z poziomu aplikacji można zmienić te dane a następnie podczas naciśnięcia któregoś z przycisków zapisać je do pamięci.

Aplikacja na smartfona v 1.1 - link