- Potrebni materijali:
- Fly Scale SIM900 GSM modul:
- ISD1820 Glasovni modul:
- Kružni dijagram i objašnjenje:
- Programiranje vašeg Arduina:
- Radno:
U današnjem modernom svijetu svi ovisimo o mobilnim telefonima kao primarnom sredstvu bežične komunikacije. Ali, svi smo se suočavali sa situacijama tijekom kojih možda nećemo moći odgovoriti na svoje pozive, ti bi pozivi mogli biti važan osobni poziv ili poslovni poziv koji mijenja život, a tu ste priliku mogli propustiti jer niste mogli odgovoriti na to nazvati u to određeno vrijeme.
Cilj ovog projekta je riješiti ovaj problem stvaranjem automatske automatske sekretarice poziva koristeći Arduino i GSM modul. Sljedeći put kada prelazite na novi telefonski broj ili odlazite na dugo hodočašće ili uživate u zasluženom odmoru, samo upotrijebite ovaj uređaj za snimanje glasa uz navođenje razloga za odsutnost i ovaj će uređaj automatski odgovoriti na sve vaše pozive reproducirat će im se snimljeni glas. To se također može koristiti za brojeve vaših tvrtki za odgovaranje na pozive vaših klijenata u neradno vrijeme. Zvuči zanimljivo zar ne? Pa hajde da ga izgradimo..
Potrebni materijali:
Projekt može zvučati pomalo komplicirano, ali zaista je jednostavan za izradu, trebate samo sljedeće komponente
- Arduino Uno
- GSM modul - Flyscale SIM 900
- Glasovni modul ISD 1820
- 12V adapter za napajanje GSM modula
- 9V baterija za napajanje Arduina
- Spajanje žica

Prije nego što zapravo krenemo u projekt, upoznajmo se s GSM modulom i ISD 1820 glasovnim modulom
Fly Scale SIM900 GSM modul:
GSM moduli su fascinantni za upotrebu, posebno kada naš projekt zahtijeva daljinski pristup. Ovi moduli mogu izvršiti sve radnje koje bi naš uobičajeni mobilni telefon mogao učiniti, poput upućivanja / primanja poziva, slanja / primanja SMS-a, povezivanja na internet pomoću GPRS-a itd. Na ovaj modul možete povezati i uobičajeni mikrofon i zvučnik i razgovarati na svom mobilni pozivi. Evo nekoliko vodiča o njima pomoću različitih mikrokontrolera:
- Poziv i poruka pomoću Arduina i GSM modula
- Poziv i tekst pomoću Raspberry Pi i GSM modula
- GSM modul Povezivanje s PIC mikrokontrolerom - upućivanje i primanje poziva
Kao što je prikazano na donjoj slici, GSM modul dolazi s USART adapterom koji se može izravno povezati s računalom pomoću MAX232 modula ili se Tx i Rx pinovi mogu koristiti za njegovo povezivanje s mikrokontrolerom. Također možete primijetiti i ostale igle poput MIC +, MIC-, SP +, SP- itd. Na koje se može spojiti mikrofon ili zvučnik. Modul može biti pokretan 12V adapter kroz normalan DC barel priključak.
![]()
Umetnite SIM karticu u utor modula i uključite je, trebali biste primijetiti da se LED lampica za napajanje UKLJUČUJE. Pričekajte minutu ili tako malo i trebali biste vidjeti crvenu (ili bilo koju drugu boju) LED lampicu kako trepće jednom u 3 sekunde. To znači da je vaš modul mogao uspostaviti vezu s vašom SIM karticom. Sada možete nastaviti s povezivanjem vašeg modula s telefonom ili bilo kojim mikrokontrolerom.
ISD1820 Glasovni modul:
Glasovni modul ISD 1820 zaista je super modul koji bi mogao začiniti vaše projekte glasovnim najavama. Ovaj modul može snimati audio isječak 10 sekundi i reproducirati ga po potrebi. Sam modul dolazi s mikrofonom i zvučnikom (8 ohma 0,5 vata) i trebao bi izgledati otprilike ovako prikazano dolje.


Modul radi na + 5V, a može se napajati pomoću Berg palicama na lijevoj strani. Na dnu također ima tri gumba koji su Rec. gumb, PlayE. gumb i PlayL. tipku. Glas možete snimiti pritiskom na Rec. gumb i reproducirajte ga pomoću gumba PlayE. PlayL će reproducirati glas sve dok držite tipku. Prilikom povezivanja s MCU-om možemo koristiti igle s lijeve strane. Ove su pinove podnošljive od 3V do 5V i stoga ih može izravno upravljati Arduino / ESP8266. U našem projektu kontroliramo PLAYE pin pomoću D8 pina našeg Arduino modula. Tako da možemo reproducirati snimljeni glas kad GSM modul prepozna i primi poziv.
Kružni dijagram i objašnjenje:

Kompletna shema spojeva ovog projekta automatske telefonske sekretarice data je gore. Kao što vidite, veze su zaista jednostavne. GSM modul napajamo 12V 1A adapterom, a Arduino 9V baterijom, ISD Voice modul napaja se + 5V pinom Arduina. Kao što znamo da možemo snimiti bilo što na svoj glasovni modul pritiskom na tipku za snimanje i to će se reproducirati kad se pritisne PE, ovaj zvuk mora biti poslan na mikrofon GSM modula. Tako spajamo pin zvučnika modula Voice na pin mikrofona GSM modula.
Ovdje se Arduino i GSM modul serijski povezuju, Tx pin Arduina je spojen na pin 9, a Rx pin je spojen na pin 10. To će Arduinu pomoći da sluša GSM modul. Kada poziv stigne na GSM modul, Arduino će ga preslušati i tražiti od GSM modula da odgovori na poziv. Arduino osigurava da je poziv aktivan, a zatim reproducira snimljenu glasovnu poruku na glasovnom modulu tako da pin 8 (spojen na PE glasovnog modula) ide visoko za 200 ms.
Programiranje vašeg Arduina:
Iz gornjeg paragrafa znamo koja je ovdje uloga Arduina; sada pogledajmo kod koji čini isto. Kompletan Arduino kod projekta je dano na dnu ove stranice, i dalje ovdje sam prolila kod u malim junks to objasniti.
Prije nego što nastavimo s bilo kakvom daljnjom instalacijom GSM knjižnice, ljubazno kliknite ovu vezu Github GSM knjižnice da biste preuzeli knjižnicu koja se koristi u ovom projektu. Dobit ćete zip datoteku koju u vašu Arduino biblioteku mora dodati Skica -> Uključi Librarey -> Dodaj.Zip datoteku .
Prva tri retka dolje prikazanog koda koriste se za uključivanje knjižnice u naš kod. Koristimo serijsku knjižnicu i knjižnicu žica jer ne koristimo zadane Rx i Tx pinove Arduina za komunikaciju s GSM modulom.
#include
Mi omogućiti serijski komunikacija na pinova 9 i 10 koriste sljedeći redak. To nam omogućuje serijska biblioteka softvera koju smo gore uključili.
SoftwareSerial gprs (9,10); // TX, RX
Unutar naše funkcije postavljanja , inicijaliziramo serijski monitor brzinom od 9600 baud, a GSM modul također je inicijaliziran s 9600 baudrate. Pin 8 koji pokreće glas deklariran je kao izlazni pin.
void setup () {Serial.begin (9600); // Serijski monitor radi na 9600 baudrate za otklanjanje pogrešaka sim900_init (& gprs, 9600); // GSM modul radi na 9600 baudrate pinMode (8, OUTPUT); // prikvačivanje za uključivanje Voice Serial.println ("Arduino - automatska govorna mašina"); }
Dalje moramo stvoriti funkciju koja bi mogla čitati i razumjeti što GSM modul govori putem svog serijskog porta. Ako za čitanje poruke koristimo jednostavnu serijsku liniju za čitanje poput "gprs.read ()", dobit ćemo ih u obliku ASCII decimalnih vrijednosti, to za nas neće imati smisla.
Dakle, sljedeća se funkcija koristi za pretvaranje ovih decimalnih vrijednosti u nizove pomoću objekata niza, a zatim ih spaja u oblik niza. Konačna vrijednost niza pohranjena je u varijablu Fdata , koja je tipa string i može se koristiti za usporedbu s bilo kojim String vrijednostima.
void check_Incoming () {if (gprs.available ()) // Ako GSM nešto govori {Incomingch = gprs.read (); // Slušajte ga i pohranite u ovu varijablu if (Incomingch == 10 - Incomingch == 13) // Ako piše razmak (10) ili Newline (13), znači da je dovršio jednu riječ {Serial.println (podaci); Fdata = podaci; podaci = ""; } // Ispišite riječ i izbrišite varijablu da započnete svježe else {String newchar = String (char (Incomingch)); // pretvoriti char u niz pomoću objekata niza data = data + newchar; // Nakon pretvorbe u niz, izvršite spajanje niza}}}
U slijedeće linije se koriste za ispravljanje pogrešaka, s tim ispravljanje pogrešaka linije možete slati AT naredbe iz Serijski monitor Arduino na GSM i vidjeti što je odgovor na serijski monitor.
if (Serial.available ()) {// Koristi se za otklanjanje pogrešaka gprs.write (Serial.read ()); // Koristi se za otklanjanje pogrešaka} // Koristi se za otklanjanje pogrešaka
Kao što je ranije rečeno, Arduino mora provjeriti prima li GSM modul bilo kakve pozive. To se može učiniti tako da Arduino provjeri ima li " RING ", jer će GSM modul u slučaju poziva prema pozivu AT naredbi dati RING. Kada pronađe poziv, pričekat će 5 sekundi i poslati naredbu " ATA " na GSM modul, što će GSM modul odgovoriti na poziv, a nakon odgovora odgovorit će s "OK". Arduino ponovno čeka potvrdu " OK ", a zatim okreće ulaz u Pin 8 na 200 ms kako bi reproducirao snimljeni glas s glasovnog modula.
if (Fdata == "RING") // Ako GSM modul kaže RING {delay (5000); // čekamo 5sec da stvorimo 3 kašnjenja zvona. gprs.write ("ATA \ r \ n"); // Odgovorite na poziv Serial.println ("Primljeno primljeno"); // Koristi se za otklanjanje pogrešaka dok (Fdata! = "OK") // Do uspješnog odgovora na poziv {check_Incoming (); // Pročitajte što GSM modu govori Serial.println ("Reprodukcija snimljene poruke"); // Koristi se za otklanjanje pogrešaka // Reproduciranje oporavljene odgode glasovne poruke (500); digitalWrite (8, VISOKO); // Idi na veliko odgađanje (200); // čekamo 200 msec digitalWrite (8, LOW); // Smanji se}
Radno:
Kad kod i hardver budu spremni, vrijeme je za malo zabave. Uključite oba modula i pritisnite gumb REC na modulu Voice i snimite poruku. Ova poruka može trajati samo 10 sekundi.

Sada programirajte svoj Arduino pomoću dolje navedenog koda i umetnite SIM automobil u GSM modul, trebali biste pričekati najmanje 2 minute kako bi GSM modul mogao uspostaviti vezu s vašim mrežnim davateljem usluga. Kada završite, trebali biste vidjeti kako crvena LED dioda trepće jednom u 3 sekunde, što znači da je vaš SIM spreman za primanje poziva. Sada možete pokušati nazvati ovu SIM karticu s bilo kojeg broja i snimljenu poruku trebali biste čuti nakon tri neprekidna zvona. Kompletni rad projekta prikazan je u video ispod.
Tadaaaaaa !!! Sada imate vlastitu automatsku automatsku sekretaricu i samo je upotrijebite i upotrijebite je kad je to potrebno te njome zadivite svoje prijatelje i obitelj.
Nadam se da vam se svidio projekt i izradite nešto slično. Ako ste imali problema, objavite ih u odjeljku za komentare i ja ću vam pomoći.
