- Tarvittavat materiaalit:
- Fly Scale SIM900 GSM -moduuli:
- ISD1820-puhemoduuli:
- Piirikaavio ja selitys:
- Arduinon ohjelmointi:
- Työskentely:
Nykypäivän nykyaikaisessa maailmassa olemme kaikki riippuvaisia matkapuhelimista ensisijaisena langattoman viestinnän välineenä. Mutta me kaikki olemme kohdanneet tilanteita, joissa emme ehkä pysty vastaamaan puheluihimme. Nämä puhelut voivat olla tärkeä henkilökohtainen puhelu tai elämää muuttava yrityspuhelu, ja olisit voinut vain hukata mahdollisuuden, koska et voinut vastata siihen soittaa kyseisenä ajankohtana.
Tämän projektin tarkoituksena on ratkaista tämä ongelma luomalla automaattinen vastaaja automaattisella Arduino- ja GSM-moduulilla. Seuraavan kerran, kun vaihdat uuteen puhelinnumeroon tai lähdet pitkälle pyhiinvaellusmatkalle tai nautit ansaitusta lomasta, käytä tätä laitetta vain äänesi äänittämiseen ilmoittamalla poissaolon syy ja tämä kone ja puhelin vastaavat automaattisesti kaikkiin puheluihisi. tallennettu ääni toistetaan heille. Tätä voidaan käyttää myös yrityksesi numeroihin vastaamaan asiakkaasi puheluihin muina aikoina. Kuulostaa mielenkiintoiselta? Joten rakentakaamme se..
Tarvittavat materiaalit:
Projekti saattaa kuulostaa hieman monimutkaiselta, mutta se on todella helppo rakentaa, tarvitset vain seuraavat komponentit
- Arduino Uno
- GSM-moduuli - Flyscale SIM 900
- ISD 1820 -äänimoduuli
- 12 V: n sovitin GSM-moduulin virtalähteeseen
- 9 V: n akku Arduinon virran saamiseksi
- Johtojen liittäminen
Ennen kuin aloitamme projektin, tutustu GSM-moduuliin ja ISD 1820 -äänimoduuliin
Fly Scale SIM900 GSM -moduuli:
GSM-moduulien käyttö on kiehtovaa erityisesti silloin, kun projektimme vaatii etäkäyttöä. Nämä moduulit voisivat tehdä kaikki toiminnot, joita normaali matkapuhelimemme voisi tehdä, kuten puhelun soittaminen / vastaanottaminen, tekstiviestin lähettäminen / vastaanottaminen, yhteyden muodostaminen Internetiin GPRS: llä jne. Voit myös liittää tähän moduuliin normaalin mikrofonin ja kaiuttimen ja keskustella matkapuhelimet. Tässä on joitain oppaita niistä, jotka käyttävät eri mikrokontrolleria:
- Soita ja lähetä viesti Arduinon ja GSM-moduulin avulla
- Soita ja lähetä tekstiä Raspberry Pi- ja GSM-moduulien avulla
- GSM-moduuli Liitäntä PIC-mikrokontrolleriin - Soita ja vastaanota puheluja
Kuten alla olevasta kuvasta näkyy, GSM-moduulissa on USART-sovitin, joka voidaan liittää suoraan tietokoneeseen MAX232-moduulin avulla tai Tx- ja Rx-nastoja voidaan käyttää sen liittämiseen mikrokontrolleriin. Voit myös huomata muut nastat, kuten MIC +, MIC-, SP +, SP- jne., Joihin mikrofoni tai kaiutin voidaan liittää. Moduuli voidaan virtansa 12V sovitin läpi normaalin DC-tynnyri liittimeen.
Aseta SIM-korttisi moduulin aukkoon ja käynnistä se, huomaa virran merkkivalon palaavan. Odota nyt noin minuutti, ja sinun pitäisi nähdä punainen (tai mikä tahansa muu väri) LED vilkkuu kerran 3 sekunnin välein. Tämä tarkoittaa, että moduulisi pystyi muodostamaan yhteyden SIM-kortillesi. Nyt voit jatkaa moduulin liittämistä puhelimeen tai mihin tahansa mikrokontrolleriin.
ISD1820-puhemoduuli:
ISD 1820 -äänimoduuli on todella hieno moduuli, joka voi piristää projektejasi ääni-ilmoituksilla. Tämä moduuli pystyy tallentamaan äänileikkeen 10 sekunniksi ja toistamaan sen tarvittaessa. Itse moduulissa on mikrofoni ja kaiutin (8 ohmia 0,5 wattia), ja sen pitäisi näyttää tältä tältä.
Moduuli toimii + 5V ja voidaan kytkeä käyttämällä berg tarttuu vasemmalla. Sen alaosassa on myös kolme painiketta, jotka ovat Rec. -painiketta, PlayE. -painiketta ja PlayL. -painiketta. Voit tallentaa äänesi painamalla Rec. -painiketta ja toista se PlayE-painikkeella. PlayL toistaa ääntä niin kauan kuin pidät painiketta painettuna. Yhteydessä MCU: n kanssa voimme käyttää vasemmanpuoleisia nastoja. Nämä nastat ovat 3V-5V siedettäviä, ja siksi niitä voidaan ohjata suoraan Arduino / ESP8266: lla. Projektissamme hallitsemme PLAYE-nastaa Arduino-moduulin D8-nastalla. Jotta voimme toistaa äänitetyn äänen, kun GSM-moduuli havaitsee ja vastaanottaa puhelun.
Piirikaavio ja selitys:
Tämän automaattisen puhelinvastaajaprojektin täydellinen piirikaavio on annettu yllä. Kuten näette, yhteydet ovat todella yksinkertaisia. Voimme käyttää GSM-moduulia 12 V: n 1A-sovittimella ja Arduino: lla 9 V: n paristolla. ISD-puhemoduuli saa virtansa Arduinon + 5 V: n nastasta. Koska tiedämme, että voimme äänittää mitä tahansa äänimoduulillemme painamalla rec-painiketta ja tämä toistetaan, kun PE-painiketta painetaan, tämä ääni on lähetettävä GSM-moduulin mikrofoniin. Joten yhdistämme puhemoduulin kaiutintapin GSM-moduulin mikrofonitappiin.
Täällä Arduino- ja GSM-moduulit kytketään sarjaan, Arduinon Tx-nasta on kytketty nastaan 9 ja Rx-nasta on kytketty nastaan 10. Tämä auttaa Arduinoa kuuntelemaan GSM-moduulia. Kun puhelu saapuu GSM-moduuliin, Arduino kuuntelee sitä ja pyytää GSM-moduulia vastaamaan puheluun. Arduino varmistaa, että puhelu on aktiivinen, ja toistaa sitten äänitetyn ääniviestin äänimoduulissa tekemällä nastan 8 (Yhdistetty puhemoduulin PE: hen) korkean 200 ms: n ajan.
Arduinon ohjelmointi:
Yllä olevasta kappaleesta tiedämme, mikä on Arduinon rooli tässä; Katsokaamme nyt koodia, joka tekee saman. Projektin täydellinen Arduino-koodi on tämän sivun alaosassa, edelleen tässä olen valanut koodin pieniin junkeihin selittääkseen sitä.
Ennen kuin aloitamme uuden GSM-kirjaston asennuksen, napsauta tätä Github GSM -kirjastolinkkiä ladataksesi tässä projektissa käytetty kirjasto. Saat zip-tiedoston, joka on lisättävä Arduino-kirjastoon Sketch -> Include Librarey -> Add.Zip-tiedostolla .
Alla olevan koodin kolmea ensimmäistä riviä käytetään kirjaston sisällyttämiseen koodiin. Käytämme sarjakirjastoa ja lankakirjastoa, koska emme käytä Arduinon oletusarvoisia Rx- ja Tx-nastoja kommunikoimaan GSM-moduulin kanssa.
#sisältää
Otamme sarjaliikenteen käyttöön nastoilla 9 ja 10 seuraavalla rivillä. Tämän mahdollistaa yllä oleva ohjelmistosarjakirjasto.
SoftwareSerial gprs (9,10); // TX, RX
Sisällä setup toiminto, me alustaa Serial Monitor 9600 siirtonopeus ja GSM-moduuli on myös alustetaan 9600 Siirtonopeus. Nasta 8, joka laukaisee äänen, ilmoitetaan lähtötapiksi.
void setup () {Sarja.alku (9600); // Sarjamonitori toimii 9600 baudinopeudella sim900_init-virheenkorjauksessa (& gprs, 9600); // GSM-moduuli toimii 9600 baudinopeudella pinMode (8, OUTPUT); // kiinnitä ottamaan käyttöön Voice Serial.println ("Arduino - Automaattinen äänikone"); }
Seuraavaksi meidän on luotava toiminto, joka voisi lukea ja ymmärtää, mitä GSM-moduuli sanoo sarjaportinsa kautta. Jos käytämme yksinkertaista sarjalukuriviä, kuten "gprs.read ()", viestin lukemiseen, saamme ne ASCII-desimaaliarvoina, tällä ei ole mitään järkeä meille.
Joten seuraavaa funktiota käytetään näiden desimaaliarvojen muuntamiseen merkkijonoiksi käyttämällä merkkijono-objekteja ja yhdistämällä ne sitten merkkijonoksi. Lopullinen merkkijonoarvo tallennetaan muuttujaan Fdata , joka on tyypin merkkijono ja jota voidaan käyttää vertailuun mihin tahansa merkkijonoarvoihin.
void check_Incoming () {if (gprs.available ()) // Jos GSM sanoo jotain {Incomingch = gprs.read (); // Kuuntele sitä ja tallenna tähän muuttujaan, jos (Incomingch == 10 - Incomingch == 13) // Jos se sanoo välilyönnin (10) tai Newline (13), se tarkoittaa, että se on suorittanut yhden sanan {Serial.println (data); Fdata = data; data = ""; } // Tulosta sana ja tyhjennä muuttuja aloittaaksesi uudestaan {String newchar = String (char (Incomingch)); // muuntaa merkin merkkijonoksi käyttämällä merkkijono-objekteja data = data + newchar; // Kun olet muuntanut merkkijonoksi, tee merkkijono ketjutus}}}
Seuraavat rivit käytetään virheenkorjausta, näillä debuggerilla linjat voit lähettää AT komentoja Serial Monitor Arduino GSM ja myös nähdä, mitä on vastauksensa Serial Monitor.
if (Serial.available ()) {// Käytetään virheenkorjaukseen gprs.write (Serial.read ()); // Käytetään virheenkorjaukseen} // Käytetään virheenkorjaukseen
Kuten aiemmin mainittiin, Arduinon on tarkistettava, onko GSM-moduuli vastaanottanut puheluja. Tämä voidaan tehdä asettamalla Arduino tarkistamaan “ RING ”, koska GSM-moduuli lähettää RING: n puhelun sattuessa AT-komentoluettelon mukaisesti. Kun se löytää puhelun, se odottaa 5 sekuntia ja lähettää komennon " ATA " GSM-moduulille, mikä saa GSM-moduulin vastaamaan puheluun ja vastaamisen jälkeen "OK". Arduino odottaa jälleen “ OK ” -vahvistusta ja kääntää sitten nastan 8 korkeaksi 200 ms: ksi toistamaan äänitetyn äänimoduulin.
if (Fdata == "RING") // Jos GSM-moduuli sanoo RING {delay (5000); // odota 5 sekuntia luoda 3 soittoääni. gprs.write ("ATA \ r \ n"); // Vastaa puheluun Serial.println ("Sijoitettu vastaanotettu"); // Käytetään virheenkorjaukseen, kun (Fdata! = "OK") // Kunnes puheluun vastaaminen onnistui {check_Incoming (); // Lue mitä GSM-moduuli sanoo Serial.println ("Tallennetun viestin toistaminen"); // Käytetään virheenkorjaukseen // Toista tallennetun ääniviestin viive (500); digitalWrite (8, HIGH); // Suuri viive (200); // odota 200 ms: n digitalWrite (8, LOW); // mene matalalle}
Työskentely:
Kun koodi ja laitteisto on valmis, on aika pitää hauskaa. Kytke virta molempiin moduuleihin ja paina äänimoduulin REC-painiketta ja nauhoita viesti. Tämä viesti voi olla vain 10 sekuntia pitkä.
Ohjelmoi nyt Arduino alla olevan koodin avulla ja aseta SIM-auto GSM-moduuliin, odota nyt vähintään 2 minuuttia, jotta GSM-moduuli voisi muodostaa yhteyden verkkopalveluntarjoajaasi. Kun olet valmis, sinun pitäisi nähdä punainen LED-merkkivalo vilkkuvan kerran 3 sekunnin välein, mikä tarkoittaa, että SIM-korttisi on valmis vastaanottamaan puheluja. Voit nyt yrittää soittaa tälle SIM-kortille mistä tahansa numerosta, ja sinun pitäisi kuulla nauhoitettu viesti kolmen jatkuvan soinnin jälkeen. Projektin täydellinen työskentely on esitetty alla olevassa videossa.
Tadaaaaaa !!! Nyt sinulla on oma automaattinen puhelinvastaaja ja käytä vain tarvittaessa ja hämmästytä ystäviäsi ja perhettäsi sillä.
Toivottavasti pidit projektista ja rakennat jotain vastaavaa. Jos sinulla on ongelmia, lähetä ne kommenttiosioon ja autan sinua.