L’assistent ens explicarà com fer un sistema de control i control del nivell d’aigua en un dipòsit. És un sistema senzill i fiable.
Les seves característiques principals són les següents:
Supervisió del nivell d'aigua en temps real.
Bomba d'encesa / apagat automàtica.
Apagada d’emergència de la bomba.
Eines i materials:
-Arduino Pro mini
-Sensor utrasònic HC-SR04;
- Mòdul MAX485;
- Mòdul LCD i2c;
LCD 1602;
- Microcontrolador ATTINY45 / 85;
- Regulador de tensió LM7805;
Transistor NPN (2n3904);
-No canal MOSFET IRFD024PBF;
Díode 1N4007;
Connector de 5 pins;
Connector de 4 pins
Connector de 2 pins;
- Terminals amb 2 contactes (blau) - 2 ulls;
- Terminal amb 2 contactes (verd);
Jack DC (- 2 peces)
-Audio jack (masculí / femení) - 2 unitats;
- Resistor 1 kOhm;
- Resistor de 10 kOhm - 3 unitats;
- Condensador 100 nF - 3 peces;
Condensador 100 uF;
- botó SMD, 6x3.5mm;
-Interruptors DIP (SPST 2) - 2 unitats;
- botó d’engegada;
-Tumbler;
Relé DC de 12 V;
-Contractor de rellotge;
- Alimentació de corrent continu 5 V (> 200 mA);
- Alimentació DC 12V (> 500 mA);
-Boxes per al cas d’una mida adequada;
-Atxulladors;
-Accessoris de venda;
- tornavís;
-Wire;
Primer Pas: Unitat de Sensors
Aquesta unitat mesura el nivell d’aigua i envia dades al controlador principal. Disposa de dos sensors per mesurar el nivell d’aigua. Un és el sensor de distància ultrasònic HC-SR04, els altres dos cargols llargs que sobresurten cap a fora, com es mostra a la foto.
Per instal·lar els sensors, heu de realitzar els passos següents:
Col·loca el transductor d'ultrasons cap per avall a la part frontal de la coberta a prop de la part superior i marca els dos orificis per al transmissor i el receptor d'ultrasons.
Talleu els forats i fixeu el sensor al lloc amb cola calenta.
A continuació, foradeu dos forats amb un diàmetre de 3 mm amb un desnivell de 2-3 cm al centre de la coberta.
Introduïu els cargols M3 llargs amb el terminal de filferro subjectat entre les dues rentadores a la part posterior de la coberta i apreteu les femelles M3 de l'altre costat.
La unitat de sensor utilitza ATTINY45 com a microcontrolador principal. Com s'ha esmentat anteriorment, HC-SR04 s'utilitza per mesurar el nivell d'aigua. Funciona mesurant la distància des de la part superior del dipòsit.
Així mateix, el control es realitza mitjançant dos cargols al circuit, que el transistor està instal·lat. El microcontrolador llegeix dades d’aquests dos sensors i envia dades a l’Arduino instal·lat a la unitat de control.
Primer, el màster volia enviar dades a través dels mòduls RF HC-12. Però l’abast d’aquests mòduls no coincideix amb els requisits.L’assistent va utilitzar el convertidor MAX485 TTL a RS485 i va fer un petit aixecador per instal·lar al lloc dels mòduls HC-12.
Es pot descarregar l’esquema i l’enllaç a la pissarra a aquesta adreça.
La instal·lació és la següent:
HC-SR04 al circuit principal:
Vcc - 5V (CN1).
trig - trigPin (CN1).
eco - echoPin (CN1).
Gnd - GND (CN1).
M3 cargols al circuit principal:
Bolt 1 - 5 V (CN1).
Bolt 2 - 100 (CN1).
Mòdul MAX485 (TX):
VCC - 5V (connector HC-12)
A - presa d'àudio d'1 / 4 polzades.
B - presa d'àudio d'1 / 4 polzades.
GND - GND (connector HC-12)
R0 - RX (connector HC-12)
RE - VCC (MAX485) o 5V.
DE - RE (abreujat com RE i DE).
DI - TX (connector HC-12).
Jack DC (connector P1):
Consell: 5V
Màniga: GND
Segon segon: Controlador
El funcionament del controlador és senzill. Arduino s'utilitza com a controlador principal. Rep dades del sensor enviades des de la placa emissora a través del mòdul max485. Disposa d’una pantalla LCD de 1602 que mostra el nivell actual d’aigua i el funcionament de la bomba. Utilitza un relé de 12 V com a commutador per encendre el contactor del relé. Disposa de dos interruptors, un per a il·luminació de la pantalla LCD i un altre per a la bomba d’emergència encesa / desactivada.
Es troba un enllaç al diagrama de circuit i al disseny de la placa de circuit imprès per a l'emissor i el receptor aquí.
El mòdul LCD i2c es solda directament a la pantalla LCD de 1602. El pont de retroiluminació del mòdul i2c està connectat a l'interruptor de commutació per encendre / apagar. El botó d’emergència (gran) està connectat al circuit principal mitjançant el connector P4.
Mòdul LCD I2c al circuit principal (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Connexions del contacte del relé:
A1 - 230 VAC1 (zero).
A2 - NO (contacte del relé).
S1 - 230 VAC1 (zero).
S2 - 230 VAC2 (fase)
L1 - Filferro del motor de la bomba 1
L2 - Cable 2 del motor de la bomba.
Connecteu el contacte del relé COM a 230 VAC2 (línia).
Tercer pas: Programari i programació
Ara cal programar els controladors en tots dos dispositius.
Per descarregar el codi a ATTINY45, descarrega la biblioteca SoftwareSerial.h.
A la funció Loop,
> Comproveu primer si el dipòsit està ple o no.
> Si està ple, envia "255."
> Si no està ple, comprova el nivell d’aigua amb un sensor de so ultrasònic i transmet dades mitjançant comunicació en sèrie.
Aquest programa utilitza la subfunció getwtrLvl () per obtenir el nivell d'aigua actual. Primer, mesura el temps que triga el sensor a transmetre i rebre ones d’ultrasons. Aleshores, el temps es converteix a distància mitjançant la velocitat del so.
dist = pulseIn (echoPin, HIGH); // temps passat per l’ona sonora.
dist = dist / 28/2; // traduir el temps a la distància en cm
dist = dist * 1,25; // aquí 1.25 és el factor de correcció per superar l’error de mesurament
tornada dist; // retorna la distància a la funció de trucada
Ara per Arduino.
A la funció Loop:
> Primer es comprova si es prem o no el botó d'emergència.
> Comprovació del sensor. Una part del programa comprova que hi hagi cap error. és a dir, si les dades rebudes no són vàlides (<= 1) 5 vegades, la pantalla mostra l'error del sensor i la bomba s'apaga.
> La següent part mostra el nivell d'aigua actual i dóna un comandament per a la bomba 1 si el nivell de l'aigua és petit, o 0 si és 100% (ple).
Aquest programa utilitza dues subfuncions updtMotor () i getWaterLvl (). La funció updtMotor () mostra el funcionament de la bomba a la pantalla LCD i també envia un senyal al relé.
La funció getWaterLvl comprova primer si hi ha algun error de connexió. Si la connexió entre l'emissor i el receptor no s'estableix durant el temps d'espera (3000 ms). Mostra un error del sensor i apaga la bomba.
Quan es restableix la connexió, l’operació es reprèn.
Tot està a punt, gràcies al mestre per un interès casolans.