Satura rādītājs:

Arduino Cellular Shield apmācība: 9 soļi (ar attēliem)
Arduino Cellular Shield apmācība: 9 soļi (ar attēliem)

Video: Arduino Cellular Shield apmācība: 9 soļi (ar attēliem)

Video: Arduino Cellular Shield apmācība: 9 soļi (ar attēliem)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Novembris
Anonim
Arduino Cellular Shield apmācība
Arduino Cellular Shield apmācība

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

Iet Iegūstiet lietas
Iet Iegūstiet 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

Lodēšanas galvenes
Lodēšanas galvenes
Lodēšanas galvenes
Lodēšanas galvenes
Lodēšanas galvenes
Lodēšanas galvenes

Ievietojiet galvenes vairogā un pielodējiet tās vietā.

3. solis: ievietojiet

Ievietot
Ievietot
Ievietot
Ievietot

Ievietojiet galvenes tapas Arduino ligzdās.

4. solis: izšķirtspēja

Izlēmīgāks
Izlēmīgāks

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

Pievienojiet antenu
Pievienojiet antenu
Pievienojiet antenu
Pievienojiet antenu

Piestipriniet antenu pie antenas kabeļa.

6. darbība: ievietojiet SIM karti

Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti
Ievietojiet SIM karti

Droši ievietojiet SIM karti SIM kartes ligzdā.

7. darbība: inicializējiet

Palaist
Palaist

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

Isziņas
Isziņ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

Balss
Balss
Balss
Balss
Balss
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; }}}

Attēls
Attēls

Vai jums tas šķita noderīgi, jautri vai izklaidējoši? Sekojiet @madeineuphoria, lai redzētu manus jaunākos projektus.

Ieteicams: