Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 sie 2025, o 08:54


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
    PostNapisane: 21 kwi 2015, o 17:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 30 sty 2013
    Posty: 169
    Lokalizacja: Silesia - P-ce
    Pomógł: 10

    Jakiś czas temu wykonałem sterownik akwarystyczny o nazwie roboczej ‘SAKWA’ i postanowiłem go Wam przedstawić. Jest to moja pierwsza prezentacja tak dużego projektu (samodzielnie wykonanego) więc jeżeli zauważycie jakieś błędy to proszę o wyrozumiałość.

    Obrazek

    :arrow: Wstęp:
    Z racji tej, że postanowiłem założyć akwarium słodkowodne potrzebowałem układu, który informowałby mnie o temperaturze wody, oraz sterował grzałką oraz oświetleniem – to jest główny powód wykonania tego układu.
    Analizując działanie tego sterownika można powiedzieć, że jest to bardziej sterownik uniwersalny z programowalnymi 8 wyjściami, które mogą reagować na temperaturę, czas, oraz sygnał wejściowy (4 wejścia).

    :arrow: Założenia:

    Przed projektowaniem postawiłem sobie następujące założenia, które wykonywany sterownik powinien posiadać:
    1. sterowanie co najmniej 5 wyjściami;
    2. odczyt temperatury z 2 czujników temperatury – DS18B20;
    3. wykorzystanie zegara RTC;
    4. podtrzymanie czasu w zegarze RTC;
    5. interfejs użytkownika w postacie wyświetlacza LCD 2x16, oraz 4 przycisków;
    6. możliwość konfiguracji przy użyciu komputera PC – poprzez interfejs UART;
    7. elastyczne Menu;
    8. program czasu rzeczywistego;
    9. budowa modułowa.

    :arrow: Budowa układu:

    Układ sterownika został podzielony na następujące moduły:
    1. Moduł CPU;
    2. Moduł wejść;
    3. Moduł wyjść;
    4. Moduł zasilania;

    oraz płytki pomocnicze:
    1. RS232;
    2. 1-wire;
    3. Przycisków;
    4. Zegar RTC z podtrzymaniem.

    Na zewnątrz samego układu sterownika znajduje się moduł wykonawczy 230V.
    Odpowiednie moduły posiadają niezbędne komponenty wymagane do prawidłowego działania. Połączenia pomiędzy odpowiednimi modułami odbywa się przy udziale przewodów przyłączeniowych. Każda płytka posiada złącze sygnałowe, które podłączane jest do modułu CPU, oraz złącze zasilające – w zależności od tego jaki napięcie jest wymagane na płytce, posiada ona jedno bądź dwa złącza zasilania (możliwość zasilenia napięciem o wartości 5VDC lub/i 12VDC).

    Moduł CPU

    Sercem całego sterownika jest moduł CPU wyposażony w mikrokontroler Atmega32. Układ taktowany jest zewnętrznym rezonatorem kwarcowym o częstotliwości 16MHz (na zdjęciu jest 4MHz ale został on zmieniony na 16MHz). Wszystkie piny są wyprowadzone na złączki o rastrze 2,54. Sterowanie wyjściami sterownika odbywa się poprzez cały port A. Wyświetlacz podpinany jest do pinów 2 do 7 portu C, natomiast sterowaniem podświetleniem odbywa się poprzez pin PD3. Stan wejść odczytywany jest na porcie D (piny od 4 do 7) natomiast stan przycisków na porcie B (piny od 1 do 4). Zostały również wyprowadzone piny do komunikacji poprzez UART. Interfejs 1-wire obsługiwany jest na pinie PB0.
    Na płytce znajduje się miejsce do wpięcia płytki pomocniczej z zegarem RTC
    Pozostałe nieużywane na chwilę obecną piny mikrokontrolera zostały również wyprowadzone na tzw. goldpiny.
    Poniżej przedstawiam schemat ideowy modułu, oraz zdjęcie złożonego modułu.

    ObrazekObrazek

    Płytka drukowana została wykonana metodą przewlekaną. Druk jest jednostronny.


    Moduł wejść


    Sygnałem sterującym jest stan wysoki (poziom napięcia zasilającego VCC) układu. Na zewnątrz obudowy została wyprowadzona złączka 6 pinowa o rastrze 2,54. Na pinie pierwszym występuje masa, a na pinie ostatnim (szóstym) napięcie VCC. Na pinach 2 do 5 podawany jest sygnał wejściowy (wejścia od 1 do 4). Stan danego wejścia podawany jest pośrednio do mikrokontrolera poprzez transoptor LTV847. Został on zastosowany w celu optoizolacji sygnału wejściowego od sygnału trafiającego bezpośrednio do mikrokontrolera.
    Poniżej przedstawiam schemat ideowy oraz zdjęcie złożonego układu.

    ObrazekObrazek

    Moduł wyjść

    Drugim najważniejszym modułem (nie biorąc pod uwagę modułu zasilającego) w sterowniku jest moduł wyjść. Dzięki niemu możliwe jest sterowanie różnymi odbiorami (grzałka, oświetlenie) według preferencji które zostały ustawione w sterowniku.
    Głównym i najważniejszym elementem tego układu jest transoptor (LTV847). Sygnał sterujący z mikrokontrolera podawany jest do transoptora. Stanowi on optoizolację układu wyjściowego.
    Maksymalny prąd, jaki może pobierać odbiornik, na jedno wyjście wynosi 50mA.
    Sygnały wyjściowe wyprowadzone są na złącze DB9.
    Poniżej umieszczam schemat ideowy oraz zdjęcie złożonego modułu.

    ObrazekObrazek

    Jak widać na powyższych zdjęciach ostatnie 6 wyjść można ręcznie wyłączyć – został zastosowany do tego celu DIP SWITCH. Dzięki temu możliwe jest całkowite odłączenie wyjść, aby zminimalizować pobierany prąd przez ten moduł.
    Zostanie (w niedalekiej przyszłości) dokonana zmiana modułu wyjść, polegająca na dodaniu tranzystorów, dzięki czemu wyjście układu sterującego będzie typu otwarty kolektor (bądź otwarty dren).

    Moduł wykonawczy 230V

    Moduł ten umożliwia sterowanie urządzeniami zasilającymi z sieci. Jedna płytka składa się z 3 wyjść. Sygnał ze sterownika podawany jest na układ optoizolacji wykonany z optotriaka, który z kolei steruje triakiem. Układ ten jest podłączany do sterownika poprzez złącze DB9.

    Obrazek

    Nie posiadam zdjęć jak wygląda w chwili obecnej ten moduł. Jak będę miał do niego dostęp i możliwość zrobienia zdjęcia to umieszczę je tutaj.

    Moduł zasilania

    Cały sterownik powinien zasilany być napięciem stałym 12V, natomiast wydajność prądowa zasilacza powinna wynosić minimum 1A.
    Układ sterowania zasilany jest napięciem 5V, natomiast stan wysoki wyjść układu wynosi około 12V.
    Konwersją napięcia zajmuje się popularny stabilizator liniowy LM7805. Na płytce moduły zasilającego znajdują się dwa gniazda bezpiecznikowe z wkładkami po 500mA. Gniazdo zasilające to popularne gniazdo DC 2,5. Polaryzacja styków we wtyczce w tym przypadku nie ma dużego znaczenia, dlatego że został zastosowany mostek greatza (brak konieczność uważania na polaryzacją kosztem obniżenia napięcia zasilającego o około 1,4V).

    Obrazek

    Zegar RTC

    Za prawidłowe odmierzanie czasu odpowiedzialny jest układ PCF8563P. W przypadku zaniku napięcia zasilającego podtrzymaniem zasilania zajmuje się kondensator GOLD CAP o pojemności 0,47F.

    ObrazekObrazek

    Opis bibliotek do układu PCF8563P znajduje się na forum.

    :arrow: Algorytmy działania:

    Przedstawiam wam algorytmy działania poszczególnych fragmentów kodu. Powinny on Wam trochę nakreślić sposób oraz zasadę działania programu.

    Algorytm główny sterownika:

    Obrazek

    Program pętli głównej jest bardzo krótki i wygląda następująco:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak można zauważyć, większość programu oparta jest na zdarzeniach. Przed pętlą główną odbywa się natomiast rejestracja obsługi odpowiedniego zdarzenia.

    Sterownik akwarystyczny umożliwia reagowanie na następujące parametry:
    1. Zmianę stanu wejścia;
    2. Zakres temperatury (ustawiana histereza);
    3. Załączenie oraz wyłączenie o określonej godzinie;
    4. Załączenie oraz wyłączenie o określonych czasach - dwa razy na dobę.


    Obsługa reakcji wykonywana jest co około 3 sekundy – zmiana jakiegoś parametru zostanie dopiero uwzględniona po upływie tego czasu.

    Algorytm główny obsługi reakcji:
    Obrazek

    Algorytm reakcji na ustawiony czas:
    Obrazek

    Algorytm reakcji na zadaną temperaturę:
    Obrazek

    Fragmenty algorytmu które zostało oznaczone tym samym kolorem są takie same, tzn. w programie jest to funkcja które jest wywoływana. Jeżeli występują drobne różnice, to funkcja taka posiada dodatkowy parametr wejściowy który powoduje odpowiednią zmianę wykonywanego programu.

    W przypadku reakcji gdzie możliwe jest ustawienie załączenie i wyłączenie wyjścia dwa razy na dobę, algorytm działania jest ten sam co dla pojedynczego czasu. W przypadku gdy ustawione czasy się zazębiają, wyjście ustawiane jest dla czasu pierwszego.

    :arrow: Obsługa sterownika:

    Sterownik na panelu przednim posiada wyświetlacz LCD oraz 4 przyciski (ok/menu,
    wyjście/anuluj, góra, dół). Wejście do menu, przejście do następnej pozycji (podczas
    konfiguracji parametrów) oraz potwierdzenie wybrania odpowiedniej opcji dokonuje się przy użyciu przycisku ok/menu, natomiast wyjście oraz anulowanie danej czynności poprzez przycisk wyjście/anuluj. Poruszanie się po menu, oraz ustawianie parametrów dokonuje się za pomocą przycisków góra i dół.
    Obrazek

    Wyjścia podłączane są do złącza DB9. Maksymalne obciążenie wyjścia wynosi 50mA – zwiększenie obciążalności wyjścia dokonuje się poprzez dodatkowe moduły wykonawcze (np. moduł wykonawczy 230V). Możliwe jest podłączenie dwóch czujników temperatury DS18B20 – w tym celu na tylnim panelu wyprowadzone są dwa złącza 3 pinowe o rastrze 2,54. Na złączu 6 pinowym o rastrze 2,54 wyprowadzone są styki z których odczytywany jest stan wejściowy przez sterownik.

    Obrazek

    Ekranem początkowym jest ekran przedstawiający aktualny czas, odczytane temperatury oraz stan danego wyjścia. W miejscu prezentującym stan wyjść co określony czas pojawia się numer aktywnego wyjścia wraz z jego opisem.

    Ekran początkowy:
    Obrazek
    Prezentacja opisu aktywnego wyjścia
    Obrazek

    Podczas wyświetlania ekranu głównego, aby przejść do menu sterownika należy wcisnąć przycisk ok/menu.

    Struktura menu:
    Obrazek

    Konfigurację sterownika można również dokonać poprzez komputer PC łącząc sterownik przy pomocy przejściówki UART – RS232 (np. poprzez układ ft232). Komunikacja ze sterownikiem odbywa się po wcześniejszym wyborze polecenie Połącz z PC z menu sterownika (naciśnięcie dowolnego przycisku, bądź reset układu spowoduje przerwanie połączenia z komputerem PC). Ustawianie parametrów, oraz odczyt danych wykonuje się w terminalu (np. PuTTY) przy wykorzystaniu komend AT.

    ObrazekObrazekObrazek

    Uffff w końcu podsumowanie :D

    :arrow: Podsumowanie:

    Układ w chwili obecnej działa już jakiś okres czasu. Jak w każdym układzie pojawiły się i nadal czasem pojawiają się błędy, ale na bieżąco są one usuwane. Mogę powiedzieć, że założenia zostały całkowicie spełnione.
    Już mam w głowie pomysł na drugą wersję sterownika. W następnej wersji mam zamiar podzielić wyjścia na kilka grup, które będą podporządkowane odpowiednim funkcją (np. grupa uniwersalnego sterowania – gniazda 230V, sterowanie oświetleniem LED, itp.). Będzie możliwość również podpięcia innych czujników (wilgotności, PH), oraz zostanie użyty inny wyświetlacz – zastanawiam się nad wyświetlaczem LCD 4x20 albo TFT z dotykowym ekranem.

    Jest to mój pierwszy duży projekt wykonany od początku do końca – nie licząc projektów kilku układów, na których się uczyłem. Wykonanie go zajęło mi około 3 miesięcy, po kilka godzin na dzień – oczywiście pierwsza wersja.

    Nie umieszczę na chwilę obecną programu ani plików z EAGLE. Jak ‘wypieszczę’ układ, oraz program postaram się uzupełnić wątek o te pliki.

    I jeszcze zdjęcie jak to wszytko wygląda w środku:
    Obrazek


    P.S.
    Dzięki Mirku za książki, moduły, oraz zaangażowanie.

    _________________
    Niewiele trzeba by być szczęślwym.Wystarczy chcieć



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2015, o 17:38 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27421
    Lokalizacja: Szczecin
    Pomógł: 1043

    ŁAŁ! że tak powiem .... jakże miło ogląda się takie projekty w DIY .... mniaaam ... schludnie wykonana obudowa, opisy, fajne sterowanie przez Putty ... nie no na prawdę jest na czym oko zawiesić. Gratulacje.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2015, o 19:27 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2014
    Posty: 1085
    Pomógł: 73

    Ale super projekt :) Kolego a ten panel przedni to wydruk kolorową drukarką na zwykłym papierze czy jakieś PCV? :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2015, o 19:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 30 sty 2013
    Posty: 169
    Lokalizacja: Silesia - P-ce
    Pomógł: 10

    Wydrukowany na zwykłym papierze drukarką atramentową. Następnie użyłem laminarki - przydaje się nie tylko do termotransferu, czy wulkanizacji folii polimerowej.

    _________________
    Niewiele trzeba by być szczęślwym.Wystarczy chcieć



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2015, o 22:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 mar 2013
    Posty: 333
    Pomógł: 10

    Kawał porządnej roboty, płytki, panel i wszystko zapakowane w zgrabną obudowe. Swietnie Ci wyszły płytki PCB, ja sie z tym mecze teraz ehh. Gratulacje :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2015, o 10:07 

    Pomógł: 0

    Świetny projekt.

    Jedna maleńka uwaga, sterujesz wyłącznie obciążeniami bezindukcyjnymi ? żarówka?.

    Bo nie zauważyłem snubberów (gasików) na Triakach.

    Po za tym bezpiecznik na LM7805 powinien być przed stabilizatorem, bo one idą na zwarcie w przypadku uszkodzenia.



    Góra
      
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2015, o 19:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 30 sty 2013
    Posty: 169
    Lokalizacja: Silesia - P-ce
    Pomógł: 10

    Dzięki za dobre słowa;)

    rezasurmar napisał(a):
    Bo nie zauważyłem snubberów (gasików) na Triakach.


    Zapomniałem o umieszczeniu ich. W pierwszej wersji na płytce było miejsce przewidziane na gasiki, a w tej już całkowicie o tym zapomniałem. Przy okazji je tam zamontuję.
    Steruję grzałką, oraz świetlówkami.
    Dzięki za zwrócenie uwagi.

    rezasurmar napisał(a):
    Po za tym bezpiecznik na LM7805 powinien być przed stabilizatorem, bo one idą na zwarcie w przypadku uszkodzenia.


    Pomocna uwaga. W następnych wykonaniu modułu tak zrobię.

    Atmegowiec napisał(a):
    Swietnie Ci wyszły płytki PCB, ja sie z tym mecze teraz ehh. Gratulacje :)


    Dobrze mi wyszło, bo drukowałem na dobrej drukarce z oryginalnym tuszem (nie u mnie, ja mam atramentową - niestety). W chwili obecnej tuszu oryginalnego nie ma, tylko zamiennik i płytki tragicznie mi wychodzą (toner dobrze nie kryje i są podtrawienia).
    Właśnie przechodzę na metodę fotochemiczną, przy wykorzystaniu folii światłoczułej (fotopolimeru). Już jestem po kilku udanych próbach (po dobraniu odpowiedniego czasu naświetlania oraz sposobie wulkanizacji folii) przy wydruku z drukarki laserowej powiem, że fajna i szybka metoda to jest (i powtarzalna). Teraz właśnie próbuję z atramentowym wydrukiem na kalce i powoli mi wychodzą płytki, ale nie za każdym razem.
    Jak już ją opanuję to umieszczę mały poradnik (może za bardzo powiedziane) dotyczący fotochemii z folią fotopolimerową, bo widziałem na forum, że dużo osób miało z nią problem.

    _________________
    Niewiele trzeba by być szczęślwym.Wystarczy chcieć



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 kwi 2015, o 00:41 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 maja 2013
    Posty: 288
    Ostrzeżenia: -2
    Pomógł: 23

    Fajny projekt i ładnie udokumentowany od założeń po wykonanie:)
    Gratulacje!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO