Контроллер насоса на основе SMS с автоматическим отключением всухую

Попробуйте наш инструмент устранения неполадок





В этом посте мы собираемся построить контроллер водяного насоса на основе SMS с автоматическим отключением насоса, когда поток воды через насос не обнаруживается. В следующей половине статьи мы также построим еще одну гораздо более простую схему автоматического предохранителя от сухого хода без GSM.

Что такое сухой прогон в двигателях

Мы уже обсуждали Контроллер насоса на базе GSM на этом сайте проверьте это, если еще не сделали. Здесь мы добавляем дополнительную функцию к существующей конструкции, которая предотвратит работу двигателя всухую.



Сухой ход означает работу водяного насоса без потока жидкости. Последствием может быть ремонтное повреждение или неисправное повреждение в зависимости от того, как долго двигатель работал без перекачки воды и качества водяного насоса.

Да, водяные насосы недешевы, и если вы агроном, который орошает поле каждый день, то небольшая проблема с водяным насосом может привести к экономическим потерям.



Обслуживание помпы может занять некоторое время и деньги, поэтому лучше следовать известному лозунгу «профилактика лучше, чем лечение».

Сухой ход двигателя Это очень распространенная проблема, когда недостаточно воды для протекания через насос, происходит перегрев как механических, так и электрических компонентов.

В какой-то момент механические компоненты начнут плавиться, что также может вызвать короткое замыкание.

Такую катастрофу можно предотвратить с помощью схемы, предложенной в этом проекте.

Чтобы обнаружить поток воды, мы с использованием датчика расхода воды YF-S201 . Когда датчик не обнаруживает расход воды, он отключает подачу питания к водяному насосу и отправляет получателю SMS-подтверждение об отключении сухого хода.

С помощью этого управления на основе GSM вы можете включать и выключать насос, а также цепь уведомляет о проблеме сухого хода насоса.

Схема управления насосом по SMS:

Схема управления насосом по SMS:

Схема состоит из преобразователя переменного тока в постоянный с трансформатором 9 В, мостового выпрямителя, сглаживающего конденсатора на 1000 мкФ и стабилизатора LM7809 на 9 В. Два разъема постоянного тока предназначены для питания платы Arduino и GSM-модуля SIM 800 / SIM 900.

Никогда не подключайте модуль GSM к контакту 5 В Arduino и контакту 5 В модуля GSM, поскольку плата Arduino не может обеспечить достаточный ток.

Связь между Модуль Arduino и GSM следующее:

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

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

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

Основное питание обеспечивает регулятор LM 7809.

Светодиодный индикатор горит, если реле активировано, и гаснет, когда реле деактивировано.

Диод IN4007 будет поглощать выбросы высокого напряжения, возникающие при включении и выключении реле.

Датчик расхода воды подключается к контакту A0 Arduino, 5 В и GND, предоставленному с платы Arduino.

Программа для проектирования на базе 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)
}
}

// ---------------- Программа разработана Р. Гиришем ------------ //

Вы должны указать код вместе с 10-значным номером мобильного телефона получателя.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Замените x номером мобильного телефона

В таких 5 местах кода нужно разместить номер мобильного телефона.

SMS-команды:

· Ваше SMS всегда должно начинаться с «/» и заканчиваться «/»

· / Мотор вкл. / Для активации мотора.

· / Мотор выключен / для выключения мотора.

· / Test / для тестирования схемы.

Вот проверенные SMS при прототипировании:

тестировал СМС при макетировании

Следующие вещи мы можем наблюдать на снимке экрана:

· Сначала двигатель включается, и цепь подтверждается ответом.

· Двигатель отключается, и цепь подтверждается ответом.

· Снова двигатель активируется и отсоединяет датчик, чтобы имитировать ситуацию сухого хода, схема выключает насос и отвечает подтверждением сухого хода насоса.

· Наконец, было отправлено тестовое SMS-сообщение, и схема ответила: «Система работает нормально».

Я бы посоветовал установить датчик расхода воды через пару метров после водяного насоса.

На этом мы завершаем разработку устройства предотвращения сухого пуска насоса на базе GSM.

Теперь давайте посмотрим на простой предохранитель от сухого хода водяного насоса без GSM, это может быть проще из двух.

Принципиальная электрическая схема:

Контроллер насоса на основе SMS с автоматическим отключением всухую

Здесь особо нечего объяснять, просто подключите кабель согласно схеме. Источником питания может быть сетевой адаптер на 9 В с током не менее 500 мА или источник питания, показанный на схеме контроллера на базе GSM.

Кнопка предназначена для включения и выключения насоса.

После того, как вы нажмете кнопку включения насоса, схема сначала ожидает 20 секунд, чтобы определить поток воды, в это время кнопка отключается на 20 секунд.

По истечении первых 20 секунд кнопка активируется, и вы можете выключить насос вручную, снова нажав кнопку.

Если обнаружен расход воды, схема оставляет насос включенным через 20 секунд, в противном случае схема отключает подачу питания на двигатель. Также контур может отключить подачу в любой момент, если поток воды не обнаружен.

Если цепь отключилась из-за сухого хода, светодиод быстро мигает.

Программа для простого предохранителя от сухого хода насоса:

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

На этом оба дизайна заканчиваются.

Если у вас есть какие-либо конкретные вопросы относительно этого контроллера насоса на основе SMS с системой автоматического отключения всухую, пожалуйста, укажите в разделе комментариев, вы можете получить быстрый ответ.




Предыдущая статья: 4 простых схемы датчика приближения - с использованием микросхем IC LM358, IC LM567, IC 555 Далее: Инкубатор с использованием Arduino с автоматическим контролем температуры и влажности