自動ドライランシャットオフ付きSMSベースのポンプコントローラー

問題を排除するために楽器を試してください





この投稿では、ポンプを通る水の流れが検出されない場合にポンプを自動的にシャットダウンするSMSベースのウォーターポンプコントローラーを構築します。また、記事の次の半分では、GSMを使用しないさらに単純な自動ドライラン防止回路を構築します。

モーターのドライランとは

すでに議論しました GSMベースのポンプコントローラー まだの場合は、このWebサイトで確認してください。ここでは、既存の設計に追加機能を追加して、モーターがドライランするのを防ぎます。



ドライラン 液体の流れなしでウォーターポンプを実行することを意味します。その結果、水を汲み上げずにモーターを稼働させていた時間とウォーターポンプの品質によっては、サービス不能な損傷に対するサービス可能な損傷が発生する可能性があります。

はい、ウォーターポンプは安くはありません。あなたが毎日畑を灌漑している農業従事者であれば、ウォーターポンプの小さな問題が経済的損失につながる可能性があります。



ポンプの整備には時間とお金がかかる場合がありますので、「予防は治療よりも優れている」という有名なスローガンに従うことをお勧めします。

モータードライラン これは非常に一般的な問題であり、ポンプを流れるのに十分な水がない場合、機械部品と電気部品の過熱が発生します。

ある時点で、機械部品が溶け始め、短絡を引き起こす可能性もあります。

このような災害は、このプロジェクトで提案されている回路を使用して防ぐことができます。

水の流れを検出するために、私たちは YF-S201水流センサーを利用 。センサーによって水流が検出されない場合、センサーはウォーターポンプへの電源を遮断し、ドライランの遮断について受信者にSMS確認応答を送信します。

このGSMベースの制御を使用すると、ポンプのオンとオフを切り替えることができ、回路はポンプのドライランの問題について認識します。

SMSベースのポンプ制御用の回路:

SMSベースのポンプ制御用の回路:

この回路は、9Vトランスを使用したAC-DCコンバータ、ブリッジ整流器、1000 uFの平滑コンデンサ、およびLM78099Vレギュレータで構成されています。 ArduinoボードとSIM800 / SIM 900GSMモジュールに電力を供給するために2つのDCジャックが用意されています。

Arduinoボードは十分な電流を供給できないため、Arduinoの5VピンからGSMモジュールの5VピンでGSMモジュールに電力を供給しないでください。

間の接続 ArduinoとGSMモジュール 次のように:

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

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

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

主電源はLM7809レギュレーターによって供給されます。

LEDインジケータは、リレーがアクティブになると点灯し、リレーが非アクティブになるとオフになります。

ダイオードIN4007は、リレーのオンとオフを切り替えるときに発生する高電圧スパイクを吸収します。

水流センサーは、ArduinoのA0ピン、Arduinoボードから提供される5VおよびGNDに接続されています。

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)
}
}

// ---------------- R.Girishによって開発されたプログラム------------ //

受信者の10桁の携帯電話番号を使用してコードを配置する必要があります。

Serial.println( 'AT + CMGS = ' + 91xxxxxxxxxx ' r')// xを携帯電話番号に置き換えます

あなたはコードのそのような5つの場所に携帯電話番号を置く必要があります。

SMSコマンド:

・SMSは常に「/」で始まり、「/」で終わる必要があります

・モーターを作動させるための/ motor on /。

・/ motor off /モーターを非アクティブにします。

・回路をテストするための/ test /。

プロトタイピング中にテストされたSMSは次のとおりです。

プロトタイピング中にSMSをテスト

スクリーンショットから観察できる次のこと:

・最初にモーターがオンになり、回路が応答で確認されます。

・モーターが非アクティブになり、回路が応答で確認されます。

・再びモーターが作動し、センサーのプラグを抜いてドライランの状況をシミュレートします。回路はポンプをオフにし、ポンプのドライラン確認応答を返します。

・最後に、テストSMSが送信され、回路は「システムは正常に機能しています」と応答しました。

ウォーターポンプの数メートル後に水流センサーを設置することをお勧めします。

これで、GSMベースのポンプドライラン防止装置は終わりです。

次に、GSMを使用しない単純なウォーターポンプドライラン防止装置を見てみましょう。これは、2つのうちで簡単な場合があります。

回路図:

自動ドライランシャットオフ付きSMSベースのポンプコントローラー

ここで説明することはあまりありません。回路図に従って配線するだけです。電源は、少なくとも500 mAの9VACアダプタ、またはGSMベースのコントローラの回路図に示されている電源にすることができます。

押しボタンは、ポンプのオンとオフを切り替えるために用意されています。

ボタンを押してポンプをオンにすると、回路は最初に20秒まで待機して水の流れを検出し、その間、押しボタンは20秒間無効になります。

最初の20秒後、プッシュボタンが有効になり、もう一度プッシュボタンを押すことで手動でポンプをオフにすることができます。

水流が検出された場合、回路は20秒後にポンプをオンに保ちます。それ以外の場合、回路はモーターへの電源を遮断します。また、水流が検出されない場合、回路はいつでも供給を遮断することができます。

ドライランにより回路が遮断されると、LEDが高速で点滅します。

単純なポンプドライラン防止装置のプログラム:

//--------------------------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、IC555を使用 次へ:自動温度および湿度制御を備えたArduinoを使用したインキュベーター