Řídicí jednotka čerpadla založená na SMS s automatickým vypnutím chodu nasucho

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto příspěvku budeme konstruovat ovladač vodního čerpadla na bázi SMS s automatickým vypínáním čerpadla, když není detekován žádný průtok vody čerpadlem. V další polovině článku také zkonstruujeme další mnohem jednodušší automatický obvod zabraňující chodu nasucho bez GSM.

Co je to běh nasucho v motorech

Již jsme diskutovali o Řídicí jednotka čerpadla založená na GSM na tomto webu zkontrolujte, pokud ještě ne. Zde přidáváme další funkci stávající konstrukce, která zabrání chodu motoru nasucho.



Běh na sucho znamená provoz vodního čerpadla bez průtoku kapaliny. Důsledkem může být opravitelné poškození, které nelze opravit, v závislosti na tom, jak dlouho motor běžel bez čerpání vody a na kvalitě vodního čerpadla.

Ano, vodní čerpadla nejsou levná a pokud jste zemědělci, kteří každý den zavlažují pole, pak vás může malý problém s vodním čerpadlem dostat do ekonomických ztrát.



Údržba čerpadla může trvat nějakou dobu a peníze, proto je lepší řídit se slavným sloganem „prevence je lepší než léčba“.

Chod motoru na sucho je velmi častým problémem, když není dostatek vody, aby protékala čerpadlem, dojde k přehřátí mechanických i elektrických součástí.

V určitém okamžiku se mechanické součásti začnou tát a mohou také způsobit zkrat.

Takové katastrofě lze zabránit pomocí okruhu navrženého v tomto projektu.

Abychom zjistili tok vody, jsme s využitím snímače průtoku vody YF-S201 . Pokud čidlo nezjistí žádný průtok vody, odpojí napájení vodního čerpadla a odešle příjemci SMS potvrzení o vypnutí chodu na sucho.

S tímto ovládáním založeným na GSM můžete zapínat a vypínat čerpadlo a také obvod potvrzuje problém chodu čerpadla na sucho.

Obvod pro ovládání čerpadla na základě SMS:

Obvod pro ovládání čerpadla na základě SMS:

Obvod se skládá z měniče střídavého proudu na stejnosměrný proud pomocí 9V transformátoru, můstkového usměrňovače, vyhlazovacího kondenzátoru 1000 uF a regulátoru LM7809 9V. K napájení desky Arduino a GSM modulu SIM 800 / SIM 900 jsou k dispozici dva DC konektory.

Nikdy nenapájejte GSM modul s 5V pinem Arduina na 5V pin GSM modulu, protože deska Arduino nemůže poskytnout dostatečný proud.

Spojení mezi Arduino a GSM modul jak následuje:

Arduino TX ---------------------- RX SIM 800/900

Arduino RX --------------------- TX SIM 800/900

Arduino GND ------------------- GND SIM 800/900

Hlavní napájení zajišťuje regulátor LM 7809.

LED indikátor bude svítit, pokud je relé aktivováno, a zhasne, když je relé deaktivováno.

Dioda IN4007 absorbuje špičku vysokého napětí, ke které dochází při zapnutí a vypnutí relé.

Snímač průtoku vody je připojen k pinu A0 Arduino, 5 V a GND poskytnutému z desky Arduino.

Program pro návrh založený na GSM:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp = 0
int i = 0
int j = 0
int k = 0
int X = 0
int Y = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor, OUTPUT)
pinMode(LED, OUTPUT)
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
analogWrite(test, 100)
for (k = 0 k <60 k++)
{
delay(1000)
}
Serial.println('AT+CNMI=2,2,0,0,0')
delay(1000)
Serial.println('AT+CMGF=1')
delay(500)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('System is ready to receive commands.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
if (temp == 1)
{
check()
temp = 0
i = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Deactivated. Dry Run Shut Off!')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
mtr_on = 0
delay(1000)
}
}
}
void serialEvent()
{
while (Serial.available())
{
if (Serial.find('/'))
{
delay(1000)
while (Serial.available())
{
char inChar = Serial.read()
str[i++] = inChar
if (inChar == '/')
{
temp = 1
return
}
}
}
}
}
void check()
{
if (!(strncmp(str, 'motor on', 8)))
{
digitalWrite(motor, HIGH)
digitalWrite(LED, HIGH)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Activated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
for (j = 0 j <20 j++)
{
delay(1000)
}
mtr_on = 1
}
else if (!(strncmp(str, 'motor off', 9)))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor deactivated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
else if (!(strncmp(str, 'test', 4)))
{
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('The System is Working Fine.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}

// ---------------- Program vyvinutý R.Girishem ------------ //

Musíte zadat kód s 10místným číslem mobilního telefonu příjemce.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Nahraďte x číslem mobilního telefonu

Mobilní číslo musíte umístit na 5 takových místech v kódu.

SMS příkazy:

· Vaše SMS musí vždy začínat „/“ a končit „/“

· / Motor zapnut / pro aktivaci motoru.

· / Vypnutý motor / pro deaktivaci motoru.

· / Test / pro testování obvodu.

Zde je testovaná SMS při prototypování:

testované SMS při prototypování

Z obrazovky můžeme sledovat následující věci:

· Nejprve se motor zapne a obvod se potvrdí odpovědí.

· Motor je deaktivován a obvod je potvrzen odpovědí.

· Opět se aktivuje motor a odpojením snímače se simuluje situace chodu nasucho, obvod vypne čerpadlo a odpoví potvrzením chodu čerpadla na sucho.

· Nakonec byla odeslána testovací SMS a obvod odpověděl „Systém funguje dobře“.

Navrhoval bych nainstalovat snímač průtoku vody po několika metrech od vodního čerpadla.

Tím se uzavírá ochrana proti chodu čerpadla na bázi GSM.

Pojďme se nyní podívat na jednoduchou ochranu proti chodu naprázdno u vodního čerpadla bez GSM, což by mohlo být jednodušší ze dvou.

Kruhový diagram:

Řídicí jednotka čerpadla založená na SMS s automatickým vypnutím chodu nasucho

Nic moc tady nevysvětlím, prostě zapojte podle schématu. Zdrojem energie může být 9V nástěnný adaptér s minimálně 500 mA nebo zdroj, který je znázorněn ve schématu řadiče založeného na GSM.

Tlačítko slouží k zapnutí a vypnutí čerpadla.

Jakmile stisknete tlačítko pro zapnutí čerpadla, okruh počká zpočátku do 20 sekund, aby detekoval průtok vody, během této doby je tlačítko deaktivováno na 20 sekund.

Po počátečních 20 sekundách je tlačítko povoleno a můžete čerpadlo vypnout ručně dalším stisknutím tlačítka.

Pokud je detekován průtok vody, okruh udržuje čerpadlo zapnuté po 20 sekundách, jinak okruh přeruší napájení motoru. Také obvod může kdykoli přerušit přívod, pokud není detekován žádný průtok vody.

Pokud se obvod vypne kvůli chodu nasucho, LED rychle bliká.

Program pro jednoduché zabránění chodu čerpadla na sucho:

//--------------------------Program Developed by R.GIRISH------------------------//
int X = 0
int Y = 0
int i = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
const int button = A1
const int LED = 8
const int motor = 9
void setup()
{
Serial.begin(9600)
pinMode(input, INPUT)
pinMode(test, OUTPUT)
pinMode(LED, OUTPUT)
pinMode(motor, OUTPUT)
analogWrite(test, 100)
digitalWrite(button, HIGH)
}
void loop()
{
if (digitalRead(button) == LOW && mtr_on == 0)
{
Serial.println('Motor Activated')
digitalWrite(LED, HIGH)
digitalWrite(motor, HIGH)
for (i = 0 i <20 i++)
{
delay(1000)
}
mtr_on = 1
}
if (digitalRead(button) == LOW && mtr_on == 1)
{
Serial.println('Motor Deactivated')
digitalWrite(LED, LOW)
digitalWrite(motor, LOW)
mtr_on = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
Serial.println('Dry run shut off')
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
while (true)
{
digitalWrite(LED, HIGH)
delay(500)
digitalWrite(LED, LOW)
delay(500)
}
}
}
}
//--------------------------Program Developed by R.GIRISH------------------------//

Tím jsou oba návrhy uzavřeny.

Pokud máte nějaké konkrétní dotazy týkající se tohoto ovladače čerpadla založeného na SMS s automatickým vypínacím obvodem chodu nasucho, vyjádřete to prosím v sekci komentářů, můžete obdržet rychlou odpověď.




Předchozí: 4 obvody jednoduchého snímače vzdálenosti - pomocí IC LM358, IC LM567, IC 555 Další: Inkubátor využívající Arduino s automatickou regulací teploty a vlhkosti