În acest articol, Expertul ne va spune cum să realizăm un sistem pentru monitorizarea și controlul nivelului apei într-un rezervor. Este un sistem simplu și de încredere.
Caracteristicile sale cheie sunt următoarele:
Monitorizarea nivelului apei în timp real.
Pompă de pornire / oprire automată.
Oprirea de urgență a pompei.
Instrumente și materiale:
-Arduino Pro mini
-Senzor urasonic HC-SR04;
- Modulul MAX485;
- Modul LCD i2c;
LCD 1602;
- Microcontroller ATTINY45 / 85;
- Regulator de tensiune LM7805;
Tranzistor NPN (2n3904);
-NOS canal MOSFET IRFD024PBF;
Dioda 1N4007;
5-pin conector;
Conector cu 4 pini
-2 pini conector;
- Terminale cu 2 contacte (albastru) - 2 buc;
- Terminal cu 2 contacte (verde);
Cric DC (- 2 buc.)
-Joc audio (barbat / femeie) - 2 buc;
- Rezistor 1 kOhm;
- Rezistor 10 kOhm - 3 buc;
- condensator 100 nF - 3 buc;
Capacitor 100 uF;
- buton SMD, 6x3.5mm;
-Interrupatoare DIP (SPST 2) - 2 buc;
- buton de alimentare;
-Tumbler;
Releu DC -12V;
-Conector containere;
- sursa de curent continuu 5 V (> 200 mA);
- Alimentare DC 12V (> 500 mA);
-Boxuri pentru cazul unei dimensiuni potrivite;
-Krepezh;
-Accesorii de vânzare;
- surubelnita;
seeing-;
Pasul întâi: Unitatea senzorilor
Această unitate măsoară nivelul apei și trimite date controlerului principal. Are doi senzori pentru măsurarea nivelului apei. Unul este senzorul de distanță cu ultrasunete HC-SR04, celelalte două șuruburi lungi care ies în exterior, așa cum se arată în fotografie.
Pentru a instala senzorii, trebuie să efectuați următorii pași:
Așezați traductorul cu ultrasunete cu fața în jos pe partea din față a capacului, lângă partea superioară și marcați cele două găuri pentru transmițătorul și receptorul cu ultrasunete.
Tăiați găurile și fixați senzorul în loc cu lipici fierbinte.
Apoi găuriți două găuri cu un diametru de 3 mm cu un decalaj de 2-3 cm în centrul capacului.
Introduceți șuruburile lungi M3 cu borna de sârmă fixată între cele două șaibă pe spatele capacului și strângeți piulițele M3 de cealaltă parte.
Unitatea de senzori utilizează ATTINY45 ca microcontroler primar. Așa cum am menționat anterior, HC-SR04 este utilizat pentru a măsura nivelul apei. Funcționează prin măsurarea distanței de la vârful rezervorului.
De asemenea, controlul se realizează folosind două șuruburi în circuit, pe care tranzistorul este instalat. Microcontrolerul citește datele de la ambii senzori și trimite date către Arduino instalat în unitatea de control.
În primul rând, masterul a dorit să trimită date prin modulele RF HC-12. Dar gama acestor module nu corespunde cerințelor.Expertul a folosit convertorul MAX485 TTL la RS485 și a făcut un mic riser pentru a instala în locul modulelor HC-12.
Schema și legătura la placă pot fi descărcate la această adresă.
Instalarea este următoarea:
HC-SR04 la circuitul principal:
Vcc - 5V (CN1).
trig - trigPin (CN1).
ecou - echoPin (CN1).
Gnd - GND (CN1).
Șuruburile M3 la circuitul principal:
Bolț 1 - 5 V (CN1).
Bolț 2 - 100 (CN1).
Modulul MAX485 (TX):
VCC - 5V (conector HC-12)
A - jack audio de 1/4 inci.
B - mufa audio 1/4 inci.
GND - GND (conector HC-12)
R0 - RX (conector HC-12)
RE - VCC (MAX485) sau 5V.
DE - RE (prescurtată ca RE și DE).
DI - TX (conector HC-12).
Jack DC (conector P1):
Sfat - 5V
Manșon - GND
Pasul doi: controler
Funcționarea regulatorului este simplă. Arduino este utilizat ca controler principal. Acesta primește datele senzorului trimise de la placa transmițător prin modulul max485. Are un afișaj LCD 1602 care afișează nivelul curent al apei și funcționarea pompei. Utilizează un releu de 12 V ca un comutator pentru a porni contactorul releului. Are două întrerupătoare, unul pentru iluminarea ecranului LCD și unul pentru pompa de urgență pornit / oprit.
Este localizată o legătură cu schema de circuit și designul plăcii de circuit tipărite pentru transmițător și receptor aici.
Modulul i2c LCD este lipit direct pe 1602 LCD. Jumperul de fundal al modulului i2c este conectat la comutatorul de comutare pentru pornire / oprire. Butonul de urgență (mare) este conectat la circuitul principal prin intermediul conectorului P4.
Modul LCD I2c la circuitul principal (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Conexiunile contactorului releului:
A1 - 230 VAC1 (zero).
A2 - NU (contact releu).
S1 - 230 VAC1 (zero).
S2 - 230 VAC2 (faza)
L1 - Firul motorului pompei 1
L2 - Sârmă motor 2 pompă.
Conectați contactul releului COM la 230 VAC2 (linie).
Pasul trei: Software și programare
Acum trebuie să programați controlerele pe ambele dispozitive.
Pentru a descărca codul în ATTINY45, descarcă biblioteca SoftwareSerial.h.
În funcția Buclă,
> Mai întâi verificați dacă rezervorul este plin sau nu.
> Dacă este plin, trimite "255."
> Dacă nu este plin, verifică nivelul apei cu un senzor cu ultrasunete și transmite date prin comunicare în serie.
Acest program folosește subfuncția getwtrLvl () pentru a obține nivelul actual de apă. În primul rând, măsoară timpul necesar senzorului pentru a transmite și primi unde ultrasonice. Apoi, timpul este convertit la distanță folosind viteza sunetului.
dist = puls In (echoPin, HIGH); // timpul petrecut de unda sonoră.
dist = dist / 28/2; // traduce timpul în distanță în cm
dist = dist * 1,25; // aici 1.25 este factorul de corecție pentru a depăși eroarea de măsurare
retur dist; // returnează distanța la funcția de apelare
Acum pentru Arduino.
În funcția Buclă:
> Mai întâi se verifică dacă butonul de urgență este apăsat sau nu.
> Verificare senzor. O parte din program verifică o eroare de senzor. adică, dacă datele primite sunt invalide (<= 1) de 5 ori, atunci afișajul arată eroarea senzorului și pompa se oprește.
> Următoarea parte afișează nivelul curent al apei și dă o comandă pentru pompa 1 dacă nivelul apei este mic sau 0 dacă este 100% (complet).
Acest program folosește două subfuncții updtMotor () și getWaterLvl (). Funcția updtMotor () arată funcționarea pompei pe ecranul LCD și trimite, de asemenea, un semnal către releu.
Funcția getWaterLvl verifică mai întâi dacă există vreo eroare de conectare. Dacă conexiunea dintre emițător și receptor nu este stabilită în timpul de așteptare (3000 ms). Prezintă o eroare a senzorului și oprește pompa.
Când conexiunea este restabilită, operația se reia.
Totul este gata, mulțumesc maestrului pentru un interesant home-made.