Mạch điều khiển động cơ bơm GSM sử dụng Arduino

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 mạch điều khiển động cơ máy bơm GSM thân thiện với nông dân có thể
bật và tắt hệ thống tưới từ xa từ bất kỳ đâu trên thế giới qua SMS trên điện thoại di động và gửi lại cho bạn một tin nhắn xác nhận. Ý tưởng do ông PG Ragavandir yêu cầu.

Thiết kế

Nông nghiệp là một trong những ngành công nghiệp lớn nhất ở Ấn Độ, phục vụ lương thực cho hơn một tỷ người mỗi năm. Sản xuất một lượng lớn lương thực không bao giờ là một nhiệm vụ dễ dàng mà thủy lợi là một trong những yếu tố.



Hầu hết cánh đồng trồng trọt của người nông dân nằm xa nơi ở của họ, chỉ cần bật máy bơm nước là chi phí rất lớn cho việc vận chuyển của họ mỗi năm.

Ấn Độ được biết đến với các kỹ năng CNTT và các chương trình không gian và đạt đến sao hỏa thấp hơn chi phí của bộ phim “Gravity”, điều này cho thấy tiềm năng to lớn giữa các Kỹ sư và Nhà khoa học. Tuy nhiên, các kỹ năng không được phân bổ đồng đều trên các lĩnh vực khác nhau, nông nghiệp là một trong những lĩnh vực công nghệ phát triển chậm.



Bộ điều khiển động cơ máy bơm GSM dựa trên tin nhắn SMS này có một bước tiến nhỏ đối với sự phát triển nông nghiệp , đây có thể không phải là một dự án mang tính cách mạng nhưng nó có thể mang lại niềm vui cho những người làm nông nghiệp.

Hãy đi sâu vào phần kỹ thuật của dự án.

Dự án được thiết kế với các thành phần phần cứng tối thiểu để người mới bắt đầu có thể hoàn thành nó một cách dễ dàng.
Mạch bao gồm nguồn điện, cung cấp năng lượng cho toàn bộ thiết lập.

Arduino là bộ não của dự án đưa ra quyết định và modem GSM sẽ gửi và nhận tin nhắn SMS văn bản và giao tiếp với người dùng và chuyển tiếp điều khiển động cơ.

Làm thế nào nó hoạt động

Mạch điều khiển động cơ bơm GSM sử dụng Arduino

Lưu ý: Vui lòng sử dụng điện trở ít nhất 10K ở chân của bóng bán dẫn BC548, 330 Ohms là quá thấp.

Các bước xuống máy biến áp 230VAC thành 12VAC và bộ chỉnh lưu cầu chuyển đổi AC thành dòng điện một chiều và dòng điện đi qua một tụ điện để cung cấp điện trơn tru.

Một cố định Ổn áp 12V cấp nguồn cho arduino, modem GSM và rơ le. Các Modem GSM được kết nối với arduino ở chân # 0 và chân # 1, tương ứng là RX và TX.

RX của GSM được kết nối với TX của arduino và TX của GSM được kết nối với RX của arduino. Nếu bạn bối rối, chỉ cần nhìn vào sơ đồ dưới đây, kết nối sai sẽ không gửi hoặc nhận được SMS.

ARDUINO TX ---------------------- Modem GSM RX
RX ---------------------- TX

Kết nối mặt đất với mặt đất cũng được thiết lập giữa arduino và modem GSM.

Cố gắng lấy đầu nối nguồn giắc đực cho GSM và arduino, nếu không chỉ hàn dây trực tiếp từ nguồn cấp đến arduino và GSM, điều này có thể làm tăng thêm sự lộn xộn trong dự án.

Bóng bán dẫn điều khiển rơle và diode bảo vệ mạch khỏi các xung điện áp cao trong khi chuyển đổi BẬT / TẮT rơle.

Các Chỉ dẫn hiển thị trạng thái của rơ le. Nếu đèn LED phát sáng thì rơle đã được kích hoạt và nếu đèn LED tắt, thì rơle đã ngừng hoạt động.

Lắp SIM hợp lệ vào modem GSM và cố gắng tận dụng các ưu đãi do nhà cung cấp mạng cung cấp cho SMS, chẳng hạn như máy cắt cước, điều này sẽ giảm chi phí cho SMS.

Mã chương trình:

//----------------Program developed by R.Girish------------//
int LED = 8
int motor = 9
int temp=0
int i=0
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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
delay(1000)
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
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 developed by R.Girish------------//

LƯU Ý 1: Trong khi biên dịch chương trình, nó hiển thị một cảnh báo, bạn có thể bỏ qua nó. Chương trình được xác minh và thử nghiệm.

LƯU Ý 2: Vui lòng xóa kết nối TX và RX khỏi arduino trong khi tải mã lên.

LƯU Ý 3: Thay thế “xxxxxxxxxxxxx” bằng số điện thoại của người nhận ở 4 vị trí trong chương trình.

LƯU Ý 4: Vui lòng mua một modem GSM không có nút nguồn trong mô-đun trong trường hợp mất điện, nó sẽ không kết nối được với mạng di động trừ khi bạn nhấn nút theo cách thủ công, vì vậy hãy tránh loại modem GSM như vậy. Modem GSM không có nút nguồn sẽ kết nối trực tiếp vào mạng di động sau khi có điện.

Nguyên mẫu của tác giả về Mạch điều khiển động cơ bơm GSM:

Cách sử dụng thiết lập trên:

• Gửi / bật động cơ / SMS từ điện thoại di động của bạn để kích hoạt rơle.

• Gửi / tắt động cơ / SMS để tắt rơle.

• Gửi / kiểm tra / SMS để kiểm tra phản ứng từ mạch.

Đảm bảo bạn bắt đầu lệnh bằng ”/” và kết thúc bằng “/”, nếu không lệnh sẽ không chấp nhận là yêu cầu hợp lệ.

• / motor on / sẽ BẬT rơ le và trở lại với một tin nhắn SMS xác nhận “Động cơ đã được kích hoạt.”

• / motor off / sẽ tắt rơ le và trả về với một tin nhắn SMS xác nhận “Motor Deactive.”

• Nếu bạn gửi / kiểm tra / nó sẽ trả về với một tin nhắn SMS xác nhận “Hệ thống đang hoạt động tốt.”

• Thông báo trên cho biết rằng thiết lập của bạn đang hoạt động tốt.

• Nếu không có xác nhận nào được trả lại, bạn có thể cho rằng không có hành động nào được thực hiện trước trên động cơ và bạn có thể khắc phục sự cố.

• Sau khi bật nguồn thiết lập BẬT, hãy chờ 1 phút hệ thống sẽ gửi một tin nhắn SMS xác nhận “Hệ thống đã sẵn sàng chấp nhận lệnh.” khi bạn nhận được tin nhắn SMS này, dự án của bạn đã sẵn sàng để phục vụ.

Các lệnh trên là bằng chứng đánh lừa và không bao giờ kích hoạt sai động cơ, quá trình thiết lập sẽ không phản hồi bất kỳ SMS nào ngoài các lời khen đã chỉ định ở trên.

Cải thiện khái niệm trên

Mạch ứng dụng máy bơm GSM ở trên này đã thu hút rất nhiều độc giả và chúng tôi đã nhận được rất nhiều câu hỏi và đề xuất. Một trong những độc giả cuồng nhiệt của trang web này Mr.Gandhi đã đề xuất một cải tiến tốt cho thiết kế trước đó.

Thông báo SMS khi Động cơ thực sự BẬT

Cải tiến là tất cả về xác nhận hoàn nguyên, nơi người dùng sẽ nhận được phản hồi SMS trong điện thoại di động của mình từ GSM hệ thống điều khiển máy bơm khi người dùng gửi một nhận xét SMS hợp lệ.

Thiết kế hiện có sẽ gửi một tin nhắn SMS xác nhận đến người dùng độc lập với trạng thái thực tế của rơle, tức là BẬT / TẮT.

Thay đổi thiết kế mới do Mr.Gandhi đề xuất sẽ kiểm tra trạng thái của rơle xem rơle có được chuyển trạng thái vật lý hay không.

Sự thay đổi theo nước GSM mới này thiết kế bộ điều khiển máy bơm có thể được triển khai cho thiết kế trước đó mà không gặp nhiều rắc rối bằng cách thêm hệ thống phản hồi như được hiển thị trong sơ đồ và tải lên mã mới.

Sơ đồ mạch:

Khi chúng tôi gửi lệnh SMS “/ MOTOR ON /”, chân số 9 sẽ tăng cao và kích hoạt rơle ON. Nếu rơle kết nối chân chung và chân N / O, máy bơm sẽ khởi động và đồng thời BẬT biến áp sẽ cho +5 ở đầu ra.

Tín hiệu + 5V được đưa đến chân số 7, chân này sẽ xác nhận và trả về với thông báo 'Đã kích hoạt động cơ'.

Khi chúng tôi gửi “/ MOTOR OFF /”, chân số 9 chuyển sang LOW và rơ le ngắt kết nối các chân chung và N / O, điều này sẽ tắt máy bơm cũng như máy biến áp được kết nối. Đầu ra tại chân số 7 ở mức THẤP và trả về với thông báo “Động cơ đã ngừng hoạt động”.

Nếu không thừa nhận SMS được nhận trong điện thoại di động của bạn , chúng tôi có thể xác nhận rằng không có hành động nào được thực hiện và máy bơm ở trạng thái được yêu cầu cuối cùng, bạn có thể đến trang web và khắc phục sự cố hoặc không nhận được thông báo nào về việc cắt điện do cắt điện.

Mã chương trình:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp=0
int i=0
int ack=7
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(ack,INPUT)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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)
delay(100)
if(digitalRead(ack)==1)
{
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
delay(1000)
}
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
delay(5000)
if(digitalRead(ack)==0)
{
digitalWrite(LED,LOW)
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 developed by R.Girish------------//

Việc triển khai trên không được thử nghiệm thực tế, nhưng tác giả chắc chắn phần trăm rằng ý tưởng trên sẽ hoạt động. Nếu độc giả phát hiện bất kỳ vấn đề nào với sự cải tiến trên có thể bày tỏ qua phần bình luận.

Danh sách bộ phận

1) Biến áp bước xuống 12-0V
2) Điốt IN4007 x5
3) LM7812 x1
4) Rơ le 12V x1
5) Bóng bán dẫn BC548 x1
6) Tụ điện 1000uF x1
7) Mô-đun GSM: Kiểu SIM 800 hoặc SIM 900
8) Điện trở 330 Ohm x2
9) LED ĐỎ / XANH LÁ x1
10) Arduino Uno hoặc Arduino nano hoặc Arduino Mega
11) Giắc cắm nam DC x2

Đoạn ghi hình:

Tích hợp với Động cơ 3 pha

Tôi đã nhận được nhiều yêu cầu nâng cấp giai đoạn rơ le cho thiết kế trên để nó trở nên tương thích để vận hành động cơ 3 pha bằng lệnh điện thoại di động GSM.

Vì vậy, tôi quyết định thiết kế mạch yêu cầu sẽ hy vọng có thể BẬT và TẮT động cơ 3 pha nhất định có cơ cấu công tắc tơ khởi động và dừng điển hình.

Hình sau cho thấy cách cấu hình thiết kế bằng mạch IC 4017.

GSM 3 pha điều khiển động cơ điện thoại di động từ xa

LƯU Ý: Các giá trị 100uF / 10K và 220uF và 47K có thể cần một số điều chỉnh để đảm bảo độ trễ chính xác cho các bóng bán dẫn và giai đoạn rơle tương ứng.




Một cặp: Mạch bảo mật chỉ báo vị trí kẻ xâm nhập Tiếp theo: Mạch điều khiển cường độ đèn năng lượng mặt trời được điều khiển từ xa