Bộ điều khiển máy bơm dựa trên SMS với Tự động tắt chạy khô tự động

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng tôi sẽ xây dựng một bộ điều khiển máy bơm nước dựa trên SMS với chức năng tự động tắt máy bơm khi không phát hiện thấy dòng nước chảy qua máy bơm. Chúng tôi cũng sẽ xây dựng một mạch ngăn chặn chạy khô tự động khác đơn giản hơn nhiều mà không có GSM trong nửa tiếp theo của bài viết.

Chạy khô trong động cơ là gì

Chúng tôi đã thảo luận về Bộ điều khiển máy bơm dựa trên GSM trên trang web này, hãy kiểm tra nếu chưa. Ở đây chúng tôi đang thêm một tính năng bổ sung trên thiết kế hiện có, điều này sẽ ngăn động cơ chạy khô.



Chạy khô nghĩa là máy bơm nước chạy không có dòng chất lỏng. Hậu quả có thể là hư hỏng có thể sửa chữa được hoặc hư hỏng không thể sửa chữa tùy thuộc vào thời gian động cơ đã chạy mà không bơm nước và chất lượng của máy bơm nước.

Đúng vậy, máy bơm nước không hề rẻ và nếu bạn là nông dân tưới ruộng hàng ngày, thì một vấn đề nhỏ với máy bơm nước của bạn có thể khiến bạn thiệt hại về kinh tế.



Việc bảo dưỡng máy bơm có thể mất một khoảng thời gian và tiền bạc, vì vậy tốt hơn hết bạn nên tuân theo khẩu hiệu nổi tiếng “phòng bệnh hơn chữa bệnh”.

Động cơ chạy khô là một vấn đề rất phổ biến, khi không có đủ nước chảy qua máy bơm, sẽ xảy ra hiện tượng nóng quá mức các bộ phận cơ học cũng như các bộ phận điện.

Tại một thời điểm, các thành phần cơ khí sẽ bắt đầu nóng chảy và cũng có thể gây ra đoản mạch.

Dự án này có thể ngăn chặn thảm họa như vậy bằng cách sử dụng mạch điện.

Để phát hiện dòng chảy của nước, chúng tôi sử dụng cảm biến lưu lượng nước YF-S201 . Khi cảm biến không phát hiện thấy dòng nước nào, nó sẽ cắt nguồn cấp cho máy bơm nước và gửi tin nhắn SMS xác nhận cho người nhận về việc quá trình chạy cạn đã tắt.

Với điều khiển dựa trên GSM này, bạn có thể bật và tắt máy bơm và mạch cũng thông báo về vấn đề máy bơm chạy khô.

Mạch điều khiển bơm dựa trên SMS:

Mạch điều khiển bơm dựa trên SMS:

Mạch bao gồm bộ chuyển đổi AC sang DC sử dụng biến áp 9V, bộ chỉnh lưu cầu một tụ làm mịn 1000 uF và một bộ điều chỉnh LM7809 9V. Hai giắc cắm DC được cung cấp để cấp nguồn cho bảng Arduino và mô-đun SIM 800 / SIM 900 GSM.

Không bao giờ cấp nguồn cho mô-đun GSM bằng chân 5V của Arduino đến chân 5V của mô-đun GSM vì bảng Arduino không thể cung cấp đủ dòng điện.

Sự kết nối giữa Mô-đun Arduino và GSM như sau:

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

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

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

Nguồn cung cấp chính được cung cấp bởi bộ điều chỉnh LM 7809.

Đèn báo LED sẽ phát sáng nếu rơ le được kích hoạt và tắt khi rơ le ngừng hoạt động.

Diode IN4007 sẽ hấp thụ xung đột biến điện áp cao xảy ra trong khi bật và tắt rơ le.

Cảm biến lưu lượng nước được kết nối với chân A0 của Arduino, 5V và GND được cung cấp từ board Arduino.

Chương trình cho thiết kế dựa trên 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)
}
}

// ---------------- Chương trình được phát triển bởi R.Girish ------------ //

Bạn phải đặt mã bằng số điện thoại di động 10 chữ số của người nhận.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Thay x bằng số di động

Bạn cần đặt số điện thoại di động ở 5 vị trí như vậy trong mã.

Lệnh SMS:

· SMS của bạn phải luôn bắt đầu bằng “/” và kết thúc bằng “/”

· / Motor on / để kích hoạt động cơ.

· / Tắt động cơ / để tắt động cơ.

· / Test / để kiểm tra mạch.

Đây là SMS đã thử nghiệm trong khi tạo mẫu:

đã thử nghiệm SMS trong khi tạo mẫu

Những điều sau đây chúng ta có thể quan sát từ ảnh chụp màn hình:

· Đầu tiên động cơ được bật và mạch nhận biết có phản hồi.

· Động cơ ngừng hoạt động và mạch được xác nhận với một phản hồi.

· Một lần nữa động cơ được kích hoạt và rút phích cắm của cảm biến để mô phỏng tình trạng chạy khô, mạch tắt máy bơm và trả lời bằng xác nhận máy bơm chạy khô.

· Cuối cùng, một tin nhắn SMS kiểm tra đã được gửi và mạch trả lời với 'Hệ thống đang hoạt động tốt'.

Tôi sẽ đề nghị lắp đặt cảm biến lưu lượng nước sau máy bơm nước vài mét.

Điều đó kết luận bộ chống chạy khô máy bơm dựa trên GSM.

Bây giờ chúng ta hãy xem xét bộ ngăn chặn chạy cạn của máy bơm nước đơn giản không có GSM, điều này có thể dễ dàng hơn trong số cả hai.

Sơ đồ mạch:

Bộ điều khiển máy bơm dựa trên SMS với Tự động tắt chạy khô tự động

Không có gì nhiều để giải thích ở đây, chỉ cần kết nối theo sơ đồ. Nguồn cung cấp có thể là bộ chuyển đổi âm tường 9V với ít nhất 500 mA hoặc nguồn được minh họa trong sơ đồ bộ điều khiển dựa trên GSM.

Nút ấn được cung cấp để bật và tắt máy bơm.

Sau khi bạn nhấn nút để bật máy bơm, mạch sẽ đợi cho đến 20 giây ban đầu để phát hiện dòng chảy của nước, trong thời gian đó, nút nhấn sẽ bị tắt trong 20 giây.

Sau 20 giây đầu tiên, nút nhấn được bật và bạn có thể TẮT máy bơm theo cách thủ công bằng cách nhấn lại nút nhấn.

Nếu phát hiện thấy dòng nước, mạch sẽ giữ máy bơm BẬT sau 20 giây, nếu không mạch sẽ cắt nguồn cung cấp cho động cơ. Ngoài ra, mạch có thể cắt nguồn cung cấp bất kỳ lúc nào, nếu không phát hiện thấy dòng nước.

Nếu mạch tắt do chạy khô, đèn LED sẽ nhấp nháy nhanh chóng.

Chương trình cho bộ chống chạy khô máy bơm đơn giản:

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

Điều đó kết thúc cả hai thiết kế.

Nếu bạn có bất kỳ câu hỏi cụ thể nào liên quan đến bộ điều khiển máy bơm dựa trên SMS này với mạch ngắt chạy khô tự động, vui lòng bày tỏ trong phần bình luận, bạn có thể nhận được câu trả lời nhanh chóng.




Trước: 4 Mạch Cảm Biến Tiệm Cận Đơn Giản - Sử Dụng IC LM358, IC LM567, IC 555 Tiếp theo: Tủ ấm sử dụng Arduino với điều khiển nhiệt độ và độ ẩm tự động