Sommario:

UltraSonic Liquid Level Controller: 6 passaggi (con immagini)
UltraSonic Liquid Level Controller: 6 passaggi (con immagini)

Video: UltraSonic Liquid Level Controller: 6 passaggi (con immagini)

Video: UltraSonic Liquid Level Controller: 6 passaggi (con immagini)
Video: Sustainable Living: Water Level Monitoring With Ultrasonic Sensor, Blynk And ChatGPT Generated Code 2024, Luglio
Anonim
Controllore di livello del liquido ad ultrasuoni
Controllore di livello del liquido ad ultrasuoni

IntroduzioneCome probabilmente saprai, l'Iran ha un clima secco e nel mio paese manca l'acqua. A volte, soprattutto in estate, si vede che il governo taglia l'acqua. Quindi la maggior parte degli appartamenti ha un serbatoio dell'acqua. C'è un serbatoio da 1500 litri nel nostro appartamento che fornisce acqua. Inoltre, ci sono 12 unità abitative nel nostro appartamento. Di conseguenza, ci si può aspettare che il serbatoio si svuoti molto presto. C'è una pompa dell'acqua collegata al serbatoio che invia l'acqua nell'edificio. Ogni volta che il serbatoio è vuoto, la pompa funziona senza acqua. Questa situazione provoca un aumento della temperatura del motore e, nel tempo, può causare il guasto della pompa. Qualche tempo fa, questo guasto alla pompa si è verificato per la seconda volta per noi e, dopo aver aperto il motore, abbiamo visto che i fili della bobina erano bruciati. Dopo aver sostituito la pompa, per evitare di nuovo questo problema, ho deciso di realizzare un controller del livello dell'acqua. Ho progettato di creare un circuito per interrompere l'alimentazione della pompa ogni volta che l'acqua è scesa al di sotto del limite inferiore nel serbatoio. La pompa non funzionerà finché l'acqua non raggiunge un limite alto. Dopo aver superato il limite superiore, il circuito ricollega l'alimentazione. All'inizio, ho cercato su Internet per vedere se riesco a trovare un circuito adatto. Tuttavia, non ho trovato nulla di appropriato. C'erano alcuni indicatori dell'acqua basati su Arduino, ma non potevano risolvere il mio problema. Di conseguenza, ho deciso di progettare il mio controller del livello dell'acqua. Un pacchetto all-in-one con un'interfaccia utente grafica semplice per impostare i parametri. Inoltre, ho cercato di considerare gli standard EMC per essere sicuro che il dispositivo funzioni in modo valido in diverse situazioni.

Fase 1: Principio

Principio
Principio

Probabilmente conosci il principio prima. Quando il segnale dell'impulso ultrasonico viene emesso verso un oggetto, viene riflesso dall'oggetto e l'eco ritorna al mittente. Se calcoli il tempo percorso dall'impulso ultrasonico, puoi trovare la distanza dell'oggetto. Nel nostro caso, l'oggetto è l'acqua.

Nota che quando trovi la distanza dall'acqua, stai calcolando il volume di spazio vuoto nel serbatoio. Per ottenere il volume d'acqua, devi sottrarre il volume calcolato dal volume totale del serbatoio.

Passaggio 2: sensore, alimentatore e controller

Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller
Sensore, alimentatore e controller

Hardware

Per il sensore, ho usato il sensore ultrasonico impermeabile JSN-SR04T. La routine di lavoro è come HC-SR04 (eco e pin trigger).

Specifiche:

  • Distanza: da 25 cm a 450 cm
  • Tensione di lavoro: DC 3.0-5.5V
  • Corrente di lavoro: 8mA
  • Precisione: ± 1 cm
  • Frequenza: 40 khz
  • Temperatura di lavoro: -20 ~ 70 ℃

Nota che questo controller ha alcune limitazioni. ad esempio: 1- JSN-SR04T non può misurare distanze inferiori a 25 cm, quindi è necessario installare il sensore ad almeno 25 cm sopra la superficie dell'acqua. Inoltre, la misurazione della distanza massima è 4.5M. Quindi questo sensore non è adatto per vasche enormi. 2- la precisione è di 1 cm per questo sensore. Di conseguenza, in base al diametro del serbatoio, è possibile variare la risoluzione del volume che il dispositivo mostrerà. 3- la velocità del suono può variare in base alla temperatura. Di conseguenza, la precisione può essere influenzata da diverse regioni. Tuttavia, queste limitazioni non erano cruciali per me e la precisione era adeguata.

Il controllore

Ho usato STM32F030K6T6 ARM Cortex M0 di STMicroelectronics. Puoi trovare le specifiche di questo microcontrollore qui.

L'alimentatore

La prima parte è convertire 220V/50Hz (Iran Electricity) in 12VDC. A tale scopo, ho utilizzato il modulo di alimentazione step-down buck HLK-PM12. Questo convertitore AC/DC può convertire da 90 ~ 264 VAC a 12VDC con una corrente di uscita di 0,25A.

Come probabilmente saprai, il carico induttivo sul relè può causare diversi problemi sul circuito e sull'alimentatore, e la difficoltà nell'alimentazione può portare all'incostanza, soprattutto nel microcontrollore. La soluzione è isolare gli alimentatori. Inoltre, devi usare un circuito snubber sui contatti del relè. Esistono diversi metodi per isolare gli alimentatori. Ad esempio, puoi utilizzare un trasformatore con due uscite. Inoltre, ci sono convertitori DC/DC isolati là fuori in una dimensione minuscola che può isolare l'uscita dall'ingresso. Ho usato MINMAX MA03-12S09 per questo scopo. È un convertitore DC/DC da 3W con isolamento.

Passaggio 3: il supervisore IC

Il Supervisore IC
Il Supervisore IC

Secondo la nota dell'app TI: un supervisore di tensione (noto anche come circuito integrato di ripristino [IC]) è un tipo di monitor di tensione che monitora l'alimentazione di un sistema. I supervisori di tensione sono spesso utilizzati con processori, regolatori di tensione e sequenziatori, in generale, dove è richiesto il rilevamento di tensione o corrente. I supervisori monitorano le linee di tensione per garantire l'accensione, rilevare i guasti e comunicare con i processori integrati per garantire l'integrità del sistema. puoi trovare questa nota sull'app qui. Sebbene i microcontrollori STM32 abbiano supervisori integrati come il monitor dell'alimentazione, ho utilizzato un chip supervisore esterno per garantire che tutto funzioni correttamente. Nel mio caso, ho usato TL7705 di TI. È possibile vedere la descrizione dal sito Web di Texas Instruments per questo IC di seguito: La famiglia TL77xxA di supervisori di tensione di alimentazione a circuito integrato è progettata specificamente per l'uso come controller di ripristino in sistemi di microcomputer e microprocessori. Il supervisore della tensione di alimentazione monitora l'alimentazione per le condizioni di sottotensione all'ingresso SENSE. Durante l'accensione, l'uscita RESET si attiva (bassa) quando VCC raggiunge un valore prossimo a 3,6 V. A questo punto (supponendo che SENSE sia superiore a VIT+), la funzione timer di ritardo attiva una temporizzazione, trascorso il quale le uscite RESET e RESET(NOT) diventano inattivi (rispettivamente alto e basso). Quando si verifica una condizione di sottotensione durante il normale funzionamento, RESET e RESET(NOT) si attivano.

Passaggio 4: il circuito stampato (PCB)

Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)
Il circuito stampato (PCB)

Ho progettato il PCB in due pezzi. Il primo è il PCB LCD che è collegato alla scheda madre con un cavo piatto/nastro. La seconda parte è il PCB del controller. Su questo PCB ho posizionato alimentatore, microcontrollore, sensore ad ultrasuoni e relativi componenti. E anche la parte di potenza che è il circuito relè, varistore e snubber. Come probabilmente saprai, i relè meccanici come un relè che ho usato nel mio circuito possono rompersi se funzionano sempre. Per ovviare a questo problema, ho utilizzato il contatto normalmente chiuso (NC) del relè. Quindi, in una situazione normale, il relè non è attivo e il contatto normalmente chiuso può condurre l'alimentazione alla pompa. Ogni volta che l'acqua scende al di sotto del limite basso, il relè si accenderà e questo interromperà l'alimentazione. Detto questo, questo è il motivo per cui ho usato il circuito snubber sui contatti NC e COM. Per quanto riguarda il fatto che la pompa avesse una potenza elevata, ho usato il secondo relè 220 per essa e la guido con il relè sul PCB.

Puoi scaricare file PCB come file Altium PCB e file Gerber dal mio GitHub qui.

Passaggio 5: codice

Image
Image
Installazione su serbatoio
Installazione su serbatoio

Ho usato l'IDE STM32Cube, che è una soluzione all-in-one per lo sviluppo del codice di STMicroelectronics. È basato su Eclipse IDE con compilatore GCC ARM. Inoltre, contiene STM32CubeMX. Puoi trovare maggiori informazioni qui. All'inizio, ho scritto un codice che includeva le nostre specifiche del serbatoio (altezza e diametro). Tuttavia, ho deciso di cambiarlo in GUI per l'impostazione dei parametri in base a specifiche diverse.

Passaggio 6: installazione sul serbatoio

Installazione su serbatoio
Installazione su serbatoio
Installazione su serbatoio
Installazione su serbatoio

Alla fine, ho realizzato una semplice scatola per proteggere il PCB dall'acqua. Inoltre, ho praticato un foro sulla parte superiore del serbatoio per posizionare il sensore.

Consigliato: