Përmbajtje:
- Hapi 1: Shkoni të merrni gjëra
- Hapi 2: Tituj për saldim
- Hapi 3: Futni
- Hapi 4: Rishitës
- Hapi 5: Bashkojeni Antenën
- Hapi 6: Futni kartën SIM
- Hapi 7: Filloni
- Hapi 8: Mesazhet me tekst
- Hapi 9: Zëri
Video: Udhëzues Arduino Cellular Shield: 9 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Mburoja celulare Arduino ju lejon të bëni telefonata celulare dhe të dërgoni mesazhe me tekst. Truri i kësaj mburoje është SM5100B i cili është një modul i fuqishëm qelizor i aftë për të kryer shumë nga detyrat e shumicës së telefonave celularë standardë. Ky mburojë kërkon përdorimin e një karte SIM për t'u lidhur me një rrjet celular. Udhëzimi që vijon është një mësim për kockat e zhveshura për fillimin e mburojës, dhe dërgimin dhe marrjen e mesazheve me tekst, dhe thirrjet telefonike. Për të mësuar më shumë rreth funksionimit të modulit, sigurohuni që të shikoni fletët e të dhënave në faqen e produktit të Sparkfun.
Hapi 1: Shkoni të merrni gjëra
Do t'ju duhet:
(x1) Mburoja celulare (x1) Titujt e grumbulluar Arduino (x1) Antena me katër banda (x1) Arduino Uno
(Vini re se disa nga lidhjet në këtë faqe janë lidhje të lidhura. Kjo nuk e ndryshon koston e artikullit për ju. Unë riinvestoj çdo të ardhur që marr në bërjen e projekteve të reja. Nëse dëshironi ndonjë sugjerim për furnizuesit alternativë, ju lutem më lejoni e di.)
Hapi 2: Tituj për saldim
Futni titujt në mburojë dhe ngjitini ato në vend.
Hapi 3: Futni
Futni kunjat e kokës në bazat në Arduino.
Hapi 4: Rishitës
Lidhja e kabllit të antenës me modulin SM5100B zakonisht nuk është shumë e mirë. Rilidhni secilën prej lidhjeve të kabllit me modulin për të siguruar lidhshmërinë.
Hapi 5: Bashkojeni Antenën
Kalojeni antenën në kabllon e antenës.
Hapi 6: Futni kartën SIM
Futeni kartën SIM në mënyrë të sigurt në prizën e kartës SIM.
Hapi 7: Filloni
Drejtoni kodin e mëposhtëm në Arduino:
/*
Mburoja celulare SparkFun - Skicë mostre e përcjelljes Elektronika SparkFun e shkruar nga Ryan Owens 3/Përshkrimi: Ky skicë është shkruar për të ndërlidhur një Arduino Duemillanove në një Mburojë Cellular nga SparkFun Electronics. Mburoja celulare mund të blihet këtu: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Në këtë skicë komandat serike kalohen nga një program terminal në modulin celular SM5100B; dhe përgjigjet nga moduli qelizor postohen në terminal. Më shumë informacion gjendet në komentet e skicës. Një kartë SIM e aktivizuar duhet të futet në mbajtësen e kartës SIM në tabelë për të përdorur pajisjen! Ky skicë përdor bibliotekën NewSoftSerial të shkruar nga Mikal Hart nga Arduiniana. Biblioteka mund të shkarkohet në këtë URL: https://arduiniana.org/libraries/NewSoftSerial/ Ky kod sigurohet nën licencën e atribuimit Creative Commons. Më shumë informacion mund të gjeni këtu: https://creativecommons.org/licenses/by/3.0/ (Përdorni kodin tonë lirshëm! Ju lutemi mos harroni të na jepni kredit aty ku duhet. Faleminderit!) */#Include // Përfshini NewSoftSerial bibliotekë për të dërguar komanda serike në modulin celular. #include // Përdoret për manipulime me vargje char incoming_char = 0; // Do të mbajë karakterin hyrës nga Porti Serial. Software Qeliza serike (2, 3); // Krijoni një port serial 'të rremë'. Pin 2 është pin Rx, pin 3 është pin Tx. void setup () {// Filloni portat serike për komunikim. Serial.filloj (9600); qeliza.filloj (9600); //Le të fillojmë! Serial.println ("Fillimi i komunikimit SM5100B …"); } void loop () {// Nëse hyn një karakter nga moduli celular… if (cell.available ()> 0) {incoming_char = cell.read (); // Merrni karakterin nga porta seriale celulare. Serial.print (inchar_char); // Shtypni karakterin hyrës në terminal. } // Nëse një karakter vjen nga terminali në Arduino … nëse (Serial.available ()> 0) {incoming_char = Serial.read (); // Merr karakterin që vjen nga terminali nëse (incoming_char == '~') // Nëse është një tildë… incoming_char = 0x0D; //… shndërrohuni në një karrocë kthimi tjetër nëse (incoming_char == '^') // Nëse është një up caret… incoming_char = 0x1A; //… konvertohet në qelizën ctrl-Z.print (inchar_char); // Dërgoni karakterin në modulin celular. Serial.print (inchar_char); // Përsëriteni përsëri në terminal}} / * SM5100B Quck Referenca për Komandën e Komandës AT * Përveç nëse komandat e shënuara ndryshe AT përfundojnë duke shtypur butonin 'fut'. 1.) Sigurohuni që brezi i duhur GSM është zgjedhur për vendin tuaj. Për SHBA brezi duhet të vendoset në 7. Për të vendosur brezin, përdorni këtë komandë: AT+SBAND = 7 2.) Pasi të keni ndezur Arduino me mburojën e instaluar, verifikoni që moduli lexon dhe njeh kartën SIM. Me një dritare të hapur të hapur dhe të vendosur në portin Arduino dhe 9600 bateri, ndizni sistemin Arduino. Sekuenca e fillimit duhet të duket diçka si kjo: Fillimi i komunikimit SM5100B… +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Komunikimi me modulin fillon pasi të shfaqet rreshti i parë. Linja e dytë e komunikimit, +SIND: 10, na tregon nëse moduli mund të shohë një kartë SIM. Nëse karta SIM zbulohet, çdo fushë tjetër është 1; nëse karta SIM nuk zbulohet çdo fushë tjetër është 0. 3.) Prisni për një lidhje rrjeti para se të filloni të dërgoni komanda. Pas përgjigjes +SIND: 10 moduli automatikisht do të fillojë të përpiqet të lidhet me një rrjet. Prisni derisa të merrni përsëritjet e mëposhtme: +SIND: 11 +SIND: 3 +SIND: 4 Përgjigja +SIND nga moduli celular tregon statusin e moduleve. Këtu keni një përmbledhje të shpejtë të kuptimeve të përgjigjes: 0 Karta SIM e hequr 1 Kartë SIM e futur 2 Melodia e ziles 3 Moduli AT është pjesërisht gati 4 Moduli AT është plotësisht i gatshëm 5 ID e thirrjeve të lëshuara 6 Thirrje e lëshuar ID e të cilit = 7 Shërbimi i rrjetit është i disponueshëm për një thirrje urgjente 8 Rrjeti humbet 9 Audio ON 10 Trego statusin e secilit libër telefoni pas frazës fillestare 11 Regjistruar në rrjet Pasi të regjistroheni në rrjet mund të filloni ndërveprimin. Këtu janë disa komanda të thjeshta dhe të dobishme për të filluar: Për të bërë një telefonatë: AT komandë-ATDxxxyyyzzzz Numri i telefonit me formatin: (xxx) yyy-zzz provoni ---- cell.print ("ATDxxxyyyzzzz"); Nëse bëni një telefonatë sigurohuni që të referoni fletën e të dhënave të pajisjeve për të lidhur mikrofonin dhe altoparlantin në mburojë. Për të dërguar një mesazh txt: Komanda AT - AT+CMGF = 1 Kjo komandë e vendos modalitetin e mesazhit me tekst në 'tekst'. Komanda AT = AT+CMGS = "xxxyyyzzzz" (kthimi i karrocës) 'Tekst për t'u dërguar' (CTRL+Z) Ky komandë është pak konfuz për t'u përshkruar. Numri i telefonit, në formatin (xxx) yyy-zzzz hyn brenda kuotimeve të dyfishta. Shtypni 'enter' pasi mbyllni citimet. Tjetra futni tekstin që do të dërgohet. Përfundoni komandën AT duke dërguar CTRL+Z. Ky personazh nuk mund të dërgohet nga terminali i Arduino. Përdorni një program terminal alternativ si Hyperterminal, Tera Term, Bray Terminal ose X-CTU. Moduli SM5100B mund të bëjë shumë më tepër se kaq! Shikoni fletët e të dhënave në faqen e produktit për të mësuar më shumë rreth modulit.*/Hapni portin serik në terminal. Në një Mac kjo arrihet duke shtypur: screen /dev/tty.usbmodemfa131 9600 (zëvendësoni tty.usbmodemfa131 me adresën seriale të Arduino -s tuaj) Prisni që të shihni sekuencën e mëposhtme të kthyer: Fillimi i komunikimit SM5100B… +SIND: 3 +SIND: 4 +SIND: 11 (Nëse kjo sekuencë nuk kthehet kontrolloni kodet e gabimit të listuara në fund të kodit të mësipërm dhe korrigjoni në mënyrë të përshtatshme. Ju mund të keni nevojë të vendosni modulin për përdorim në Amerikën e Veriut - shiko më poshtë - para se të regjistrohet në rrjet (p.sh. +SIND 11)) Dërgo komandat e mëposhtme në portin serik: Dërgo këtë për përdorim në Amerikën e Veriut: AT+SBAND = 7 Cakto kohën aktuale - yy/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Dërgo telefonatë testuese: ATD4155551212
Hapi 8: Mesazhet me tekst
Shkarkoni dhe instaloni SerialGSM në bibliotekën tuaj Arduino.
Për të dërguar një mesazh me tekst vizitoni tutorialin e modulit celular Tronixstuff dhe përdorni kodin shembull 26.3:
Nëse dëshironi të ekzekutoni kodin shembull për të marrë një tekst, lidhni një LED në pin 8 dhe vendoseni në seri me një rezistencë 220 ohm në tokë.
Për të dërguar një mesazh me tekst vizitoni tutorialin e modulit celular Tronixstuff dhe përdorni kodin shembull 26.5:
Shkruani një nga komandat e mëposhtme në modulin tuaj celular:
// ndez LED -në #a1
// fik LED -in #a0
Hapi 9: Zëri
Lidhni një mikrofon dhe altoparlant me mburojën duke përdorur kabllon audio të bazuar. Teli i sinjalit qendror duhet të shkojë në terminalet audio plus dhe mbrojtja duhet të shkojë në terminalet përkatëse negative në mburojë. Këto kabllo duhet të lidhen në mënyrë të ngjashme në anën e mikrofonit dhe altoparlantit.
Për të nisur një thirrje zanore ngarkoni kodin e mëposhtëm:
//**********************************************************************************
// BAKJ A NJ THIRRJE // // KODI I BUFERIMIT BAZUAR PPR M:PAR: // // //********************************************************************************** #include #define BUFFSIZ 90 //Set up buffer array char at_buffer[BUFFSIZ]; char buffidx; //Network state variables int network_registered; int network_AT_ready; //Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; //Will hold the incoming character from the Serial Port. char incoming_char=0; //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin. SoftwareSerial cell(2, 3); void setup() { //Initialize Arduino serial port for debugging. Serial.begin(9600); //Initialize virtual serial port to talk to Phone. cell.begin(9600); //Hello World. Serial.println("Starting SM5100B Communication…"); delay(1000); //Set initial network state network_registered = 0; network_AT_ready = 0; } //Read AT strings from the cellular shield void readATString(void) { char c; buffidx= 0; // start at begninning for (x = 0; x 0) { c=cell.read(); if (c == -1) { at_buffer[buffidx] = '\0'; return; } if (c == '\n') { continue; } if ((buffidx == BUFFSIZ - 1) || (c == '\r')){ at_buffer[buffidx] = '\0'; return; } at_buffer[buffidx++]= c; } } } //Process the AT strings void ProcessATString() { if(strstr(at_buffer, "+SIND: 8") != 0) { network_registered = 0; Serial.println("network Network Not Available"); } if(strstr(at_buffer, "+SIND: 11") != 0) { network_registered=1; Serial.println("network Registered"); } if(strstr(at_buffer, "+SIND: 4") != 0) { network_AT_ready=1; Serial.println("network AT Ready"); } } void loop() { /* If called for the first time, loop until network and AT is ready */ if(firstTimeInLoop == 1) { firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) { readATString(); ProcessATString(); } } //LET'S MAKE A PHONE CALL! if(firstTimeInOtherLoop == 1){ //Change the 10 digit phone number to whatever you wish cell.println("ATD4155551212"); firstTimeInOtherLoop = 0; } }
To receive a voice call upload the following code
//**********************************************************************************
// ANSWER A CALL // // BUFFERING CODE BASED UPON: // // // ****************************************** ********************************* #include #define BUFFSIZ 90 // Konfiguro tampon array char at_buffer [BUFFSIZ]; char buffidx; // Variablat e gjendjes së rrjetit int network_registered; int network_AT_ gati; // Ndryshoret e gjendjes së kodit int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Do të mbajë karakterin hyrës nga Porti Serial. char hyres_char = 0; // Krijoni një port serial 'të rremë'. Pin 2 është pin Rx, pin 3 është pin Tx. Software Qeliza serike (2, 3); void setup () {// Filloni portën serike Arduino për korrigjim. Serial.filloj (9600); // Filloni portën seriale virtuale për të folur me telefonin. qeliza.filloj (9600); //Përshendetje Botë. Serial.println ("Fillimi i komunikimit SM5100B …"); vonesa (1000); // Cakto gjendjen fillestare të rrjetit network_registered = 0; network_AT_ gati = 0; } // Lexo vargjet AT nga mburoja celulare void readATString (void) {char c; buffidx = 0; // filloni në fillim për (x = 0; x 0) {c = cell.read (); nëse (c == -1) {at_buffer [buffidx] = '\ 0'; kthim; } nëse (c == '\ n') {vazhdoni; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; kthim; } at_buffer [buffidx ++] = c; }}} // Përpunoni vargjet AT të pavlefshëm ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("Rrjeti i rrjetit nuk është i disponueshëm"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("rrjeti i regjistruar"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ gati = 1; Serial.println ("rrjeti AT Ready"); }} void loop () { / * Nëse thirret për herë të parë, lakoni derisa rrjeti dhe AT të jenë gati * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; ndërsa (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Kërko thirrjen hyrëse nëse (strstr (at_buffer, "+CPAS: 3")! = 0) {// Përgjigju celulës së telefonit.println ("ATA"); firstTimeInOtherLoop = 0; }}}
A ju duket e dobishme, argëtuese apo argëtuese kjo? Ndiqni @madeineuphoria për të parë projektet e mia të fundit.
Recommended:
Udhëzues për Ndërfaqen Sensori i busullës HMC5883L me Arduino: 10 hapa (me fotografi)
Udhëzues për Ndërfaqen Sensori i busullës HMC5883L me Arduino: PërshkrimiHMC5883L është një busull dixhitale me 3 boshte që përdoret për dy qëllime të përgjithshme: për të matur magnetizimin e një materiali magnetik si një ferromagnet, ose për të matur forcën dhe, në disa raste, drejtimin e Fusha magnetike në një pikë në
Udhëzues Arduino L293D Motor Driver Shield: 8 hapa
Tutoriali Arduino L293D Motor Driver Shield: Ju mund t'i lexoni këtë dhe shumë mësime të tjera të mahnitshme në faqen zyrtare të ElectroPeak. PërmbledhjeNë këtë tutorial, ju do të mësoni se si të drejtoni motorë DC, stepper dhe servo duke përdorur një mburojë motorike Arduino L293D. Çfarë do të mësoni: Informacion i përgjithshëm
Edhe një udhëzues tjetër për përdorimin e DIYMall RFID-RC522 dhe Nokia LCD5110 me një Arduino: 8 hapa (me fotografi)
Edhe një udhëzues tjetër për përdorimin e DIYMall RFID-RC522 dhe Nokia LCD5110 me një Arduino: Pse ndjeva nevojën për të krijuar një udhëzues tjetër për DIYMall RFID-RC522 dhe Nokia LCD5110? Epo, për t'ju thënë të vërtetën unë po punoja në një Proof of Concept diku vitin e kaluar duke përdorur të dyja këto pajisje dhe në një farë mënyre " të gabuar "
Udhëzues Arduino GPS Shield: Llogaritësi i distancës: 5 hapa
Arduino GPS Shield Tutorial: Llogaritësi i distancës: GPS ose Sistemi i Pozicionimit Global është një sistem navigimi radio i bazuar në satelit i cili ju lejon të merrni vendndodhjen tuaj dhe t'ju udhëzojë nëpër vende të tjera përmes një harte të njohur dhe të paracaktuar si hartat e Google, dhe në botën e Arduino, kjo
Arduino Uno: Bitmap Animation në ILI9341 TFT Touchscreen Shield Shield Me Visuino: 12 hapa (me fotografi)
Arduino Uno: Bitmap Animation në ILI9341 TFT Touchscreen Shield Shield Me Visuino: Mburojat e ekranit me prekje TFT të bazuara në ILI9341 janë shumë të njohura Mburoja e ekranit me kosto të ulët për Arduino. Visuino ka pasur mbështetje për ta për një kohë të gjatë, por unë kurrë nuk kam pasur rastin të shkruaj një Tutorial se si t'i përdor ato. Kohët e fundit sidoqoftë pak njerëz pyetën