W tym artykule Kreator powie nam, jak stworzyć system monitorowania i kontroli poziomu wody w zbiorniku. Jest to prosty i niezawodny system.
Jego kluczowe cechy to:
Monitorowanie poziomu wody w czasie rzeczywistym.
Automatyczna pompa wł. / Wył.
Awaryjne wyłączenie pompy.
Narzędzia i materiały:
-Arduino Pro mini
-Ultradźwiękowy czujnik HC-SR04;
- Moduł MAX485;
- moduł LCD i2c;
LCD 1602;
- Mikrokontroler ATTINY45 / 85;
- Regulator napięcia LM7805;
Tranzystor NPN (2n3904);
-N-kanałowy MOSFET IRFD024PBF;
Dioda 1N4007;
Złącze 5-stykowe;
4-stykowe złącze
Złącze 2-stykowe;
- Zaciski z 2 stykami (niebieskie) - 2 szt .;
- Terminal z 2 stykami (zielony);
Gniazdo DC (- 2 szt.)
-Audio jack (męski / żeński) - 2 szt .;
- Rezystor 1 kOhm;
- Rezystor 10 kOhm - 3 szt .;
- Kondensator 100 nF - 3 szt .;
Kondensator 100 uF;
- przycisk SMD, 6x3,5 mm;
Przełączniki DIP (SPST 2) - 2 szt .;
- przycisk zasilania;
-Tumbler;
Przekaźnik -12 V DC;
-Rayay stycznik;
- Zasilacz prądu stałego 5 V (> 200 mA);
- zasilanie DC 12V (> 500 mA);
-Boksy w przypadku odpowiedniego rozmiaru;
- łączniki;
- Akcesoria do lutowania;
- śrubokręt;
-Wire;
Krok pierwszy: Jednostka czujnika
To urządzenie mierzy poziom wody i wysyła dane do głównego sterownika. Posiada dwa czujniki do pomiaru poziomu wody. Jednym z nich jest ultradźwiękowy czujnik odległości HC-SR04, a pozostałe dwie długie śruby wystają na zewnątrz, jak pokazano na zdjęciu.
Aby zainstalować czujniki, wykonaj następujące czynności:
Umieść przetwornik ultradźwiękowy do góry nogami z przodu pokrywy u góry i zaznacz dwa otwory na nadajnik i odbiornik ultradźwiękowy.
Wytnij otwory i przymocuj czujnik na miejscu za pomocą gorącego kleju.
Następnie wywierć dwa otwory o średnicy 3 mm z odstępem 2-3 cm na środku pokrywy.
Włóż długie śruby M3 z zaciskiem drutu zaciśniętym między dwiema podkładkami z tyłu pokrywy i dokręć nakrętki M3 po drugiej stronie.
Jednostka czujnikowa wykorzystuje ATTINY45 jako główny mikrokontroler. Jak wspomniano wcześniej, HC-SR04 służy do pomiaru poziomu wody. Działa poprzez pomiar odległości od szczytu zbiornika.
Kontrola odbywa się również za pomocą dwóch śrub w obwodzie, w którym zainstalowany jest tranzystor. Mikrokontroler odczytuje dane z obu tych czujników i wysyła dane do Arduino zainstalowanego w jednostce kontrolnej.
Najpierw mistrz chciał wysłać dane przez moduły RF HC-12. Ale zakres tych modułów nie spełnia wymagań.Kreator użył konwertera MAX485 TTL na RS485 i wykonał mały pion, aby zainstalować zamiast modułów HC-12.
Schemat i link do tablicy można pobrać pod tym adresem.
Instalacja przebiega następująco:
HC-SR04 do obwodu głównego:
Vcc - 5 V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
Śruby M3 do obwodu głównego:
Śruba 1–5 V (CN1).
Śruba 2 - 100 (CN1).
Moduł MAX485 (TX):
VCC - 5 V (złącze HC-12)
A - Gniazdo audio 1/4 cala.
B - Gniazdo audio 1/4 cala.
GND - GND (złącze HC-12)
R0 - RX (złącze HC-12)
RE - VCC (MAX485) lub 5 V.
DE - RE (w skrócie RE i DE).
DI - TX (złącze HC-12).
Gniazdo DC (złącze P1):
Wskazówka - 5 V.
Rękaw - GND
Krok drugi: kontroler
Obsługa kontrolera jest prosta. Arduino służy jako główny kontroler. Odbiera dane czujnika wysyłane z płytki przetwornika przez moduł max485. Posiada wyświetlacz LCD 1602, który wyświetla aktualny poziom wody i działanie pompy. Wykorzystuje przekaźnik 12 V jako przełącznik do włączenia stycznika przekaźnika. Ma dwa przełączniki, jeden do podświetlania wyświetlacza LCD i jeden do awaryjnego włączania / wyłączania pompy.
Znajduje się łącze do schematu obwodu i projektu płytki drukowanej dla nadajnika i odbiornika tutaj.
Moduł LCD i2c jest przylutowany bezpośrednio do wyświetlacza LCD 1602. Zworka podświetlenia w module i2c jest podłączona do przełącznika przełączania w celu włączenia / wyłączenia. Przycisk awaryjny (duży) jest podłączony do obwodu głównego poprzez złącze P4.
Moduł LCD I2c do obwodu głównego (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5 V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Połączenia stycznika przekaźnika:
A1 - 230 VAC1 (zero).
A2 - NO (styk przekaźnika).
S1 - 230 VAC1 (zero).
S2 - 230 VAC2 (faza)
L1 - Przewód silnika pompy 1
L2 - Przewód silnika pompy 2.
Podłączyć styk przekaźnika COM do 230 VAC2 (linia).
Krok trzeci: Oprogramowanie i programowanie
Teraz musisz zaprogramować kontrolery na obu urządzeniach.
Aby pobrać kod do ATTINY45, pobiera bibliotekę SoftwareSerial.h.
W funkcji Loop
> Najpierw sprawdź, czy zbiornik jest pełny czy nie.
> Jeśli jest pełny, wysyła „255”.
> Jeśli nie jest pełny, sprawdza poziom wody za pomocą ultradźwiękowego czujnika dźwięku i przesyła dane za pośrednictwem komunikacji szeregowej.
Ten program używa podfunkcji getwtrLvl (), aby uzyskać bieżący poziom wody. Najpierw mierzy czas, w którym czujnik przesyła i odbiera fale ultradźwiękowe. Następnie czas przeliczany jest na odległość za pomocą prędkości dźwięku.
dist = pulseIn (echoPin, HIGH); // czas spędzony przez falę dźwiękową.
dist = dist / 28/2; // przetłumacz czas na odległość w cm
dist = dist * 1,25; // tutaj 1,25 jest współczynnikiem korygującym do pokonania błędu pomiaru
return dist; // zwraca odległość do funkcji wywołującej
Teraz Arduino.
W funkcji Loop:
> Najpierw sprawdza się, czy przycisk awaryjny jest wciśnięty, czy nie.
> Kontrola czujnika. Część programu sprawdza błąd czujnika. tzn. jeśli odebrane dane są nieważne (<= 1) 5 razy, wówczas na wyświetlaczu pojawia się błąd czujnika i pompa wyłącza się.
> Następna część wyświetla aktualny poziom wody i wydaje polecenie dla pompy 1, jeśli poziom wody jest niski, lub 0, jeśli jest on w 100% (pełny).
Ten program wykorzystuje dwie podfunkcje updtMotor () i getWaterLvl (). Funkcja updtMotor () pokazuje działanie pompy na wyświetlaczu LCD, a także wysyła sygnał do przekaźnika.
Funkcja getWaterLvl najpierw sprawdza, czy występuje błąd połączenia. Jeśli połączenie między nadajnikiem a odbiornikiem nie zostanie ustanowione w czasie oczekiwania (3000 ms). Pokazuje błąd czujnika i wyłącza pompę.
Po przywróceniu połączenia działanie zostanie wznowione.
Wszystko jest gotowe, dzięki mistrzowi za ciekawe domowej roboty.