- Potřebné materiály:
- Fly Scale SIM900 GSM modul:
- Hlasový modul ISD1820:
- Schéma zapojení a vysvětlení:
- Programování vašeho Arduina:
- Pracovní:
V dnešním moderním světě jsme všichni závislí na mobilních telefonech jako na našem primárním prostředku bezdrátové komunikace. Ale všichni jsme čelili situacím, během kterých nemusíme být schopni odpovědět na naše hovory, tyto hovory mohou být důležitým osobním hovorem nebo život měnícím obchodním hovorem a vy jste mohli tuto příležitost zmeškat, protože jste nebyli schopni na to odpovědět zavolat v tu konkrétní dobu.
Tento projekt si klade za cíl vyřešit tento problém vytvořením Automatického záznamníku hovorů pomocí Arduino a GSM modulu. Až budete příště přecházet na nové telefonní číslo nebo vyrazit na dlouhou poutní cestu nebo si užít zaslouženou dovolenou, použijte tento přístroj k zaznamenání vašeho hlasu s uvedením důvodu nepřítomnosti a všechny vaše hovory budou automaticky zodpovězeny tímto zařízením a vaším nahraný hlas jim bude přehrán. To lze také použít pro vaše obchodní čísla k odpovídání na volání vašich zákazníků v mimopracovních hodinách. Zní to zajímavě, že? Postavme to tedy..
Potřebné materiály:
Projekt může znít trochu komplikovaně, ale jeho sestavení je opravdu snadné, potřebujete pouze následující komponenty
- Arduino Uno
- GSM modul - Flyscale SIM 900
- Hlasový modul ISD 1820
- 12V adaptér k napájení GSM modulu
- 9V baterie pro napájení Arduina
- Připojovací vodiče
Než skutečně přistoupíme k projektu, seznámíme se s GSM modulem a hlasovým modulem ISD 1820
Fly Scale SIM900 GSM modul:
GSM moduly jsou fascinující pro použití, zvláště když náš projekt vyžaduje vzdálený přístup. Tyto moduly mohou provádět všechny činnosti, které náš běžný mobilní telefon může dělat, například uskutečňovat / přijímat hovory, odesílat / přijímat SMS, připojovat se k internetu pomocí GPRS atd. K tomuto modulu můžete také připojit normální mikrofon a reproduktor a konverzovat na svém mobilní hovory. Zde je několik tutoriálů o nich, které používají různé mikrokontroléry:
- Hovory a zprávy pomocí Arduina a GSM modulu
- Volejte a textujte pomocí Raspberry Pi a GSM modulu
- Propojení modulu GSM s mikrokontrolérem PIC - uskutečňování a přijímání hovorů
Jak je znázorněno na následujícím obrázku, modul GSM je dodáván s adaptérem USART, který lze přímo propojit s počítačem pomocí modulu MAX232 nebo k jeho připojení k mikrokontroléru lze použít piny Tx a Rx. Můžete si také všimnout dalších pinů jako MIC +, MIC-, SP +, SP- atd., Kde lze připojit mikrofon nebo reproduktor. Modul může být napájen z adaptéru 12V přes normální DC barelu konektoru.
Vložte SIM kartu do slotu modulu a zapněte ji, měli byste si všimnout, že se rozsvítí kontrolka LED napájení. Nyní počkejte asi minutu a měli byste vidět červenou (nebo jinou barvu) LED blikající jednou každé 3 sekundy. To znamená, že váš modul byl schopen navázat spojení s vaší SIM kartou. Nyní můžete pokračovat v připojení modulu k telefonu nebo libovolnému mikrokontroléru.
Hlasový modul ISD1820:
Hlasový modul ISD 1820 je opravdu skvělý modul, který může vaše projekty okořenit hlasovými oznámeními. Tento modul je schopen zaznamenávat zvukový klip po dobu 10 sekund a poté jej podle potřeby přehrát. Samotný modul je dodáván s mikrofonem a reproduktorem (8 ohmů 0,5 wattu) a měl by vypadat nějak takto, jak je uvedeno níže.
Modul pracuje na + 5 V a může být napájen pomocí Berg hole na levé straně. Ve spodní části má také tři tlačítka, která jsou Rec. tlačítko PlayE. tlačítko a PlayL. tlačítko. Svůj hlas můžete zaznamenat stisknutím tlačítka Rec. a přehrajte jej pomocí tlačítka Přehrát. PlayL bude hrát hlas, pokud držíte tlačítko. Při propojení s MCU můžeme použít kolíky vlevo. Tyto piny jsou tolerovatelné 3V-5V, a proto je lze přímo ovládat pomocí Arduino / ESP8266. V našem projektu ovládáme pin PLAYE pomocí pinu D8 našeho modulu Arduino. Abychom mohli přehrávat zaznamenaný hlas, když je detekován a přijat hovor GSM modulem.
Schéma zapojení a vysvětlení:
Kompletní schéma zapojení tohoto projektu Automatický hlasový záznamník je uvedeno výše. Jak vidíte, spojení jsou opravdu jednoduchá. Napájíme GSM modul pomocí adaptéru 12V 1A a Arduino s 9V baterií, modul ISD Voice je napájen kolíkem + 5V Arduina. Jak víme, že můžeme na náš hlasový modul zaznamenat cokoli stisknutím tlačítka rec a toto se přehraje, když je stisknuto PE, tento zvuk musí být odeslán na mikrofon GSM modulu. Spojíme tedy kolík reproduktoru modulu Voice s kolíkem mikrofonu modulu GSM.
Zde je Arduino a GSM modul připojen sériově, Tx pin Arduina je připojen k pin 9 a Rx pin je připojen pin 10. To Arduinu pomůže poslouchat GSM modul. Když přijde hovor do GSM modulu, Arduino ho poslechne a požádá GSM modul, aby hovor přijal. Arduino zajišťuje, že je hovor aktivní, a poté přehraje zaznamenanou hlasovou zprávu na hlasovém modulu tak, že pin 8 (připojený k PE hlasového modulu) se zvýší na 200 ms.
Programování vašeho Arduina:
Z výše uvedeného odstavce víme, jaká je zde role Arduina; Nyní se podívejme na kód, který dělá totéž. Kompletní Arduino kód projektu je uveden v dolní části této stránky, dále zde jsem vylila kód do malé džunky to vysvětlit.
Než se pustíme do další instalace GSM knihovny, laskavě klikněte na tento odkaz na knihovnu GSM Github a stáhněte si knihovnu použitou v tomto projektu. Získáte soubor ZIP, který je třeba přidat do vaší knihovny Arduino pomocí Sketch -> Include Librarey -> Add.Zip file .
První tři řádky kódu zobrazeného níže slouží k zahrnutí knihovny do našeho kódu. Používáme sériovou knihovnu a knihovnu drátů, protože ke komunikaci s GSM modulem nepoužíváme výchozí piny Rx a Tx Arduina.
#zahrnout
My umožňují sériovou komunikaci na kolíky 9 a 10 s použitím následující řádek. To umožňuje softwarová sériová knihovna, kterou jsme zahrnuli výše.
SoftwareSerial gprs (9,10); // TX, RX
V rámci naší funkce nastavení inicializujeme sériový monitor na přenosovou rychlost 9600 a GSM modul je také inicializován na přenosovou rychlost 9600. Pin 8, který spouští hlas, je deklarován jako výstupní pin.
void setup () {Serial.begin (9600); // Sériový monitor pracuje na 9600 baudrate pro ladění sim900_init (& gprs, 9600); // GSM modul pracuje na 9600 baudrate pinMode (8, OUTPUT); // pin pro zapnutí Voice Serial.println ("Arduino - automatický hlasový stroj"); }
Dále musíme vytvořit funkci, která dokáže číst a porozumět tomu, co GSM modul říká prostřednictvím svého sériového portu. Pokud použijeme k přečtení zprávy jednoduchou sériovou čtecí linku jako „gprs.read ()“, dostaneme je ve formě desetinných hodnot ASCII, nebude nám to dávat smysl.
Následující funkce se tedy používá k převodu těchto desetinných hodnot na řetězce pomocí řetězcových objektů a jejich následným zřetězením k vytvoření řetězce. Konečná hodnota řetězce je uložena v proměnné Fdata , která je typu řetězec a lze ji použít k porovnání s libovolnými hodnotami řetězce.
void check_Incoming () {if (gprs.available ()) // Pokud GSM něco říká {Incomingch = gprs.read (); // Poslechněte si to a uložte do této proměnné if (Incomingch == 10 - Incomingch == 13) // Pokud říká mezera (10) nebo Newline (13), znamená to, že dokončil jedno slovo {Serial.println (data); Fdata = data; data = ""; } // Vytiskněte slovo a vymažte proměnnou a začněte znovu else {String newchar = String (char (Incomingch)); // převést znak na řetězec pomocí řetězcových objektů data = data + newchar; // Po převodu na řetězec proveďte zřetězení řetězce}}}
Na následujících řádcích se používají pro ladění s těmito liniemi ladicími můžete odesílat příkazy AT ze sériového monitoru Arduino do GSM a také vidět, co je odezva na sériovém monitoru.
if (Serial.available ()) {// Používá se k ladění gprs.write (Serial.read ()); // Používá se k ladění} // Používá se k ladění
Jak již bylo řečeno, Arduino musí zkontrolovat, zda GSM modul přijímá nějaké hovory. Toho lze dosáhnout tak, že Arduino zkontroluje „ RING “, protože GSM modul vydá RING v případě volání podle seznamu AT příkazů. Když najde hovor, počká po dobu 5 sekund a pošle příkaz „ ATA “ do GSM modulu, čímž GSM modul přijme hovor a po přijetí odpoví „OK“. Arduino opět čeká na potvrzení „ OK “ a poté na 200 ms otočí vysoko na Pin 8, aby přehrál zaznamenaný hlas z hlasového modulu.
if (Fdata == "RING") // Pokud GSM modul říká RING {delay (5000); // počkejte 5 s, abyste vytvořili zpoždění 3 zazvonění. gprs.write ("ATA \ r \ n"); // Přijmout hovor Serial.println ("Umístěno přijato"); // Používá se k ladění while (Fdata! = "OK") // Dokud nebude hovor úspěšně přijat {check_Incoming (); // Přečtěte si, co říká GSM modul Serial.println ("Přehrávání zaznamenané zprávy"); // Používá se pro ladění // Přehrávání zpožděné hlasové zprávy (500); digitalWrite (8, HIGH); // Go high delay (200); // čekání na 200 ms digitalWrite (8, LOW); // Jdi dolů}
Pracovní:
Jakmile je váš kód a hardware připraven, je čas na nějakou zábavu. Zapněte oba moduly, stiskněte tlačítko REC na hlasovém modulu a nahrajte zprávu. Tato zpráva může mít pouze 10 sekund.
Nyní naprogramujte Arduino pomocí níže uvedeného kódu a vložte vůz SIM do modulu GSM. Nyní byste měli počkat alespoň 2 minuty, aby modul GSM mohl navázat spojení s vaším poskytovatelem síťových služeb. Jakmile budete hotovi, měla by vám jednou za 3 sekundy blikat červená LED, což znamená, že vaše SIM karta je připravena přijímat hovory. Nyní můžete zkusit volat na tuto SIM kartu z libovolného čísla a zaznamenanou zprávu byste měli slyšet po třech nepřetržitých zvoněních. Kompletní fungování projektu je uvedeno ve videu níže.
Tadaaaaaa !!! Nyní máte svůj vlastní automatický záznamník hlasových hovorů a jednoduše jej použijte, když je to potřeba, a ohromte tím své přátele a rodinu.
Doufám, že se vám projekt líbil a postavili něco podobného. Pokud byste měli nějaké problémy, pošlete je do sekce komentářů a já vám pomůžu.