Ultrazvučni bežični pokazatelj razine vode - na solarno napajanje

Ultrazvučni bežični pokazatelj razine vode - na solarno napajanje

Ultrazvučni kontroler razine vode je uređaj koji može otkriti razinu vode u spremniku bez fizičkog kontakta i poslati podatke na udaljeni LED indikator u bežičnom GSM načinu.



U ovom ćemo postu izraditi ultrazvučni solarni indikator razine vode zasnovan na solarnoj energiji pomoću Arduina u kojem bi Arduinosi odašiljali i primali na bežičnoj frekvenciji od 2,4 GHz. Otkrivat ćemo razinu vode u spremniku pomoću ultrazvuka umjesto tradicionalne metode elektrode.

Pregled

Pokazatelj razine vode neophodan je uređaj ako posjedujete kuću ili čak živite u unajmljenoj kući. A pokazatelj razine vode pokazuje jedan važan podatak za vašu kuću koji je jednako važan kao i očitanje vašeg mjerača energije, odnosno koliko je vode ostalo? Kako bismo mogli pratiti potrošnju vode i ne trebamo se penjati gore kako bismo pristupili spremniku vode kako bismo provjerili koliko je vode ostalo i nema više naglog zaustavljanja vode iz slavine.





Živimo u 2018. godini (u trenutku pisanja ovog članka) ili kasnije, možemo odmah komunicirati s bilo kojim dijelom svijeta, lansirali smo električni trkaći automobil u svemir, lansirali smo satelite i rovere na Mars, čak smo mogli sletjeti i ljude bića na Mjesecu, još uvijek nema odgovarajućeg komercijalnog proizvoda za otkrivanje koliko je vode ostalo u našim spremnicima za vodu?

Možemo utvrditi da pokazatelje razine vode izrađuju učenici 5. razreda za sajam znanosti u školi. Kako tako jednostavni projekti nisu ušli u naš svakodnevni život? Odgovor je da pokazatelji razine spremnika za vodu nisu jednostavni projekti koje učenik 5. razreda može napraviti za naš dom. Mnogo ih je praktična razmatranja prije nego što ga osmislimo.



• Nitko ne želi bušiti rupu na tijelu spremnika za vodu za elektrode koje bi kasnije mogle propuštati vodu.
• Nitko ne želi provoditi žicu 230/120 VAC u blizini spremnika za vodu.
• Nitko ne želi mijenjati baterije svaki mjesec.
• Nitko ne želi provoditi dodatne duge žice obješene na sobi za indikaciju razine vode jer to nije unaprijed planirano za vrijeme gradnje kuće.
• Nitko ne želi koristiti vodu koja je pomiješana s metalnom korozijom elektrode.
• Nitko ne želi ukloniti postavku pokazatelja razine vode tijekom čišćenja spremnika (iznutra).

Neki od gore spomenutih razloga mogu izgledati glupo, ali s komercijalno dostupnim proizvodima s ovim minusima naći ćete manje zadovoljavajuće. Zbog toga je prodor ovih proizvoda među prosječna kućanstva vrlo mali *.
* Na indijskom tržištu.

Nakon razmatranja ovih ključnih točaka, izradili smo praktični pokazatelj razine vode koji bi trebao ukloniti spomenute nedostatke.

Naš dizajn:

• Koristi ultrazvučni senzor za mjerenje razine vode, tako da nema problema s korozijom.
• Bežična indikacija razine vode u stvarnom vremenu na 2,4 GHz.
• Dobra snaga bežičnog signala, dovoljna za 2 kata visoke zgrade.
• Više nema izmjeničnu mrežu ili zamjenu baterije na solarnu energiju.
• Alarm za punjenje / preljev spremnika tijekom punjenja spremnika.

Istražimo detalje kruga:

Odašiljač:

The krug bežičnog odašiljača koji se postavi na spremnik, šalje podatke o razini vode svakih 5 sekundi 24/7. Odašiljač se sastoji od Arduino nano, ultrazvučnog senzora HC-SR04, modula nRF24L01 koji će bežično povezati odašiljač i prijemnik na 2,4 GHz.

Solarna ploča od 9 V do 12 V s trenutnom izlaznom snagom od 300 mA napajat će krug odašiljača. Ploča za upravljanje baterijama napunit će Li-ion bateriju, tako da možemo nadzirati razinu vode čak i kad nema sunčeve svjetlosti.

Istražimo kako postaviti ultrazvučni senzor na spremnik vode:

Imajte na umu da svoju kreativnost morate iskoristiti za nanošenje kruga i zaštitu od kiše i izravne sunčeve svjetlosti.

Izrežite malu rupu iznad poklopca spremnika za postavljanje ultrazvučnog senzora i zatvorite ga nekom vrstom ljepila.

stavljanje ultrazvučnog senzora u spremnik za vodu

Sada izmjerite punu visinu spremnika od dna do poklopca i zapišite ga u metrima. Sada izmjerite visinu kapaciteta spremnika za vodu kako je prikazano na gornjoj slici i zapišite u metre.
U kôd morate unijeti ove dvije vrijednosti.

Shematski dijagram odašiljača:

veze ultrazvučnog odašiljača za kontrolu razine vode

NAPOMENA: nRF24L01 koristi 3,3 V jer se Vcc ne spajaju na 5 V izlaz Arduina.

Napajanje za odašiljač:

dizajn napajanja ultrazvučnog regulatora razine vode

Provjerite je li izlazna snaga vašeg solarnog panela, tj. Izlazna snaga (volt x struja) veća od 3 vata. The solarni panel treba biti 9V do 12V.

Preporučuje se panel od 12 V i 300 mA koji možete lako pronaći na tržištu. Baterija bi trebala biti oko 3,7 V 1000 mAh.

5V 18650 Li-ion modul za punjenje:

Sljedeća slika prikazuje standard Krug punjača 18650

Ulaz može biti USB (ne koristi se) ili vanjski 5V od LM7805 IC. Obavezno nabavite ispravan modul, kao što je gore prikazano, trebao bi ga imati TP4056 zaštitu koja ima prekid baterije i zaštitu od kratkog spoja.

Izlaz ovog treba napajati na ulaz XL6009 koji će pojačati na viši napon, koristeći mali izlaz odvijača XL6009 treba prilagoditi na 9 V za Arduino.

Prikaz XL6009 pretvarača za pojačanje istosmjernog u istosmjerni tok:

To zaključuje hardver odašiljača.

Šifra za odašiljač:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
const byte address[6] = '00001'
const int trigger = 3
const int echo = 2
const char text_0[] = 'STOP'
const char text_1[] = 'FULL'
const char text_2[] = '3/4'
const char text_3[] = 'HALF'
const char text_4[] = 'LOW'
float full = 0
float three_fourth = 0
float half = 0
float quarter = 0
long Time
float distanceCM = 0
float distanceM = 0
float resultCM = 0
float resultM = 0
float actual_distance = 0
float compensation_distance = 0
// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //
void setup()
{
Serial.begin(9600)
pinMode(trigger, OUTPUT)
pinMode(echo, INPUT)
digitalWrite(trigger, LOW)
radio.begin()
radio.openWritingPipe(address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
full = water_hold_capacity
three_fourth = water_hold_capacity * 0.75
half = water_hold_capacity * 0.50
quarter = water_hold_capacity * 0.25
}
void loop()
{
delay(5000)
digitalWrite(trigger, HIGH)
delayMicroseconds(10)
digitalWrite(trigger, LOW)
Time = pulseIn(echo, HIGH)
distanceCM = Time * 0.034
resultCM = distanceCM / 2
resultM = resultCM / 100
Serial.print('Normal Distance: ')
Serial.print(resultM)
Serial.println(' M')
compensation_distance = full_height - water_hold_capacity
actual_distance = resultM - compensation_distance
actual_distance = water_hold_capacity - actual_distance
if (actual_distance <0)
{
Serial.print('Water Level:')
Serial.println(' 0.00 M (UP)')
}
else
{
Serial.print('Water Level: ')
Serial.print(actual_distance)
Serial.println(' M (UP)')
}
Serial.println('============================')
if (actual_distance >= full)
{
radio.write(&text_0, sizeof(text_0))
}
if (actual_distance > three_fourth && actual_distance <= full)
{
radio.write(&text_1, sizeof(text_1))
}
if (actual_distance > half && actual_distance <= three_fourth)
{
radio.write(&text_2, sizeof(text_2))
}
if (actual_distance > quarter && actual_distance <= half)
{
radio.write(&text_3, sizeof(text_3))
}
if (actual_distance <= quarter)
{
radio.write(&text_4, sizeof(text_4))
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Promijenite sljedeće vrijednosti u kodu koji ste izmjerili:

// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //

To zaključuje odašiljač.

Prijemnik:

shematski prikaz ultrazvučnog upravljača prijemnika razine vode

Prijemnik može prikazati 5 razina. Alarm, kada je spremnik dosegnuo apsolutni maksimalni kapacitet zadržavanja vode tijekom punjenja spremnika. 100 do 75% - sve četiri LED će svijetliti, 75 do 50% tri LED će svijetliti, 50 do 25% dvije LED će svijetliti, 25% i manje jedna LED će svijetliti.
Prijemnik se može napajati iz 9V baterije ili iz punjač za pametni telefon na USB mini-B kabel.

Šifra za prijamnik:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
int i = 0
const byte address[6] = '00001'
const int buzzer = 6
const int LED_full = 5
const int LED_three_fourth = 4
const int LED_half = 3
const int LED_quarter = 2
char text[32] = ''
void setup()
{
pinMode(buzzer, OUTPUT)
pinMode(LED_full, OUTPUT)
pinMode(LED_three_fourth, OUTPUT)
pinMode(LED_half, OUTPUT)
pinMode(LED_quarter, OUTPUT)
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
digitalWrite(LED_full, HIGH)
delay(300)
digitalWrite(LED_three_fourth, HIGH)
delay(300)
digitalWrite(LED_half, HIGH)
delay(300)
digitalWrite(LED_quarter, HIGH)
delay(300)
digitalWrite(LED_full, LOW)
delay(300)
digitalWrite(LED_three_fourth, LOW)
delay(300)
digitalWrite(LED_half, LOW)
delay(300)
digitalWrite(LED_quarter, LOW)
Serial.begin(9600)
radio.begin()
radio.openReadingPipe(0, address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
}
void loop()
{
if (radio.available())
{
radio.read(&text, sizeof(text))
Serial.println(text)
if (text[0] == 'S' && text[1] == 'T' && text[2] == 'O' && text[3] == 'P')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
for (i = 0 i <50 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
if (text[0] == 'F' && text[1] == 'U' && text[2] == 'L' && text[3] == 'L')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == '3' && text[1] == '/' && text[2] == '4')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'H' && text [1] == 'A' && text[2] == 'L' && text[3] == 'F')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'L' && text[1] == 'O' && text[2] == 'W')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, LOW)
digitalWrite(LED_quarter, HIGH)
}
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

To zaključuje prijamnik.

NAPOMENA: ako niti jedna LED dioda ne svijetli, što znači da prijemnik ne može dobiti signal s odašiljača. Trebali biste pričekati 5 sekundi da primite signal s odašiljača nakon uključivanja kruga prijemnika.

Autori prototipovi:

Odašiljač:

prototip ultrazvučnog odašiljača

Prijamnik:

prototip ultrazvučnog prijemnika

Ako imate bilo kakvih pitanja u vezi s ovim ultrazvučnim krugom upravljača razine vode na solarnu energiju, slobodno izrazite u komentaru, možete očekivati ​​brzi odgovor.




Prethodno: Kako izraditi jednostavne krugove pretvarača pojačanja Dalje: Kako dizajnirati Flyback Converter - sveobuhvatan vodič