- Potrebné materiály:
- GSM modul Fly Scale SIM900:
- Hlasový modul ISD1820:
- Schéma zapojenia a vysvetlenie:
- Programovanie vášho Arduina:
- Pracovné:
V dnešnom modernom svete sme všetci závislí od mobilných telefónov ako našich primárnych prostriedkov bezdrôtovej komunikácie. Ale všetci sme čelili situáciám, počas ktorých nemusíme byť schopní odpovedať na naše hovory, tieto hovory môžu byť dôležitým osobným volaním alebo obchodným hovorom meniacim život a mohli ste práve túto príležitosť premeškať, pretože ste na ňu neboli schopní odpovedať hovor v tom konkrétnom čase.
Cieľom tohto projektu je vyriešiť tento problém vytvorením automatického záznamníka hovorov pomocou modulu Arduino a GSM. Nabudúce, keď prechádzate na nové telefónne číslo alebo ste na dlhej pútnickej ceste alebo si užívate zaslúženú dovolenku, jednoducho pomocou tohto prístroja nahrajte svoj hlas s uvedením dôvodu neprítomnosti a všetky vaše hovory budú automaticky odpovedané týmto prístrojom a vašim nahraný hlas sa im prehrá. To možno tiež použiť na vaše firemné čísla na odpovedanie na hovory vašich zákazníkov v mimopracovných hodinách. Znie to zaujímavo, že? Postavme to teda..
Potrebné materiály:
Projekt môže znieť trochu komplikovane, ale je skutočne jednoduchý na zostavenie, potrebujete iba nasledujúce komponenty
- Arduino Uno
- GSM modul - Flyscale SIM 900
- Hlasový modul ISD 1820
- 12V adaptér na napájanie GSM modulu
- 9V batéria na napájanie Arduina
- Pripojovacie vodiče
Predtým, ako skutočne začneme s projektom, oboznámme sa s GSM modulom a hlasovým modulom ISD 1820
GSM modul Fly Scale SIM900:
GSM moduly sú fascinujúce na použitie, najmä keď náš projekt vyžaduje vzdialený prístup. Tieto moduly môžu vykonávať všetky činnosti, ktoré môže robiť náš bežný mobilný telefón, napríklad uskutočňovať / prijímať hovory, odosielať / prijímať SMS, pripájať sa na internet pomocou GPRS atď. K tomuto modulu môžete pripojiť aj bežný mikrofón a reproduktor a konverzovať na vašom mobilné hovory. Tu je niekoľko návodov, ako používať odlišný mikrokontrolér:
- Hovory a správy pomocou modulu Arduino a GSM
- Volajte a textové správy pomocou Raspberry Pi a GSM modulu
- Prepojenie modulu GSM s mikrokontrolérom PIC - uskutočňovanie a prijímanie hovorov
Ako je znázornené na nasledujúcom obrázku, modul GSM je dodávaný s adaptérom USART, ktorý je možné priamo prepojiť s počítačom pomocou modulu MAX232 alebo pomocou pinov Tx a Rx pripojiť k mikrokontroléru. Môžete si tiež všimnúť ďalšie piny ako MIC +, MIC-, SP +, SP- atď., Kde je možné pripojiť mikrofón alebo reproduktor. Modul môže byť napájaný z adaptéra 12 cez normálnu DC barelu konektora.
Vložte kartu SIM do slotu modulu a zapnite ju. Mali by ste si všimnúť rozsvietenie kontrolky LED napájania. Teraz počkajte asi minútu a mali by ste vidieť, že červená (alebo iná farba) LED bliká raz za každé 3 sekundy. To znamená, že váš modul bol schopný nadviazať spojenie s vašou SIM kartou. Teraz môžete pokračovať v pripojení modulu k telefónu alebo k ľubovoľnému mikrokontroléru.
Hlasový modul ISD1820:
Hlasový modul ISD 1820 je skutočne skvelý modul, ktorý by mohol vaše projekty okoreniť hlasovými oznámeniami. Tento modul je schopný nahrávať zvukový klip na 10 sekúnd a potom ho podľa potreby prehrať. Samotný modul je dodávaný s mikrofónom a reproduktorom (8 ohmov, 0,5 wattu) a podľa nižšie uvedeného obrázku by mal vyzerať asi takto.
Modul pracuje na + 5 V a môže byť napájaný pomocou Berg palice na ľavej strane. Má tiež tri tlačidlá v dolnej časti, ktoré sú Rec. tlačidlo Prehrať. tlačidlo a PlayL. tlačidlo. Svoj hlas môžete nahrať stlačením tlačidla Rec. tlačidlo a prehrajte ho pomocou tlačidla PlayE. PlayL bude hrať hlas, pokiaľ budete držať tlačidlo. Pri prepojení s MCU môžeme použiť kolíky vľavo. Tieto piny sú tolerovateľné 3V-5V, a preto ich môže priamo poháňať Arduino / ESP8266. V našom projekte ovládame pin PLAYE pomocou pinu D8 nášho modulu Arduino. Aby sme mohli prehrať zaznamenaný hlas, keď je detekovaný a prijatý hovor modulom GSM.
Schéma zapojenia a vysvetlenie:
Kompletná schéma zapojenia tohto projektu Automatického telefónneho záznamníka je uvedená vyššie. Ako vidíte, spojenia sú naozaj jednoduché. Napájame GSM modul s adaptérom 12V 1A a Arduino s 9V batériou, modul ISD Voice je napájaný z + 5V kolíka Arduina. Ako vieme, môžeme nahrávať čokoľvek na náš hlasový modul stlačením tlačidla rec a toto sa prehrá po stlačení PE, tento zvuk sa musí poslať na mikrofón GSM modulu. Pripojíme teda pin reproduktora modulu Voice k konektoru mikrofónu modulu GSM.
Tu je Arduino a GSM modul pripojený sériovo, pin Tx Arduina je pripojený na pin 9 a pin Rx je pripojený na pin 10. To pomôže Arduinu počúvať GSM modul. Keď príde hovor na modul GSM, Arduino ho bude počúvať a požiada modul GSM, aby hovor prijal. Arduino zaistí, aby bol hovor aktívny, a potom prehrá zaznamenanú hlasovú správu na hlasovom module tak, že pin 8 (pripojený k PE hlasového modulu) zvýši na 200ms.
Programovanie vášho Arduina:
Z vyššie uvedeného odseku vieme, aká je tu úloha Arduina; teraz sa pozrime na kód, ktorý robí to isté. Kompletné Arduino kód projektu je uvedený v dolnej časti tejto stránky, ďalej tu som vyliala kód do malej džunky to vysvetliť.
Predtým, ako začneme s ďalšou inštaláciou knižnice GSM, kliknite prosím na tento odkaz na knižnicu Github GSM a stiahnite si knižnicu použitú v tomto projekte. Získate súbor ZIP, ktorý je potrebné pridať do vašej knižnice Arduino pomocou aplikácie Sketch -> Include Librarey -> Add.Zip .
Prvé tri riadky kódu zobrazeného nižšie sa používajú na zahrnutie knižnice do nášho kódu. Používame sériovú knižnicu a knižnicu drôtov, pretože na komunikáciu s GSM modulom nepoužívame predvolené piny Rx a Tx Arduina.
#include
My umožňujú sériovú komunikáciu na kolíky 9 a 10 s použitím nasledujúci riadok. Umožňuje to softvérová sériová knižnica, ktorú sme zahrnuli vyššie.
SoftvérSerial gprs (9,10); // TX, RX
V rámci našej funkcie nastavenia inicializujeme sériový monitor na prenosovú rýchlosť 9600 a modul GSM je tiež inicializovaný na prenosovú rýchlosť 9600. Pin 8, ktorý spúšťa hlas, je deklarovaný ako výstupný pin.
void setup () {Serial.begin (9600); // Sériový monitor pracuje na 9600 baudrate na ladenie sim900_init (& gprs, 9600); // GSM modul funguje na 9600 baudrate pinMode (8, OUTPUT); // pripnutie na zapnutie Voice Serial.println ("Arduino - automatický hlasový prístroj"); }
Ďalej musíme vytvoriť funkciu, ktorá dokáže čítať a chápať, čo hovorí modul GSM prostredníctvom sériového portu. Ak použijeme na prečítanie správy jednoduchý radový riadok na čítanie ako „gprs.read ()“, dostaneme ich vo forme desatinných hodnôt ASCII, nebude nám to dávať zmysel.
Nasledujúca funkcia sa teda používa na prevod týchto desatinných hodnôt na reťazce pomocou objektov reťazca a ich následným zreťazením do podoby reťazca. Výsledná hodnota reťazca je uložená v premennej Fdata , ktorá je typu string a je možné ju použiť na porovnanie s ľubovoľnými hodnotami reťazca.
void check_Incoming () {if (gprs.available ()) // Ak GSM niečo hovorí {Incomingch = gprs.read (); // Vypočujte si ju a uložte do tejto premennej if (Incomingch == 10 - Incomingch == 13) // Ak hovorí medzera (10) alebo Newline (13), znamená to, že dokončil jedno slovo {Serial.println (údaje); Fdata = údaje; data = ""; } // Vytlačte slovo a vymažte premennú, aby sa začal nový else {String newchar = String (char (Incomingch)); // prevedieme znak na reťazec pomocou reťazcových objektov data = data + newchar; // Po prevedení na reťazec urobte zreťazenie reťazca}}}
Na nasledujúcich riadkoch sa používajú pre ladenie s týmito líniami ladiacimi môžete odosielať príkazy AT zo sériového monitora Arduino do GSM a tiež vidieť, čo je odozva na sériovom monitore.
if (Serial.available ()) {// Používa sa na ladenie gprs.write (Serial.read ()); // Používa sa na ladenie} // Používa sa na ladenie
Ako už bolo povedané, Arduino musí skontrolovať, či modul GSM prijíma hovory. To je možné urobiť tak, že Arduino skontroluje, či je „ RING “, pretože modul GSM bude v prípade hovoru vysielať RING podľa zoznamu príkazov AT. Keď nájde hovor, počká 5 sekúnd a pošle príkaz „ ATA “ do GSM modulu, čím GSM modul prijme hovor a po prijatí odpovie „OK“. Arduino opäť čaká na potvrdenie „ OK “ a potom otočí kolík 8 na vysoko na 200 ms, aby prehral zaznamenaný hlas z hlasového modulu.
if (Fdata == "RING") // Ak modul GSM hovorí RING {delay (5000); // počkajte 5 sekúnd, aby sa vytvorilo oneskorenie 3 zvonení. gprs.write ("ATA \ r \ n"); // Prijatie hovoru Serial.println ("Umiestnený prijatý"); // Používa sa na ladenie while (Fdata! = "OK") // Kým nebude hovor úspešne prijatý {check_Incoming (); // Prečítajte si, čo hovorí modul GSM Serial.println ("Prehrávanie zaznamenanej správy"); // Používa sa na ladenie // Prehranie oneskoreného záznamu hlasovej správy (500); digitalWrite (8, HIGH); // Go high delay (200); // čakať na 200 ms digitalWrite (8, LOW); // Choď dole}
Pracovné:
Keď je váš kód a hardvér pripravený, je čas na zábavu. Zapnite obidva moduly a stlačte tlačidlo REC na hlasovom module a nahrajte správu. Táto správa môže mať iba 10 sekúnd.
Teraz naprogramujte svoje Arduino pomocou nižšie uvedeného kódu a vložte automobil SIM do modulu GSM. Teraz by ste mali počkať minimálne 2 minúty, aby sa modul GSM mohol spojiť s vaším poskytovateľom sieťových služieb. Po dokončení by ste mali vidieť červenú farbu LED blikajúcu raz za 3 sekundy, čo znamená, že vaša SIM karta je pripravená prijímať hovory. Teraz môžete skúsiť zavolať na túto SIM kartu z ľubovoľného čísla a zaznamenanú správu by ste mali počuť po troch nepretržitých zvoneniach. Kompletné fungovanie projektu je zobrazené na videu nižšie.
Tadaaaaaa !!! Teraz máte vlastný automatický záznamník hlasových hovorov a jednoducho ho použite, keď je to potrebné, a ohromte ním svojich priateľov a rodinu.
Dúfam, že sa vám projekt páčil a vytvorili niečo podobné. Ak by ste mali nejaké problémy, pošlite ich do sekcie komentárov a pomôžem vám.