Pozdrowienia dla wszystkich miłośników mikrokontrolera domowej roboty. Jeśli jesteś szczęśliwym posiadaczem akwarium domowego, być może ten artykuł Cię zainteresuje. W nim opiszę szczegółowo cały proces tworzenia prostego, ale bardzo przydatnego domowego - aquacontrollera, zaprojektowanego w celu ułatwienia życia właścicielowi małego podwodnego świata.
Jak wiadomo, każdy udany projekt rozpoczyna się od przygotowania specyfikacji technicznych. Oto podstawowe wymagania i funkcje, które chciałem uzyskać z aquacontrollera:
- niski koszt i dostępność komponentów;
- konfigurowalny czas na włączanie i wyłączanie światła w akwarium;
- tryb karmienia (filtr wyłącza się i uruchamia automatycznie po 15 minutach);
- włączenie harmonogramu karmienia;
- pomiar temperatury i wilgotności powietrza otoczenia (jako dodatek);
- wyświetlanie aktualnej daty, godziny i innych parametrów na wyświetlaczu LCD;
- ustawienia zarządzania i parametrów poprzez menu za pomocą 4 przycisków (góra, dół, ok, anuluj);
- konfigurowalny czas na włączanie i wyłączanie światła w akwarium;
- tryb karmienia (filtr wyłącza się i uruchamia automatycznie po 15 minutach);
- włączenie harmonogramu karmienia;
- pomiar temperatury i wilgotności powietrza otoczenia (jako dodatek);
- wyświetlanie aktualnej daty, godziny i innych parametrów na wyświetlaczu LCD;
- ustawienia zarządzania i parametrów poprzez menu za pomocą 4 przycisków (góra, dół, ok, anuluj);
W oparciu o powyższe narodził się obwód pokazany na rycinie 1.
Głównym elementem jest tablica Arduino Promininabyte w Chinach. Jak się później okazało, zainstalowano na nim kontroler ATMega168 zamiast ATMega328. To sprawiło, że majstrowałem przy optymalizacji programu, ponieważ okazał się nie do zniesienia dla tego kontrolera ze względu na połowę wielkości pamięci flash.
Do wyświetlania informacji wybrano dobrze znany 2-liniowy 16-znakowy wyświetlacz LCD. W projekcie jest on połączony z Arduino na 4-żyłowej magistrali danych.
Czujnik cyfrowy jest odpowiedzialny za pomiar temperatury i wilgotności. Dth11. Wystarczy na potrzeby domowe. W rzeczywistości nie ma określonego celu i jest dodawany wyłącznie jako uzupełnienie ogólnego obrazu.
Do sterowania lampą fluorescencyjną i filtrem użyłem dwóch kanałów symulatorów wykonanych na wiązce opto-symistora MOC3063 i symulator mocy BT137-600E. To pozwoliło nam pozbyć się obwodu przekaźników mechanicznych, z których z jakiegoś powodu nie odczuwam współczucia.
Przyciski zarządzania - zwykły zegar, bez ustalania.
Cóż, ponieważ wszystkie ustawienia są powiązane z określonym okresem czasu, urządzenie musi koniecznie zawierać zegar czasu rzeczywistego.W tym przypadku użyłem modułu Tinyrtc na bazie mikroukładu DS1703. Moduł jest kontrolowany przez protokół i2c i zawiera złącze do instalowania baterii, które pozwala zapisać datę i godzinę, kiedy zasilanie jest wyłączone. Źródło modułu zewnętrznego pokazano na zdjęciu nr 2
Zdjęcie nr 2 - moduł zegara czasu rzeczywistego
Tak więc wymagania są określone, schemat jest sporządzony - możesz przejść do etapu projektowania płytki drukowanej. Usługa online EasyEda z powodzeniem pomogła mi poradzić sobie z tym zadaniem. Aby nie zawracać sobie głowy wierceniem otworów, postanowiłem umieścić wszystkie tory i elementy przewodzące prąd w górnej warstwie. Po tym, jak nieco przekręciłem szczegóły w edytorze, otrzymałem projekt płytki drukowanej z tylko trzema zworkami. Wygląd planszy można zobaczyć na rysunku 3.
Rysunek 3 - Wygląd płytki obwodu aquacontrol
Ci, którzy chcą powtórzyć projekt, mogą pobrać plik PCB z tego linku:
Wyświetl plik online:
Wyświetl plik online:
Więc na jakie punkty należy zwrócić uwagę. Odporność R4 i R8 - bliźniak, cała reszta jest zrobiona SMD mieszkanie 1206. Przyciski zegara mają rozmiar 12x12. Płytka ma również chiński konwerter napięcia 220 V / 5 V., których wygląd pokazano na zdjęciu nr 4.
Zdjęcie nr 4 - przetwornica napięcia 220 V / 5 V.
Planuje się, że ekran LCD i moduł zegara czasu rzeczywistego zostaną zamontowane na stelażach pokładowych, których rolę z powodzeniem wykonałem przez cięcie plastikowych kołków.
Na tym są zdefiniowane wszystkie funkcje instalacji i pozostaje tylko przenieść płytkę z ekranu monitora do naszego świata fizycznego. Wybrano do tego dobrze znaną metodę. LUT, co sugeruje obecność drukarki laserowej i żelazka. Dla tych, którzy nie znają tej technologii przyszłości, proces tworzenia płytki drukowanej w mojej łazience zostanie opisany poniżej.
Na początek poszukaj magazynu z błyszczącymi stronami lub kartką papieru fotograficznego. Drukujemy wzór płytki na drukarce laserowej, nie zapominając o odwróceniu. Przygotowujemy kawałek powlekanego folią szkła-texalitu zgodnie z rozmiarem półfabrykatu i szlifujemy miedzianą powierzchnię drobnoziarnistym papierem ściernym do połysku. Powinno to być coś takiego (zdjęcie nr 5).
Następnie odwracamy wydruk na folię i nakładamy na płytkę drukowaną. Następnie prowadzimy papier gorącym żelazkiem przez około 3 minuty. Tutaj czas rozgrzewania może się różnić w zależności od temperatury żelaza i doświadczenia wykonawcy tego tajnego rytuału. Wygląda to mniej więcej tak (zdjęcie nr 6):
Po mocnym przyklejeniu papieru do płytki drukowanej wyłącz żelazko i poczekaj, aż płytka drukowana ostygnie. Teraz musisz ostrożnie usunąć warstwę papieru i jednocześnie nie uszkodzić lepkiego tonera. Aby sprawa się powiodła, papier należy zwilżyć i usunąć, obracając opuszkami palców. Proces ten jest wyraźniej pokazany na zdjęciu nr 7.
Czasami zdarza się, że w niektórych miejscach toner po prostu nie klei się. W takim przypadku obszary te można uzupełnić stałym znacznikiem. Zdjęcie nr 8 pokazuje tablicę po wyjęciu papieru. Należy pamiętać, że w lewej górnej części nie ma części rysunku, która zostanie następnie przywrócona powyższą metodą.
Kiedy wszystkie nieprzyjemne momenty zostaną wyeliminowane, możesz rozpocząć trawienie. W tym celu wykorzystałem roztwór chlorku żelazowego, jako jedną z najbardziej przystępnych i bezpiecznych opcji. Po wytrawieniu płyty dokładnie spłucz ją rozpuszczalnikiem, aby usunąć toner z torów. Następnie ponownie myjemy drobnym papierem ściernym, odtłuszczamy i puszkę. Wynik pokazano na zdjęciu nr 9.
Jeden z głównych etapów został zakończony. Kolejnym etapem jest instalacja i lutowanie elementów radiowych. To twórczy i czysto indywidualny proces. Jeśli masz jakieś pytania, jestem gotów odpowiedzieć na nie w komentarzach, ale teraz pokażę ci, co mam (zdjęcie 10):
Jak napisałem powyżej, wyświetlacz i moduł zegara są unoszone ponad płytę za pomocą plastikowych stojaków wykonanych z kołków do szybkiego montażu, a ich styki są lutowane do płyty cienkimi drutami.Czujnik temperatury i wilgotności jest wyświetlany osobno na górze urządzenia. Moim zdaniem przy takim układzie odczyty będą dokładniejsze. W przypadku kanałów oświetleniowych i filtra na dole płyty wyświetlane są dwa zewnętrzne gniazda. Również wysokość guzików była niewystarczająca, więc planuję zwiększyć je za pomocą plastikowych tulei. Po kilku manipulacjach urządzenie przybiera prawie ukończony wygląd, pokazany na zdjęciu nr 11.
Zanim zamkniesz obudowę, musisz zapisać oprogramowanie wewnętrzne Arduino ProMini. Aby to zrobić, umieściłem piny na płycie podłączone do styków Vcc, GND, Rx i TX. Aby zaprogramować Arduino ProMini najłatwiejszy w użyciu Programator USB, ale to nie było dostępne. Jego rolę z powodzeniem wykonała inna zarząd Arduino uno ze zdjętym kontrolerem. Nie będę wchodził w szczegóły tego procesu, ponieważ w Internecie jest wiele artykułów na ten temat. Dla jasności dam tylko zdjęcie nr 12.
Porozmawiajmy teraz o samym programie. Po włączeniu zasilania wyświetlany jest ekran główny. Wyświetla informacje o bieżącej dacie, godzinie, temperaturze i wilgotności. Ponadto, w zależności od aktualnego stanu systemu, wyświetlanych jest kilka znaków specjalnych, a mianowicie: światło jest włączone - ikona słońca; światło wyłączone - ikona księżyca; filtruj - ikona filtra; karmienie jest w toku - ikona ryby. Po kliknięciu OK użytkownik wchodzi do menu, w którym można skonfigurować parametry, takie jak:
- tryb sterowania oświetleniem. W tej sekcji możesz ręcznie włączać i wyłączać światło, wybierając odpowiednią pozycję menu, a także ustawić czas włączania i wyłączania zgodnie z harmonogramem.
- tryb kontroli filtra. Umożliwia ręczne włączanie i wyłączanie filtra, wybierz funkcję „karmienia” (karmienie) i ustaw harmonogram karmienia. W trybie karmienia filtr zatrzymuje się i przywraca automatycznie po 15 minutach.
- ustawienie bieżącej daty.
- ustawianie aktualnego czasu. Dane daty i godziny są zapisywane w module zegara, a po wyłączeniu zasilania nie są resetowane, jeśli jest w nim zainstalowany akumulator.
Aby lepiej zrozumieć, rysunek 13 pokazuje strukturę menu.
- tryb sterowania oświetleniem. W tej sekcji możesz ręcznie włączać i wyłączać światło, wybierając odpowiednią pozycję menu, a także ustawić czas włączania i wyłączania zgodnie z harmonogramem.
- tryb kontroli filtra. Umożliwia ręczne włączanie i wyłączanie filtra, wybierz funkcję „karmienia” (karmienie) i ustaw harmonogram karmienia. W trybie karmienia filtr zatrzymuje się i przywraca automatycznie po 15 minutach.
- ustawienie bieżącej daty.
- ustawianie aktualnego czasu. Dane daty i godziny są zapisywane w module zegara, a po wyłączeniu zasilania nie są resetowane, jeśli jest w nim zainstalowany akumulator.
Aby lepiej zrozumieć, rysunek 13 pokazuje strukturę menu.
Pobierz oprogramowanie wewnętrzne dla Arduino Pro Mini i wszystkie niezbędne biblioteki mogą być ten link
Po napisaniu programu do mikrokontrolera możesz zamknąć obudowę i przejść do testów w rzeczywistych warunkach. Minął tydzień pracy przed napisaniem tego artykułu. Aquakontroler działał idealnie bez żadnych awarii, ratując mnie przed ciągnięciem widelców, jeśli to konieczne, aby nakarmić rybę lub wyłączyć światła. Rezultat moich wysiłków pokazany jest na zdjęciu nr 16.