In dit artikel vertelt de Wizard ons hoe we een systeem kunnen maken voor het bewaken en regelen van het waterniveau in een tank. Het is een simpel en betrouwbaar systeem.
De belangrijkste kenmerken zijn als volgt:
Real-time bewaking van het waterpeil.
Automatische aan / uit pomp.
Noodstop van de pomp.
Gereedschap en materialen:
-Arduino Pro mini
- Ultrasone sensor HC-SR04;
- Module MAX485;
- LCD-module i2c;
LCD 1602;
- Microcontroller ATTINY45 / 85;
- Spanningsregelaar LM7805;
NPN-transistor (2n3904);
-N-kanaals MOSFET IRFD024PBF;
Diode 1N4007;
5-pins connector;
4-pins connector
-2-pins connector;
- Terminals met 2 contacten (blauw) - 2 stuks;
- Terminal met 2 contacten (groen);
DC-aansluiting (- 2 stuks)
-Audio-aansluiting (mannelijk / vrouwelijk) - 2 stuks;
- Weerstand 1 kOhm;
- Weerstand 10 kOhm - 3 stuks;
- Condensator 100 nF - 3 stuks;
Condensator 100 uF;
- SMD-knop, 6x3,5 mm;
-DIP-schakelaars (SPST 2) - 2 stuks;
- aan / uit-knop;
-Tuimelaar;
-12V DC-relais;
-Relaisschakelaar;
- DC voeding 5 V (> 200 mA);
- DC 12V voeding (> 500 mA);
-Boxen voor het geval van een geschikte maat;
-Fasters;
-Soldeeraccessoires;
- schroevendraaier;
-Draad;
Stap één: Sensoreenheid
Dit apparaat meet het waterniveau en stuurt gegevens naar de hoofdcontroller. Het heeft twee sensoren voor het meten van het waterpeil. Een daarvan is de HC-SR04 ultrasone afstandssensor, de andere twee lange schroeven die naar buiten steken, zoals te zien is op de foto.
Om de sensoren te installeren, moet u de volgende stappen uitvoeren:
Plaats de ultrasone transducer ondersteboven op de voorkant van het deksel bij de bovenkant en markeer de twee gaten voor de ultrasone zender en ontvanger.
Snijd gaten en zet de sensor vast met hete lijm.
Boor vervolgens twee gaten met een diameter van 3 mm met een opening van 2-3 cm in het midden van het deksel.
Plaats de lange M3-bouten met de draadklem geklemd tussen de twee ringen aan de achterkant van de kap en draai de M3-moeren aan de andere kant vast.
De sensoreenheid gebruikt de ATTINY45 als de primaire microcontroller. Zoals eerder vermeld, wordt HC-SR04 gebruikt om het waterpeil te meten. Het werkt door de afstand vanaf de bovenkant van de tank te meten.
Ook wordt de besturing uitgevoerd met behulp van twee bouten in het circuit, waarop de transistor is geïnstalleerd. De microcontroller leest gegevens van beide sensoren en stuurt gegevens naar de Arduino die in de controllereenheid is geïnstalleerd.
Eerst wilde de master gegevens verzenden via de HC-12 RF-modules. Maar het bereik van deze modules komt niet overeen met de eisen.De wizard gebruikte de MAX485 TTL naar RS485-converter en maakte een kleine riser om te installeren in plaats van de HC-12-modules.
Regeling en link naar het bord kan worden gedownload op dit adres.
Installatie is als volgt:
HC-SR04 naar hoofdcircuit:
Vcc - 5V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
GND - GND (CN1).
M3-bouten naar het hoofdcircuit:
Bout 1-5 V (CN1).
Bout 2 - 100 (CN1).
MAX485 (TX) module:
VCC - 5V (HC-12-connector)
A - 1/4-inch audio-aansluiting.
B - 1/4-inch audio-aansluiting.
GND - GND (HC-12-connector)
R0 - RX (HC-12-connector)
RE - VCC (MAX485) of 5V.
DE - RE (afgekort als RE en DE).
DI - TX (HC-12-connector).
DC-aansluiting (P1-connector):
Tip - 5V
Mouw - GND
Stap twee: Controller
De bediening van de controller is eenvoudig. Arduino wordt gebruikt als hoofdcontroller. Het ontvangt sensorgegevens die vanaf de transmitterkaart worden verzonden via de max485-module. Het heeft een 1602 LCD-display dat het huidige waterniveau en de pompwerking weergeeft. Het gebruikt een 12 V-relais als schakelaar om de relaisschakelaar in te schakelen. Het heeft twee schakelaars, één voor achtergrondverlichting van het LCD-scherm en één voor noodpomp aan / uit.
Een link naar het schakelschema en ontwerp van de printplaat voor de zender en ontvanger bevindt zich hier.
De i2c LCD-module wordt direct op de 1602 LCD gesoldeerd. De jumper voor achtergrondverlichting op de i2c-module is verbonden met de tuimelschakelaar voor aan / uit. De noodknop (groot) is verbonden met het hoofdcircuit via connector P4.
I2c LCD-module naar hoofdcircuit (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Aansluitingen relaisrelais:
A1 - 230 VAC1 (nul).
A2 - NO (relaiscontact).
S1 - 230 VAC1 (nul).
S2 - 230 VAC2 (fase)
L1 - Pompmotordraad 1
L2 - Pompmotordraad 2.
Sluit het COM-relaiscontact aan op 230 VAC2 (lijn).
Stap drie: Software en programmeren
Nu moet u de controllers op beide apparaten programmeren.
Om code naar ATTINY45 te downloaden, downloadt het de SoftwareSerial.h-bibliotheek.
In de Loop-functie
> Controleer eerst of de tank vol is of niet.
> Als het vol is, wordt '255' verzonden.
> Als het niet vol is, controleert het het waterniveau met een ultrasone geluidssensor en verzendt het gegevens via seriële communicatie.
Dit programma gebruikt de subfunctie getwtrLvl () om het huidige waterniveau te krijgen. Ten eerste meet het de tijd die de sensor nodig heeft om ultrasone golven te verzenden en te ontvangen. Vervolgens wordt tijd omgezet in afstand met behulp van de geluidssnelheid.
dist = pulseIn (echoPin, HIGH); // tijd doorgebracht door de geluidsgolf.
dist = dist / 28/2; // vertaal tijd in afstand in cm
dist = dist * 1,25; // hier 1,25 is de correctiefactor om de meetfout te overwinnen
dist terug; // retourneert de afstand tot de aanroepfunctie
Nu voor Arduino.
In de Loop-functie:
> Eerst wordt gecontroleerd of de noodknop wordt ingedrukt of niet.
> Sensorcontrole. Een deel van het programma controleert op een sensorfout. d.w.z. als de ontvangen gegevens 5 keer ongeldig zijn (<= 1), dan toont het display de sensorfout en wordt de pomp uitgeschakeld.
> Het volgende deel geeft het huidige waterniveau weer en geeft een commando voor pomp 1 als het waterniveau klein is, of 0 als het 100% (vol) is.
Dit programma gebruikt twee subfuncties updtMotor () en getWaterLvl (). De functie updtMotor () toont de werking van de pomp op het LCD-scherm en stuurt ook een signaal naar het relais.
De functie getWaterLvl controleert eerst of er een verbindingsfout is. Als de verbinding tussen de zender en de ontvanger niet tot stand is gebracht tijdens de wachttijd (3000 ms). Het toont een sensorfout en schakelt de pomp uit.
Wanneer de verbinding is hersteld, wordt de bewerking hervat.
Alles is klaar, dankzij de meester voor een interessant zelfgemaakt.