- Matériaux nécessaires:
- Module GSM de la balance à mouche SIM900:
- Module vocal ISD1820:
- Schéma de circuit et explication:
- Programmation de votre Arduino:
- Travail:
Dans le monde moderne d'aujourd'hui, nous dépendons tous des téléphones mobiles comme principal moyen de communication sans fil. Mais, nous avons tous été confrontés à des situations au cours desquelles nous pourrions ne pas être en mesure de répondre à nos appels, ces appels peuvent être un appel personnel important ou un appel professionnel qui change la vie et vous auriez pu manquer cette opportunité car vous n'étiez pas en mesure d'y répondre. appeler à ce moment-là.
Ce projet vise à résoudre ce problème en créant un répondeur automatique à l'aide d'un module Arduino et GSM. La prochaine fois que vous changez de numéro de téléphone, que vous partez pour un long voyage de pèlerinage ou que vous profitez de vacances bien méritées, utilisez simplement cette machine pour enregistrer votre voix en indiquant la raison de votre absence et tous vos appels seront automatiquement répondus par cette machine et votre la voix enregistrée leur sera jouée. Cela peut également être utilisé pour vos numéros professionnels pour répondre aux appels de vos clients en dehors des heures de bureau. Cela semble intéressant, non? Alors construisons-le.
Matériaux nécessaires:
Le projet peut sembler un peu compliqué mais il est vraiment facile à construire, vous avez juste besoin des composants suivants
- Arduino Uno
- Module GSM - Flyscale SIM 900
- Module vocal ISD 1820
- Adaptateur 12V pour alimenter le module GSM
- Batterie 9V pour alimenter Arduino
- Fils de connexion
Avant de nous lancer dans le projet, familiarisons-nous avec le module GSM et le module vocal ISD 1820
Module GSM de la balance à mouche SIM900:
Les modules GSM sont fascinants à utiliser en particulier lorsque notre projet nécessite un accès à distance. Ces modules peuvent effectuer toutes les actions que notre téléphone mobile normal pourrait faire, comme passer / recevoir un appel, envoyer / recevoir un SMS, se connecter à Internet en utilisant GPRS, etc. Vous pouvez également connecter un microphone et un haut-parleur normaux à ce module et converser sur votre appels mobiles. Voici quelques tutoriels sur eux en utilisant différents microcontrôleurs:
- Appel et message à l'aide d'Arduino et du module GSM
- Appel et SMS à l'aide du Raspberry Pi et du module GSM
- Interfaçage du module GSM avec le microcontrôleur PIC - Passer et recevoir des appels
Comme le montre la photo ci-dessous, le module GSM est livré avec un adaptateur USART qui peut être directement interfacé à l'ordinateur en utilisant un module MAX232 ou les broches Tx et Rx peuvent être utilisées pour le connecter à un microcontrôleur. Vous pouvez également remarquer les autres broches comme MIC +, MIC-, SP +, SP- etc. où un microphone ou un haut-parleur peut être connecté. Le module peut être alimenté par un adaptateur 12V via une prise cylindrique CC normale.
Insérez votre carte SIM dans l'emplacement du module et allumez-le, vous devriez remarquer qu'un voyant d'alimentation s'allume. Maintenant, attendez une minute environ, et vous devriez voir une LED rouge (ou toute autre couleur) clignoter une fois toutes les 3 secondes. Cela signifie que votre module était capable d'établir une connexion avec votre carte SIM. Vous pouvez maintenant procéder à la connexion de votre module avec le téléphone ou n'importe quel microcontrôleur.
Module vocal ISD1820:
Le module ISD 1820 Voice est vraiment un module cool qui pourrait pimenter vos projets avec des annonces vocales. Ce module est capable d'enregistrer un clip audio pendant 10 secondes, puis de le lire si nécessaire. Le module lui-même est livré avec un microphone et un haut-parleur (8 ohms 0,5 watts) et cela devrait ressembler à ceci ci-dessous.
Le module fonctionne sur + 5V et peut être alimenté à l'aide des bâtons berg sur la gauche. Il a également trois boutons en bas qui sont Rec. bouton, PlayE. bouton et PlayL. bouton respectivement. Vous pouvez enregistrer votre voix en appuyant sur la touche Rec. et lisez-le à l'aide du bouton PlayE. Le PlayL jouera la voix tant que vous maintenez le bouton enfoncé. Lors de l'interfaçage avec un MCU, nous pouvons utiliser les broches sur la gauche. Ces broches sont tolérables 3V-5V et peuvent donc être directement pilotées par Arduino / ESP8266. Dans notre projet, nous contrôlons la broche PLAYE en utilisant la broche D8 de notre module Arduino. Pour que nous puissions jouer la voix enregistrée lorsqu'un appel est détecté et reçu par le module GSM.
Schéma de circuit et explication:
Le schéma de circuit complet de ce projet de répondeur automatique d'appel vocal est donné ci-dessus. Comme vous pouvez le voir, les connexions sont vraiment simples. Nous alimentons le module GSM avec un adaptateur 12V 1A et Arduino avec batterie 9V, le module ISD Voice est alimenté par la broche + 5V de l'Arduino. Comme nous savons que nous pouvons enregistrer n'importe quoi sur notre module vocal en appuyant sur le bouton rec et cela sera joué lorsque PE est enfoncé, cet audio doit être envoyé au microphone du module GSM. Nous connectons donc la broche du haut-parleur du module Voice à la broche du microphone du module GSM.
Ici, le module Arduino et GSM est connecté en série, la broche Tx d'Arduino est connectée à la broche 9 et la broche Rx est connectée à la broche 10. Cela aidera l'Arduino à écouter le module GSM. Lorsqu'un appel arrive au module GSM, l'Arduino l'écoutera et demandera au module GSM de répondre à l'appel. L'Arduino s'assure que l'appel est actif, puis lit le message vocal enregistré sur le module vocal en faisant passer la broche 8 (connectée au PE du module vocal) à l'état haut pendant 200 ms.
Programmation de votre Arduino:
Nous savons à partir du paragraphe ci-dessus quel est le rôle d'Arduino ici; regardons maintenant le code qui fait de même. Le code Arduino complet du projet est donné au bas de cette page, plus loin ici, j'ai répandu le code en petites jonques pour l'expliquer.
Avant de procéder à toute nouvelle installation de la bibliothèque GSM, veuillez cliquer sur ce lien de bibliothèque GSM Github pour télécharger la bibliothèque utilisée dans ce projet. Vous obtiendrez un fichier zip qui doit être ajouté à votre bibliothèque Arduino par Sketch -> Inclure Librarey -> Ajouter un fichier.Zip .
Les trois premières lignes du code ci-dessous sont utilisées pour inclure la bibliothèque dans notre code. Nous utilisons la bibliothèque série et la bibliothèque de fils car nous n'utilisons pas les broches Rx et Tx par défaut de l'Arduino pour communiquer avec le module GSM.
#comprendre
Nous activons la communication série sur les broches 9 et 10 en utilisant la ligne suivante. Ceci est rendu possible par la bibliothèque série de logiciels que nous avons incluse ci-dessus.
LogicielSerial gprs (9,10); // TX, RX
Dans notre fonction de configuration , nous initialisons le moniteur série à un débit de 9600 bauds et le module GSM est également initialisé avec un débit de 9600 bauds. La broche 8 qui déclenche la voix est déclarée comme broche de sortie.
void setup () {Serial.begin (9600); // Le moniteur série fonctionne sur 9600 bauds pour le débogage sim900_init (& gprs, 9600); // Le module GSM fonctionne sur 9600 baudrate pinMode (8, OUTPUT); // broche pour activer Voice Serial.println ("Arduino - Automatic Voice Machine"); }
Ensuite, nous devons créer une fonction capable de lire et de comprendre ce que dit le module GSM via son port série. Si nous utilisons une simple ligne de lecture en série comme «gprs.read ()» pour lire le message, nous les obtiendrons sous forme de valeurs décimales ASCII, cela n'aura aucun sens pour nous.
Ainsi, la fonction suivante est utilisée pour convertir ces valeurs décimales en chaînes à l'aide d'objets chaîne, puis les concaténer pour former une chaîne. La valeur de chaîne finale est stockée dans la variable Fdata , qui est de type chaîne et peut être utilisée pour comparer avec toutes les valeurs de chaîne.
void check_Incoming () {if (gprs.available ()) // Si GSM dit quelque chose {Incomingch = gprs.read (); // Écoutez-le et stockez-le dans cette variable if (Incomingch == 10 - Incomingch == 13) // S'il dit espace (10) ou Newline (13) cela signifie qu'il a terminé un mot {Serial.println (data); Fdata = données; data = ""; } // Affiche le mot et efface la variable pour recommencer à neuf else {String newchar = String (char (Incomingch)); // convertit le char en chaîne en utilisant des objets string data = data + newchar; // Après la conversion en chaîne, effectuez la concaténation de chaînes}}}
Les lignes suivantes sont utilisées pour le débogage, avec ces lignes de débogage, vous pouvez envoyer toutes les commandes AT du moniteur série d'Arduino vers GSM et voir également quelles sont les réponses sur le moniteur série.
if (Serial.available ()) {// Utilisé pour le débogage gprs.write (Serial.read ()); // Utilisé pour le débogage} // Utilisé pour le débogage
Comme dit précédemment, l'Arduino doit vérifier si le module GSM reçoit des appels. Cela peut être fait en demandant à l'Arduino de vérifier « RING » car le module GSM émettra RING en cas d'appel selon la liste de commandes AT. Lorsqu'il trouve un appel, il attend 5 secondes et envoie la commande « ATA » au module GSM, cela obligera le module GSM à répondre à l'appel et après avoir répondu, il répondra par «OK». L'Arduino attend à nouveau l' accusé de réception « OK », puis met la broche 8 à l'état haut pendant 200 ms pour lire la voix enregistrée à partir du module vocal.
if (Fdata == "RING") // Si le module GSM dit RING {delay (5000); // attendez 5 secondes pour créer un délai de 3 sonneries. gprs.write ("ATA \ r \ n"); // Répondre à l'appel Serial.println ("Placed Received"); // Utilisé pour le débogage while (Fdata! = "OK") // Jusqu'à la réponse à l'appel {check_Incoming (); // Lire ce que dit le mode GSM Serial.println ("Lecture du message enregistré"); // Utilisé pour le débogage // Lecture du délai de message vocal enregistré (500); digitalWrite (8, HIGH); // Aller retard élevé (200); // attendez 200 msec digitalWrite (8, LOW); // Allez bas}
Travail:
Une fois que votre code et votre matériel sont prêts, il est temps de vous amuser. Mettez les deux modules sous tension et appuyez sur le bouton REC du module vocal et enregistrez un message. Ce message ne peut durer que 10 secondes.
Maintenant, programmez votre Arduino en utilisant le code ci-dessous et insérez la voiture SIM dans le module GSM, vous devez maintenant attendre au moins 2 minutes pour que le module GSM puisse établir la connexion avec votre fournisseur de services réseau. Une fois terminé, vous devriez voir une LED de couleur rouge clignoter une fois toutes les 3 secondes, cela indique que votre carte SIM est prête à prendre des appels. Vous pouvez maintenant essayer d'appeler cette carte SIM à partir de n'importe quel numéro et vous devriez entendre le message enregistré après trois sonneries continues. Le fonctionnement complet du projet est montré dans la vidéo ci-dessous.
Tadaaaaaa !!! Maintenant, vous avez votre propre répondeur automatique aux appels vocaux et allez-y et utilisez-le si nécessaire et épatez vos amis et votre famille avec.
J'espère que vous avez apprécié le projet et que vous avez construit quelque chose de similaire.Si vous avez des problèmes, postez-les dans la section des commentaires et je vous aiderai.