- Szükséges anyagok:
- Fly Scale SIM900 GSM modul:
- ISD1820 Hangmodul:
- Áramkör és magyarázat:
- Az Arduino programozása:
- Dolgozó:
A mai modern világban mindannyian a mobiltelefonoktól függünk, mint a vezeték nélküli kommunikáció elsődleges eszközétől. De mindannyian szembesültünk olyan helyzetekkel, amelyek során előfordulhat, hogy nem tudunk válaszolni a hívásainkra, ezek a hívások fontos személyes hívásnak vagy életet megváltoztató üzleti hívásnak minősülhetnek, és ezt a lehetőséget éppen elmulasztotta, mivel nem tudott válaszolni hívás abban a bizonyos időpontban.
A projekt célja, hogy megoldja ezt a problémát egy automatikus hívás üzenetrögzítő létrehozásával az Arduino és a GSM modul használatával. Legközelebb, amikor új telefonszámra vált, hosszú zarándokútra utazik, vagy jól megérdemelt nyaralást élvez, egyszerűen használja ezt a gépet a hangjának rögzítéséhez, közölve a hiányzás okát, és minden hívását automatikusan megválaszolja ez a gép és az Ön hívója. rögzített hangot fognak nekik lejátszani. Ez arra is használható, hogy üzleti számai megválaszolják ügyfeleinek hívásait nem irodai órákban. Érdekesen hangzik, igaz? Tehát építsük meg..
Szükséges anyagok:
Lehet, hogy a projekt kissé bonyolultnak hangzik, de nagyon egyszerű felépíteni, csak a következő összetevőkre van szükség
- Arduino Uno
- GSM modul - Flyscale SIM 900
- ISD 1820 hangmodul
- 12 V-os tápegység a GSM modul áramellátásához
- 9 V-os akkumulátor az Arduino táplálásához
- Csatlakozó vezetékek
Mielőtt ténylegesen belemennénk a projektbe, ismerkedjünk meg a GSM modullal és az ISD 1820 hangmodullal
Fly Scale SIM900 GSM modul:
A GSM modulok használata lenyűgöző, különösen akkor, ha projektünk távoli hozzáférést igényel. Ezek a modulok elvégezhetnek minden olyan műveletet, amelyet a normál mobiltelefonunk képes megtenni, például hívás kezdeményezése / fogadása, SMS küldés / fogadás, internethez való csatlakozás GPRS használatával stb. Ehhez a modulhoz normál mikrofont és hangszórót is csatlakoztathat, és beszélgethet a mobilhívások. Íme néhány oktatóanyag a különböző mikrovezérlőkről:
- Hívás és üzenet az Arduino és a GSM modul használatával
- Hívás és szöveg küldése a Raspberry Pi és a GSM modul segítségével
- GSM modul Interfació a PIC mikrovezérlővel - Hívások kezdeményezése és fogadása
Amint az az alábbi ábrán látható, a GSM modulhoz tartozik egy USART adapter, amely közvetlenül összekapcsolható a számítógéppel egy MAX232 modul segítségével, vagy a Tx és Rx csapok használhatók a mikrovezérlőhöz való csatlakoztatásra. Észreveheti a többi csapot is, például MIC +, MIC-, SP +, SP- stb., Ahol mikrofon vagy hangszóró csatlakoztatható. A modult egy 12 V-os adapter táplálhatja egy normál egyenáramú csatlakozóaljzaton keresztül.
Helyezze be a SIM-kártyát a modul nyílásába, és kapcsolja be, és észre kell vennie, hogy egy bekapcsoló LED világít. Várjon egy percet, és látnia kell, hogy 3 másodpercenként egyszer villog egy piros (vagy bármilyen más színű) LED. Ez azt jelenti, hogy a modul képes volt kapcsolatot létesíteni a SIM-kártyával. Most folytathatja a modul csatlakoztatását a telefonnal vagy bármely mikrovezérlővel.
ISD1820 Hangmodul:
Az ISD 1820 Voice modul nagyon jó modul, amely hangos bejelentésekkel fűszerezheti a projektjeit. Ez a modul 10 másodpercig képes rögzíteni egy hangklipet, majd szükség esetén lejátszani. Maga a modul mikrofonnal és hangszóróval (8 ohm, 0,5 watt) érkezik, és valami ilyennek kell kinéznie az alábbiakban.
A modul + 5 V-on működik, és a bal oldali berg-botokkal táplálható. Alul három gombja van, amelyek Rec. gombot, PlayE. gombot és a PlayL gombot. gombot. A Felvétel megnyomásával rögzítheti a hangját. gombot, és a PlayE gombbal játssza le. A PlayL addig hallgatja a hangot, amíg nyomva tartja a gombot. Amikor összekapcsolunk egy MCU-val, használhatjuk a bal oldalon lévő csapokat. Ezek a csapok 3V-5V tolerálhatók, és ezért közvetlenül az Arduino / ESP8266 vezérelhetők. Projektünkben a PLAYE csapot vezéreljük az Arduino modulunk D8 tűjével. Annak érdekében, hogy a rögzített hangot lejátszhassuk, amikor a GSM modul észleli és fogadja a hívást.
Áramkör és magyarázat:
Ennek az Automatikus hanghívó üzenetrögzítő projektnek a teljes kapcsolási rajza a fenti. Mint látható, a kapcsolatok nagyon egyszerűek. A GSM modult 12 V 1A adapterrel és az Arduino 9 V akkumulátorral tápláljuk, az ISD Voice modult az Arduino + 5 V tűje táplálja. Mint tudjuk, a rec gomb megnyomásával bármit felvehetünk a hangmodulunkra, és ez a PE megnyomásakor lejátszásra kerül, ezt a hangot el kell küldeni a GSM modul mikrofonjára. Tehát csatlakoztatjuk a Voice modul hangszórócsapját a GSM modul mikrofoncsapjához.
Itt az Arduino és a GSM modul sorosan csatlakozik, az Arduino Tx érintkezõje a 9, az Rx pedig a 10 érintkezõhöz csatlakozik. Ez segít az Arduino számára a GSM modul meghallgatásában. Amikor hívás érkezik a GSM modulba, az Arduino meghallgatja és megkéri a GSM modult a hívás fogadására. Az Arduino megbizonyosodik arról, hogy a hívás aktív, majd lejátssza a rögzített hangüzenetet a hangmodulon azáltal, hogy a 8-as tűt (Csatlakoztatva a hangmodul PE-jéhez) 200 ms-ra magasra emeli.
Az Arduino programozása:
A fenti bekezdésből tudjuk, hogy itt mi az Arduino szerepe; most nézzük meg a kódot, amely ugyanezt teszi. A projekt teljes Arduino kódja ennek az oldalnak az alján található, itt pedig a kódot apró junks-be öntöttem, hogy elmagyarázzam.
Mielőtt a GSM könyvtár további telepítését megelőznénk, kérjük, kattintson erre a Github GSM könyvtár linkre a projektben használt könyvtár letöltéséhez. Kap egy zip fájlt, amelyet hozzá kell adnia az Arduino könyvtárához a Sketch -> Include Librarey -> Add.Zip fájl segítségével .
Az alább látható kód első három sora arra szolgál, hogy a könyvtárat belefoglaljuk a kódunkba. A soros könyvtárat és a vezetékes könyvtárat használjuk, mert nem az Arduino alapértelmezett Rx és Tx csatlakozóit használjuk a GSM modullal való kommunikációhoz.
#include
Mi lehetővé teszik a soros kommunikáció csapok 9. és 10. a következő sort. Ezt a fentiekben mellékelt szoftveres soros könyvtár teszi lehetővé.
SoftwareSerial gprs (9,10); // TX, RX
A beállítási funkciónkban inicializáljuk a soros monitort 9600 baud sebességgel, és a GSM modult is inicializáljuk 9600 Baudrate-mel. A hangot kiváltó 8 tűt kimeneti tűként deklaráljuk.
void setup () {Soros.kezdés (9600); // A soros monitor 9600 baudrate-en működik a sim900_init hibakeresésénél (& gprs, 9600); // A GSM modul 9600 baudrate pinMode (8, OUTPUT) -on működik; // pin a Voice Serial.println bekapcsolásához ("Arduino - Automatic Voice Machine"); }
Ezután létre kell hoznunk egy olyan funkciót, amely leolvashatja és megértheti, mit mond a GSM modul a soros portján keresztül. Ha olyan egyszerű soros olvasási sort használunk, mint a „gprs.read ()”, olvassuk el az üzenetet, ASCII tizedesértékek formájában kapjuk meg őket, ennek semmi értelme nem lesz számunkra.
Tehát a következő függvény segítségével ezek a tizedesértékek karakterláncokká alakíthatók sztringobjektumokkal, majd összefűzve karaktersorozatot alkotnak. A végső karakterlánc értéke az Fdata változóban van tárolva, amely típusú karakterlánc, és bármely String értékkel összehasonlítható.
void check_Incoming () {if (gprs.available ()) // Ha a GSM mond valamit {Incomingch = gprs.read (); // Hallgassa meg, és tárolja ebben a változóban, ha (Incomingch == 10 - Incomingch == 13) // Ha szóközt (10) vagy Newline (13) ír, akkor azt jelenti, hogy egy szót befejezett {Serial.println (adatok); Fdata = adatok; adatok = ""; } // Nyomtassa ki a szót, és törölje a változót az újrakezdéshez. {String newchar = String (char (Incomingch)); // konvertálja a karaktert karakterláncba a string objektumok használatával data = data + newchar; // A karakterláncra konvertálás után végezze el a karakterlánc összefűzését}}}
A következő sorokat használjuk a hibakereséshez, ezekkel a hibakereső sorokkal bármilyen AT-parancsot elküldhet az Arduino soros monitoráról a GSM-re, és megnézheti, mi a válasz a soros monitoron.
if (Serial.available ()) {// A gprs.write (Serial.read ()) hibakeresésére szolgál; // Hibakereséshez használjuk // // Hibakereséshez használjuk
Mint korábban említettük, az Arduinónak ellenőriznie kell, hogy a GSM modul fogad-e hívásokat. Ezt úgy tehetjük meg, hogy az Arduino-t rákérdezzük a „ RING ” kifejezésre, mert a GSM modul hívás esetén az AT parancslista szerinti RING-t adja ki. Ha talál egy hívást, 5 másodpercig várakozik, és elküldi az „ ATA ” parancsot a GSM modulnak. Ez arra készteti a GSM modult, hogy válaszoljon a hívásra, és miután fogadta, „OK” -val válaszol. Az Arduino ismét megvárja az „ OK ” nyugtázást, majd 200 ms-ra magasra fordítja a 8-as tűt a rögzített hang hangmodulból történő lejátszásához.
if (Fdata == "RING") // Ha a GSM modul azt mondja, hogy RING {delay (5000); // várjon 5 másodpercet a 3 csengés késleltetésének létrehozásához. gprs.write ("ATA \ r \ n"); // Válaszoljon a Serial.println ("Elhelyezett fogadott") hívásra; // Hibakereséshez használják, míg (Fdata! = "OK") // A hívás sikeres megválaszolásáig {check_Incoming (); // Olvassa el, mit mond a GSM-mod Serial.println ("Felvett üzenet lejátszása"); // Hibakereséshez használt // Lejátssza a rögzített hangüzenet késleltetését (500); digitalWrite (8, HIGH); // Nagy késés (200); // várjon 200 ms-ig digitalWrite (8, LOW); // Menj alacsonyan}
Dolgozó:
Miután elkészült a kód és a hardver, itt az ideje egy kis szórakozásnak. Kapcsolja be mindkét modult, és nyomja meg a REC gombot a Voice modulon, és rögzítsen egy üzenetet. Ez az üzenet csak 10 másodperc hosszú lehet.
Most programozza az Arduino-t az alább megadott kód használatával, és helyezze be a SIM-autót a GSM modulba. Várjon legalább 2 percet, hogy a GSM-modul kapcsolatot tudjon létesíteni a hálózati szolgáltatóval. Miután végzett, látnia kell, hogy egy piros színű LED villog 3 másodpercenként, ez azt jelzi, hogy a SIM-kártya készen áll a hívások fogadására. Most megpróbálhatja felhívni ezt a SIM-kártyát bármilyen számról, és három folyamatos csengetés után hallania kell a rögzített üzenetet. A projekt teljes működését az alábbi videó mutatja.
Tadaaaaaa !!! Most megvan a saját automatikus hanghívás-üzenetrögzítője, és csak folytassa, igény esetén használja és lenyűgözze vele barátait és családját.
Remélem, hogy tetszett a projekt, és valami hasonlót készít. Ha bármilyen problémája lenne, tegye fel a megjegyzés rovatba, és segítek.