I denne artikel fortæller guiden os, hvordan man opretter et system til overvågning og kontrol af vandstanden i en tank. Det er et enkelt og pålideligt system.
Dets vigtigste funktioner er som følger:
Vandtidsovervågning i realtid.
Automatisk tænd / sluk-pumpe.
Nødstop af pumpen.
Værktøjer og materialer:
-Arduino Pro mini
-Ultrasonic sensor HC-SR04;
- Modul MAX485;
- LCD-modul i2c;
LCD 1602;
- Microcontroller ATTINY45 / 85;
- Spændingsregulator LM7805;
NPN-transistor (2n3904);
-N-kanal MOSFET IRFD024PBF;
Diode 1N4007;
5-polet stik;
4-polet stik
-2-stik stik;
- Klemmer med 2 kontakter (blå) - 2 stk;
- Terminal med 2 kontakter (grøn);
DC-stik (- 2 stk.)
-Audio jack (han / hun) - 2 stk;
- Modstand 1 kOhm;
- Modstand 10 kOhm - 3 stk;
- Kondensator 100 nF - 3 stk;
Kondensator 100 uF;
- SMD-knap, 6x3,5 mm;
-DIP-afbrydere (SPST 2) - 2 stk;
- tænd / sluk-knap;
-Tumbler;
-12V DC-relæ;
-Forsinkontaktor;
- DC strømforsyning 5 V (> 200 mA);
- DC 12V strømforsyning (> 500 mA);
-Boxer i tilfælde af en passende størrelse;
-Krepezh;
-Lodning tilbehør;
- skruetrækker;
seeing-;
Trin 1: Sensorenhed
Denne enhed måler vandstanden og sender data til hovedkontrollen. Den har to sensorer til måling af vandstanden. Den ene er HC-SR04 ultralydsafstandsføler, den anden er to lange skruer, der stikker udad, som vist på billedet.
For at installere sensorer skal du udføre følgende trin:
Placer ultralyds-transduceren på hovedet på forsiden af dækslet nær toppen, og marker de to huller til ultralydssender og modtager.
Skær huller, og fastgør sensoren på plads med varm lim.
Bor derefter to huller med en diameter på 3 mm med et mellemrum på 2-3 cm i midten af dækslet.
Indsæt de lange M3-bolte med trådklemmen fastgjort mellem de to skiver på bagsiden af dækslet, og spænd M3-møtrikkerne på den anden side.
Sensorenheden bruger ATTINY45 som den primære mikrokontroller. Som nævnt tidligere bruges HC-SR04 til at måle vandstanden. Det fungerer ved at måle afstanden fra toppen af tanken.
Kontrol udføres også ved hjælp af to bolte i kredsløbet, som transistoren er installeret. Mikrokontrolleren læser data fra begge disse sensorer og sender data til Arduino installeret i styreenheden.
Først ønskede mesteren at sende data gennem HC-12 RF-modulerne. Men rækkevidden af disse moduler svarer ikke til kravene.Guiden brugte MAX485 TTL til RS485 konverter og lavede et lille stigerørskort til installation i stedet for HC-12 modulerne.
Skema og link til tavlen kan downloades på denne adresse.
Installation er som følger:
HC-SR04 til hovedkredsløb:
Vcc - 5V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
M3 bolte til hovedkredsløbet:
Bolt 1 - 5 V (CN1).
Bolt 2 - 100 (CN1).
MAX485 (TX) modul:
VCC - 5V (HC-12-stik)
A - 1/4-tommer lydstik.
B - 1/4-tommer lydstik.
GND - GND (HC-12-stik)
R0 - RX (HC-12-stik)
RE - VCC (MAX485) eller 5V.
DE - RE (forkortet RE og DE).
DI - TX (HC-12-stik).
DC-stik (P1-stik):
Tip - 5V
Ærme - GND
Trin to: Controller
Betjeningen af controlleren er enkel. Arduino bruges som hovedkontroller. Det modtager sensordata sendt fra transmitterkortet via max485-modulet. Det har et 1602 LCD-display, der viser den aktuelle vandstand og pumpedrift. Det bruger et 12 V-relæ som en switch til at tænde for relækontaktoren. Den har to kontakter, en til baggrundsbelysning af LCD og en til nødpumpe til / fra.
Et link til kredsløbsdiagrammet og designet af det trykte kredsløbskort til sender og modtager er placeret her.
I2c LCD-modulet loddes direkte til 1602 LCD. Baggrundslyset-jumperen på i2c-modulet er tilsluttet toggle-kontakten til tænd / sluk. Nødknap (stor) er tilsluttet hovedkredsløbet via stik P4.
I2c LCD-modul til hovedkredsløb (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Relækontaktorforbindelser:
A1 - 230 VAC1 (nul).
A2 - NEJ (relækontakt).
S1 - 230 VAC1 (nul).
S2 - 230 VAC2 (fase)
L1 - Pumpe motortråd 1
L2 - Pumpetråd 2.
Tilslut COM-relækontakten til 230 VAC2 (linje).
Trin tre: Software og programmering
Nu skal du programmere controllere på begge enheder.
Hvis du vil hente kode til ATTINY45, downloader den biblioteket SoftwareSerial.h.
I Loop-funktionen
> Kontroller først, om tanken er fuld eller ikke.
> Hvis den er fuld, sender den "255."
> Hvis den ikke er fuld, kontrollerer den vandstanden med en ultralyds lydsensor og transmitterer data via seriel kommunikation.
Dette program bruger getwtrLvl () subfunktionen til at få den aktuelle vandstand. Først måler den den tid det tager sensoren at transmittere og modtage ultralydsbølger. Derefter konverteres tiden til afstand ved hjælp af lydhastigheden.
dist = pulsIn (echoPin, HØJ); // tid brugt af lydbølgen.
dist = dist / 28/2; // oversæt tiden til afstand i cm
dist = dist * 1,25; // her 1.25 er korrektionsfaktoren for at overvinde målefejlen
returnere dist; // returnerer afstanden til opkaldsfunktionen
Nu til Arduino.
I Loop-funktionen:
> Først kontrolleres det, om der trykkes på nødknappen eller ej.
> Sensorkontrol. En del af programmet kontrollerer for en sensorfejl. dvs. hvis de modtagne data er ugyldige (<= 1) 5 gange, viser displayet sensorfejlen, og pumpen lukker ned.
> Den næste del viser den aktuelle vandstand og giver en kommando til pumpe 1, hvis vandstanden er lille, eller 0 hvis den er 100% (fuld).
Dette program bruger to subfunktioner updtMotor () og getWaterLvl (). Funktionen updtMotor () viser pumpens funktion på LCD'et og sender også et signal til relæet.
GetWaterLvl-funktionen kontrollerer først for at se, om der er nogen forbindelsesfejl. Hvis forbindelsen mellem senderen og modtageren ikke er etableret i løbet af ventetiden (3000 ms). Den viser en sensorfejl og slukker for pumpen.
Når forbindelsen gendannes, genoptages operationen.
Alt er klar, takket være mesteren for en interessant hjemmelavet.