Ultraskaņas bezvadu ūdens līmeņa indikators - ar saules enerģiju

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Ultraskaņas ūdens līmeņa kontrolieris ir ierīce, kas bez fiziska kontakta var noteikt ūdens līmeni tvertnē un bezvadu GSM režīmā nosūtīt datus uz attālu LED indikatoru.

Šajā amatā mēs izveidosim ar ultraskaņu balstītu saules enerģijas bezvadu ūdens līmeņa indikatoru, izmantojot Arduino, kurā Arduinos raidīs un saņems ar 2,4 GHz bezvadu frekvenci. Ūdens līmeni tvertnē mēs noteiksim, izmantojot ultraskaņu, nevis tradicionālo elektrodu metodi.



Pārskats

Ūdens līmeņa indikatoram ir jābūt sīkrīkam, ja jums pieder māja vai pat dzīvojat īrētā mājā. A ūdens līmeņa indikators parāda vienu svarīgu informāciju par jūsu māju, kas ir tikpat svarīga kā enerģijas skaitītāja rādījums, tas ir, cik daudz ūdens ir palicis? Lai mēs varētu izsekot ūdens patēriņam, un mums nav jākāpj augšā, lai piekļūtu ūdens tvertnei, lai pārbaudītu, cik daudz ūdens ir atlicis, un vairs pēkšņi neapturētu ūdeni no krāna.

Mēs dzīvojam 2018. gadā (šī raksta rakstīšanas laikā) vai vēlāk, mēs varam nekavējoties sazināties ar jebkuru vietu pasaulē, mēs palaida elektrisko sacīkšu automašīnu kosmosā, mēs palaida satelītus un roverus uz Marsu, mēs pat spējām izkraut cilvēku būtnes uz Mēness, joprojām nav atbilstoša komerciāla produkta, lai noteiktu, cik daudz ūdens ir palicis mūsu ūdens tvertnēs?



Mēs varam atrast ūdens līmeņa rādītājus, ko 5. klases skolēni veic dabaszinību gadatirgū skolā. Kā tik vienkārši projekti neiedarbojās mūsu ikdienā? Atbilde ir tāda, ka ūdens tvertņu līmeņa rādītāji nav vienkārši projekti, kurus 5. klases skolnieks var izveidot mūsu mājām. Tur ir daudz praktiski apsvērumi pirms mēs to noformējam.

• Neviens nevēlas urbt urbumu uz ūdens tvertnes korpusa elektrodiem, no kuriem vēlāk varētu noplūst ūdens.
• Neviens nevēlas vadīt 230/120 VAC vadu pie ūdens tvertnes.
• Neviens nevēlas nomainīt baterijas katru mēnesi.
• Neviens nevēlas vadīt papildu garus vadus, kas karājas uz istabas ūdens līmeņa indikācijai, jo tas nav iepriekš plānots, būvējot māju.
• Neviens nevēlas izmantot ūdeni, kas sajaukts ar elektroda metāla koroziju.
• Tvertnes (iekšpusē) tīrīšanas laikā neviens nevēlas noņemt ūdens līmeņa indikatora iestatījumus.

Daži no iepriekš minētajiem iemesliem var izskatīties dumjš, bet jūs atradīsit mazāk apmierinošus ar komerciāli pieejamiem produktiem, kuriem ir šie mīnusi. Tāpēc vidusmēra mājsaimniecībās šo produktu izplatība ir ļoti mazāka *.
* Indijas tirgū.

Izvērtējot šos galvenos jautājumus, mēs esam izstrādājuši praktisku ūdens līmeņa indikatoru, kuram vajadzētu novērst minētos trūkumus.

Mūsu dizains:

• Ūdens līmeņa mērīšanai tā izmanto ultraskaņas sensoru, tāpēc nerodas korozijas problēmas.
• Bezvadu ūdens līmeņa reālā laika rādīšana 2,4 GHz frekvencē.
• Labs bezvadu signāla stiprums, pietiek 2 stāvu augstām ēkām.
• Ar saules enerģiju vairs nedrīkst strādāt ar maiņstrāvu vai nomainīt akumulatoru.
• Tvertnes piepildīšanas / pārpildes trauksme, uzpildot tvertni.

Izpētīsim ķēdes detaļas:

Raidītājs:

The bezvadu raidītāja ķēde kas novietots uz tvertnes, ik pēc 5 sekundēm 24 stundas diennaktī sūtīs ūdens līmeņa datus. Raidītājs sastāv no Arduino nano, ultraskaņas sensora HC-SR04, nRF24L01 moduļa, kas bezvadu savienos raidītāju un uztvērēju ar ātrumu 2,4 GHz.

Saules panelis no 9 V līdz 12 V ar strāvas izeju 300mA darbinās raidītāja ķēdi. Akumulatora vadības shēma uzlādēs litija jonu akumulatoru, lai mēs varētu uzraudzīt ūdens līmeni pat tad, ja nav saules gaismas.

Ļaujiet mums izpētīt, kā novietot ultraskaņas sensoru ūdens tvertnē:

Lūdzu, ņemiet vērā, ka jums ir jāizmanto radošums, lai uzklātu ķēdi un pasargātu no lietus un tiešiem saules stariem.

Izgrieziet nelielu atveri virs tvertnes vāka, lai ievietotu ultraskaņas sensoru, un aizzīmogojiet to ar kādu, kādu jūs varat atrast.

ievietojot ultraskaņas sensoru ūdens tvertnē

Tagad izmēra visu tvertnes augstumu no apakšas līdz vākam, pierakstiet to metros. Tagad izmēriet tvertnes ūdens tilpuma augstumu, kā parādīts iepriekšējā attēlā, un pierakstiet metros.
Kodā jāievada šīs divas vērtības.

Raidītāja shematiska shēma:

ultraskaņas raidītāju savienojumi ūdens līmeņa kontrolei

PIEZĪME: nRF24L01 izmanto 3.3V, jo Vcc nepievienojas Arduino 5V izejai.

Raidītāja barošana:

ultraskaņas ūdens līmeņa regulatora barošanas avota dizains

Pārliecinieties, vai saules paneļa izejas jauda, ​​t.i., izeja (volts x strāva) ir lielāka par 3 vatiem. The saules panelis jābūt 9V līdz 12V.

Ieteicams 12V un 300mA paneli, kuru jūs viegli varat atrast tirgū. Baterijai jābūt aptuveni 3,7 V 1000 mAh.

5V 18650 litija jonu uzlādes modulis:

Šis attēls parāda standartu 18650 lādētāja ķēde

Ieeja var būt USB (netiek izmantota) vai ārēja 5V no LM7805 IC. Pārliecinieties, vai esat ieguvis pareizo moduli, kā parādīts iepriekš, tam vajadzētu būt TP4056 aizsardzība, kurai ir zema akumulatora izslēgšanās un īssavienojuma aizsardzība.

Tā izeja jāievada XL6009 ieejā, kas palielinās līdz augstākam spriegumam, izmantojot nelielu skrūvgrieža izeju XL6009, Arduino jāpielāgo 9 V.

XL6009 DC līdz DC palielināšanas pārveidotāja ilustrācija:

Ar to noslēdz raidītāja aparatūru.

Raidītāja kods:

// ----------- 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 ----------- //

Izmēra kodā mainiet šādas vērtības:

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

Tas noslēdz raidītāju.

Uztvērējs:

ultraskaņas ūdens līmeņa uztvērēja kontroliera shēma

Uztvērējs var parādīt 5 līmeņus. Trauksme, kad tvertne piepildot tvertni sasniedza absolūto maksimālo ūdens noturēšanas jaudu. 100 līdz 75% - visi četri gaismas diodes spīdēs, 75 līdz 50% trīs gaismas diodes spīdēs, 50 līdz 25% mirgos divas gaismas diodes, 25% un mazāk viena gaismas diode.
Uztvērēju var darbināt no 9V akumulatora vai no viedtālruņa lādētājs uz USB mini-B kabelis.

Uztvērēja kods:

// ----------- 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 ----------- //

Ar to uztvērējs noslēdzas.

PIEZĪME: ja nedeg gaismas diodes, tas nozīmē, ka uztvērējs nevar saņemt signālu no raidītāja. Pēc uztvērēja ķēdes ieslēgšanas jums jāgaida 5 sekundes, lai saņemtu signālu no raidītāja.

Autora prototipi:

Raidītājs:

ultraskaņas raidītāja prototips

Uztvērējs:

ultraskaņas uztvērēja prototips

Ja jums ir kādi jautājumi par šo saules enerģijas ultraskaņas bezvadu ūdens līmeņa regulatora ķēdi, lūdzu, nekautrējieties izteikties komentārā, jūs varat sagaidīt ātru atbildi.




Pāri: Kā izveidot vienkāršas Boost Converter shēmas Nākamais: Kā izveidot Flyback Converter - visaptveroša apmācība