Sisukord:

Arduino Cellular Shieldi õpetus: 9 sammu (piltidega)
Arduino Cellular Shieldi õpetus: 9 sammu (piltidega)

Video: Arduino Cellular Shieldi õpetus: 9 sammu (piltidega)

Video: Arduino Cellular Shieldi õpetus: 9 sammu (piltidega)
Video: Marlin Firmware 2.0.x Explained 2024, November
Anonim
Arduino Cellular Shieldi õpetus
Arduino Cellular Shieldi õpetus

Arduino Cellular Shield võimaldab teil helistada mobiiltelefoniga ja saata tekstsõnumeid. Selle kilbi ajud on SM5100B, mis on tugev mobiilne moodul, mis on võimeline täitma paljusid tavaliste mobiiltelefonide ülesandeid. See kilp nõuab mobiilivõrguga ühenduse loomiseks SIM -kaardi kasutamist. Järgnev õpetus on paljaste luude õpetus kilbi lähtestamiseks ning tekstisõnumite saatmiseks ja vastuvõtmiseks ning telefonikõnedeks. Mooduli funktsionaalsuse kohta lisateabe saamiseks vaadake kindlasti Sparkfuni tootelehe andmelehti.

Samm: minge hankige asju

Mine Hangi kraami
Mine Hangi kraami

Sa vajad:

(x1) Cellular shield (x1) Virnastatavad Arduino päised (x1) Neljaribaline antenn (x1) Arduino Uno

(Pange tähele, et mõned sellel lehel olevad lingid on sidusettevõtte lingid. See ei muuda teie jaoks toote maksumust. Investeerin kõik saadud tulud uuesti uute projektide tegemisse. Kui soovite alternatiivsete tarnijate kohta ettepanekuid, siis palun andke mulle teada tea.)

2. samm: jootmispäised

Jootmispäised
Jootmispäised
Jootmispäised
Jootmispäised
Jootmispäised
Jootmispäised

Sisestage päised varjestusse ja jootke need oma kohale.

Samm: sisestage

Sisesta
Sisesta
Sisesta
Sisesta

Sisestage päise tihvtid Arduino pistikupesadesse.

4. samm: resolutsioon

Otsustavam
Otsustavam

Antennikaabli ühendus SM5100B mooduliga pole tavaliselt eriti hea. Ühenduvuse tagamiseks eraldage kõik kaabli ühendused mooduliga.

Samm: kinnitage antenn

Kinnitage antenn
Kinnitage antenn
Kinnitage antenn
Kinnitage antenn

Keerake antenn antennikaabli külge.

Samm: sisestage SIM -kaart

Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart
Sisestage SIM -kaart

Sisestage SIM -kaart kindlalt SIM -kaardi pesasse.

Samm: lähtestage

Initsialiseerida
Initsialiseerida

Käivitage Arduinos järgmine kood:

/*

SparkFun Cellular Shield - läbiv näidisjoonistus SparkFun Electronics Kirjutas Ryan Owens 3/Kirjeldus: See visand on kirjutatud Arduino Duemillanove'i ühendamiseks SparkFun Electronics'i Cellular Shieldiga. Mobiiltelefoni kilpi saab osta siit: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Selles visandis edastatakse terminaliprogrammilt jadamiskäsk SM5100B mobiilsidevõrgu moodulile; ja mobiilsidevõrgu mooduli vastused postitatakse terminali. Lisateavet leiate eskiisi kommentaaridest. Seadme kasutamiseks tuleb tahvli SIM -kaardi hoidikusse sisestada aktiveeritud SIM -kaart! See visand kasutab NewSoftSerial raamatukogu, mille on kirjutanud Arduiniana Mikal Hart. Kogu saab alla laadida järgmiselt URL -ilt: https://arduiniana.org/libraries/NewSoftSerial/ See kood on saadaval Creative Commons'i omistuslitsentsi alusel. Lisateavet leiate siit: https://creativecommons.org/licenses/by/3.0/ (Kasutage meie koodi vabalt! Ärge unustage, et annate meile krediidi, kui see on õige. Aitäh!) */#Include // Kaasa NewSoftSerial raamatukogu, et saata kärgmoodulile käsklusi. #include // Kasutatakse stringi manipuleerimiseks char inputing_char = 0; // Hoiab jadapordist saabuvat märki. TarkvaraSeriaalrakk (2, 3); // Loo võlts jadaport. Tihvt 2 on Rx -tihvt, tihvt 3 on Tx -tihvt. void setup () {// Initsialiseerige jadaportid suhtlemiseks. Seriaalne algus (9600); cell.binin (9600); //Alustame! Serial.println ("SM5100B side käivitamine …"); } void loop () {// Kui mobiilimoodulist tuleb tähemärk… if (cell.available ()> 0) {input_char = cell.read (); // Hankige märk mobiilside jadaportist. Serial.print (sissetulev_süsi); // Sissetuleva märgi printimine terminali. } // Kui tähemärk tuleb terminalist Arduinosse… if (Serial.available ()> 0) {input_char = Serial.read (); // Hankige tähemärk terminalist, kui (sissetulev_märk == '~') // Kui see on tilde… sissetulev_süsi = 0x0D; //… teisendada vankri tagastamiseks muuks, kui (sissetulev_sümbol == '^') // Kui see on üleval olev hoiatus… sissetulev_süsi = 0x1A; //… teisenda ctrl-Z lahtriks.print (sissetulev_süsi); // Märgi saatmine mobiilmoodulisse. Serial.print (sissetulev_süsi); // Kaja see terminalile tagasi}} / * SM5100B Quck Viide AT käsukomplektile * Kui pole teisiti märgitud, lõpetatakse AT -käsud, vajutades sisestusklahvi. 1.) Veenduge, et teie riigis oleks valitud õige GSM -sagedusala. USA -s peab riba olema seatud 7. Riba määramiseks kasutage seda käsku: AT+SBAND = 7 2.) Pärast Arduino sisselülitamist, kui kilp on paigaldatud, veenduge, et moodul loeb ja tunneb ära SIM -kaardi. Kui terimaalne aken on avatud ja seatud Arduino porti ning 9600 buadiga, lülitage Arduino sisse. Käivitusjärjestus peaks välja nägema umbes selline: SM5100B side käivitamine … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Side mooduliga algab pärast esimese rea kuvamist. Teine suhtlusliin +SIND: 10 ütleb meile, kas moodul näeb SIM -kaarti. Kui tuvastatakse SIM -kaart, on iga teine väli 1; kui SIM -kaarti ei tuvastata, on iga teine väli 0. 3.) Enne käskude saatmist oodake võrguühendust. Pärast +SIND: 10 vastust hakkab moodul automaatselt proovima võrguga ühendust luua. Oodake, kuni saate järgmised vastused: +SIND: 11 +SIND: 3 +SIND: 4 Mobiilmooduli vastus +SIND annab teada moodulite olekust. Siin on vastuste tähenduste kiire kokkuvõtmine: 0 SIM-kaart eemaldatud 1 SIM-kaart sisestatud 2 Helina meloodia 3 AT-moodul on osaliselt valmis 4 AT-moodul on täielikult valmis 5 vabastatud kõnede ID 6 Vabastatud kõne, mille ID = 7 Võrguteenus on saadaval hädaabikõne jaoks 8 Võrk on kadunud 9 Heli sees 10 Näidake iga telefoniraamatu olekut pärast alglauset 11 Registreeritud võrku Pärast võrgus registreerimist saate alustada suhtlemist. Siin on mõned lihtsad ja kasulikud käsud alustamiseks: Helistamine: AT-käsk-ATDxxxyyyzzzz Telefoninumber vormingus: (xxx) yyy-zzz try ---- cell.print ("ATDxxxyyyzzzz"); Kui helistate, viitage mikrofoni ja kõlari kaitsekile külge ühendamiseks kindlasti seadme andmelehele. Txt -sõnumi saatmiseks tehke järgmist: AT -käsk - AT+CMGF = 1 See käsk määrab tekstisõnumi režiimi 'text'. AT -käsk = AT+CMGS = "xxxyyyzzzz" (käru tagastamine) 'Saadetav tekst' (CTRL+Z) Selle käsu kirjeldamine on pisut segane. Telefoninumber formaadis (xxx) yyy-zzzz läheb topeltjutumärkide vahele. Pärast hinnapakkumiste sulgemist vajutage sisestusklahvi. Järgmisena sisestage saadetav tekst. Lõpetage AT käsk, saates CTRL+Z. Seda märki ei saa Arduino terminalist saata. Kasutage alternatiivset terminaliprogrammi nagu Hyperterminal, Tera Term, Bray Terminal või X-CTU. SM5100B moodul suudab palju enamat! Mooduli kohta lisateabe saamiseks vaadake tootelehe andmelehti.*/Avage terminalis jadaport. Macis saate seda teha, tippides: screen /dev/tty.usbmodemfa131 9600 (asendage tty.usbmodemfa131 oma Arduino jadaaadressiga) Oodake, kuni kuvatakse järgmine järjestus: SM5100B side käivitamine… +SIND: 3 +SIND: 4 +SIND: 11 (Kui seda järjestust ei tagastata, kontrollige ülaltoodud koodi allosas loetletud veakoode ja siluge neid nõuetekohaselt. Võimalik, et peate seadistama mooduli Põhja -Ameerika kasutamiseks (vt allpool), enne kui see võrku registreerub (st +SIND 11)) Saada jadaporti järgmised käsud: Saada see Põhja -Ameerika kasutamiseks: AT+SBAND = 7 Määra praegune aeg - aaa/kk/pp: AT+CCLK = "13/05/15, 11: 02:00 "Saada testkõne: ATD4155551212

Samm: tekstisõnumid

Tekstisõnumid
Tekstisõnumid

Laadige alla ja installige SerialGSM oma Arduino teeki.

Tekstsõnumi saatmiseks külastage Tronixstuffi mobiilmooduli õpetust ja kasutage näidiskoodi 26.3:

Kui soovite teksti vastuvõtmiseks käivitada näidiskoodi, ühendage LED -i tihvtiga 8 ja ühendage see 220 -oomise takistiga jadamisi maandusega.

Tekstsõnumi saatmiseks külastage Tronixstuffi mobiilmooduli õpetust ja kasutage näidiskoodi 26.5:

Saatke oma mobiilmoodulile tekst ühega järgmistest käskudest:

// lülitab LED sisse #a1

// lülitab LED välja #a0

9. samm: hääl

Hääl
Hääl
Hääl
Hääl
Hääl
Hääl

Maandatud helikaabli abil ühendage varjestusega mikrofon ja kõlar. Keskmine signaaltraat peaks minema audio pluss klemmidesse ja varjestus vastava negatiivse klemmi külge. Need kaablid tuleks ühendada sarnaselt mikrofoni ja kõlarite poolel.

Häälkõne algatamiseks laadige üles järgmine kood:

//**********************************************************************************

// HELISTAGE // PUHVERIKOOD PÕHJAL: // //********************************************************************************** #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: // // // ********************************************* ************************************* #sisalda #define BUFFSIZ 90 // Puhvermassiivi char seadistamine at_buffer [BUFFSIZ]; char buffidx; // Võrgu oleku muutujad int network_registered; int network_AT_ready; // Koodi oleku muutujad int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Hoiab jadapordist saabuvat märki. char sissetulev_süsi = 0; // Loo võlts jadaport. Tihvt 2 on Rx -tihvt, tihvt 3 on Tx -tihvt. TarkvaraSeriaalrakk (2, 3); void setup () {// Initsialiseeri silumiseks Arduino jadaport. Seriaalne algus (9600); // Initsialiseeri virtuaalne jadaport telefoniga rääkimiseks. cell.binin (9600); //Tere, Maailm. Serial.println ("SM5100B side käivitamine …"); viivitus (1000); // Võrgu esialgse oleku määramine network_registered = 0; network_AT_ready = 0; } // AT -stringide lugemine kärgkilbilt void readATString (void) {char c; buffidx = 0; // alusta algusest (x = 0; x 0) {c = cell.read (); kui (c == -1) {at_buffer [buffidx] = '\ 0'; tagasipöördumine; } kui (c == '\ n') {jätka; } kui ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; tagasipöördumine; } at_buffer [buffidx ++] = c; }}} // Töötle AT stringid tühjaks ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("võrgu võrk pole saadaval"); } kui (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("võrk registreeritud"); } kui (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("võrk AT Valmis"); }} void loop () { / * Esmakordsel kutsumisel tehke tsükkel seni, kuni võrk ja AT on valmis * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Otsi sissetulevat kõnet if (strstr (at_buffer, "+CPAS: 3")! = 0) {// Vasta telefonile cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}

Pilt
Pilt

Kas see oli teile kasulik, lõbus või meelelahutuslik? Jälgige @madeineuphoria, et näha minu viimaseid projekte.

Soovitan: