Ultrahangos vezeték nélküli vízszint jelző - napenergiával működő

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Az ultrahangos vízszintszabályozó olyan eszköz, amely fizikai érintkezés nélkül képes felismerni a tartály vízszintjét, és vezeték nélküli GSM módban elküldi az adatokat egy távoli LED-jelzőhöz.

Ebben a bejegyzésben ultrahangos alapú napenergiával működő vezeték nélküli vízszintjelzőt fogunk készíteni az Arduino segítségével, amelyben az Arduinos 2,4 GHz-es vezeték nélküli frekvencián sugározna és fogadna. A tartály vízszintjét ultrahanggal fogjuk detektálni a hagyományos elektróda módszer helyett.



Áttekintés

A vízszint-jelzőnek kötelező eszköznek kell lennie, ha háza van, vagy akár bérelt házban él. A vízszintjelző egy fontos adatot mutat a házadhoz, amely ugyanolyan fontos, mint az energiamérő leolvasása, vagyis mennyi víz van hátra? Annak érdekében, hogy nyomon tudjuk követni a vízfogyasztást, és ne kelljen felmásznunk az emeletre, hogy hozzáférjünk a víztartályhoz, hogy ellenőrizzük, mennyi víz van még hátra, és nincs-e hirtelen leállás a csapból.

Élünk 2018-ban (a cikk írásakor) vagy később, azonnal kommunikálhatunk a világ bármely pontjával, elektromos versenyautót indítottunk az űrbe, műholdakat és rovereket indítottunk a marsba, sőt embereket is tudtunk leszállni lények a holdon, még mindig nincs megfelelő kereskedelmi termék annak felismerésére, hogy mennyi víz maradt a víztartályainkban?



Megtalálhatjuk a vízszint-mutatókat az 5. osztályos tanulók az iskolai természettudományi vásárra. Hogy nem tettek ilyen egyszerű projektek mindennapjainkba? A válasz az, hogy a víztartályszint-mutatók nem egyszerű projektek, amelyeket egy 5. osztályos tanuló készíthet otthonunknak. Sokan vannak gyakorlati szempontok mielőtt megterveznénk egyet.

• Senki sem akar lyukat fúrni a víztartály testére az elektródák számára, amelyek később szivároghatnak.
• Senki sem akar 230/120 VAC vezetéket vezetni a víztartály közelében.
• Senki sem akarja havonta cserélni az elemeket.
• Senki sem akar további hosszú vezetékeket vezetni a helyiségen a vízszint jelzésére, mivel a ház építése közben ezt nem tervezik meg előre.
• Senki sem akarja használni az elektród fémkorróziójával kevert vizet.
• Senki sem akarja eltávolítani a vízszintjelző beállítását a tartály (belül) tisztítása közben.

A fent említett okok egy része butának tűnhet, de kevésbé kielégítőnek találja ezeket a kereskedelemben kapható termékeket. Ezért ezeknek a termékeknek az átlagos háztartásokban való elterjedése nagyon alacsony *.
* Az indiai piacon.

Miután figyelembe vettük ezeket a kulcsfontosságú pontokat, kidolgoztunk egy praktikus vízszint-mutatót, amely kiküszöböli az említett hátrányokat.

Tervezésünk:

• Ultrahangos szenzort használ a vízszint mérésére, így nincs korróziós probléma.
• A vízszint valós idejű vezeték nélküli kijelzése 2,4 GHz-en.
• Jó vezeték nélküli jelerősség, elegendő 2 emelet magas épületekhez.
• Napelemes áramellátás, nincs több hálózati áram, vagy cserélje ki az akkumulátort.
• A tartály teljes / túlcsordulás riasztása a tartály feltöltése közben.

Vizsgáljuk meg az áramkör részleteit:

Adó:

A vezeték nélküli adó áramkör amely a tartályra kerül, a vízszint adatait 5 másodpercenként, 24/7. Az adó egy Arduino nano, ultrahangos érzékelő HC-SR04, nRF24L01 modulból áll, amelyek vezeték nélkül csatlakoztatják az adót és a vevőt 2,4 GHz-en.

Egy 9 V és 12 V közötti, 300 mA áram kimenettel rendelkező napelem táplálja az adó áramkört. Az akkumulátor-kezelő áramköri kártya feltölti a Li-ion akkumulátort, így akkor is figyelemmel kísérhetjük a vízszintet, ha nincs napfény.

Fedezzük fel, hogyan helyezzük el az ultrahangos érzékelőt a víztartályban:

Felhívjuk figyelmét, hogy kreativitásával ki kell használnia az áramkört, és meg kell védenie az esőtől és a közvetlen napsugárzástól.

Vágjon egy kis lyukat a tartály fedele fölé az ultrahangos érzékelő elhelyezéséhez, és zárja le valamilyen megtalált ragasztóval.

ultrahangos érzékelőt helyezzen egy víztartályba

Most mérje meg a tartály teljes magasságát alulról fedélre, írja le méterben. Most mérje meg a tartály víztartó képességének magasságát a fenti képen látható módon, és írja le méterben.
Ezt a két értéket be kell írnia a kódba.

Az adó vázlatos rajza:

ultrahangos adó csatlakozások a vízszint szabályozásához

MEGJEGYZÉS: Az nRF24L01 3.3 V-ot használ, mivel a Vcc nem csatlakozik az Arduino 5 V-os kimenetéhez.

Az adó tápellátása:

ultrahangos vízszintszabályozó tápegységének kialakítása

Győződjön meg arról, hogy a napelem kimenő teljesítménye, azaz a kimenet (volt x áram) nagyobb, mint 3 watt. A napelem 9–12 V legyen.

12 V-os és 300 mA-es panel ajánlott, amelyet könnyen megtalálhat a piacon. Az akkumulátornak körülbelül 3,7 V 1000 mAh-nak kell lennie.

5V 18650 Li-ion töltő modul:

A következő kép egy szabványt mutat 18650 töltő áramkör

A bemenet lehet USB (nem használt) vagy külső 5 V az LM7805 IC-től. Győződjön meg arról, hogy a megfelelő modult kapta-e meg, amint azt a fentiekben látta TP4056 védelem, amelynek alacsony az akkumulátor kikapcsolása és a rövidzárlat védelme.

Ennek kimenetét az XL6009 bemenetére kell táplálni, amely magasabb feszültségre nő, egy kis csavarhúzó segítségével az XL6009 kimenetét 9 V-ra kell állítani az Arduino számára.

Az XL6009 DC - DC boost átalakító illusztrációja:

Ezzel befejeződik az adó hardvere.

Adó kódja:

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

Módosítsa a következő értékeket a mért kódban:

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

Ezzel befejeződött az adó.

A fogadó:

ultrahangos vízszint-vevő vezérlő vázlata

A vevő 5 szintet tud mutatni. Riasztás, amikor a tartály elérte az abszolút maximális víztartó képességet a tartály feltöltése közben. 100 - 75% - Mind a négy LED világítani fog, 75-50% három LED világít, 50-25% két LED világít, 25% és kevesebb, mint egy LED világít.
A vevőegységet 9 V-os akkumulátorról lehet táplálni okostelefon töltő USB-re mini-B kábel.

A vevő kódja:

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

Ezzel véget ér a vevő.

MEGJEGYZÉS: ha nem világít LED, ez azt jelenti, hogy a vevő nem tud jelet kapni az adóból. A vevő áramkörének bekapcsolása után várjon 5 másodpercet az adó vételére.

A szerző prototípusai:

Adó:

ultrahangos adó prototípusa

Vevő:

ultrahangos vevő prototípusa

Ha bármilyen kérdése van ezzel a napenergiával működő ultrahangos vezeték nélküli vízszintszabályozó áramkörrel kapcsolatban, kérjük, nyugodtan fejezze ki a megjegyzésben, számíthat arra, hogy gyors választ kap.




Előző: Hogyan készítsünk egyszerű Boost Converter áramköröket Következő: Hogyan tervezzünk egy Flyback átalakítót - átfogó bemutató