Ултразвучни бежични индикатор нивоа воде - на соларно напајање

Испробајте Наш Инструмент За Елиминисање Проблема





Ултразвучни регулатор нивоа воде је уређај који може открити ниво воде у резервоару без физичког контакта и послати податке на удаљени ЛЕД индикатор у бежичном ГСМ режиму.

У овом посту ћемо конструисати ултразвучни соларни индикатор нивоа воде заснован на соларној енергији користећи Ардуино у којем би Ардуинос одашиљао и примао на бежичној фреквенцији од 2,4 ГХз. Детектоваћемо ниво воде у резервоару користећи ултразвук уместо традиционалне електроде.



Преглед

Индикатор нивоа воде је неопходан уређај ако имате кућу или чак живите у изнајмљеној кући. А. индикатор нивоа воде показује један важан податак за вашу кућу који је једнако важан као и приказ вашег бројила енергије, односно колико је воде остало? Да бисмо могли да пратимо потрошњу воде и не треба да се пењемо горе да бисмо приступили резервоару за воду како бисмо проверили колико је воде остало и нема више наглог заустављања воде из славине.

Живимо у 2018. години (у време писања овог чланка) или касније, можемо одмах да комуницирамо са било којим делом света, лансирали смо електрични тркачки аутомобил у свемир, лансирали смо сателите и ровере на Марс, чак смо могли и да слетимо на људе бића на Месецу, још увек нема одговарајућег комерцијалног производа за откривање колико је воде остало у нашим резервоарима за воду?



Можемо утврдити да индикаторе нивоа воде праве ученици 5. разреда за сајам науке у школи. Како тако једноставни пројекти нису ушли у наш свакодневни живот? Одговор је што показатељи нивоа резервоара за воду нису једноставни пројекти које ученик 5. разреда може направити за наш дом. Има их много практична разматрања пре него што га дизајнирамо.

• Нико не жели да избуши рупу на телу резервоара за воду за електроде које би касније могле пропуштати воду.
• Нико не жели да проводи жицу 230/120 ВАЦ у близини резервоара за воду.
• Нико не жели да мења батерије сваког месеца.
• Нико не жели да проводи додатне дуге жице окачене на соби за индикацију нивоа воде, јер то није унапред планирано током градње куће.
• Нико не жели да користи воду која је помешана са металном корозијом електроде.
• Нико не жели да уклони поставке индикатора нивоа воде током чишћења резервоара (унутра).

Неки од горе наведених разлога могу изгледати глупо, али наћи ћете мање задовољавајуће код комерцијално доступних производа са овим недостацима. Због тога је продор ових производа међу просечна домаћинства веома мали *.
* На индијском тржишту.

Након разматрања ових кључних тачака, дизајнирали смо практични индикатор нивоа воде који би требало да уклони поменуте недостатке.

Наш дизајн:

• Користи ултразвучни сензор за мерење нивоа воде, тако да нема проблема са корозијом.
• Бежична индикација нивоа воде у реалном времену на 2,4 ГХз.
• Добра снага бежичног сигнала, довољна за двоспратне зграде.
• Нема више напајања наизменичном струјом или замене батерије.
• Аларм за пуњење / преливање резервоара током пуњења резервоара.

Истражимо детаље кола:

Предајник:

Тхе коло бежичног предајника која се постави на резервоар, шаље податке о нивоу воде сваких 5 секунди 24/7. Предајник се састоји од Ардуино нано, ултразвучног сензора ХЦ-СР04, модула нРФ24Л01 који ће бежично повезати предајник и пријемник на 2,4 ГХз.

Соларни панел од 9 В до 12 В са тренутним излазом од 300мА напајаће круг предајника. Плоча за управљање батеријама пуниће Ли-ион батерију, тако да можемо да надгледамо ниво воде чак и када нема сунчеве светлости.

Истражимо како поставити ултразвучни сензор на резервоар за воду:

Имајте на уму да морате искористити своју креативност да бисте накварили коло и заштитили се од кише и директне сунчеве светлости.

Исеците малу рупу изнад поклопца резервоара за постављање ултразвучног сензора и затворите га неком врстом лепка који можете пронаћи.

постављање ултразвучног сензора у резервоар за воду

Сада измерите пуну висину резервоара од дна до поклопца и запишите га у метрима. Сада измерите висину резервоара за задржавање воде као што је приказано на горњој слици и запишите у метрима.
Ове две вредности морате унети у код.

Шематски дијаграм предајника:

везе ултразвучног предајника за контролу нивоа воде

НАПОМЕНА: нРФ24Л01 користи 3.3В јер се Вцц не повезују са 5В излазом Ардуина.

Напајање за предајник:

дизајн напајања ултразвучног регулатора нивоа воде

Уверите се да је излазна снага вашег соларног панела, тј. Излазна снага (волт к струја) већа од 3 вата. Тхе соларни панел треба да буде од 9В до 12В.

Препоручује се панел од 12 В и 300 мА, који можете лако наћи на тржишту. Батерија би требала бити око 3,7 В 1000 мАх.

5В 18650 Ли-ион модул за пуњење:

Следећа слика приказује стандард Круг пуњача 18650

Улаз може бити УСБ (не користи се) или спољни 5В од ЛМ7805 ИЦ. Обавезно набавите исправан модул као што је приказано горе, он би требао да буде ТП4056 заштита, која има прекид батерије и заштиту од кратког споја.

Излаз овога треба напајати на улаз КСЛ6009 који ће појачати на виши напон, користећи мали излаз одвијача КСЛ6009 треба подесити на 9В за Ардуино.

Илустрација КСЛ6009 претварача ДЦ у ДЦ појачала:

То закључује хардвер предајника.

Шифра за предајник:

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

Промените следеће вредности у коду који сте мерили:

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

То закључује предајник.

Пријемник:

шема ултразвучног контролера пријемника нивоа воде

Пријемник може приказати 5 нивоа. Аларм, када је резервоар достигао апсолутно максималан капацитет задржавања воде током пуњења резервоара. 100 до 75% - Све четири ЛЕД лампице ће светлети, 75 до 50% три ЛЕД лампице ће светлити, 50 до 25% две ЛЕД диоде ће светлити, 25% и мање једна ЛЕД лампица ће светлити.
Пријемник се може напајати из 9В батерије или из пуњач за паметни телефон на УСБ мини-Б кабл.

Шифра за пријемник:

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

То закључује пријемник.

НАПОМЕНА: ако ниједна ЛЕД лампица не гори, што значи да пријемник не може добити сигнал од предајника. Требали бисте сачекати 5 секунди да примите сигнал од предајника након укључивања кола пријемника.

Ауторски прототипови:

Предајник:

прототип ултразвучног предајника

Пријемник:

прототип ултразвучног пријемника

Ако имате било каквих питања у вези са овим кругом ултразвучног бежичног регулатора нивоа воде на соларну енергију, слободно изразите коментар, можете очекивати брзи одговор.




Претходно: Како направити једноставне кругове претварача појачања Следеће: Како дизајнирати Флибацк Цонвертер - свеобухватан водич