Šajā rakstā vednis pateiks mums, kā izveidot sistēmu ūdens līmeņa uzraudzībai un kontrolei tvertnē. Tā ir vienkārša un uzticama sistēma.
Tās galvenās iezīmes ir šādas:
Ūdens līmeņa monitorings reālā laikā.
Automātisks ieslēgšanas / izslēgšanas sūknis.
Sūkņa ārkārtas izslēgšana.
Instrumenti un materiāli:
-Arduino Pro mini
-Ultraskaņas sensors HC-SR04;
- modulis MAX485;
- LCD modulis i2c;
LCD 1602;
- mikrokontrolieris ATTINY45 / 85;
- sprieguma regulators LM7805;
NPN tranzistors (2n3904);
-N-kanāla MOSFET IRFD024PBF;
Diode 1N4007;
5 kontaktu savienotājs;
4 kontaktu savienotājs
-2 kontaktu savienotājs;
- spailes ar 2 kontaktiem (zils) - 2 gab.;
- terminālis ar 2 kontaktiem (zaļš);
Līdzstrāvas ligzda (- 2 gab.)
-Audio domkrats (vīrietis / sieviete) - 2 gab.
- rezistors 1 kOhm;
- rezistors 10 kOhm - 3 gab.;
- kondensators 100 nF - 3 gab.;
Kondensators 100 uF;
- SMD poga, 6x3,5 mm;
-DIP slēdži (SPST 2) - 2 gab.;
- barošanas poga;
-Tumblers;
-12 V līdzstrāvas relejs;
-Releja kontaktors;
- līdzstrāvas barošana 5 V (> 200 mA);
- līdzstrāvas 12 V barošanas avots (> 500 mA);
-Kastes piemērota izmēra korpusam;
-Stiprinājumi;
-Līmēšanas piederumi;
- skrūvgriezis;
-Vads;
Pirmais solis: sensora vienība
Šī ierīce mēra ūdens līmeni un nosūta datus galvenajam kontrolierim. Tam ir divi sensori ūdens līmeņa mērīšanai. Viens no tiem ir HC-SR04 ultraskaņas attāluma sensors, pārējās divas garās skrūves, kas izvirzītas uz āru, kā parādīts fotoattēlā.
Lai instalētu sensorus, jums jāveic šādas darbības:
Novietojiet ultraskaņas devēju otrādi vāciņa priekšpusē netālu no augšas un atzīmējiet divus ultraskaņas raidītāja un uztvērēja caurumus.
Izgrieziet caurumus un piestipriniet sensoru vietā ar karstu līmi.
Tad vāka centrā urbjiet divus caurumus ar diametru 3 mm ar atstarpi 2-3 cm.
Ievietojiet garās M3 skrūves ar stieples spaili, kas saspiesta starp diviem paplāksnēm vāka aizmugurē, un pievelciet M3 uzgriežņus otrā pusē.
Sensora bloks ATTINY45 izmanto kā galveno mikrokontrolleri. Kā jau minēts iepriekš, ūdens līmeni mēra HC-SR04. Tas darbojas, izmērot attālumu no tvertnes augšdaļas.
Arī kontrole tiek veikta, izmantojot divas skrūves ķēdē, kuras tranzistors ir uzstādīts. Mikrokontrolieris nolasa datus no abiem šiem sensoriem un nosūta datus uz Arduino, kas uzstādīts kontroliera blokā.
Pirmkārt, kapteinis vēlējās nosūtīt datus caur HC-12 RF moduļiem. Bet šo moduļu klāsts neatbilst prasībām.Vednis izmantoja pārveidotāju MAX485 TTL uz RS485 un veica nelielu stāvvadu, lai instalētu HC-12 moduļu vietā.
Shēmu un saiti uz tāfeles var lejupielādēt šajā adresē.
Instalācija ir šāda:
HC-SR04 galvenajā ķēdē:
Vcc - 5V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
M3 skrūves pie galvenās ķēdes:
Skrūve 1 - 5 V (CN1).
Skrūve 2 - 100 (CN1).
MAX485 (TX) modulis:
RISK - 5 V (savienotājs HC-12)
A - 1/4 collu audio ligzda.
B - 1/4 collu audio ligzda.
GND - GND (savienotājs HC-12)
R0 - RX (savienotājs HC-12)
RE - VCC (MAX485) vai 5 V.
DE - RE (saīsināti RE un DE).
DI - TX (savienotājs HC-12).
Līdzstrāvas ligzda (P1 savienotājs):
Padoms - 5 V
Piedurkne - GND
Otrais solis: kontrolieris
Kontroliera darbība ir vienkārša. Arduino tiek izmantots kā galvenais kontrolieris. Tas saņem sensoru datus, kas nosūtīti no raidītāja plates caur max485 moduli. Tam ir 1602 LCD displejs, kas parāda pašreizējo ūdens līmeni un sūkņa darbību. Lai ieslēgtu releja kontaktoru, tas izmanto 12 V releju kā slēdzi. Tam ir divi slēdži, viens LCD fona apgaismojumam, otrs - avārijas sūkņa ieslēgšanai / izslēgšanai.
Atrodas saite uz raidītāja un uztvērēja iespiedshēmas shēmu un iespiedshēmas plates dizainu šeit.
I2c LCD modulis ir tieši pielodēts 1602 LCD. I2c moduļa fona apgaismojums ir savienots ar ieslēgšanas / izslēgšanas pārslēgšanas slēdzi. Avārijas poga (liela) ir savienota ar galveno ķēdi caur savienotāju P4.
I2c LCD modulis galvenajā ķēdē (CN4):
GND - CN4-1 (GND1).
RISK - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Releju kontaktoru savienojumi:
A1 - 230 VAC1 (nulle).
A2 - NĒ (releja kontakts).
S1 - 230 VAC1 (nulle).
S2 - 230 VAC2 (fāze)
L1 - sūkņa motora vads 1
L2 - sūkņa motora vads 2.
Pievienojiet COM releja kontaktu ar 230 VAC2 (līnija).
Trešais solis: programmatūra un programmēšana
Tagad jums ir jāprogrammē kontrolieri abās ierīcēs.
Lai lejupielādētu kodu uz ATTINY45, tas lejupielādē bibliotēku SoftwareSerial.h.
Funkcijā Loop
> Vispirms pārbaudiet, vai tvertne ir pilna vai nav.
> Ja tas ir pilns, tas nosūta "255."
> Ja tas nav pilns, tas pārbauda ūdens līmeni ar ultraskaņas skaņas sensoru un pārraida datus, izmantojot seriālo komunikāciju.
Šī programma izmanto getwtrLvl () apakšfunkciju, lai iegūtu pašreizējo ūdens līmeni. Pirmkārt, tas mēra laiku, kas nepieciešams sensoram, lai pārraidītu un uztvertu ultraskaņas viļņus. Tad laiks tiek pārveidots par attālumu, izmantojot skaņas ātrumu.
dist = pulseIn (echoPin, HIGH); // skaņas viļņa pavadītais laiks.
dist = dist / 28/2; // iztulkot laiku attālumā cm
dist = dist * 1,25; // šeit 1,25 ir korekcijas koeficients mērījumu kļūdas novēršanai
atgriezties dist; // atgriež attālumu līdz izsaukšanas funkcijai
Tagad par Arduino.
Funkcijā Loop:
> Vispirms tiek pārbaudīts, vai ir nospiesta avārijas poga.
> Sensora pārbaude. Daļa programmas pārbauda sensora kļūdu. t.i., ja saņemtie dati ir nederīgi (<= 1) 5 reizes, tad displejā tiek parādīta sensora kļūda un sūknis izslēdzas.
> Nākamā daļa parāda pašreizējo ūdens līmeni un dod komandu 1. sūknim, ja ūdens līmenis ir mazs, vai 0, ja tas ir 100% (pilns).
Šī programma izmanto divas apakšfunkcijas updtMotor () un getWaterLvl (). Funkcija updtMotor () LCD parāda sūkņa darbību, kā arī nosūta signālu uz releju.
Vispirms funkcija getWaterLvl pārbauda, vai nav savienojuma kļūdas. Ja savienojums starp raidītāju un uztvērēju netiek izveidots gaidīšanas laikā (3000 ms). Tas parāda sensora kļūdu un izslēdz sūkni.
Kad savienojums tiek atjaunots, darbība tiek atsākta.
Viss ir gatavs, paldies meistaram par interesantu mājās gatavots.