- Materiali richiesti:
- Modulo GSM Fly Scale SIM900:
- Modulo vocale ISD1820:
- Schema del circuito e spiegazione:
- Programmare il tuo Arduino:
- Lavorando:
Nel mondo moderno di oggi dipendiamo tutti dai telefoni cellulari come mezzo principale di comunicazione wireless. Ma tutti noi abbiamo affrontato situazioni durante le quali potremmo non essere in grado di rispondere alle nostre chiamate, queste chiamate potrebbero essere un'importante chiamata personale o una chiamata di lavoro che cambia la vita e potresti aver perso quell'opportunità poiché non sei stato in grado di rispondere a quella chiamare in quel particolare momento.
Questo progetto mira a risolvere questo problema creando una segreteria telefonica automatica utilizzando Arduino e modulo GSM. La prossima volta che passerai a un nuovo numero di telefono o uscirai per un lungo viaggio di pellegrinaggio o ti godrai una meritata vacanza, usa questa macchina per registrare la tua voce affermando il motivo dell'assenza e tutte le tue chiamate riceveranno automaticamente risposta da questa macchina e dal tuo la voce registrata verrà riprodotta per loro. Questo può essere utilizzato anche per i tuoi numeri aziendali per rispondere alle chiamate dei tuoi clienti durante le ore non lavorative. Sembra interessante, vero? Quindi costruiamolo..
Materiali richiesti:
Il progetto potrebbe sembrare un po 'complicato ma è davvero facile da costruire, hai solo bisogno dei seguenti componenti
- Arduino Uno
- Modulo GSM - Flyscale SIM 900
- Modulo vocale ISD 1820
- Adattatore 12V per alimentare il modulo GSM
- Batteria da 9V per alimentare Arduino
- Cavi di collegamento
Prima di procedere effettivamente nel progetto, familiarizziamo con il modulo GSM e il modulo vocale ISD 1820
Modulo GSM Fly Scale SIM900:
I moduli GSM sono affascinanti da usare soprattutto quando il nostro progetto richiede l'accesso remoto. Questi moduli possono eseguire tutte le azioni che il nostro normale telefono cellulare potrebbe eseguire, come effettuare / ricevere una chiamata, inviare / ricevere un SMS, connettersi a Internet tramite GPRS ecc. È inoltre possibile collegare un normale microfono e altoparlante a questo modulo e conversare sul proprio chiamate mobili. Ecco alcuni tutorial su di loro utilizzando diversi microcontrollori:
- Chiama e invia messaggi utilizzando Arduino e il modulo GSM
- Chiama e invia SMS utilizzando Raspberry Pi e il modulo GSM
- Modulo GSM Interfacciamento con microcontrollore PIC - Effettua e ricevi chiamate
Come mostrato nella foto sotto, il modulo GSM viene fornito con un adattatore USART che può essere interfacciato direttamente al computer utilizzando un modulo MAX232 oppure i pin Tx e Rx possono essere utilizzati per collegarlo a un microcontrollore. Puoi anche notare gli altri pin come MIC +, MIC-, SP +, SP- ecc. Dove è possibile collegare un microfono o un altoparlante. Il modulo può essere alimentato da un adattatore 12V tramite un normale jack barilotto CC.
Inserisci la tua scheda SIM nello slot del modulo e accendilo, dovresti notare un LED di alimentazione che si accende. Ora aspetta circa un minuto e dovresti vedere un LED rosso (o di qualsiasi altro colore) lampeggiare una volta ogni 3 secondi. Ciò significa che il modulo è stato in grado di stabilire una connessione con la scheda SIM. Ora puoi procedere con il collegamento del tuo modulo con il telefono o qualsiasi microcontrollore.
Modulo vocale ISD1820:
Il modulo vocale ISD 1820 è davvero un modulo interessante che potrebbe ravvivare i tuoi progetti con annunci vocali. Questo modulo è in grado di registrare un clip audio per 10 secondi e quindi riprodurlo quando necessario. Il modulo stesso viene fornito con un microfono e un altoparlante (8 ohm 0,5 watt) e dovrebbe assomigliare a questo mostrato di seguito.
Il modulo funziona a + 5V e può essere alimentato utilizzando gli stick berg a sinistra. Ha anche tre pulsanti in basso che sono Rec. pulsante, Riproduci E. pulsante e PlayL. rispettivamente. Puoi registrare la tua voce premendo il pulsante Rec. e riprodurlo utilizzando il pulsante RiproduciE. Il PlayL riprodurrà la voce finché tieni premuto il pulsante. Quando ci interfacciamo con un MCU, possiamo usare i pin a sinistra. Questi pin sono tollerabili da 3V-5V e quindi possono essere pilotati direttamente da Arduino / ESP8266. Nel nostro progetto stiamo controllando il pin PLAYE usando il pin D8 del nostro modulo Arduino. In modo che possiamo riprodurre la voce registrata quando una chiamata viene rilevata e ricevuta dal modulo GSM.
Schema del circuito e spiegazione:
Lo schema elettrico completo di questo progetto di segreteria telefonica automatica per chiamate vocali è riportato sopra. Come puoi vedere le connessioni sono davvero semplici. Alimentiamo il modulo GSM con un adattatore 12V 1A e Arduino con batteria 9V, il modulo ISD Voice è alimentato dal pin + 5V di Arduino. Come sappiamo, possiamo registrare qualsiasi cosa sul nostro modulo vocale premendo il pulsante rec e questo verrà riprodotto quando viene premuto PE, questo audio deve essere inviato al microfono del modulo GSM. Quindi colleghiamo il pin dell'altoparlante del modulo Voice al pin del microfono del modulo GSM.
Qui, il modulo Arduino e GSM è collegato in serie, il pin Tx di Arduino è collegato al pin 9 e il pin Rx è collegato al pin 10. Ciò aiuterà Arduino ad ascoltare il modulo GSM. Quando arriva una chiamata al modulo GSM, Arduino la ascolterà e chiederà al modulo GSM di rispondere alla chiamata. Arduino si assicura che la chiamata sia attiva e quindi riproduce il messaggio vocale registrato sul modulo vocale facendo alzare il pin 8 (Connected to PE del modulo vocale) per 200 ms.
Programmare il tuo Arduino:
Sappiamo dal paragrafo precedente qual è il ruolo di Arduino qui è; ora diamo un'occhiata al codice che fa lo stesso. Il codice Arduino completo del progetto è riportato in fondo a questa pagina, più avanti ho sparso il codice in piccole giunche per spiegarlo.
Prima di procedere a qualsiasi ulteriore installazione della libreria GSM, fare clic su questo collegamento alla libreria GSM Github per scaricare la libreria utilizzata in questo progetto. Otterrai un file zip che deve essere aggiunto alla tua libreria Arduino da Sketch -> Includi Librarey -> Aggiungi file.Zip .
Le prime tre righe del codice mostrato di seguito vengono utilizzate per includere la libreria nel nostro codice. Usiamo la libreria seriale e la libreria filo perché non stiamo usando i pin Rx e Tx predefiniti di Arduino per comunicare con il modulo GSM.
#includere
Noi consentire la comunicazione seriale sui pin 9 e 10 utilizzando la seguente riga. Ciò è reso possibile dalla libreria seriale del software che abbiamo incluso sopra.
SoftwareSerial gprs (9,10); // TX, RX
All'interno della nostra funzione di configurazione , inizializziamo il monitor seriale a 9600 baud rate e anche il modulo GSM viene inizializzato con 9600 Baudrate. Il pin 8 che attiva la voce è dichiarato come pin di uscita.
void setup () {Serial.begin (9600); // Il monitor seriale funziona con una velocità di 9600 baud per il debug di sim900_init (& gprs, 9600); // Il modulo GSM funziona su 9600 baudrate pinMode (8, OUTPUT); // pin per attivare Voice Serial.println ("Arduino - Automatic Voice Machine"); }
Successivamente dobbiamo creare una funzione che possa leggere e capire cosa sta dicendo il modulo GSM attraverso la sua porta seriale. Se usiamo una semplice riga di lettura seriale come "gprs.read ()" per leggere il messaggio, li otterremo sotto forma di valori decimali ASCII, questo non avrà senso per noi.
Quindi la seguente funzione viene utilizzata per convertire questi valori decimali in stringhe utilizzando oggetti stringa e quindi concatenarli per formare una stringa. Il valore della stringa finale viene memorizzato nella variabile Fdata , che è di tipo stringa e può essere utilizzata per il confronto con qualsiasi valore String.
void check_Incoming () {if (gprs.available ()) // Se GSM sta dicendo qualcosa {Incomingch = gprs.read (); // Ascoltalo e memorizza in questa variabile if (Incomingch == 10 - Incomingch == 13) // Se dice spazio (10) o Newline (13) significa che ha completato una parola {Serial.println (data); Fdata = dati; data = ""; } // Stampa la parola e cancella la variabile per ricominciare da capo else {String newchar = String (char (Incomingch)); // converte il carattere in una stringa utilizzando gli oggetti stringa data = data + newchar; // Dopo la conversione in stringa, concatenazione di stringhe}}}
Le seguenti righe vengono utilizzate per il debug, con queste linee del debugger è possibile inviare qualsiasi comando AT dal monitor seriale di Arduino al GSM e vedere anche quali sono le risposte sul monitor seriale.
if (Serial.available ()) {// Usato per il debug di gprs.write (Serial.read ()); // Usato per il debug} // Usato per il debug
Come detto in precedenza, Arduino deve verificare se il modulo GSM sta ricevendo chiamate. Questo può essere fatto facendo in modo che Arduino controlli la presenza di " RING " perché il modulo GSM emetterà RING in caso di chiamata secondo l'elenco dei comandi AT. Quando trova una chiamata attenderà 5 secondi e invierà il comando “ ATA ” al modulo GSM, questo farà sì che il modulo GSM risponda alla chiamata e dopo aver risposto risponderà con “OK”. L'Arduino attende di nuovo il riconoscimento " OK " e quindi gira il Pin 8 alto per 200 ms per riprodurre la voce registrata dal modulo vocale.
if (Fdata == "RING") // Se il modulo GSM dice RING {delay (5000); // aspetta 5 secondi per creare 3 squilli di ritardo. gprs.write ("ATA \ r \ n"); // Risponde alla chiamata Serial.println ("Placed Received"); // Usato per il debug while (Fdata! = "OK") // Fino a quando la chiamata non ha risposto con successo {check_Incoming (); // Leggi cosa dice la modalità GSM Serial.println ("Riproduzione del messaggio registrato"); // Usato per il debug // Riproduce il ritardo del messaggio vocale registrato (500); digitalWrite (8, HIGH); // Vai ad alto ritardo (200); // aspetta 200 msec digitalWrite (8, LOW); // Vai basso}
Lavorando:
Una volta che il codice e l'hardware sono pronti, è tempo di divertirsi. Accendi entrambi i moduli e premi il pulsante REC sul modulo Voice e registra un messaggio. Questo messaggio può durare solo 10 secondi.
Ora programma il tuo Arduino utilizzando il codice indicato di seguito e inserisci la SIM dell'auto nel modulo GSM, dovresti attendere almeno 2 minuti in modo che il modulo GSM possa stabilire la connessione con il tuo fornitore di servizi di rete. Una volta terminato, dovresti vedere un LED di colore rosso lampeggiare una volta ogni 3 secondi, questo indica che la tua SIM è pronta per ricevere chiamate. Ora puoi provare a chiamare questa scheda SIM da qualsiasi numero e dovresti sentire il messaggio registrato dopo tre squilli continui. Il funzionamento completo del progetto è mostrato nel video sottostante.
Tadaaaaaa !!! Ora hai la tua segreteria telefonica automatica per le chiamate vocali e vai avanti e usala quando necessario e stupisci i tuoi amici e familiari con essa.
Spero ti sia piaciuto il progetto e abbia costruito qualcosa di simile, se hai avuto problemi, pubblicali nella sezione commenti e ti aiuterò.