Arduino를 사용한 GSM 펌프 모터 컨트롤러 회로

문제를 제거하기 위해 도구를 사용해보십시오





이 포스트에서 우리는 농부 친화적 인 GSM 펌프 모터 컨트롤러 회로를 구성 할 것입니다.
전 세계 어디에서나 핸드폰 SMS를 통해 원격으로 관개 시스템을 켜고 끄고 확인 메시지를 보내드립니다. 이 아이디어는 Mr. PG Ragavandir에 의해 요청되었습니다.

디자인

농업은 매년 10 억 명 이상의 사람들에게 식량을 제공하는 인도에서 가장 큰 산업 중 하나입니다. 방대한 양의 식량을 생산하는 것은 결코 쉬운 일이 아닙니다. 관개는 하나의 요소입니다.



농업가의 농작물 대부분은 거주지에서 멀리 떨어져 있으며 물 펌프를 켜는 것만으로도 연간 운송 비용이 많이 듭니다.

인도는 IT 기술과 우주 프로그램으로 유명하며 영화“Gravity”보다 적은 비용으로 화성에 도달했습니다. 이는 엔지니어와 과학자 사이에 큰 잠재력을 의미합니다. 그러나 기술이 다른 분야에 균등하게 분포되어 있지 않다 농업은 기술 발전이 느린 분야 중 하나입니다.



이 SMS 기반 GSM 펌프 모터 컨트롤러는 농업 개발 , 이것은 혁명적 인 프로젝트는 아니지만 농업가들 사이에서 기쁨을 가져올 수 있습니다.

프로젝트의 기술적 인 부분을 살펴 보겠습니다.

이 프로젝트는 초보자도 쉽게 수행 할 수 있도록 최소한의 하드웨어 구성 요소로 설계되었습니다.
회로는 전체 설정에 전원을 공급하는 전원 공급 장치로 구성됩니다.

Arduino는 의사 결정을 내리는 프로젝트의 두뇌이며 문자 SMS를 송수신하고 사용자와 통신하는 GSM 모뎀과 모터를 제어하는 ​​릴레이입니다.

작동 원리

Arduino를 사용한 GSM 펌프 모터 컨트롤러 회로

참고 : BC548 트랜지스터의베이스에 최소 10K 저항을 사용하십시오. 330 Ohms는 너무 낮습니다.

그만큼 변압기 강압 230VAC ~ 12VAC 및 브리지 정류기는 AC를 DC 전류로 변환하고 전류는 전해 콘덴서를 통과하여 전원 공급을 원활하게합니다.

고정 12V 전압 조정기 arduino, GSM 모뎀 및 릴레이에 전원을 제공합니다. 그만큼 GSM 모뎀 각각 RX와 TX 인 핀 # 0과 핀 # 1에서 arduino에 연결됩니다.

GSM의 RX는 arduino의 TX에 연결되고 GSM의 TX는 arduino의 RX에 연결됩니다. 헷갈 리시면 아래 다이어그램을 보시면 잘못 연결 되어도 SMS를 보내거나받을 수 없습니다.

ARDUINO TX ---------------------- RX GSM 모뎀
RX ---------------------- TX

arduino와 GSM 모뎀간에 접지 연결도 설정됩니다.

전원 공급 장치에서 arduino 및 GSM으로 직접 전선을 납땜하는 것이 아니라면 GSM 및 arduino 용 수 잭 전원 커넥터를 가져 오십시오. 이로 인해 프로젝트가 복잡해질 수 있습니다.

트랜지스터는 릴레이를 구동하고 다이오드는 릴레이를 켜고 끄는 동안 고전압 스파이크로부터 회로를 보호합니다.

그만큼 LED 표시기 릴레이의 상태를 보여줍니다. LED가 켜지면 릴레이가 활성화되고 LED가 꺼지면 릴레이가 비활성화됩니다.

GSM 모뎀에 유효한 SIM을 삽입하고 SMS 비용을 절감 할 수있는 요금 절단기와 같은 SMS 용 네트워크 공급자가 제공하는 혜택을 활용하십시오.

프로그램 코드 :

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

참고 1 : 프로그램을 컴파일하는 동안 경고가 표시되며 무시해도됩니다. 프로그램이 검증되고 테스트됩니다.

참고 2 : 코드를 업로드하는 동안 arduino에서 TX 및 RX 연결을 제거하십시오.

참고 3 : 프로그램의 4 자리에서 'xxxxxxxxxxxxx'를 수신자의 전화 번호로 바꿉니다.

참고 4 : 모듈에 전원 버튼이없는 GSM 모뎀을 구입하십시오. 정전시 수동으로 버튼을 누르지 않으면 모바일 네트워크에 연결되지 않으므로 이러한 유형의 GSM 모뎀은 피하십시오. GSM 모뎀 하나없이 전원 버튼 전력이 유지 된 후 바로 모바일 네트워크에 연결됩니다.

저자의 GSM 펌프 모터 컨트롤러 회로 프로토 타입 :

위의 설정을 사용하는 방법 :

• 휴대폰에서 / motor on / SMS를 보내 릴레이를 활성화합니다.

• 릴레이를 비활성화하려면 / motor off / SMS를 보냅니다.

• 회로의 응답을 테스트하기 위해 / test / SMS를 보냅니다.

명령은 '/'로 시작하고 '/'로 끝나야합니다. 그렇지 않으면 유효한 요청으로 수락되지 않습니다.

• / motor on /은 릴레이를 켜고 승인 SMS 'Motor Activated'와 함께 돌아옵니다.

• / motor off /는 릴레이를 끄고 승인 SMS 'Motor Deactivated'와 함께 돌아옵니다.

• / test /를 보내면“The System is Working Fine”이라는 승인 SMS와 함께 반환됩니다.

• 위의 메시지는 설정이 제대로 작동하고 있음을 나타냅니다.

• 응답이 반환되지 않으면 모터에 대한 조치가 선행되지 않은 것으로 간주하여 문제를 해결할 수 있습니다.

• 설정 전원을 켠 후 1 분 시스템은 확인 SMS '시스템이 명령을받을 준비가되었습니다.'를 보냅니다. 이 SMS를 받으면 프로젝트를 제공 할 준비가 된 것입니다.

위의 명령은 어리석은 증거이며 모터를 잘못 트리거하지 않습니다. 설치 프로그램은 위에 지정된 명령 이외의 SMS에 응답하지 않습니다.

위의 개념 개선

위의 GSM 펌프 애플리케이션 회로는 많은 독자를 끌어들였으며 수많은 질문과 제안을 받았습니다. 이 웹 사이트의 열렬한 독자 중 한 명이 간디 씨는 이전 디자인에 대한 좋은 개선을 제안했습니다.

모터가 실제로 켜져있을 때 SMS 확인

개선은 사용자가 GSM에서 휴대폰으로 SMS 응답을받는 복귀 확인에 관한 것입니다. 펌프 컨트롤러 시스템 사용자가 유효한 SMS 댓글을 보낼 때.

기존 설계는 릴레이의 실제 상태, 즉 ON / OFF와 관계없이 사용자에게 승인 SMS를 보냅니다.

간디 씨가 제안한 새로운 디자인 변경은 릴레이가 물리적으로 상태를 전환했는지 여부를 릴레이 상태를 확인합니다.

이 새로운 GSM 물에 따른 변화 펌프 컨트롤러 설계 회로도에 표시된 피드백 시스템을 추가하고 새 코드를 업로드하여 번거 로움없이 이전 설계에 구현할 수 있습니다.

회로도 :

SMS 명령 '/ MOTOR ON /'을 보내면 9 번 핀이 하이가되고 릴레이가 켜집니다. 릴레이가 공통 핀과 N / O 핀을 연결하면 펌프가 시작되고 출력에서 ​​+5를 제공하는 변압기도 켜집니다.

+ 5V 신호는 7 번 핀에 공급되어 '모터 활성화 됨'승인과 함께 확인 및 반환됩니다.

'/ MOTOR OFF /'를 보내면 9 번 핀이 LOW로 바뀌고 릴레이가 공통 핀과 N / O 핀을 분리하면 펌프와 연결된 변압기가 꺼집니다. 핀 # 7의 출력은 LOW가되고 'Motor deactivated'라는 승인과 함께 반환됩니다.

승인이없는 경우 휴대폰으로 SMS 수신 , 조치가 취해지지 않았고 펌프가 마지막으로 요청 된 상태임을 확인할 수 있습니다. 사이트로 이동하여 문제를 해결하거나 정전으로 인해 승인을받지 못할 수 있습니다.

프로그램 코드 :

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

위의 구현은 실제로 테스트되지 않았지만 저자는 위의 아이디어가 작동 할 것이라고 확신합니다. 위의 개선 사항에 대해 독자가 발견 한 경우 댓글 섹션을 통해 표현할 수 있습니다.

부품 목록

1) 변압기 강압 12-0V
2) 다이오드 IN4007 x5
삼) LM7812 x1
4) 릴레이 12V x1
5) BC548 트랜지스터 x1
6) 전해 커패시터 1000uF x1
7) GSM 모듈 : SIM 800 또는 SIM 900 모델
8) 330 Ohm 저항기 x2
9) LED RED / GREEN x1
10) Arduino Uno 또는 Arduino nano 또는 Arduino Mega
11) DC 수 잭 x2

비디오 클립:

3 상 모터와 통합

위의 설계를 위해 계전기 단계를 업그레이드하여 GSM 휴대폰 명령을 사용하는 3 상 모터 작동에 호환되도록 많은 요청을 받고 있습니다.

따라서 필요한 회로를 설계하기로 결정했습니다. 바라건대 일반적인 시작 및 중지 접촉기 메커니즘을 가진 주어진 3 상 모터를 켜고 끌 수 있습니다.

다음 그림은 IC 4017 회로를 사용하여 설계를 구성하는 방법을 보여줍니다.

GSM 3 상 모터 컨트롤러 원격 휴대 전화

참고 : 100uF / 10K 및 220uF 및 47K 값은 각 트랜지스터 및 릴레이 단계에 대한 정확한 지연 량을 보장하기 위해 약간의 조정이 필요할 수 있습니다.




이전 : 침입자 위치 표시기 보안 회로 다음 : 원격 제어 태양 광 램프 강도 컨트롤러 회로