Tässä artikkelissa velho kertoo meille, kuinka luoda järjestelmä säiliön vedenpinnan seurantaa ja hallintaa varten. Se on yksinkertainen ja luotettava järjestelmä.
Sen pääpiirteet ovat seuraavat:
Reaaliaikainen vedenpinnan seuranta.
Automaattinen on / off-pumppu.
Pumpun hätäpysäytys.
Työkalut ja materiaalit:
-Työläs Pro mini
-Ultraääni-anturi HC-SR04;
- moduuli MAX485;
- LCD-moduuli i2c;
LCD 1602;
- mikrokontrolleri ATTINY45 / 85;
- Jännitesäädin LM7805;
NPN-transistori (2n3904);
-N-kanavainen MOSFET IRFD024PBF;
Diodi 1N4007;
5-nastainen liitin;
4-napainen liitin
-2-nastainen liitin;
- Liittimet, joissa 2 kosketinta (sininen) - 2 kpl;
- Liitin 2 koskettimella (vihreä);
DC-Jack (- 2 kpl.)
-Audio-liitin (uros / naaras) - 2 kpl;
- Vastus 1 kOhm;
- Vastus 10 kOhm - 3 kpl;
- Kondensaattori 100 nF - 3 kpl;
Kondensaattori 100 uF;
- SMD-painike, 6x3,5 mm;
-DIP-kytkimet (SPST 2) - 2 kpl;
- virtapainike;
-Tumbler;
-12 V DC-rele;
-Relekontaktori;
- tasavirtalähde 5 V (> 200 mA);
- 12 V DC: n virtalähde (> 500 mA);
-Boksit sopivan kokoista koteloa varten;
-Krepezh;
-Juotto tarvikkeet;
- ruuvimeisseli;
näkö-;
Vaihe yksi: Anturiyksikkö
Tämä yksikkö mittaa vedenpinnan ja lähettää tiedot pääohjaimelle. Siinä on kaksi anturia vedenpinnan mittaamiseksi. Yksi on HC-SR04-ultraäänietäisyysanturi, toinen on kaksi pitkää ruuvia, jotka työntyvät ulospäin, kuten kuvassa.
Anturien asentamiseksi sinun on suoritettava seuraavat vaiheet:
Aseta ultraäänianturi ylösalaisin kannen etuosaan lähellä yläosaa ja merkitse kaksi reikää ultraäänilähettimelle ja vastaanottimelle.
Leikkaa reiät ja kiinnitä anturi paikoilleen kuumalla liimalla.
Poraa sitten kaksi reikää, joiden halkaisija on 3 mm, ja kannen keskellä on 2-3 cm rako.
Asenna pitkät M3-pultit vaijeriliittimellä kiinni kannen takana olevien aluslevyjen väliin ja kiristä M3-mutterit toisella puolella.
Anturiyksikkö käyttää ATTINY45: tä ensisijaisena mikrokontrollerina. Kuten aikaisemmin mainittiin, HC-SR04: tä käytetään vedenpinnan mittaamiseen. Se toimii mittaamalla etäisyys säiliön yläosasta.
Ohjaus suoritetaan myös kahdella pultilla piirissä, johon transistori on asennettu. Mikrokontrolleri lukee tietoja molemmilta antureilta ja lähettää tiedot ohjausyksikköön asennetulle Arduinolle.
Ensin isäntä halusi lähettää tietoja HC-12 RF -moduulien kautta. Mutta näiden moduulien valikoima ei vastaa vaatimuksia.Ohjattu toiminto käytti MAX485 TTL – RS485 -muunninta ja teki pienen nousuputken asentaakseen HC-12-moduulien tilalle.
Kaavio ja linkki taululle voidaan ladata tässä osoitteessa.
Asennus on seuraava:
HC-SR04 pääpiiriin:
Vcc - 5 V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
M3-pultit pääpiiriin:
Pultti 1 - 5 V (CN1).
Pultti 2 - 100 (CN1).
MAX485 (TX) -moduuli:
VCC - 5V (HC-12-liitin)
A - 1/4-tuumainen ääniliitin.
B - 1/4-tuumainen ääniliitin.
GND - GND (HC-12-liitin)
R0 - RX (HC-12-liitin)
RE - VCC (MAX485) tai 5 V.
DE - RE (lyhennettynä RE ja DE).
DI - TX (HC-12-liitin).
DC-liitäntä (P1-liitin):
Vinkki - 5 V
Hiha - GND
Vaihe toinen: ohjain
Säätimen käyttö on yksinkertaista. Arduinoa käytetään pääohjaimena. Se vastaanottaa anturitiedot, jotka lähetetään lähetyskortilta max485-moduulin kautta. Siinä on 1602 LCD-näyttö, joka näyttää nykyisen vedenpinnan ja pumpun toiminnan. Se käyttää 12 V: n relettä kytkimenä relekontaktorin kytkemiseksi päälle. Siinä on kaksi kytkintä, yksi LCD-näytön taustavaloon ja toinen hätäpumppuun päälle / pois päältä.
Linkki lähettimen ja vastaanottimen piirikaavioon ja piirilevyn malliin löytyy täällä.
I2c LCD -moduuli juotetaan suoraan 1602 LCD-näytölle. I2c-moduulin taustavalohyppy on kytketty kytkentäkytkimeen päälle / pois päältä. Hätäpainike (iso) on kytketty pääpiiriin liittimen P4 kautta.
I2c LCD-moduuli pääpiiriin (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5 V).
SCL-CN4-3 (A5).
SDA - CN4-4 (A4).
Relekontaktoriliitännät:
A1 - 230 VAC1 (nolla).
A2 - EI (relekosketin).
S1 - 230 VAC1 (nolla).
S2 - 230 VAC2 (vaihe)
L1 - Pumpun moottorikaapeli 1
L2 - Pumpun moottorin johdin 2.
Kytke COM-relekosketin 230 VAC2: een (linja).
Vaihe kolme: Ohjelmisto ja ohjelmointi
Nyt sinun on ohjelmoitava ohjaimet molemmille laitteille.
Jos haluat ladata koodin ATTINY45-tiedostoon, se lataa SoftwareSerial.h-kirjaston.
Silmukka-toiminnossa
> Tarkista ensin, onko säiliö täynnä vai ei.
> Jos se on täynnä, se lähettää arvon "255."
> Jos se ei ole täynnä, se tarkistaa veden tason ultraääni-anturilla ja lähettää tietoja sarjaviestinnän kautta.
Tämä ohjelma käyttää getwtrLvl () -funktiota nykyisen vedenpinnan saamiseksi. Ensinnäkin se mittaa anturin ultraääniaaltojen lähettämiseen ja vastaanottamiseen kuluvan ajan. Sitten aika muunnetaan etäisyydeksi äänen nopeudella.
dist = pulseIn (echoPin, HIGH); // ääniaallon käyttämä aika.
dist = dist / 28/2; // käännä aika etäisyydeksi (cm)
dist = dist * 1,25; // tässä 1,25 on korjauskerroin mittausvirheen poistamiseksi
paluu dist; // palauttaa etäisyyden kutsutoimintoon
Nyt Arduinolle.
Silmukka-toiminnossa:
> Ensin tarkistetaan, painetaanko hätäpainiketta vai ei.
> Anturin tarkistus. Osa ohjelmasta tarkistaa anturivirheen. ts. jos vastaanotettu data on virheellinen (<= 1) 5 kertaa, näytössä näkyy anturivirhe ja pumppu sammuu.
> Seuraava osa näyttää nykyisen vedenpinnan ja antaa komennon pumpulle 1, jos vedenpinta on pieni, tai 0, jos se on 100% (täynnä).
Tämä ohjelma käyttää kahta alatoimintoa updtMotor () ja getWaterLvl (). UpdtMotor () -toiminto näyttää pumpun toiminnan nestekidenäytöllä ja lähettää myös signaalin releelle.
GetWaterLvl-toiminto tarkistaa ensin, onko yhteysvirheitä. Jos yhteyttä lähettimen ja vastaanottimen välillä ei ole muodostettu odotusajan (3000 ms) aikana. Se näyttää anturivirheen ja sammuttaa pumpun.
Kun yhteys on palautettu, toiminta jatkuu.
Kaikki on valmis, kiitos mestarille mielenkiintoisesta kotitekoinen.