Satura rādītājs:
- 1. solis: dodieties iegūt lietas
- 2. solis: lodēšanas galvenes
- 3. solis: ievietojiet
- 4. solis: izšķirtspēja
- 5. solis: pievienojiet antenu
- 6. darbība: ievietojiet SIM karti
- 7. darbība: inicializējiet
- 8. darbība: īsziņas
- 9. solis: balss
Video: Arduino Cellular Shield apmācība: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Arduino Cellular Shield ļauj veikt mobilos tālruņa zvanus un sūtīt īsziņas. Šī vairoga smadzenes ir SM5100B, kas ir izturīgs šūnu modulis, kas spēj veikt daudzus standarta mobilo tālruņu uzdevumus. Šim vairogam ir jāizmanto SIM karte, lai izveidotu savienojumu ar mobilo tīklu. Turpmāk sniegtā apmācība ir kailu pamācība vairoga inicializēšanai, kā arī īsziņu sūtīšanai un saņemšanai, kā arī tālruņa zvaniem. Lai uzzinātu vairāk par moduļa funkcionalitāti, noteikti pārbaudiet datu lapas Sparkfun produktu lapā.
1. solis: dodieties iegūt lietas
Jums būs nepieciešams:
(x1) šūnu vairogs (x1) sakraujamas Arduino galvenes (x1) četrjoslu antena (x1) Arduino Uno
(Ņemiet vērā, ka dažas no šajā lapā esošajām saitēm ir saistītās saites. Tas nemaina preces izmaksas jums. Es visus ieguldītos līdzekļus ieguldu jaunu projektu veidošanā. Ja vēlaties saņemt ieteikumus alternatīviem piegādātājiem, lūdzu, ļaujiet man zinu.)
2. solis: lodēšanas galvenes
Ievietojiet galvenes vairogā un pielodējiet tās vietā.
3. solis: ievietojiet
Ievietojiet galvenes tapas Arduino ligzdās.
4. solis: izšķirtspēja
Antenas kabeļa savienojums ar SM5100B moduli parasti nav ļoti labs. Nostipriniet katru kabeļa savienojumu ar moduli, lai nodrošinātu savienojumu.
5. solis: pievienojiet antenu
Piestipriniet antenu pie antenas kabeļa.
6. darbība: ievietojiet SIM karti
Droši ievietojiet SIM karti SIM kartes ligzdā.
7. darbība: inicializējiet
Palaidiet šādu kodu Arduino:
/*
SparkFun Cellular Shield - caurlaides parauga skice SparkFun Electronics Uzrakstījis Raiens Ovenss 3/Apraksts: Šī skice ir uzrakstīta, lai savienotu Arduino Duemillanove ar mobilo vairogu no SparkFun Electronics. Mobilo vairogu var iegādāties šeit: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Šajā skicē sērijas komandas tiek pārraidītas no termināļa programmas uz SM5100B šūnu moduli; un atbildes no mobilā moduļa tiek ievietotas terminālī. Plašāka informācija atrodama skices komentāros. Lai izmantotu ierīci, tā dēļa SIM kartes turētājā jāievieto aktivizēta SIM karte! Šī skice izmanto NewSoftSerial bibliotēku, ko uzrakstījis Mikal Hart no Arduiniana. Bibliotēku var lejupielādēt šajā URL: https://arduiniana.org/libraries/NewSoftSerial/ Šis kods ir pieejams saskaņā ar Creative Commons attiecinājuma licenci. Plašāku informāciju var atrast šeit: https://creativecommons.org/licenses/by/3.0/ (Izmantojiet mūsu kodu brīvi! Lūdzu, atcerieties, ka dodiet mums kredītu, kad tas pienākas. Paldies!) */#Include // Iekļaut NewSoftSerial bibliotēku, lai nosūtītu sērijas komandas uz šūnu moduli. #include // Izmanto virkņu manipulācijām char ienākošās_log = 0; // Turēs ienākošo rakstzīmi no seriālā porta. ProgrammatūraSerijas šūna (2, 3); // Izveidojiet “viltus” seriālo portu. 2. tapa ir Rx tapa, 3. tapa ir Tx tapa. void setup () {// Inicializēt sakaru seriālos portus. Sērijas sākums (9600); šūna.sākt (9600); //Sāksim! Serial.println ("SM5100B sakaru uzsākšana …"); } void loop () {// Ja rakstzīme nāk no mobilā moduļa… if (cell.available ()> 0) {input_char = cell.read (); // Iegūstiet rakstzīmi no mobilā seriālā porta. Sērijas nospiedums (ienākošā_skaite); // Ienākošo rakstzīmi izdrukāt terminālī. } // Ja rakstzīme nāk no termināļa uz Arduino… if (Serial.available ()> 0) {input_char = Serial.read (); // Iegūstiet rakstzīmi, kas nāk no termināļa, ja (input_char == '~') // Ja tā ir tilde… input_char = 0x0D; //… pārvērst par ratiņu atgriešanu citādi, ja (ienākošā_grupa == '^') // Ja tas ir augšupvērsts… ienākošais_lādiņš = 0x1A; //… pārvērst par ctrl-Z šūnu. Nospiedums (ienākošā_gulta); // Nosūtīt rakstzīmi uz šūnu moduli. Sērijas.druka (ienākošā_skaite); // Atbalstiet to atpakaļ uz termināli}} / * SM5100B Quck atsauce AT komandu kopai * Ja vien nav norādīts citādi, AT komandas tiek pārtrauktas, nospiežot taustiņu Enter. 1.) Pārliecinieties, vai jūsu valstij ir izvēlēta pareizā GSM josla. ASV joslai jābūt iestatītai uz 7. Lai iestatītu joslu, izmantojiet šo komandu: AT+SBAND = 7 2.) Pēc Arduino ieslēgšanas ar uzstādītu vairogu pārbaudiet, vai modulis nolasa un atpazīst SIM karti. Ja ir atvērts zemes logs un iestatīts uz Arduino ostu un 9600 buad, ieslēdziet Arduino. Palaišanas secībai vajadzētu izskatīties apmēram šādi: SM5100B sakaru palaišana … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Saziņa ar moduli sākas pēc pirmās rindas parādīšanas. Otrā sakaru līnija +SIND: 10 norāda, vai modulis var redzēt SIM karti. Ja tiek atklāta SIM karte, katrs cits lauks ir 1; ja SIM karte netiek atklāta, visi pārējie lauki ir 0. 3.) Pirms komandu sūtīšanas pagaidiet tīkla savienojumu. Pēc atbildes +SIND: 10 modulis automātiski sāks mēģināt izveidot savienojumu ar tīklu. Pagaidiet, līdz saņemat šādus atkārtojumus: +SIND: 11 +SIND: 3 +SIND: 4 +SIND atbilde no mobilā moduļa norāda moduļu statusu. Lūk, ātra atbilžu nozīmes samazināšana: 0 izņemta SIM karte 1 ievietota SIM karte 2 Zvana melodija 3 AT modulis ir daļēji gatavs 4 AT modulis ir pilnībā gatavs 5 Atlaisto zvanu ID 6 Atbrīvotais zvans, kura ID = 7 Tīkla pakalpojums ir pieejams ārkārtas zvanam 8 Tīkls ir pazudis 9 Audio IESLĒGTS 10 Parādiet katras tālruņu grāmatas statusu pēc sākuma frāzes 11 Reģistrēts tīklā Pēc reģistrēšanās tīklā varat sākt mijiedarbību. Šeit ir dažas vienkāršas un noderīgas komandas, lai sāktu darbu: Lai piezvanītu: AT komanda-ATDxxxyyyzzzz Tālruņa numurs šādā formātā: (xxx) yyy-zzz try ---- cell.print ("ATDxxxyyyzzzz"); Ja veicat tālruņa zvanu, noteikti pievienojiet ierīču datu lapu, lai savienotu mikrofonu un skaļruni ar vairogu. Lai nosūtītu txt ziņojumu: AT komanda - AT+CMGF = 1 Šī komanda nosaka īsziņu režīmu uz 'text'. AT komanda = AT+CMGS = "xxxyyyzzzz" (ratiņu atgriešana) 'Nosūtāmais teksts' (CTRL+Z) Šo komandu ir nedaudz mulsinoši aprakstīt. Tālruņa numurs formātā (xxx) yyy-zzzz ir iekļauts pēdiņās. Pēc citātu aizvēršanas nospiediet taustiņu Enter. Tālāk ievadiet nosūtāmo tekstu. Pabeidziet AT komandu, nosūtot taustiņu kombināciju CTRL+Z. Šo rakstzīmi nevar nosūtīt no Arduino termināļa. Izmantojiet alternatīvu termināļa programmu, piemēram, Hyperterminal, Tera Term, Bray Terminal vai X-CTU. SM5100B modulis var paveikt daudz vairāk! Lai uzzinātu vairāk par moduli, skatiet datu lapas produkta lapā.*/Atveriet seriālo portu terminālī. Operētājsistēmā Mac to var paveikt, ierakstot: screen /dev/tty.usbmodemfa131 9600 (aizstājiet tty.usbmodemfa131 ar savu Arduino sērijas adresi) Pagaidiet, līdz tiek parādīta šāda secība: SM5100B sakaru sākšana… +SIND: 3 +SIND: 4 +SIND: 11 (Ja šī secība netiek atgriezta, pārbaudiet kļūdas kodus, kas uzskaitīti koda apakšā, un veiciet atbilstošu atkļūdošanu. Jums var būt nepieciešams iestatīt moduli lietošanai Ziemeļamerikā (skatīt zemāk), pirms tas tiek reģistrēts tīklā (ti +SIND 11)) Nosūtiet šādas komandas uz seriālo portu: Nosūtiet to lietošanai Ziemeļamerikā: AT+SBAND = 7 Iestatiet pašreizējo laiku - ggg/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Sūtīt testa zvanu: ATD4155551212
8. darbība: īsziņas
Lejupielādējiet un instalējiet SerialGSM savā Arduino bibliotēkā.
Lai nosūtītu īsziņu, apmeklējiet Tronixstuff mobilā moduļa apmācību un izmantojiet koda 26.3 piemēru:
Ja vēlaties palaist parauga kodu, lai saņemtu tekstu, pievienojiet gaismas diodi 8. tapai un ievietojiet to virknē ar 220 omu rezistoru pie zemes.
Lai nosūtītu īsziņu, apmeklējiet Tronixstuff mobilā moduļa apmācību un izmantojiet koda 26.5 piemēru:
Nosūtiet mobilā moduļa īsziņu ar vienu no šīm komandām:
// ieslēdz gaismas diode #a1
// izslēdz gaismas diodi #a0
9. solis: balss
Savienojiet mikrofonu un skaļruni ar vairogu, izmantojot iezemētu audio kabeli. Centrālajam signāla vadam jāiet uz audio plus spailēm, bet ekranējumam - uz attiecīgajiem vairoga negatīvajiem spailēm. Šie kabeļi jāpievieno līdzīgi mikrofona un skaļruņa pusē.
Lai inicializētu balss zvanu, augšupielādējiet šādu kodu:
//**********************************************************************************
ZVANIET // PUSES KODS, PAMATOTS: // //********************************************************************************** #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 // Bufera masīva char at_buffer [BUFFSIZ]; char buffidx; // Tīkla stāvokļa mainīgie int network_registered; int network_AT_ready; // Koda stāvokļa mainīgie int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Turēs ienākošo rakstzīmi no seriālā porta. ogle ienākošā_čara = 0; // Izveidojiet “viltus” seriālo portu. 2. tapa ir Rx tapa, 3. tapa ir Tx tapa. ProgrammatūraSerijas šūna (2, 3); void setup () {// Inicializējiet Arduino seriālo portu atkļūdošanai. Sērijas sākums (9600); // Inicializējiet virtuālo seriālo portu, lai sarunātos ar tālruni. šūna.sākt (9600); //Sveika pasaule. Serial.println ("SM5100B sakaru uzsākšana …"); kavēšanās (1000); // Iestatīt sākotnējo tīkla stāvokli network_registered = 0; tīkls_AT_ gatavs = 0; } // Lasīt AT virknes no mobilā vairoga void readATString (void) {char c; buffidx = 0; // sākt no sākuma (x = 0; x 0) {c = cell.read (); ja (c == -1) {at_buffer [buffidx] = '\ 0'; atgriešanās; } ja (c == '\ n') {turpināt; } ja ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; atgriešanās; } at_buffer [buffidx ++] = c; }}} // Apstrādāt AT virknes void ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("tīkla tīkls nav pieejams"); } ja (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("tīkls reģistrēts"); } ja (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("tīkls AT gatavs"); }} void loop () { / * Ja tiek izsaukta pirmo reizi, veiciet cilpu, līdz tīkls un AT ir gatavs * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Meklējiet ienākošo zvanu, ja (strstr (at_buffer, "+CPAS: 3")! = 0) {// Atbildiet uz tālruņa šūnu.println ("ATA"); firstTimeInOtherLoop = 0; }}}
Vai jums tas šķita noderīgi, jautri vai izklaidējoši? Sekojiet @madeineuphoria, lai redzētu manus jaunākos projektus.
Ieteicams:
Arduino tastatūras 4x4 apmācība: 4 soļi (ar attēliem)
Arduino tastatūras 4x4 apmācība: tastatūras ievade tika parādīta sērijas monitoram ar arduino uno un 4x4 tastatūras pilnu kodu
Kontrolējiet savas gaismas diodes ar televizora tālvadības pulti ?! -- Arduino IR apmācība: 5 soļi (ar attēliem)
Kontrolējiet savas gaismas diodes ar televizora tālvadības pulti ?! || Arduino IR apmācība: Šajā projektā es jums parādīšu, kā es pārkārtoju televizora tālvadības pults bezjēdzīgās pogas, lai kontrolētu gaismas diodes aiz televizora. Varat arī izmantot šo paņēmienu, lai kontrolētu visu veidu lietas, nedaudz rediģējot kodu. Es arī mazliet pastāstīšu par teoriju
Arduino Bluetooth pamata apmācība: 6 soļi (ar attēliem)
Arduino Bluetooth pamata apmācība: ATJAUNINĀT: ŠĀ RAKSTA ATjaunināto versiju var atrast šeit Šeit ir vienkāršs un vienkāršs
Arduino apmācība - BLYNK stila poga un ESP -01 releja modulis: 3 soļi (ar attēliem)
Arduino apmācība - BLYNK stila poga un ESP -01 releja modulis: Laipni lūdzam citā mūsu kanāla apmācībā, šī ir pirmā šīs sezonas apmācība, kas būs veltīta IoT sistēmām, šeit mēs aprakstīsim dažas ierīču funkcijas un funkcijas izmanto šāda veida sistēmās. Lai izveidotu šīs
Arduino Uno apmācība Nr. 2 - zvana dziesma: 4 soļi (ar attēliem)
Arduino Uno apmācība Nr. 2 - zvana dziesma: Sveiki visiem! Tā kā es redzēju, ka mana pirmā apmācība ir bijusi laba azartspēle, es nolēmu, ka es jums darīšu virkni Arduino Uno apmācību