Circuit de contrôleur de moteur de pompe GSM utilisant Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un circuit de contrôleur de moteur de pompe GSM adapté aux agriculteurs qui pourrait
allumez et éteignez le système d'irrigation à distance de n'importe où dans le monde par SMS sur téléphone portable et vous renvoyez un message d'accusé de réception. L'idée a été demandée par M. PG Ragavandir.

La conception

L'agriculture est l'une des plus grandes industries en Inde, qui sert de la nourriture à plus d'un milliard de personnes chaque année. Produire une grande quantité de nourriture n'est jamais une tâche facile, l'irrigation en est un des facteurs.



La plupart des champs de culture des agriculteurs sont situés loin de leur résidence, le simple fait d’allumer la pompe à eau coûte énormément pour leur transport par an.

L'Inde est connue pour ses compétences informatiques et ses programmes spatiaux et a atteint un prix inférieur au coût du film «Gravity», ce qui signifie le grand potentiel des ingénieurs et des scientifiques. Mais, les compétences ne sont pas uniformément réparties entre les différents domaines, l'agriculture est l'un des domaines où le développement technologique est lent.



Ce contrôleur de moteur de pompe GSM basé sur SMS fait un pas de bébé vers développement agricole , ce n'est peut-être pas un projet révolutionnaire, mais cela peut ravir les agriculteurs.

Passons à la partie technique du projet.

Le projet est conçu avec un minimum de composants matériels afin qu'un débutant puisse l'accomplir facilement.
Le circuit se compose d'une alimentation électrique qui alimente l'ensemble de l'installation.

L'Arduino est le cerveau du projet qui prend les décisions et le modem GSM qui envoie et reçoit des SMS texte et communique avec l'utilisateur et le relais qui contrôle le moteur.

Comment ça fonctionne

Circuit de contrôleur de moteur de pompe GSM utilisant Arduino

Remarque: veuillez utiliser au moins une résistance de 10K à la base du transistor BC548, 330 Ohms est trop faible.

Le abaissement du transformateur le 230VAC à 12VAC et le pont redresseur convertissent le courant alternatif en courant continu et le courant passe à travers un condensateur électrolytique pour lisser l'alimentation.

Un fixe Régulateur de tension 12V alimente l'arduino, le modem GSM et le relais. Le Modem GSM est connecté à arduino aux broches # 0 et # 1, qui sont respectivement RX et TX.

Le RX du GSM est connecté au TX de l'arduino et le TX du GSM est connecté au RX de l'arduino. Si vous êtes confus, regardez simplement le diagramme ci-dessous, une mauvaise connexion n'enverra ni ne recevra de SMS.

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

Une connexion terre à terre est également établie entre l'arduino et le modem GSM.

Essayez d'obtenir un connecteur d'alimentation jack mâle pour le GSM et l'arduino, sinon soudez les fils directement de l'alimentation à l'arduino et au GSM, ce qui pourrait augmenter le désordre dans le projet.

Le transistor pilote le relais et la diode protège le circuit des pointes de haute tension tout en activant / désactivant le relais.

Le Indicateur LED affiche l'état du relais. Si la LED s'allume, le relais est activé et si la LED est éteinte, le relais est désactivé.

Insérez une carte SIM valide sur le modem GSM et essayez de profiter des offres proposées par le fournisseur de réseau pour les SMS, telles que les réductions de taux, ce qui réduira les frais de SMS.

Code de programme:

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

REMARQUE 1: lors de la compilation du programme, il affiche un avertissement que vous pouvez ignorer. Le programme est vérifié et testé.

REMARQUE 2: veuillez supprimer la connexion TX et RX d'arduino lors du téléchargement du code.

REMARQUE 3: Remplacez «xxxxxxxxxxxxx» par le numéro de téléphone du destinataire à 4 endroits dans le programme.

REMARQUE 4: Veuillez acheter un modem GSM sans bouton d'alimentation dans le module en cas de panne de courant, il ne se verrouille pas dans le réseau mobile sauf si vous appuyez manuellement sur le bouton, évitez donc ce type de modems GSM. Le modem GSM sans bouton marche se verrouillera dans le réseau mobile directement après la rétention de l'alimentation.

Prototype de l’auteur du circuit de contrôleur de moteur de pompe GSM:

Comment utiliser la configuration ci-dessus:

• Envoyer / activer le moteur / SMS depuis votre téléphone portable pour activer le relais.

• Envoi / arrêt moteur / SMS pour désactiver le relais.

• Envoyer / tester / SMS pour tester la réponse du circuit.

Assurez-vous de démarrer la commande par '/' et de la terminer par '/', sinon elle ne sera pas acceptée comme demande valide.

• / motor on / active le relais et retourne avec un SMS d'acquittement «Motor Activated».

• / moteur éteint / éteindra le relais et retournera avec un SMS d'acquittement «Moteur désactivé».

• Si vous envoyez / testez / il retournera avec un SMS de confirmation «Le système fonctionne bien.»

• Le message ci-dessus signifie que votre configuration fonctionne correctement.

• Si aucun accusé de réception n'est renvoyé, vous pouvez supposer qu'aucune action n'est précédée sur le moteur et vous pouvez résoudre les problèmes.

• Après la mise sous tension de l'installation, attendez 1 minute le système enverra un SMS d'accusé de réception «Le système est prêt à accepter les commandes.» une fois que vous recevez ce SMS, votre projet est prêt à être diffusé.

Les commandes ci-dessus sont infaillibles et ne déclenchent jamais le moteur à tort, la configuration ne répondra à aucun SMS autre que les recommandations spécifiées ci-dessus.

Améliorer le concept ci-dessus

Ce circuit d'application de pompe GSM ci-dessus a attiré de nombreux lecteurs et nous avons reçu des tonnes de questions et de suggestions. L'un des lecteurs avides de ce site Web, M. Gandhi, a suggéré une bonne amélioration de la conception précédente.

Accusé de réception par SMS lorsque le moteur est réellement allumé

L'amélioration est tout au sujet de l'accusé de réception de retour, où l'utilisateur recevra une réponse SMS dans son téléphone portable du GSM système de contrôleur de pompe lorsqu'un utilisateur envoie un commentaire SMS valide.

La conception existante envoie un SMS d'acquittement à l'utilisateur indépendamment de l'état réel du relais, c'est-à-dire ON / OFF.

Le nouveau changement de conception suggéré par M. Gandhi vérifie l'état du relais si le relais est physiquement commuté son état ou non.

Le changement selon cette nouvelle eau GSM conception du contrôleur de pompe peut être implémenté dans la conception précédente sans trop de tracas en ajoutant un système de rétroaction comme indiqué dans le schéma et en téléchargeant le nouveau code.

Schéma:

Lorsque nous envoyons la commande SMS «/ MOTOR ON /», la broche n ° 9 devient haute et déclenche le relais ON. Si le relais relie les broches commune et N / O, la pompe démarre et allume également le transformateur qui donnera +5 à la sortie.

Le signal + 5V est envoyé à la broche # 7 qui confirmera et retournera avec un acquittement «Moteur activé».

Lorsque nous envoyons «/ MOTOR OFF /», la broche n ° 9 devient BAS et le relais déconnecte les broches commune et N / O, cela éteindra la pompe ainsi que le transformateur connecté. La sortie sur la broche 7 passe à BAS et revient avec un acquittement «Moteur désactivé».

Si pas d'acquittement Le SMS est reçu sur votre téléphone portable , nous pouvons confirmer qu'aucune mesure n'a été prise et que la pompe est dans le dernier état demandé, vous pouvez vous rendre sur le site et effectuer un dépannage ou aucun accusé de réception n'est reçu en raison d'une coupure de courant.

Code de programme:

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

L'implémentation ci-dessus n'est pas testée en pratique, mais l'auteur est sûr à cent pour cent que l'idée ci-dessus fonctionnera. Si les lecteurs ont trouvé des problèmes avec l'amélioration ci-dessus, ils peuvent s'exprimer via la section des commentaires.

Liste des pièces

1) Transformateur abaissé 12-0V
2) Diodes IN4007 x5
3) LM7812 x1
4) Relais 12V x1
5) Transistor BC548 x1
6) Condensateur électrolytique 1000uF x1
7) module GSM: modèle SIM 800 ou SIM 900
8) Résistance 330 Ohm x2
9) LED ROUGE / VERT x1
10) Arduino Uno ou Arduino nano ou Arduino Mega
11) prise DC mâle x2

Clip vidéo:

Intégration avec des moteurs triphasés

J'ai reçu de nombreuses demandes de mise à niveau de l'étage de relais pour la conception ci-dessus afin qu'il devienne compatible pour le fonctionnement de moteurs triphasés à l'aide de commandes de téléphone portable GSM.

J'ai donc décidé de concevoir le circuit requis qui avec un peu de chance être capable d'allumer et d'éteindre un moteur triphasé donné ayant le mécanisme de contacteur de démarrage et d'arrêt typique.

La figure suivante montre comment configurer la conception à l'aide d'un circuit IC 4017.

Téléphone portable à distance de contrôleur de moteur triphasé GSM

REMARQUE: Les valeurs 100uF / 10K et 220uF et 47K peuvent nécessiter des ajustements afin de garantir le délai correct pour les transistors et les étages de relais respectifs.




Une paire de: Circuit de sécurité d'indicateur de position d'intrus Un article: Circuit de contrôleur d'intensité de lampe solaire télécommandé