- Reikalingos medžiagos:
- „Fly Scale“ SIM900 GSM modulis:
- ISD1820 Balso modulis:
- Grandinės schema ir paaiškinimas:
- „Arduino“ programavimas:
- Darbas:
Šiuolaikiniame šiuolaikiniame pasaulyje visi esame priklausomi nuo mobiliųjų telefonų kaip pagrindinės belaidžio ryšio priemonės. Bet mes visi esame susidūrę su situacijomis, kai negalime atsakyti į savo skambučius, šie skambučiai gali būti svarbus asmeninis skambutis ar gyvenimo pokyčių reikalaujantis verslo skambutis, ir jūs galite tiesiog praleisti šią galimybę, nes negalėjote į tai atsakyti skambinkite tuo konkrečiu metu.
Šiuo projektu siekiama išspręsti šią problemą sukuriant automatinį skambučių atsakiklį naudojant „Arduino“ ir GSM modulį. Kitą kartą, kai pakeisite naują telefono numerį, išvyksite į ilgą piligriminę kelionę ar mėgausitės pelnytomis atostogomis, tiesiog naudokitės šia mašina, kad įrašytumėte savo balsą, nurodydami nebuvimo priežastį, ir į jūsų skambučius automatiškai atsakys ši mašina. jiems bus grojamas įrašytas balsas. Tai taip pat gali būti naudojama jūsų verslo numeriams atsakyti į jūsų kliento skambučius ne darbo metu. Skamba įdomiai, tiesa? Taigi pastatykime jį..
Reikalingos medžiagos:
Projektas gali pasirodyti šiek tiek sudėtingas, tačiau jį sukurti yra labai lengva, jums tereikia šių komponentų
- Arduino Uno
- GSM modulis - „Flyscale SIM 900“
- ISD 1820 balso modulis
- 12 V adapteris į maitinimo GSM modulį
- 9 V akumuliatorius „Arduino“ maitinimui
- Jungiamieji laidai
Prieš pradėdami projektą, susipažinkite su GSM moduliu ir ISD 1820 balso moduliu
„Fly Scale“ SIM900 GSM modulis:
GSM moduliai yra įdomūs naudoti, ypač kai mūsų projektui reikalinga nuotolinė prieiga. Šie moduliai galėtų atlikti visus veiksmus, kuriuos galėtų atlikti įprastas mūsų mobilusis telefonas, pvz., Skambinti / priimti skambutį, siųsti / gauti SMS, prisijungti prie interneto naudojant GPRS ir kt. Taip pat galite prie šio modulio prijungti įprastą mikrofoną ir garsiakalbį bei kalbėtis savo mobilieji skambučiai. Čia yra keletas pamokų apie juos naudojant skirtingą mikrovaldiklį:
- Skambinkite ir praneškite naudodami „Arduino“ ir „GSM“ modulį
- Skambinkite ir siųskite tekstą naudodami „Raspberry Pi“ ir „GSM“ modulį
- GSM modulio sąsaja su PIC mikrovaldikliu - skambinkite ir priimkite skambučius
Kaip parodyta paveikslėlyje žemiau, GSM modulyje yra USART adapteris, kurį galima tiesiogiai susieti su kompiuteriu naudojant MAX232 modulį, arba Tx ir Rx kaiščiai gali būti naudojami prijungiant jį prie mikrovaldiklio. Taip pat galite pastebėti kitus kaiščius, tokius kaip MIC +, MIC-, SP +, SP- ir kt., Kur galima prijungti mikrofoną ar garsiakalbį. Modulis gali būti maitinamas 12V adapteris per įprastą DC barelį lizdą.
Įdėkite savo SIM kortelę į modulio angą ir įjunkite ją, turėtumėte pastebėti, kad įsijungia maitinimo šviesos diodas. Dabar palaukite maždaug minutę ir turėtumėte pamatyti raudoną (arba bet kokios kitos spalvos) šviesos diodą, kuris mirksi kartą per 3 sekundes. Tai reiškia, kad jūsų modulis sugebėjo užmegzti ryšį su jūsų SIM kortele. Dabar galite tęsti modulio prijungimą prie telefono ar bet kurio mikrovaldiklio.
ISD1820 Balso modulis:
ISD 1820 balso modulis yra puikus modulis, kuris gali pagardinti jūsų projektus pranešimais apie balsą. Šis modulis gali įrašyti garso įrašą 10 sekundžių ir tada, kai reikia, jį paleisti. Pats modulis yra su mikrofonu ir garsiakalbiu (8 omai 0,5 vatai), ir jis turėtų atrodyti maždaug taip, kaip parodyta žemiau.
Modulis veikia + 5V ir gali būti varomas naudojant Berg lazdos kairėje. Apačioje taip pat yra trys mygtukai, kurie yra Rec. mygtuką, „PlayE“. mygtuką ir „PlayL“. mygtuką. Galite įrašyti savo balsą paspausdami Įrašyti. mygtuką ir paleiskite jį naudodami „PlayE“ mygtuką. „PlayL“ gros balsą tol, kol laikysite nuspaudę mygtuką. Sąsajoje su MCU galime naudoti kaiščius kairėje. Šie kaiščiai yra toleruojami 3V-5V, todėl juos tiesiogiai gali valdyti „Arduino“ / ESP8266. Savo projekte valdome „PLAYE“ kaištį naudodami „Arduino“ modulio D8 kaištį. Kad galėtume atkurti įrašytą balsą, kai GSM modulis aptinka ir gauna skambutį.
Grandinės schema ir paaiškinimas:
Visa šio automatinio balso atsakiklio projekto schema pateikta aukščiau. Kaip matote, jungtys yra tikrai paprastos. Mes maitiname GSM modulį su 12V 1A adapteriu ir „Arduino“ su 9V baterija, „ISD Voice“ modulį maitina „Arduino“ + 5V kaištis. Kadangi žinome, kad bet ką galime įrašyti į savo balso modulį paspausdami mygtuką rec, ir tai bus grojama paspaudus PE, šis garsas turi būti siunčiamas į GSM modulio mikrofoną. Taigi mes prijungiame „Voice“ modulio garsiakalbio kaištį prie GSM modulio mikrofono kaiščio.
Čia „Arduino“ ir „GSM“ moduliai jungiami nuosekliai, „Arduino“ Tx kaištis yra sujungtas su 9 kaiščiu, o „Rx“ kaištis - su 10 kaiščiu. Tai padės „Arduino“ klausytis GSM modulio. Kai ateina skambutis į GSM modulį, „Arduino“ jo klausys ir paprašys GSM modulio atsakyti į skambutį. „Arduino“ įsitikina, kad skambutis yra aktyvus, ir tada paleidžia įrašytą balso pranešimą balso modulyje, padarydamas kaištį 8 (prijungtas prie balso modulio PE) aukštą 200 ms.
„Arduino“ programavimas:
Iš ankstesnės pastraipos žinome, koks čia „Arduino“ vaidmuo; dabar pažvelkime į tą patį kodą. Visiškai Arduino kodas projekto skiriamas šio puslapio apačioje, dar čia aš išsiliejo kodą į mažų džonkos jį paaiškinti.
Prieš pradedant bet kokį tolesnį „GSM“ bibliotekos diegimą, maloniai spustelėkite šią „Github“ GSM bibliotekos nuorodą, kad atsisiųstumėte biblioteką, naudojamą šiame projekte. Gausite ZIP failą, kurį reikia pridėti prie „Arduino“ bibliotekos, naudojant „ Sketch“ -> „Įtraukti biblioteką“ -> „Add.Zip“ failą .
Pirmosios trys žemiau pateikto kodo eilutės yra naudojamos bibliotekai įtraukti į mūsų kodą. Mes naudojame nuosekliąją biblioteką ir laidų biblioteką, nes nenaudojame numatytųjų „Arduino“ „Rx“ ir „Tx“ kaiščių, kad galėtume bendrauti su GSM moduliu.
# įtraukti
Mes įgaliname nuoseklų ryšį 9 ir 10 kaiščiuose naudodami šią eilutę. Tai leidžia programinės įrangos nuoseklioji biblioteka, kurią įtraukėme aukščiau.
„SoftwareSerial gprs“ (9,10); // TX, RX
Vykdydami sąrankos funkciją, mes inicializuojame serijinį monitorių 9600 baudos greičiu, o GSM modulis taip pat inicijuojamas su 9600 Baudrate. 8 kaištis, suaktyvinantis balsą, skelbiamas išvesties kaiščiu.
negaliojanti sąranka () {Serial.begin (9600); // Serijinis monitorius veikia su 9600 baudų greičiu derinant sim900_init (& gprs, 9600); // GSM modulis veikia 9600 baudrate pinMode (8, OUTPUT); // prisegti, norint įjungti „Voice Serial.println“ („Arduino - automatinė balso mašina“); }
Toliau turime sukurti funkciją, kuri per savo nuoseklųjį prievadą galėtų perskaityti ir suprasti, ką sako GSM modulis. Jei naudosime paprastą nuoseklios skaitymo eilutę, pvz., „Gprs.read ()“, norėdami perskaityti pranešimą, gausime juos ASCII dešimtainių reikšmių pavidalu, tai mums nebus prasmės.
Taigi ši funkcija naudojama norint konvertuoti šias dešimtaines reikšmes į eilutes naudojant eilutės objektus ir tada jas susieti, kad būtų suformuota eilutė. Galutinė eilutės reikšmė saugoma kintamajame „ Fdata“ , kuris yra eilutės tipo ir gali būti naudojamas lyginant su bet kuriomis eilutės reikšmėmis.
void check_Incoming () {if (gprs.available ()) // Jei GSM ką nors sako {Incomingch = gprs.read (); // Klausykite ir saugokite šiame kintamajame, jei (Incomingch == 10 - Incomingch == 13) // Jei jis sako tarpą (10) arba Newline (13), tai reiškia, kad jis baigė vieną žodį {Serial.println (duomenys); Fdata = duomenys; duomenys = ""; } // Atspausdinkite žodį ir išvalykite kintamąjį, kad galėtumėte pradėti dar kartą {String newchar = String (char (Incomingch)); // konvertuokite simbolį į eilutę naudodami eilutės objektus data = data + newchar; // Konvertuodami į eilutę, atlikite eilučių sujungimą}}}
Šios klaidos yra naudojamos derinimui, šiomis derinimo linijomis galite siųsti bet kurias AT komandas iš „Arduino“ nuoseklaus monitoriaus į GSM ir pamatyti, kas yra nuosekliojo monitoriaus atsakymai.
if (Serial.available ()) {// Naudojamas derinant gprs.write (Serial.read ()); // Naudojamas derinimui} // Naudojamas derinimui
Kaip minėta anksčiau, „Arduino“ turi patikrinti, ar GSM modulis nesulaukia jokių skambučių. Tai galima padaryti priverčiant „Arduino“ patikrinti, ar nėra „ RING “, nes GSM modulis skambučio atveju išduos RING pagal AT komandų sąrašą. Radęs skambutį, jis palauks 5 sekundes ir išsiųs komandą „ ATA “ į GSM modulį. Tai paskatins GSM modulį atsiliepti į skambutį, o atsiliepęs atsakys „OK“. „Arduino“ vėl laukia patvirtinimo „ Gerai “ ir tada aukštai įkiša 8 kaištį 200 ms, kad būtų galima paleisti įrašytą balsą iš balso modulio.
if (Fdata == "RING") // Jei GSM modulis sako RING {delsa (5000); // palaukite 5 sekundes, kad sukurtumėte 3 skambučio vėlavimą. gprs.write ("ATA \ r \ n"); // Atsiliepti į skambutį Serial.println („Įdėtas gautas“); // Naudojamas derinimui, kol (Fdata! = "Gerai") // Kol skambutis sėkmingai neatsakė {check_Incoming (); // Perskaitykite, ką sako GSM modulis Serial.println ("Groja įrašytą pranešimą"); // Naudojamas derinimui // Leisti įrašytą balso pranešimo vėlavimą (500); „digitalWrite“ (8, HIGH); // Eiti dideliu delsimu (200); // palaukite 200 msek digitalWrite (8, LOW); // Eiti žemai}
Darbas:
Kai jūsų kodas ir aparatūra bus paruošti, atėjo laikas linksmintis. Įjunkite abu modulius ir paspauskite balso modulio mygtuką REC ir įrašykite pranešimą. Šis pranešimas gali būti tik 10 sekundžių ilgio.
Dabar užprogramuokite „Arduino“ naudodami žemiau pateiktą kodą ir įdėkite SIM automobilį į GSM modulį. Dabar turėtumėte palaukti mažiausiai 2 minutes, kad GSM modulis galėtų užmegzti ryšį su jūsų tinklo paslaugų teikėju. Atlikę turėtumėte pamatyti, kad raudonos spalvos šviesos diodas mirksi kartą per 3 sekundes, tai rodo, kad jūsų SIM kortelė yra pasirengusi priimti skambučius. Dabar galite pabandyti paskambinti į šią SIM kortelę bet kuriuo numeriu ir turėtumėte išgirsti įrašytą pranešimą po trijų nuolatinių skambučių. Visas projekto darbas parodytas žemiau esančiame vaizdo įraše.
Tadaaaaaa !!! Dabar turite savo automatinį balso skambučių atsakiklį ir tiesiog naudokitės juo, kai to reikia, ir nustebinkite savo draugus bei šeimos narius.
Tikiuosi, kad jums patiko projektas ir sukurkite kažką panašaus. Jei turite kokių nors problemų, paskelbkite jas komentarų skyriuje ir aš jums padėsiu.