- Materiale necesare:
- Modul GSM Fly Scale SIM900:
- Modul vocal ISD1820:
- Schema și explicația circuitului:
- Programarea Arduino:
- Lucru:
În lumea modernă de astăzi, toți depindem de telefoanele mobile ca mijloc principal de comunicare fără fir. Dar, cu toții ne-am confruntat cu situații în care s-ar putea să nu putem răspunde la apelurile noastre, aceste apeluri ar putea fi un apel personal important sau un apel de afaceri care să schimbe viața și ați fi putut pierde acea oportunitate, deoarece nu ați putut să răspundeți la asta sună la acel moment anume.
Acest proiect își propune să rezolve această problemă prin crearea unui robot de apel automat prin utilizarea modulelor Arduino și GSM. Data viitoare când treceți la un nou număr de telefon sau ieșiți într-o călătorie lungă de pelerinaj sau vă bucurați de o vacanță binemeritată, folosiți această mașină pentru a vă înregistra vocea, indicând motivul absenței și la toate apelurile dvs. veți primi răspuns automat vocea înregistrată le va fi redată. Acesta poate fi, de asemenea, utilizat pentru numerele dvs. de afaceri pentru a răspunde la apelurile clienților dvs. în afara orelor de program. Sună interesant nu? Deci, hai să-l construim..
Materiale necesare:
Proiectul ar putea părea puțin complicat, dar este foarte ușor de construit, aveți nevoie doar de următoarele componente
- Arduino Uno
- Modul GSM - Flyscale SIM 900
- Modul vocal ISD 1820
- Adaptor de 12V la modulul GSM de alimentare
- Baterie de 9V pentru alimentarea Arduino
- Conectarea firelor
Înainte de a începe efectiv proiectul, permiteți-ne să ne familiarizăm cu modulul GSM și modulul vocal ISD 1820
Modul GSM Fly Scale SIM900:
Modulele GSM sunt fascinante de utilizat mai ales atunci când proiectul nostru necesită acces la distanță. Aceste module ar putea face toate acțiunile pe care le-ar putea face telefonul nostru mobil normal, cum ar fi efectuarea / primirea unui apel, trimiterea / primirea unui SMS, conectarea la internet utilizând GPRS etc. apeluri mobile. Iată câteva tutoriale despre ele folosind diferite microcontrolere:
- Apelați și trimiteți mesaje folosind modulul Arduino și GSM
- Apelați și trimiteți text utilizând modulul Raspberry Pi și GSM
- Modul GSM Interfață cu microcontroler PIC - Efectuați și primiți apeluri
Așa cum se arată în imaginea de mai jos, modulul GSM vine cu un adaptor USART care poate fi interfațat direct cu computerul utilizând un modul MAX232 sau pinii Tx și Rx pot fi folosiți pentru a-l conecta la un microcontroler. De asemenea, puteți observa ceilalți pini, cum ar fi MIC +, MIC-, SP +, SP- etc., unde se poate conecta un microfon sau un difuzor. Modulul poate fi alimentat de la un adaptor de 12V printr - o priză normală baril DC.
Introduceți cartela SIM în fanta modulului și porniți-o, ar trebui să observați un LED de alimentare aprins. Acum așteptați un minut cam cam așa și ar trebui să vedeți un LED roșu (sau orice altă culoare) care să clipească o dată la fiecare 3 secunde. Aceasta înseamnă că modulul dvs. a fost capabil să stabilească conexiunea cu cartela SIM. Acum puteți continua să vă conectați modulul cu telefonul sau orice microcontroler.
Modul vocal ISD1820:
Modulul ISD 1820 Voice este într-adevăr un modul interesant care ar putea să vă condimenteze proiectele cu anunțuri vocale. Acest modul este capabil să înregistreze un clip audio timp de 10 secunde și apoi să îl redea atunci când este necesar. Modulul în sine vine cu un microfon și un difuzor (8ohms 0,5 wați) și ar trebui să arate așa cum se arată mai jos.
Modulul funcționează pe + 5V și poate fi alimentat folosind bețișoarele berg din partea stângă. De asemenea, are trei butoane în partea de jos, care sunt Rec., PlayE. butonul și PlayL. butonul respectiv. Vă puteți înregistra vocea apăsând butonul Rec. și redați-l folosind butonul PlayE. PlayL va reda vocea atâta timp cât țineți apăsat butonul. Când interfațăm cu un MCU, putem folosi pinii din stânga. Acești pini sunt 3V-5V tolerabili și, prin urmare, pot fi direcționați direct de Arduino / ESP8266. În proiectul nostru controlăm pinul PLAYE folosind pinul D8 al modulului nostru Arduino. Astfel, putem reda vocea înregistrată atunci când un apel este detectat și primit de modulul GSM.
Schema și explicația circuitului:
Schema completă a circuitului acestui proiect de robot telefonic automat este prezentată mai sus. După cum puteți vedea, conexiunile sunt foarte simple. Alimentăm modulul GSM cu un adaptor 12V 1A și Arduino cu baterie de 9V, modulul ISD Voice este alimentat de pinul + 5V al Arduino. După cum știm, putem înregistra orice pe modulul nostru vocal apăsând butonul rec și acesta va fi redat atunci când PE este apăsat, acest sunet trebuie trimis la microfonul modulului GSM. Așadar, conectăm pinul difuzorului modulului Voice la pinul microfonului modulului GSM.
Aici, modulul Arduino și GSM se conectează în serie, pinul Tx al Arduino este conectat la pinul 9 și pinul Rx este conectat pinul 10. Acest lucru va ajuta Arduino să asculte modulul GSM. Când un apel ajunge la modulul GSM, Arduino îl va asculta și va cere modulului GSM să răspundă la apel. Arduino se asigură că apelul este activ și apoi redă mesajul vocal înregistrat pe modulul vocal, făcând pinul 8 (conectat la modulul PE al modulului vocal) să meargă la 200 ms.
Programarea Arduino:
Știm din paragraful de mai sus care este rolul lui Arduino aici; acum să aruncăm o privire asupra codului care face același lucru. Codul complet Arduino al proiectului este dat în partea de jos a acestei pagini, mai departe aici am vărsat codul în junkuri mici pentru a-l explica.
Înainte de a instala orice altă bibliotecă GSM, faceți clic pe acest link de bibliotecă Github GSM pentru a descărca biblioteca utilizată în acest proiect. Veți obține un fișier zip care trebuie adăugat la biblioteca dvs. Arduino prin Sketch -> Include Librarey -> Add.Zip file .
Primele trei linii ale codului prezentate mai jos sunt utilizate pentru a include biblioteca în codul nostru. Folosim biblioteca serială și biblioteca de fir, deoarece nu folosim pinii Rx și Tx impliciți ai Arduino pentru a comunica cu modulul GSM.
#include
Ne permite o comunicare de serie de pe pinii 9 și 10 utilizând următoarea linie. Acest lucru este posibil datorită bibliotecii seriale software pe care am inclus-o mai sus.
Software Serial gprs (9,10); // TX, RX
În cadrul funcției noastre de configurare , inițializăm monitorul serial la o rată de 9600 baud, iar modulul GSM este de asemenea inițializat cu 9600 baudrate. Pinul 8 care declanșează vocea este declarat pin de ieșire.
void setup () {Serial.begin (9600); // Monitorul serial funcționează pe 9600 baudrate pentru depanare sim900_init (& gprs, 9600); // Modulul GSM funcționează pe 9600 baudrate pinMode (8, OUTPUT); // fixați pentru a activa Voice Serial.println („Arduino - Automatic Voice Machine”); }
În continuare trebuie să creăm o funcție care ar putea citi și înțelege ceea ce spune modulul GSM prin portul său Serial. Dacă folosim linia de citire în serie simplă, cum ar fi „gprs.read ()” pentru a citi mesajul, le vom obține sub formă de valori zecimale ASCII, acest lucru nu va avea sens pentru noi.
Deci, următoarea funcție este utilizată pentru a converti aceste valori zecimale în șiruri folosind obiecte șir și apoi le concatenează pentru a forma un șir. Valoarea șirului final este stocată în variabila Fdata , care este de tip șir și poate fi utilizată pentru a compara cu orice valoare a șirului.
void check_Incoming () {if (gprs.available ()) // Dacă GSM spune ceva {Incomingch = gprs.read (); // Ascultați-l și stocați în această variabilă dacă (Incomingch == 10 - Incomingch == 13) // Dacă spune spațiu (10) sau Newline (13) înseamnă că a completat un cuvânt {Serial.println (date); Fdata = date; date = ""; } // Imprimați cuvântul și ștergeți variabila pentru a începe proaspăt altceva {String newchar = String (char (Incomingch)); // convertiți caracterul în șir utilizând obiecte șir date = date + newchar; // După convertirea în șir, faceți concatenarea șirului}}}
În următoarele linii sunt utilizate pentru depanare, cu aceste linii depanator puteți trimite orice comenzi AT de la monitorul de serie al Arduino de la GSM și, de asemenea, să vedem ce este răspunsurile pe monitor de serie.
if (Serial.available ()) {// Folosit pentru depanarea gprs.write (Serial.read ()); // Folosit pentru depanare} // Folosit pentru depanare
După cum am spus mai devreme, Arduino trebuie să verifice dacă modulul GSM primește apeluri. Acest lucru se poate face făcând Arduino să verifice „ RING ” deoarece modulul GSM va emite RING în cazul unui apel conform listei de comenzi AT. Când va găsi un apel, va aștepta 5 secunde și va trimite comanda „ ATA ” către modulul GSM, acest lucru va face modulul GSM să răspundă la apel și după ce a răspuns, acesta va răspunde cu „OK”. Arduino așteaptă din nou confirmarea „ OK ” și apoi transformă pinul 8 la 200 ms pentru a reda vocea înregistrată din modulul vocal.
if (Fdata == "RING") // Dacă modulul GSM spune RING {delay (5000); // așteptați 5 secunde pentru a crea o întârziere cu 3 sunete. gprs.write ("ATA \ r \ n"); // Răspundeți la apelul Serial.println („Plasat primit”); // Folosit pentru depanare în timp ce (Fdata! = "OK") // Până când apelul a răspuns cu succes {check_Incoming (); // Citiți ce spune modul GSM Serial.println („Redarea mesajului înregistrat”); // Folosit pentru depanare // Redați întârzierea mesajului vocal înregistrat (500); digitalWrite (8, HIGH); // Mergeți întârziere mare (200); // așteptați 200 msec digitalWrite (8, LOW); // Du-te jos}
Lucru:
Odată ce codul și hardware-ul dvs. sunt gata, este timpul să vă distrați. Alimentați ambele module și apăsați butonul REC de pe modulul Voice și înregistrați un mesaj. Acest mesaj poate dura doar 10 secunde.
Acum programați Arduino utilizând codul de mai jos și introduceți mașina SIM în modulul GSM, ar trebui să așteptați cel puțin 2 minute acum, astfel încât modulul GSM să poată stabili conexiunea cu furnizorul dvs. de servicii de rețea. După ce ați terminat, ar trebui să vedeți un LED de culoare roșie intermitent o dată la fiecare 3 secunde, ceea ce indică faptul că SIM-ul dvs. este gata să accepte apeluri. Acum puteți încerca să apelați pe această cartelă SIM de la orice număr și ar trebui să auziți mesajul înregistrat după trei sunete continue. Lucrarea completă a proiectului este prezentată în videoclipul de mai jos.
Tadaaaaaa !!! Acum aveți propriul robot automat de apel vocal și pur și simplu mergeți mai departe și utilizați-l atunci când este necesar și uimiți-vă prietenii și familia.
Sper că ți-a plăcut proiectul și ai construit ceva similar. Dacă ai avut probleme, postează-le în secțiunea de comentarii și te voi ajuta.