- Vereiste materialen:
- Vliegschaal SIM900 GSM-module:
- ISD1820 Spraakmodule:
- Schakelschema en uitleg:
- Programmeren van uw Arduino:
- Werken:
In de moderne wereld van vandaag zijn we allemaal afhankelijk van mobiele telefoons als ons belangrijkste middel voor draadloze communicatie. Maar we hebben allemaal te maken gehad met situaties waarin we misschien niet in staat waren om onze telefoontjes te beantwoorden, deze telefoontjes kunnen een belangrijk persoonlijk telefoontje zijn of een levensveranderend zakelijk telefoontje en u had die kans net kunnen missen omdat u dat niet kon beantwoorden bellen op dat moment.
Dit project heeft tot doel dit probleem op te lossen door een automatisch antwoordapparaat te maken met behulp van Arduino en GSM-module. De volgende keer dat u overschakelt naar een nieuw telefoonnummer of op weg bent voor een lange pelgrimstocht of geniet van een welverdiende vakantie, gebruikt u deze machine om uw stem op te nemen en de reden van afwezigheid op te nemen en al uw oproepen worden automatisch beantwoord door deze machine en uw opgenomen stem zal voor hen worden afgespeeld. Dit kan ook worden gebruikt voor uw zakelijke nummers om de oproepen van uw klanten buiten kantooruren te beantwoorden. Klinkt interessant toch? Dus laten we het bouwen…
Vereiste materialen:
Het project klinkt misschien een beetje ingewikkeld, maar het is heel eenvoudig om te bouwen, je hebt alleen de volgende componenten nodig
- Arduino Uno
- GSM-module - Flyscale SIM 900
- ISD 1820 Spraakmodule
- 12V adapter voor voeding GSM module
- 9V batterij om Arduino van stroom te voorzien
- Draden aansluiten
Voordat we daadwerkelijk verder gaan met het project, moeten we vertrouwd raken met de GSM-module en de ISD 1820-spraakmodule
Vliegschaal SIM900 GSM-module:
GSM-modules zijn fascinerend om te gebruiken, vooral wanneer ons project externe toegang vereist. Deze modules kunnen alle acties uitvoeren die onze normale mobiele telefoon zou kunnen uitvoeren, zoals bellen / gebeld worden, een sms verzenden / ontvangen, verbinding maken met internet via GPRS enz. U kunt ook een normale microfoon en luidspreker op deze module aansluiten en op uw mobiele oproepen. Hier zijn enkele tutorials over hen met behulp van verschillende microcontrollers:
- Bel en bericht met behulp van Arduino en GSM-module
- Bellen en sms'en met Raspberry Pi en GSM-module
- GSM-module Koppeling met PIC-microcontroller - Bellen en gebeld worden
Zoals te zien is in onderstaande foto, wordt de GSM-module geleverd met een USART-adapter die rechtstreeks op de computer kan worden aangesloten met behulp van een MAX232-module of de Tx- en Rx-pinnen kunnen worden gebruikt om deze op een Microcontroller aan te sluiten. Je kunt ook de andere pinnen opmerken zoals MIC +, MIC-, SP +, SP- etc waar een microfoon of een luidspreker kan worden aangesloten. De module kan worden gevoed door een 12V adapter via een normale DC barrel jack.
Plaats uw simkaart in de sleuf van de module en schakel deze in, u zou moeten zien dat een aan / uit-LED gaat branden. Wacht nu ongeveer een minuut en je zou een rode (of een andere kleur) LED moeten zien knipperen om de 3 seconden. Dit betekent dat uw module in staat was om verbinding te maken met uw simkaart. Nu kunt u doorgaan met het verbinden van uw module met Phone of een andere microcontroller.
ISD1820 Spraakmodule:
De ISD 1820-spraakmodule is echt een coole module die uw projecten kan opfleuren met spraakaankondigingen. Deze module is in staat om een audioclip 10 seconden op te nemen en deze vervolgens af te spelen wanneer dat nodig is. De module zelf wordt geleverd met een microfoon en een luidspreker (8 ohm 0,5 watt) en het zou er ongeveer zo uit moeten zien als hieronder.
De module werkt op + 5V en kan worden gevoed met de bergsticks aan de linkerkant. Het heeft ook drie knoppen aan de onderkant die Rec. knop, PlayE. knop en PlayL. knop respectievelijk. U kunt uw stem opnemen door op de Rec. knop en speel het af met de PlayE-knop. De PlayL speelt de stem zolang u de knop ingedrukt houdt. Bij koppeling met een MCU kunnen we de pinnen aan de linkerkant gebruiken. Deze pinnen zijn 3V-5V aanvaardbaar en kunnen daarom direct worden aangestuurd door Arduino / ESP8266. In ons project besturen we de PLAYE-pin met behulp van de D8-pin van onze Arduino-module. Zodat we de opgenomen stem kunnen afspelen wanneer een oproep wordt gedetecteerd en ontvangen door de GSM-module.
Schakelschema en uitleg:
Het volledige schakelschema van dit project voor het automatisch beantwoorden van spraakoproepen wordt hierboven gegeven. Zoals u kunt zien, zijn de verbindingen heel eenvoudig. We voeden de GSM-module met een 12V 1A-adapter en Arduino met 9V-batterij, de ISD Voice-module wordt gevoed door de + 5V-pin van de Arduino. Zoals we weten kunnen we alles opnemen op onze spraakmodule door op de rec-knop te drukken en dit wordt afgespeeld wanneer PE wordt ingedrukt, deze audio moet naar de microfoon van de GSM-module worden gestuurd. Daarom verbinden we de luidsprekerpin van de spraakmodule met de microfoonpin van de GSM-module.
Hier wordt de Arduino en GSM module serieel verbonden, de Tx pin van Arduino is verbonden met pin 9 en Rx pin is verbonden met pin 10. Dit zal de Arduino helpen om naar de GSM module te luisteren. Wanneer er een oproep binnenkomt op de GSM-module, zal de Arduino ernaar luisteren en de GSM-module vragen om de oproep te beantwoorden. De Arduino zorgt ervoor dat de oproep actief is en speelt vervolgens het opgenomen spraakbericht af op de spraakmodule door pin 8 (Verbonden met PE van spraakmodule) 200 ms hoog te laten gaan.
Programmeren van uw Arduino:
We weten uit de bovenstaande paragraaf wat de rol van Arduino hier is; Laten we nu eens kijken naar de code die hetzelfde doet. De volledige Arduino-code van het project staat onderaan deze pagina, verder heb ik de code in kleine rommel gemorst om het uit te leggen.
Voordat we verder gaan met het installeren van de GSM-bibliotheek, klikt u op deze Github GSM-bibliotheeklink om de bibliotheek te downloaden die in dit project wordt gebruikt. U krijgt een zip-bestand dat moet worden toegevoegd aan uw Arduino-bibliotheek door Sketch -> Inclusief Librarey ->.Zip-bestand toevoegen .
De eerste drie regels van de onderstaande code worden gebruikt om de bibliotheek aan onze code toe te voegen. We gebruiken de seriële bibliotheek en de draadbibliotheek omdat we niet de standaard Rx- en Tx-pinnen van de Arduino gebruiken om te communiceren met de GSM-module.
# omvatten
We maken seriële communicatie mogelijk op pin 9 en 10 met behulp van de volgende regel. Dit wordt mogelijk gemaakt door de seriële softwarebibliotheek die we hierboven hebben opgenomen.
SoftwareSerial gprs (9,10); // TX, RX
Binnen onze setup- functie initialiseren we de seriële monitor met 9600 baudrate en de GSM-module wordt ook geïnitialiseerd met 9600 baudrate. De pin 8 die de stem activeert, wordt gedeclareerd als outputpin.
void setup () {Serial.begin (9600); // Seriële monitor werkt op 9600 baudrate voor foutopsporing sim900_init (& gprs, 9600); // GSM-module werkt op 9600 baudrate pinMode (8, OUTPUT); // pin om Voice Serial.println in te schakelen ("Arduino - Automatic Voice Machine"); }
Vervolgens moeten we een functie maken die kan lezen en begrijpen wat de GSM-module via zijn seriële poort zegt. Als we een eenvoudige seriële leesregel zoals "gprs.read ()" gebruiken om het bericht te lezen, krijgen we ze in de vorm van ASCII-decimale waarden, dit heeft geen zin voor ons.
Dus de volgende functie wordt gebruikt om deze decimale waarden om te zetten in strings door string-objecten te gebruiken en ze vervolgens samen te voegen tot een string. De laatste stringwaarde wordt opgeslagen in de variabele Fdata , die van het type string is en kan worden gebruikt om te vergelijken met eventuele String-waarden.
void check_Incoming () {if (gprs.available ()) // Als GSM iets zegt {Incomingch = gprs.read (); // Luister ernaar en bewaar in deze variabele if (Incomingch == 10 - Incomingch == 13) // Als er spatie (10) of Newline (13) staat, betekent dit dat het één woord {Serial.println (data); Fdata = gegevens; data = ""; } // Druk het woord af en wis de variabele om anders te beginnen {String newchar = String (char (Incomingch)); // converteer de char naar string met behulp van string-objecten data = data + newchar; // Voer na het converteren naar een string stringconcatenation uit}}}
De volgende regels worden gebruikt voor het debuggen, met deze debugger-regels kunt u alle AT-commando's van de seriële monitor van Arduino naar GSM sturen en ook zien wat de reacties zijn op de seriële monitor.
if (Serial.available ()) {// Gebruikt voor foutopsporing in gprs.write (Serial.read ()); // Gebruikt voor foutopsporing} // Gebruikt voor foutopsporing
Zoals eerder gezegd, moet de Arduino controleren of de GSM-module wordt gebeld. Dit kan worden gedaan door de Arduino te laten controleren op " RING ", omdat de GSM-module RING zal uitvoeren in het geval van een oproep volgens de AT-commandolijst. Als het een oproep vindt, wacht hij 5 seconden en stuurt het commando " ATA " naar de GSM-module, hierdoor zal de GSM-module de oproep beantwoorden en zal hij na beantwoording met "OK" antwoorden. De Arduino wacht opnieuw op de " OK " -bevestiging en zet vervolgens de in Pin 8 200 ms hoog om de opgenomen stem van de spraakmodule af te spelen.
if (Fdata == "RING") // Als de GSM-module RING {delay (5000) zegt; // wacht 5 seconden om 3 belvertragingen te creëren. gprs.write ("ATA \ r \ n"); // Beantwoord de oproep Serial.println ("Geplaatst ontvangen"); // Gebruikt voor foutopsporing terwijl (Fdata! = "OK") // Tot oproep succesvol beantwoord {check_Incoming (); // Lees wat GSM modue zegt Serial.println ("Opgenomen bericht afspelen"); // Gebruikt voor foutopsporing // Speel de opgenomen spraakberichtvertraging (500); digitalWrite (8, HIGH); // Ga hoge vertraging (200); // wacht 200 msec digitalWrite (8, LOW); // Ga laag}
Werken:
Als je code en hardware klaar zijn, is het tijd voor wat plezier. Voorzie beide modules van stroom en druk op de REC-knop op de spraakmodule en neem een bericht op. Dit bericht kan slechts 10 seconden lang zijn.
Programmeer nu uw Arduino met behulp van de onderstaande code en plaats de SIM-auto in de GSM-module, wacht nu minimaal 2 minuten zodat de GSM-module verbinding kan maken met uw netwerkserviceprovider. Als u klaar bent, zou u elke 3 seconden een rode LED moeten zien knipperen, dit geeft aan dat uw SIM klaar is om oproepen te beantwoorden. U kunt nu vanaf elk nummer naar deze simkaart bellen en u zou het opgenomen bericht na drie ononderbroken belsignalen moeten horen. De volledige werking van het project wordt getoond in de onderstaande video.
Tadaaaaaa !!! Nu heb je je eigen automatische antwoordapparaat voor spraakoproepen en ga je gang en gebruik het wanneer nodig en verbaas je vrienden en familie ermee.
Ik hoop dat je genoten hebt van het project en iets soortgelijks hebt gebouwd. Als je problemen had, plaats ze dan in het commentaargedeelte en ik zal je helpen.