- Nepieciešamie materiāli:
- Fly Scale SIM900 GSM modulis:
- ISD1820 Balss modulis:
- Shēmas shēma un skaidrojums:
- Arduino programmēšana:
- Darbs:
Mūsdienu mūsdienu pasaulē mēs visi esam atkarīgi no mobilajiem tālruņiem kā galvenajiem bezvadu sakaru līdzekļiem. Bet mēs visi esam saskārušies ar situācijām, kad mēs, iespējams, nespējam atbildēt uz mūsu zvaniem, šie zvani var būt svarīgs personiskais zvans vai dzīves mainīgais biznesa zvans, un jūs vienkārši varat palaist garām šo iespēju, jo jūs nevarējāt uz to atbildēt. zvaniet konkrētajā laikā.
Šī projekta mērķis ir atrisināt šo problēmu, izveidojot automātisko zvanu automātisko atbildētāju, izmantojot Arduino un GSM moduli. Nākamreiz, kad mainīsit jaunu tālruņa numuru vai dodaties ilgā svētceļojuma braucienā vai izbaudīsit pelnītas brīvdienas, izmantojiet šo ierīci, lai ierakstītu balsi, norādot prombūtnes iemeslu, un šī mašīna un jūsu tālrunis automātiski atbildēs uz visiem jūsu zvaniem. viņiem tiks atskaņota ierakstītā balss. To var izmantot arī jūsu uzņēmuma numuriem, lai atbildētu uz klienta zvaniem ārpus darba laika. Izklausās interesanti vai ne? Tāpēc uzbūvēsim to..
Nepieciešamie materiāli:
Projekts varētu izklausīties mazliet sarežģīts, taču to ir patiešām viegli izveidot, jums ir nepieciešami tikai šādi komponenti
- Arduino Uno
- GSM modulis - Flyscale SIM 900
- ISD 1820 balss modulis
- 12V adapteris strāvas GSM modulim
- 9 V akumulators, lai darbinātu Arduino
- Savienojošie vadi
Pirms mēs faktiski sākam darbu, iepazīstieties ar GSM moduli un ISD 1820 balss moduli
Fly Scale SIM900 GSM modulis:
GSM moduļi ir aizraujoši lietojami, jo īpaši, ja mūsu projektam nepieciešama attāla piekļuve. Šie moduļi varētu veikt visas darbības, ko varētu veikt mūsu parastais mobilais tālrunis, piemēram, zvanīšana / zvana saņemšana, īsziņu sūtīšana / saņemšana, savienojuma izveide ar internetu, izmantojot GPRS utt. Šim modulim var pievienot arī parastu mikrofonu un skaļruni un sarunāties savā tālrunī. mobilie zvani. Šeit ir dažas apmācības par tiem, izmantojot dažādus mikrokontrollerus:
- Zvani un ziņojumi, izmantojot Arduino un GSM moduli
- Zvans un teksts, izmantojot Raspberry Pi un GSM moduli
- GSM modulis Saskarne ar PIC mikrokontrolleru - zvanu veikšana un saņemšana
Kā parādīts zemāk, GSM modulim ir USART adapteris, kuru var tieši savienot ar datoru, izmantojot MAX232 moduli, vai arī Tx un Rx tapas var izmantot, lai to savienotu ar mikrokontrolleru. Varat arī pamanīt citas tapas, piemēram, MIC +, MIC-, SP +, SP- utt., Kur var pievienot mikrofonu vai skaļruni. Moduli var darbināt ar 12V adapteri caur parastu līdzstrāvas mucas ligzdu.
Ievietojiet SIM karti moduļa slotā un ieslēdziet to. Jums vajadzētu pamanīt, ka ieslēdzas barošanas gaismas diode. Pagaidiet apmēram minūti, un jums vajadzētu redzēt sarkanu (vai jebkuru citu krāsu) gaismas diode mirgo reizi 3 sekundēs. Tas nozīmē, ka jūsu modulis varēja izveidot savienojumu ar jūsu SIM karti. Tagad jūs varat turpināt savienot moduli ar tālruni vai jebkuru mikrokontrolleru.
ISD1820 Balss modulis:
ISD 1820 balss modulis ir patiešām foršs modulis, kas varētu papildināt jūsu projektus ar balss paziņojumiem. Šis modulis spēj ierakstīt audio klipu 10 sekundes un pēc tam to atskaņot, kad nepieciešams. Pats modulis ir aprīkots ar mikrofonu un skaļruni (8 omi 0,5 vati), un tam vajadzētu izskatīties šādi:
Modulis darbojas 5 V, un var darbināt, izmantojot Berg nūjas pa kreisi. Tā apakšā ir arī trīs pogas, kas ir Rec. pogu, PlayE. pogu un PlayL. attiecīgi. Jūs varat ierakstīt savu balsi, nospiežot Rec. pogu un atskaņojiet to, izmantojot pogu PlayE. PlayL atskaņos balsi, kamēr jūs turat pogu. Saskaroties ar MCU, mēs varam izmantot tapas kreisajā pusē. Šīs tapas ir pieļaujamas 3V-5V, un tāpēc tās var tieši vadīt Arduino / ESP8266. Mūsu projektā mēs kontrolējam PLAYE tapu, izmantojot mūsu Arduino moduļa D8 tapu. Lai mēs varētu atskaņot ierakstīto balsi, kad zvanu konstatē un saņem GSM modulis.
Shēmas shēma un skaidrojums:
Pilna šī automātiskā balss zvana automātiskā atbildētāja shēmas shēma ir dota iepriekš. Kā redzat, savienojumi ir patiešām vienkārši. Mēs darbinām GSM moduli ar 12V 1A adapteri un Arduino ar 9V akumulatoru, ISD balss moduli darbina Arduino + 5V tapa. Tā kā mēs zinām, ka mēs varam ierakstīt jebko savā balss modulī, nospiežot pogu rec, un tas tiks atskaņots, nospiežot PE, šī audio jānosūta uz GSM moduļa mikrofonu. Tātad mēs savienojam Balss moduļa skaļruņa tapu ar GSM moduļa mikrofona tapu.
Šeit Arduino un GSM modulis tiek savienots sērijveidā, Arduino Tx tapa ir savienota ar 9. kontaktu un Rx tapa ir savienota ar 10. kontaktu. Tas palīdzēs Arduino klausīties GSM moduli. Kad zvans pienāk uz GSM moduli, Arduino to klausīsies un lūgs GSM moduli atbildēt uz zvanu. Arduino pārliecinās, ka zvans ir aktīvs, un pēc tam atskaņo ierakstīto balss ziņojumu balss modulī, padarot 8. kontaktu (savienots ar balss moduļa PE) augstu 200ms.
Arduino programmēšana:
No iepriekšējās rindkopas mēs zinām, kāda ir Arduino loma šeit; tagad apskatīsim kodu, kas dara to pašu. Pilnīga Arduino kods projekta tiek dots pie šīs lapas apakšā, turklāt šeit man ir izlijis kodu mazos džonkas izskaidrot to.
Pirms mēs turpinām instalēt GSM bibliotēku, lūdzu, noklikšķiniet uz šīs Github GSM bibliotēkas saites, lai lejupielādētu šajā projektā izmantoto bibliotēku. Jūs saņemsiet zip failu, kas jāpievieno jūsu Arduino bibliotēkai, izmantojot Sketch -> Include Librarey -> Add.Zip file .
Pirmās trīs zemāk redzamā koda rindas tiek izmantotas, lai bibliotēku iekļautu mūsu kodā. Mēs izmantojam sērijveida bibliotēku un vadu bibliotēku, jo saziņai ar GSM moduli neizmantojam noklusējuma Rx un Tx tapas no Arduino.
# iekļaut
Mēs iespējojam sērijveida saziņu 9. un 10. tapā, izmantojot šādu rindu. To nodrošina programmatūras sērijveida bibliotēka, kuru mēs iekļāvām iepriekš.
SoftwareSerial gprs (9,10); // TX, RX
Inside mūsu iestatīšanas funkciju, mēs sāktu sērijas monitoru 9600 datu pārraides ātrumu un GSM modulis ir arī inicializēts ar 9600 Baudrate. Tapa 8, kas iedarbina balsi, tiek pasludināta par izvades tapu.
void setup () {Sērijas.sākt (9600); // Sērijas monitors darbojas ar 9600 baudratu, lai atkļūdotu sim900_init (& gprs, 9600); // GSM modulis darbojas ar 9600 baudrate pinMode (8, OUTPUT); // piespraudiet, lai ieslēgtu Voice Serial.println ("Arduino - automātiskā balss mašīna"); }
Tālāk mums jāizveido funkcija, kas varētu lasīt un saprast, ko GSM modulis saka caur tā seriālo portu. Ja mēs izmantosim vienkāršu sērijas lasīšanas rindiņu, piemēram, “gprs.read ()”, lai lasītu ziņojumu, mēs tos saņemsim ASCII decimālvērtību veidā, mums tas nebūs jēgas.
Tātad šī funkcija tiek izmantota, lai šīs decimālvērtības pārveidotu par virknēm, izmantojot virknes objektus, un pēc tam tās savieno, lai izveidotu virkni. Galīgā virknes vērtība tiek saglabāta mainīgajā Fdata , kas ir virknes tips un kuru var izmantot, lai salīdzinātu ar visām virknes vērtībām.
void check_Incoming () {if (gprs.available ()) // Ja GSM kaut ko saka {Incomingch = gprs.read (); // Klausieties to un saglabājiet šajā mainīgajā, ja (Incomingch == 10 - Incomingch == 13) // Ja tas saka atstarpi (10) vai Newline (13), tas nozīmē, ka tas ir pabeidzis vienu vārdu {Serial.println (dati); Fdata = dati; dati = ""; } // Izdrukājiet vārdu un notīriet mainīgo, lai sāktu no jauna {String newchar = String (char (Incomingch)); // konvertēt rakstzīmi uz virkni, izmantojot virknes objektus data = data + newchar; // Pēc konvertēšanas uz virkni veiciet virknes savienošanu}}}
Par šādas līnijas izmanto atkļūdošanai, ar šiem atkļūdotājs līnijas jūs varat sūtīt AT komandas no sērijas monitors Arduino uz GSM un arī redzēt, to, kas ir atbildes uz sērijas monitoru.
if (Serial.available ()) {// Izmanto gprs.write (Serial.read ()) atkļūdošanai; // Izmanto atkļūdošanai} // Izmanto atkļūdošanai
Kā jau minēts iepriekš, Arduino ir jāpārbauda, vai GSM modulis nesaņem zvanus. To var izdarīt, liekot Arduino pārbaudīt, vai nav “ RING ”, jo GSM modulis izsauc RING zvana gadījumā saskaņā ar AT komandu sarakstu. Atradusi zvanu, tā gaidīs 5 sekundes un nosūtīs komandu “ ATA ” uz GSM moduli, tas liks GSM modulim atbildēt uz zvanu un pēc atbildēšanas atbildēs ar “OK”. Arduino atkal gaida apstiprinājumu “ OK ” un pēc tam pagriež augšējo spraudni 8 uz 200ms, lai atskaņotu ierakstīto balsi no balss moduļa.
if (Fdata == "RING") // Ja GSM modulis saka RING {delay (5000); // pagaidiet 5 sekundes, lai izveidotu 3 zvana kavēšanos. gprs.write ("ATA \ r \ n"); // Atbildiet uz zvanu Serial.println ("Novietots saņemts"); // Izmanto atkļūdošanai, kamēr (Fdata! = "OK") // Kamēr zvans nav veiksmīgi atbildēts {check_Incoming (); // Izlasiet, ko saka GSM modulis Serial.println ("Ierakstītā ziņojuma atskaņošana"); // Izmanto atkļūdošanai // Atskaņot ierakstīto balss ziņojumu aizkavi (500); digitalWrite (8, HIGH); // Iet lielā kavēšanās (200); // jāgaida 200 msekunde digitalWrite (8, LOW); // iet zemu}
Darbs:
Kad kods un aparatūra ir gatava, ir laiks izklaidēties. Ieslēdziet abus moduļus un nospiediet Balss moduļa pogu REC un ierakstiet ziņojumu. Šis ziņojums var būt tikai 10 sekundes garš.
Tagad ieprogrammējiet savu Arduino, izmantojot zemāk norādīto kodu, un ievietojiet SIM automašīnu GSM modulī. Jums vajadzētu pagaidīt vismaz 2 minūtes, lai GSM modulis varētu izveidot savienojumu ar jūsu tīkla pakalpojumu sniedzēju. Kad esat pabeidzis, jums vajadzētu redzēt, ka sarkanās krāsas gaismas diode mirgo reizi 3 sekundēs, tas norāda, ka SIM karte ir gatava zvaniem. Tagad varat mēģināt piezvanīt uz šo SIM karti no jebkura numura, un jums vajadzētu dzirdēt ierakstīto ziņojumu pēc trim nepārtrauktiem zvana signāliem. Pilnīga projekta darbība ir parādīta zemāk esošajā video.
Tadaaaaaa !!! Tagad jums ir savs automātiskais balss zvana automātiskais atbildētājs, un vienkārši izmantojiet to, kad nepieciešams, un izbrīniet savus draugus un ģimeni.
Ceru, ka jums patika projekts un izveidojat kaut ko līdzīgu. Ja jums ir kādas problēmas, ievietojiet tos komentāru sadaļā, un es jums palīdzēsim.