ในโพสต์นี้เราจะสร้างตัวควบคุมปั๊มน้ำที่ใช้ SMS พร้อมการปิดปั๊มอัตโนมัติเมื่อตรวจไม่พบการไหลของน้ำผ่านปั๊ม นอกจากนี้เราจะสร้างวงจรป้องกันการวิ่งแห้งอัตโนมัติที่ง่ายกว่ามากโดยไม่มีระบบ GSM ในช่วงครึ่งหน้าของบทความ
Dry Run ใน Motors คืออะไร
เราได้พูดคุยกันไปแล้ว ตัวควบคุมปั๊มที่ใช้ระบบ GSM ในเว็บไซต์นี้ให้ตรวจสอบหากยังไม่ได้ทำ เรากำลังเพิ่มคุณลักษณะเพิ่มเติมในการออกแบบที่มีอยู่ซึ่งจะป้องกันไม่ให้มอเตอร์ทำงานแห้ง
วิ่งแห้ง หมายถึงการใช้ปั๊มน้ำโดยไม่มีของเหลวไหล ผลที่ตามมาอาจเป็นความเสียหายที่สามารถให้บริการได้กับความเสียหายที่ไม่สามารถให้บริการได้ขึ้นอยู่กับระยะเวลาที่มอเตอร์ทำงานโดยไม่ต้องสูบน้ำและคุณภาพของปั๊มน้ำ
ใช่ปั๊มน้ำไม่ใช่ราคาถูกและหากคุณเป็นเกษตรกรที่ทดน้ำในสนามทุกวันปัญหาเล็กน้อยเกี่ยวกับปั๊มน้ำของคุณอาจทำให้คุณสูญเสียทางเศรษฐกิจได้
การให้บริการปั๊มอาจใช้เวลาและเงินพอสมควรดังนั้นจึงควรปฏิบัติตามสโลแกนที่มีชื่อเสียง 'การป้องกันดีกว่าการรักษา'
มอเตอร์แห้ง เป็นปัญหาที่พบบ่อยมากเมื่อมีน้ำไม่เพียงพอที่จะไหลผ่านปั๊มความร้อนของส่วนประกอบทางกลและส่วนประกอบไฟฟ้าจะเกิดขึ้น
เมื่อถึงจุดหนึ่งส่วนประกอบทางกลจะเริ่มละลายและอาจทำให้เกิดไฟฟ้าลัดวงจร
ภัยพิบัติดังกล่าวอาจป้องกันได้โดยใช้วงจรซึ่งเสนอในโครงการนี้
ในการตรวจจับการไหลของน้ำเราคือ ใช้เซ็นเซอร์การไหลของน้ำ YF-S201 . เมื่อเซ็นเซอร์ตรวจไม่พบการไหลของน้ำเซ็นเซอร์จะตัดการจ่ายไฟไปยังปั๊มน้ำและส่ง SMS แจ้งให้ผู้รับทราบเกี่ยวกับการปิดเครื่อง
ด้วยการควบคุมโดยใช้ระบบ GSM นี้คุณสามารถเปิดและปิดปั๊มและวงจรจะรับทราบเกี่ยวกับปัญหาการทำงานของปั๊มแห้ง
วงจรสำหรับการควบคุมปั๊มตาม SMS:
วงจรประกอบด้วยตัวแปลง AC เป็น DC โดยใช้หม้อแปลง 9V, วงจรเรียงกระแสแบบบริดจ์ตัวเก็บประจุแบบเรียบ 1000 uF และตัวควบคุม LM7809 9V มีแจ็ค DC สองตัวสำหรับเปิดบอร์ด Arduino และโมดูล SIM 800 / SIM 900 GSM
อย่าจ่ายกระแสไฟให้โมดูล GSM ด้วยขา 5V ของ Arduino ถึง 5V ของโมดูล GSM เนื่องจากบอร์ด Arduino ไม่สามารถจ่ายกระแสไฟได้เพียงพอ
การเชื่อมต่อระหว่าง โมดูล Arduino และ GSM ดังต่อไปนี้:
Arduino TX ---------------------- RX SIM 800/900
Arduino RX --------------------- TX SIM 800/900
Arduino GND ------------------- GND SIM 800/900
แหล่งจ่ายไฟหลักมาจากตัวควบคุม LM 7809
ไฟ LED จะเรืองแสงหากรีเลย์ถูกเปิดใช้งานและดับลงเมื่อปิดการทำงานของรีเลย์
ไดโอด IN4007 จะดูดซับแรงดันไฟฟ้าสูงซึ่งเกิดขึ้นขณะเปิดและปิดรีเลย์
เซ็นเซอร์การไหลของน้ำเชื่อมต่อกับ A0 พินของ Arduino, 5V และ 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)
}
}
// ---------------- โปรแกรมที่พัฒนาโดย R.Girish ------------ //
คุณต้องวางรหัสพร้อมหมายเลขโทรศัพท์มือถือ 10 หลักของผู้รับ
Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // แทนที่ x ด้วยหมายเลขโทรศัพท์มือถือ
คุณต้องวางหมายเลขโทรศัพท์ใน 5 ตำแหน่งดังกล่าวในรหัส
คำสั่ง SMS:
· SMS ของคุณต้องขึ้นต้นด้วย“ /” และลงท้ายด้วย“ /” เสมอ
· / มอเตอร์เปิด / สำหรับเปิดใช้งานมอเตอร์
· / ปิดมอเตอร์ / สำหรับปิดการทำงานของมอเตอร์
· / ทดสอบ / สำหรับการทดสอบวงจร
นี่คือ SMS ที่ทดสอบขณะสร้างต้นแบบ:
สิ่งต่อไปนี้เราสามารถสังเกตได้จากภาพหน้าจอ:
·ก่อนอื่นมอเตอร์จะเปิดและวงจรรับทราบพร้อมตอบกลับ
·มอเตอร์ถูกปิดการใช้งานและตอบรับการตอบกลับของวงจร
·อีกครั้งมอเตอร์ถูกเปิดใช้งานและถอดปลั๊กเซ็นเซอร์เพื่อจำลองสถานการณ์การวิ่งแห้งวงจรจะปิดปั๊มและตอบกลับพร้อมรับทราบการทำงานของเครื่องสูบน้ำ
·ในที่สุด SMS ทดสอบได้ส่งไปและวงจรตอบกลับว่า 'ระบบทำงานได้ดี'
ฉันขอแนะนำให้ติดตั้งเซ็นเซอร์วัดการไหลของน้ำหลังจากปั๊มน้ำไปสองสามเมตร
นั่นเป็นการสรุปตัวป้องกันการวิ่งแห้งของปั๊มที่ใช้ระบบ GSM
ตอนนี้เรามาดูตัวป้องกันการทำงานของปั๊มน้ำแบบแห้งที่ไม่มีระบบ GSM ซึ่งอาจเป็นวิธีที่ง่ายกว่าสำหรับทั้งสอง
แผนภูมิวงจรรวม:
ไม่มีอะไรจะอธิบายที่นี่มากนักเพียงแค่ต่อสายตามแผนผัง แหล่งจ่ายไฟสามารถเป็นอะแดปเตอร์ติดผนัง 9V ที่มีอย่างน้อย 500 mA หรือแหล่งจ่ายไฟที่แสดงในแผนผังคอนโทรลเลอร์ที่ใช้ระบบ 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, IC 555 ถัดไป: ศูนย์บ่มเพาะโดยใช้ Arduino พร้อมระบบควบคุมอุณหภูมิและความชื้นอัตโนมัติ