I denne artikkelen vil veiviseren fortelle oss hvordan vi lager et system for overvåking og kontroll av vannstanden i en tank. Det er et enkelt og pålitelig system.
De viktigste funksjonene er som følger:
Overvåkning av vannstand i sanntid.
Automatisk av / på-pumpe.
Nødstans av pumpen.
Verktøy og materialer:
-Arduino Pro mini
-Ultrasonic sensor HC-SR04;
- Modul MAX485;
- LCD-modul i2c;
LCD 1602;
- Mikrokontroller ATTINY45 / 85;
- Spenningsregulator LM7805;
NPN-transistor (2n3904);
-N-kanal MOSFET IRFD024PBF;
Diode 1N4007;
5-pinners kontakt;
4-pinners kontakt
-2-pinners kontakt;
- Terminaler med 2 kontakter (blå) - 2 stk;
- Terminal med 2 kontakter (grønn);
DC-jack (- 2 stk.)
-Audio jack (mann / kvinne) - 2 stk;
- Motstand 1 kOhm;
- Motstand 10 kOhm - 3 stk;
- Kondensator 100 nF - 3 stk;
Kondensator 100 uF;
- SMD-knapp, 6x3.5mm;
-DIP-brytere (SPST 2) - 2 stk;
- strømknapp;
-Tumbler;
-12V DC-relé;
-Ventil kontaktor;
- DC strømforsyning 5 V (> 200 mA);
- DC 12V strømforsyning (> 500 mA);
-Kasser for passende størrelse;
-Krepezh;
Lodding tilbehør;
- skrutrekker;
seeing-;
Trinn en: Sensorenhet
Denne enheten måler vannstanden og sender data til hovedkontrolleren. Den har to sensorer for måling av vannstand. Den ene er HC-SR04 ultralydavstandssensor, de to andre lange skruene stikker utover, som vist på bildet.
For å installere sensorene må du utføre følgende trinn:
Plasser ultrasonisk svinger opp ned på forsiden av dekselet nær toppen og merk de to hullene for ultralydsenderen og mottakeren.
Skjær hull og fest sensoren på plass med varmt lim.
Bor deretter to hull med en diameter på 3 mm med et gap på 2-3 cm i midten av dekselet.
Sett inn de lange M3-boltene med trådklemmen klemt mellom de to skivene på baksiden av dekselet, og stram M3-mutterne på den andre siden.
Sensorenheten bruker ATTINY45 som den primære mikrokontrolleren. Som nevnt tidligere brukes HC-SR04 til å måle vannstand. Det fungerer ved å måle avstanden fra toppen av tanken.
Kontroll utføres også med to bolter i kretsen, som transistoren er installert. Mikrokontrolleren leser data fra begge disse sensorene og sender data til Arduino installert i kontrollenheten.
Først ønsket mesteren å sende data gjennom HC-12 RF-modulene. Men utvalget av disse modulene samsvarer ikke med kravene.Veiviseren brukte MAX485 TTL til RS485-omformeren og laget en liten stigerør for å installere i stedet for HC-12-modulene.
Ordning og lenke til styret kan lastes ned på denne adressen.
Installasjonen er som følger:
HC-SR04 til hovedkrets:
Vcc - 5V (CN1).
trig - trigPin (CN1).
ekko - echoPin (CN1).
Gnd - GND (CN1).
M3 bolter til hovedkretsen:
Bolt 1 - 5 V (CN1).
Bolt 2 - 100 (CN1).
MAX485 (TX) modul:
VCC - 5V (HC-12-kontakt)
A - 1/4-tommers lyduttak.
B - 1/4-tommers lyduttak.
GND - GND (HC-12-kontakt)
R0 - RX (HC-12-kontakt)
RE - VCC (MAX485) eller 5V.
DE - RE (forkortet RE og DE).
DI - TX (HC-12-kontakt).
DC-kontakt (P1-kontakt):
Tips - 5V
Erme - GND
Trinn to: Kontroller
Betjeningen av kontrolleren er enkel. Arduino brukes som hovedkontroller. Den mottar sensordata sendt fra senderkortet gjennom max485-modulen. Den har et 1602 LCD-display som viser gjeldende vannstand og pumpedrift. Den bruker et 12 V-relé som en bryter for å slå på relékontaktoren. Den har to brytere, en for bakgrunnsbelysning av LCD og en for nødpumpe av / på.
En kobling til kretsdiagrammet og utformingen av det trykte kretskortet for sender og mottaker er lokalisert her.
I2c LCD-modulen er direkte loddet til 1602 LCD. Baklyset-genseren på i2c-modulen er koblet til bryterbryteren for av / på. Nødknappen (stor) er koblet til hovedkretsen via kontakten P4.
I2c LCD-modul til hovedkrets (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Relé Kontaktor-tilkoblinger:
A1 - 230 VAC1 (null).
A2 - NO (stafettkontakt).
S1 - 230 VAC1 (null).
S2 - 230 VAC2 (fase)
L1 - Pumpe motortråd 1
L2 - Pumpetråd 2.
Koble COM-relékontakten til 230 VAC2 (linje).
Trinn tre: Programvare og programmering
Nå må du programmere kontrollerne på begge enhetene.
For å laste ned kode til ATTINY45, laster den ned SoftwareSerial.h-biblioteket.
I Loop-funksjonen
> Kontroller først om tanken er full eller ikke.
> Hvis den er full, sender den "255."
> Hvis den ikke er full, sjekker den vannstanden med en ultrasonisk lydsensor og overfører data via seriell kommunikasjon.
Dette programmet bruker getwtrLvl () subfunksjonen for å få dagens vannstand. Først måler den tiden det tar sensoren å overføre og motta ultralydbølger. Deretter konverteres tiden til avstand ved hjelp av lydhastigheten.
dist = pulseIn (echoPin, HIGH); // tid brukt av lydbølgen.
dist = dist / 28/2; // oversette tiden til avstand i cm
dist = dist * 1,25; // her 1.25 er korreksjonsfaktoren for å overvinne målefeilen
returnere dist; // returnerer avstanden til anropsfunksjonen
Nå for Arduino.
I Loop-funksjonen:
> Først blir det sjekket om nødknappen er trykket eller ikke.
> Sensorsjekk. En del av programmet sjekker for en sensorfeil. dvs. hvis de mottatte dataene er ugyldige (<= 1) 5 ganger, viser displayet sensorfeilen og pumpen slås av.
> Neste del viser gjeldende vannstand og gir en kommando for pumpe 1 hvis vannstanden er liten, eller 0 hvis den er 100% (full).
Dette programmet bruker to underfunksjoner updtMotor () og getWaterLvl (). Funksjonen updtMotor () viser pumpens drift på LCD-skjermen, og sender også et signal til reléet.
GetWaterLvl-funksjonen sjekker først for å se om det er noen tilkoblingsfeil. Hvis forbindelsen mellom senderen og mottakeren ikke er opprettet i løpet av ventetiden (3000 ms). Den viser en sensorfeil og slår av pumpen.
Når forbindelsen gjenopprettes, fortsetter driften.
Alt er klart, takk til mesteren for en interessant hjemmelaget.