Sterownik akwariowy v1

Cele

Celem projektu jest budowa sterownika akwariowego, którego zadaniem będzie:

  • sterowanie oświetleniem – włączenie i wyłączenie o ustalonej porze,
  • kontrola temperatury wody w zbiorniku i jej prezentacja na wyświetlaczu LCD,
  • sterowanie grzałką celem utrzymania zadanej temperatury w zbiorniku,
  • niezależne włączanie i wyłączanie dwóch urządzeń co określony interwał czasu w cyklu dobowym.

1.  Projekt PCB

Urządzenie zostało zaprojektowane z zastosowaniem podzespołów montowanych metodą przewlekaną (THT). Płyta PCB jest z jedną warstwą ścieżek, jej rozmiar wynosi 111mm na 85mm.

Rys. Projekt PCB urządzenia wraz z rozmieszczeniem podzespołów.

Rys. Płyta główna sterownika akwariowego.

2. Podzespoły urządzenia

Głównym podzespołem jest mikrokontroler PIC18F4550, sterujący przekaźnikami i triakami uruchamiającymi zewnętrzne urządzenia. Jego zadaniem jest również odczyt bieżącej temperatury z czujnika DS18B20, odczyt czasu rzeczywistego z zegara DS1307 i prezentacja danych na wyświetlaczu LCD.

Tab. Wykaz podzespołów

Oznaczenie Wartość
R1, R2, R3 10k
R7, R5, R6 4,3k
R8 4,7k
R4, R9, R11 3,3k
R16, R19 470
R14, R15, R17, R18 360
R12, R13 100k
C3 220nF
C1, C2 22pF
C4 100nF
C5 100uF
C7, C8 470uF
U1 PIC18F4550 (mikrokontroler)
U2 DS1307 (zegar czasu rzeczywistego)
U3 CR2032 (bateria 3,3V)
U4 HCM1005 (brzęczyk 5V)
U5 DS18B20 (czujnik temperatury)
U9, U7 BTA16-6008 (triak)
U6, U8 MOC3061
U10 LM7805 (stabilizator napięcia 5V)
Q1, Q2, Q3 2N3904 (tranzystor)
D4 mostek prostowniczy
D14 1N4004 (dioda prostownicza)
K1, K2 HFKW 005-1ZW (przekaźnik 5V)
X1 20MHz (kwarc)
X2 32,768 kHz (kwarc)
J6, J7, J8, J9 listwa kołkowa
(montowany poza płytą) WC1602A0

2.1. Złącza

Rys. Płyta główna z podłączonymi urządzeniami zewnętrznymi

Tab. Oznaczenia złącz

Oznaczenie Funkcja
USB Port komunikacyjny z urządzeniem sterującym
I2C Szeregowa magistrala danych I2C
1W Magistrala 1Wire do podłączenia czujnika temperatury
ICSP Łącze programatora mikrokontrolera
LCD Gniazdo wyświetlacza LCD
Key Gniazdo klawiatury
R1 Wyjście pierwszego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
R2 Wyjście drugiego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
La Gniazdo oświetlenia
Gr Gniazdo grzałki
Zas Gniazdo zasilania  5V AC

2.2. Mikrokontroler

Czterdziestopinowy mikrokontroler PIC18F4550 o mocy obliczeniowej 12 MIPS został wyposażony przez producenta w sprzętowy port USB 2.0, UART oraz magistralę I2C oraz SPI. Pracuje w przedziale napięć od 2V do 5,5V. Oddaje do dyspozycji 32KB pamięci programu typu Flash i 2048 B pamięci RAM. Posiada 10 bitowy przetwornik analogowo cyfrowy, timer 8 bitowy i trzy timery 16 bitowe.

Rys. Wyprowadzenia PIC18F4550 (źródło: Nota Katalogowa).

2.3. Zegar czasu rzeczywistego

Układ scalony DS1307 jest zegarem czasu rzeczywistego. Mikrokontroler odczytuje aktualny czas z zegara za pośrednictwem magistrali I2C. W przypadku zaniku zewnętrznego zasilania, zegar automatycznie przełącza się na zasilanie awaryjne z baterii 3,2V.

Rys. Zegar czasu rzeczywistego DS1307.

2.4. Czujnik temperatury

Odczyt temperatury realizowany jest za pomocą czujnika DS18B20. Komunikacja między mikrokontrolerem a czujnikiem odbywa się po magistrali 1Wire, która umożliwia jednoczesne podłączenie wielu czujników. Jeden układ zainstalowany jest na płycie modułu, czujnik temperatury wody w zbiorniku należy podłączyć do złącza 1Wire (rozdział 2.1).

Rys. Wyprowadzenia układu DS18B20

2.5. Przekaźniki

Dwa przekaźniki typu HFKW 005-1ZW sterowane napięciem 5V przez tranzystory 2N3904 włączają zewnętrzne urządzenia sterowane napięciem stałym bądź zmiennym.

2.6. Triaki

Dwa triaki typu BTA16-6008 w obudowie TO-220 o maksymalnym obciążeniu prądem 16A i maksymalnym napięciu 600V (według noty katalogowej) są sterowane przez mikrokontroler za pośrednictwem optoizolatora MOC3063. Pełnią funkcję sterowania oświetleniem i uruchamiania grzałki.

Rys. Sterowanie triakiem przez optoizolator MOC3063 (źródło: Nota Katalogowa).

Triaki zostały wyposażone w chłodzenie radiatorami typu FK237 o rezystancji termalnej 21°C/W.

Rys. Radiator FK237 (źródło: Nota Katalogowa).

2.7. Wyświetlacz LCD

W urządzeniu zastosowano dwuliniowy wyświetlacz znakowy z wbudowanym podświetlaniem ekranu o oznaczeniu WC1602A0. Jest on podłączany do gniazda wyświetlacza na płycie PCB (rozdział 2.1).

Rys. Schemat podłączenia wyświetlacza LCD do portów mikrokontrolera

Tab. Wykaz połączeń wyświetlacza LCD

Wyprowadzenie wyświetlacza DB4 DB5 DB6 DB7 E RS RW GND Ucc Uo A K
Pin wyświetlacza 11 12 13 14 6 4 5 1 2 3 15 16
Pin gniazda wyświetlacza 6 7 8 9 5 3 4 2 1 2 10 2
Wyprowadzenie mikrokontrolera A3 A4 A5 E0 A2 A0 A1 GND 5V GND E1 GND

2.8. Klawiatura

Urządzenie zostało wyposażone w klawiaturę.

Tab. Funkcje przycisków

Lewy Środkowy Prawy
Funkcja w głównym menu Przesuń w dół Zatwierdź Przesuń w górę
Funkcja w wybranej funkcjonalności Minus Zatwierdź Plus

3. Obsługa urządzenia

3.1. Pierwsze uruchomienie urządzenia

W trakcie pierwszego uruchomienia urządzenia wymagana jest konfiguracja polegająca na wybraniu z menu opcji konfiguracyjnych i wpisaniu do nich wartości.

  • Podczas uruchomienia urządzenie wykrywa podłączone czujniki temperatury. Urządzenie współpracuje z dwoma czujnikami. Jeden z czujników zainstalowany jest w zbiorniku, tak by kontrolować temperaturę wody. Drugi czujnik znajduje się na płycie głównej urządzenia  i odczytuje  temperaturę otoczenia.
    Po pierwszym uruchomieniu urządzenia lub wymianie czujnika na nowy na wyświetlaczu LCD widnieje zapalona kontrolka “!” brak jest wyniku odczytu temperatur. Należy wskazać urządzeniu, który z czujników jest zewnętrznym poprzez wejście do “Menu” a następnie wybierając opcję “Czujniki”.
  • Po dokonaniu definicji czujników temperatury należy ustawić żądaną temperaturę utrzymywaną poprzez automatyczne włączenie i wyłączenie grzałki. By zdefiniować temperaturę należy wejść do “Menu” a następnie wybrać opcję “Temperatura”.
  • Należy podać aktualną godzinę i minuty, gdyż na podstawie zegara czasu rzeczywistego uruchamiane jest; oświetlenie, przekaźnik 1, przekaźnik 2.
  • Po dokonaniu powyższych ustawień możliwe jest definiowanie czasu włączenia oświetlenia i uruchomienia przekaźników.

3.2. Menu

Wejście do “Menu” urządzenia dokonywane jest po kliknięciu “lewego” lub “prawego” przycisku klawiatury (rozdział 2.8). Przejście do kolejnych funkcji menu

3.2.1. Opuść Menu

Wybranie opcji “Opuść Menu” powoduje wyświetlenie “Panela stanu urządzenia” (rozdział 3.3).

3.2.2. Temperatura

By ustawić temperaturę, która ma być utrzymywana przez urządzenie należy wejść do “Menu” (rozdział 3.2) i wybrać opcję “Temperatura”. Następnie kliknąć przycisk “Zatwierdź”. Ustawić temperaturę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie aktualnej nastawy dokonywane jest kliknięciem przycisku “środkowy”.

3.2.3. Włączenie oświetlenia

Automatyczne włączenie oświetlenia odbywa się o ustalonej godzinie i minucie. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Wl.oswietlenie”, kliknięciu przycisku “Zatwierdź” należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastaw godzin i minut dokonywane jest kliknięciem przycisku “środkowy”.

3.2.4. Wyłączenie oświetlenia

Automatyczne wyłączenie oświetlenia odbywa się o ustalonej godzinie i minucie. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Wyl.oswietlenie”, kliknięciu przycisku “Zatwierdź” należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy godzin a następnie minut dokonywane jest kliknięciem przycisku “środkowy”.

3.2.5. Przekaźnik 1

Automatyczne włączenie przekaźnika1 następuje z określonym interwałem czasowym podawanym w godzinach od chwili zapisania ustawienia. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Przekaznik 1” poprzez kliknięcie przycisku “Zatwierdź” należy ustawić wartość interwału  poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy dokonywane jest kliknięciem przycisku “środkowy”.

3.2.6. Przekaźnik 2

Automatyczne włączenie przekaźnika2 następuje z określonym interwałem czasowym podawanym w godzinach od chwili zapisania ustawienia. Po wejściu do “Menu” (rozdział 3.2) i wybraniu opcji “Przekaznik 2” poprzez kliknięcie przycisku “Zatwierdź” należy ustawić wartość interwału  poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy dokonywane jest kliknięciem przycisku “środkowy”.

3.2.7. Zegar

Ustawienie zegara czasu rzeczywistego następuje poprzez wejście do “Menu” (rozdział 3.2), wybranie opcji “Zegar” i kliknięcie przycisku “Zatwierdź”. Należy ustawić godzinę i minutę poprzez inkrementację lub dekrementację aktualnej wartości przyciskami “lewy”, “prawy”. Potwierdzenie nastawy godzin a następnie minut dokonywane jest kliknięciem przycisku “środkowy”.

3.2.8. Czujniki

Definiowanie czujnika zewnętrznego i wewnętrznego następuje po wejściu do “Menu” (rozdział 3.2), wybraniu opcji “Czujniki” i kliknięciu przycisku “Zatwierdź”. Poprzez kliknięcie przycisku “lewy” lub “prawy” odczyty z czujników są zamieniane, należy je ustawić w taki sposób by temperatura wskazywana przez czujnik zewnętrzny znajdowała się obok ikony fali, natomiast temperatura otoczenia obok ikony budynku.

3.2.9. Reset ustawień

Reset ustawień zeruje nastawy:

  • utrzymywanej temperatury,
  • czasu włączenia i wyłączenia oświetlenia,
  • interwał czasu włączenia przekaźników.

3.3  Panel stanu urządzenia

Panel stanu urządzenia zawiera podstawowe informacje o urządzeniach zewnętrznych, aktualny czas oraz wskazania temperatury wody i otoczenia.

Rys. Panel stanu urządzenia wyświetlony na ekranie LCD.

Tab. Znaczenie ikon – panel stanu urządzenia.

Ikona Znaczenie
Temperatura wody
Temperatura otoczenia
Włączone oświetlenie
Włączona grzałka
Włączony przekaźnik
Aktualny czas

4. Pliki

Pliki projektu.

Noty katalogowe.

  • PIC18F4550 – mikrokontroler.
  • DS1307 – zegar czasu rzeczywistego.
  • DS18B20 – czujnik temperatury.
  • MOC3063 – optoizolator sterujący triakiem.
  • BTA16-6008 – triak sterujący zewnętrznym urządzeniem.

5. Odnośniki