Ebben a cikkben a varázsló elmondja nekünk, hogyan lehet elkészíteni a tartály vízszintjének ellenőrzésére és ellenőrzésére szolgáló rendszert. Ez egy egyszerű és megbízható rendszer.
Főbb jellemzői a következők:
A valósidejű vízszint monitorozása.
Automatikus be / ki szivattyú.
A szivattyú vészkikapcsolása.
Szerszámok és anyagok:
-Arduino Pro mini
- HC-SR04 ultrahangérzékelő;
- MAX485 modul;
- LCD modul i2c;
LCD 1602;
- ATTINY45 / 85 mikrovezérlő;
- LM7805 feszültségszabályozó;
NPN tranzisztor (2n3904);
-N-csatornás MOSFET IRFD024PBF;
1N4007 dióda;
5-pólusú csatlakozó;
4-pólusú csatlakozó
-2 tűs csatlakozó;
- Csatlakozók 2 érintkezővel (kék) - 2 db;
- 2 érintkezős terminál (zöld);
DC Jack (- 2 db.)
-Audio jack (férfi / női) - 2 db;
- 1 kOhm ellenállás;
- Ellenállás 10 kOhm - 3 db;
- Kondenzátor 100 nF - 3 db;
Kondenzátor 100 uF;
- SMD gomb, 6x3,5 mm;
-DIP kapcsolók (SPST 2) - 2 db;
- bekapcsoló gomb;
-Tumbler;
-12 V DC relé;
-Relé kontaktor;
- DC tápegység 5 V (> 200 mA);
- 12 V DC tápegység (> 500 mA);
-Dobozok megfelelő méretű tokhoz;
-Krepezh;
- Forrasztási kiegészítők;
- csavarhúzó;
seeing-;
Első lépés: érzékelő egység
Ez az egység méri a vízszintet, és adatokat küld a fővezérlőnek. Két érzékelővel rendelkezik a vízszint mérésére. Az egyik a HC-SR04 ultrahangos távolságérzékelő, a másik két hosszú csavar kinyúlik, amint az a képen látható.
Az érzékelők telepítéséhez a következő lépéseket kell végrehajtania:
Helyezze az ultrahangos jeladót fejjel lefelé a fedél elejére a teteje közelében, és jelölje meg az ultrahangos adó és a vevő két nyílását.
Vágja le a lyukakat és rögzítse az érzékelőt a helyére forró ragasztóval.
Ezután fúrjon be két, 3 mm átmérőjű lyukat, a fedél közepén 2-3 cm résen.
Helyezze be a hosszú M3 csavarokat a huzalcsatlakozóval a fedél hátulján lévő két alátét közé szorítva, és húzza meg az M3 anyákat a másik oldalon.
Az érzékelő egység az ATTINY45-et használja elsődleges mikrokontrollerként. Mint korábban említettük, a HC-SR04-et használják a vízszint mérésére. Úgy működik, hogy megmérjük a távolságot a tartály tetejétől.
Ezenkívül a vezérlés két csavarral történik az áramkörben, amelybe a tranzisztor be van szerelve. A mikrokontroller beolvassa az adatok mindkét érzékelőjétől, és adatokat küld a vezérlőegységbe telepített Arduino-nak.
Először a mester adatokat akarta küldeni a HC-12 RF modulokon keresztül. De ezeknek a moduloknak a tartománya nem felel meg a követelményeknek.A varázsló a MAX485 TTL – RS485 átalakítót használta, és egy kis emelvényt készített a HC-12 modulok helyett.
A séma és a fórumra mutató link letölthető ezen a címen.
A telepítés a következő:
HC-SR04 a főáramhoz:
Vcc - 5 V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
M3 csavarok a főáramhoz:
Csavar 1 - 5 V (CN1).
2 - 100 csavar (CN1).
MAX485 (TX) modul:
VCC - 5 V (HC-12 csatlakozó)
A - 1/4 hüvelykes audio aljzat.
B - 1/4 hüvelykes audio aljzat.
GND - GND (HC-12 csatlakozó)
R0 - RX (HC-12 csatlakozó)
RE - VCC (MAX485) vagy 5 V.
DE - RE (rövidítve RE és DE).
DI - TX (HC-12 csatlakozó).
DC csatlakozó (P1 csatlakozó):
Tipp - 5 V
Hüvely - GND
Második lépés: Vezérlő
A vezérlő működése egyszerű. Arduino fő vezérlő. Érzékelő adatokat fogad az adóegységről a max485 modulon keresztül. 1602 LCD kijelzővel rendelkezik, amely megjeleníti az aktuális vízszintet és a szivattyú működését. Kapcsolóként 12 V-os relét használ a relé kontaktor bekapcsolásához. Két kapcsolóval rendelkezik, az egyik az LCD háttérvilágításához, a másik pedig a vészhelyzeti szivattyú be- és kikapcsolásához.
Megtalálható egy kapcsolat az adó és a vevő nyomtatott áramköri kapcsolási rajzához és a nyomtatott áramköri kivitelhez itt.
Az i2c LCD modul közvetlenül meg van forrasztva a 1602 LCD-hez. Az i2c modul háttérvilágítási jumperje a be- / kikapcsolás kapcsolójához csatlakozik. A (nagy) vészgombot a P4 csatlakozón keresztül a fő áramkörhöz csatlakoztatják.
I2c LCD modul a főáramhoz (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5 V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Relé kontaktor csatlakozások:
A1 - 230 VAC1 (nulla).
A2 - NEM (reléérintkező).
S1 - 230 VAC1 (nulla).
S2 - 230 VAC2 (fázis)
L1 - szivattyú motor huzal 1
L2 - szivattyúmotor huzal 2.
Csatlakoztassa a COM relé érintkezőjét 230 VAC2-hez (vonal).
Harmadik lépés: Szoftver és programozás
Most meg kell programoznia a vezérlőket mindkét eszközön.
Kód letöltéséhez az ATTINY45-hez tölti le a SoftwareSerial.h könyvtárat.
A hurok funkcióban
> Először ellenőrizze, hogy a tartály megtelt-e vagy sem.
> Ha megtelt, akkor "255" -et küld.
> Ha nem tele van, ellenőrzi a vízszintet egy ultrahangos érzékelővel, és soros kommunikáció útján továbbítja az adatokat.
Ez a program a getwtrLvl () alfunkciót használja az aktuális vízszint eléréséhez. Először azt méri, hogy az érzékelőnek mekkora idő szükséges az ultrahangos hullámok továbbításához és vételéhez. Ezután az időt a hangsebesség felhasználásával távolságra konvertálják.
dist = pulseIn (echoPin, HIGH); // a hanghullám által eltöltött idő.
dist = dist / 28/2; // fordítsa le az időt távolságba cm-ben
dist = dist * 1,25; // itt az 1.25 a korrekciós tényező a mérési hiba kiküszöbölésére
visszatér dist; // visszaadja a távolságot a hívó funkcióhoz
Most Arduino-nak.
A hurok funkcióban:
> Először ellenőrizni kell, hogy megnyomják-e a vészhívó gombot.
> Érzékelő ellenőrzése. A program egy része érzékelőhibát keres. vagyis ha a kapott adatok ötször érvénytelenek (<= 1), akkor a kijelzőn megjelenik az érzékelő hibája, és a szivattyú leáll.
> A következő rész megjeleníti az aktuális vízszintet, és parancsot ad az 1. szivattyú számára, ha a vízszint alacsony, vagy 0, ha ez 100% (teljes).
Ez a program két alfunkciót használ fel: updtMotor () és getWaterLvl (). Az updtMotor () funkció megmutatja a szivattyú működését az LCD-n, és jelet küld a relének.
A getWaterLvl funkció először ellenőrzi, hogy van-e kapcsolathiba. Ha az adó és a vevő közötti kapcsolat nem jön létre a várakozási idő alatt (3000 ms). Ez érzékelő hibát mutat, és kikapcsolja a szivattyút.
A kapcsolat helyreállítása után a működés folytatódik.
Minden készen áll, köszönet a mesternek az érdekesről házi.