Indholdsfortegnelse:
- Trin 1: Gå Få ting
- Trin 2: Loddehoveder
- Trin 3: Indsæt
- Trin 4: Resolder
- Trin 5: Monter antennen
- Trin 6: Indsæt SIM -kort
- Trin 7: Initialiser
- Trin 8: Tekstbeskeder
- Trin 9: Stemme
Video: Arduino Cellular Shield Tutorial: 9 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Arduino Cellular Shield giver dig mulighed for at foretage mobiltelefonopkald og sende tekstbeskeder. Hjernen i dette skjold er SM5100B, som er et robust mobilmodul, der er i stand til at udføre mange af opgaverne for de fleste standard mobiltelefoner. Dette skjold kræver brug af et SIM -kort for at oprette forbindelse til et mobilnetværk. Vejledningen, der følger, er en tutorial med bare knogler til initialisering af skjoldet, og både afsendelse og modtagelse af tekstbeskeder og telefonopkald. Hvis du vil vide mere om modulets funktionalitet, skal du tjekke databladene på Sparkfun's produktside.
Trin 1: Gå Få ting
Du får brug for:
(x1) Cellular shield (x1) Stabelbare Arduino -headere (x1) Quad -band antenne (x1) Arduino Uno
(Bemærk, at nogle af linkene på denne side er tilknyttede links. Dette ændrer ikke varens omkostninger for dig. Jeg geninvesterer det overskud, jeg modtager, til at lave nye projekter. Hvis du vil have forslag til alternative leverandører, så lad mig venligst ved godt.)
Trin 2: Loddehoveder
Sæt overskrifterne i skærmen og lod dem på plads.
Trin 3: Indsæt
Sæt hovedstifterne i stikkene på Arduino.
Trin 4: Resolder
Antennekablets forbindelse til SM5100B -modulet er normalt ikke særlig god. Resolder hver af kablets forbindelser til modulet for at sikre forbindelse.
Trin 5: Monter antennen
Træk antennen til antennekablet.
Trin 6: Indsæt SIM -kort
Indsæt SIM -kortet sikkert i SIM -kortstikket.
Trin 7: Initialiser
Kør følgende kode på Arduino:
/*
SparkFun Cellular Shield - Pass -Through Sample Sketch SparkFun Electronics Skrevet af Ryan Owens 3/Beskrivelse: Denne skitse er skrevet for at interface en Arduino Duemillanove til et Cellular Shield fra SparkFun Electronics. Cellular -skjoldet kan købes her: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 I denne skitse sendes serielle kommandoer fra et terminalprogram til SM5100B -mobilmodulet; og svar fra mobilmodulet er indsendt i terminalen. Flere oplysninger findes i skitsekommentarer. Et aktiveret SIM -kort skal indsættes i SIM -kortholderen på kortet for at kunne bruge enheden! Denne skitse anvender NewSoftSerial -biblioteket skrevet af Mikal Hart fra Arduiniana. Biblioteket kan downloades på denne URL: https://arduiniana.org/libraries/NewSoftSerial/ Denne kode findes under Creative Commons Attribution License. Flere oplysninger findes her: https://creativecommons.org/licenses/by/3.0/ (Brug vores kode frit! Husk bare at give os kredit, hvor det skyldes. Tak!) */#Include // Inkluder NewSoftSerial bibliotek for at sende serielle kommandoer til mobilmodulet. #include // Anvendes til strengmanipulationer char incoming_char = 0; // Vil gemme det indgående tegn fra den serielle port. SoftwareSerial celle (2, 3); // Opret en 'falsk' seriel port. Pin 2 er Rx pin, pin 3 er Tx pin. void setup () {// Initialiser serielle porte til kommunikation. Serial.begin (9600); celle. begyndte (9600); //Lad os komme igang! Serial.println ("Start af SM5100B -kommunikation …"); } void loop () {// Hvis et tegn kommer ind fra mobilmodulet … if (cell.available ()> 0) {incoming_char = cell.read (); // Hent tegnet fra den cellulære serielle port. Serial.print (indgående_char); // Udskriv det indgående tegn til terminalen. } // Hvis et tegn kommer fra terminalen til Arduino … hvis (Serial.available ()> 0) {incoming_char = Serial.read (); // Få tegnet fra terminalen hvis (incoming_char == '~') // Hvis det er en tilde … incoming_char = 0x0D; // … konverter til en vognretur ellers if (incoming_char == '^') // Hvis det er en up caret … incoming_char = 0x1A; // … konverter til ctrl-Z cell.print (indgående_char); // Send karakteren til mobilmodulet. Serial.print (indgående_char); // Ekko det tilbage til terminalen}} / * SM5100B Quck Reference til AT -kommandosæt * Medmindre andet er angivet, afsluttes AT -kommandoer ved at trykke på "enter" -tasten. 1.) Sørg for, at det korrekte GSM -bånd er valgt til dit land. For USA skal båndet sættes til 7. For at indstille båndet skal du bruge denne kommando: AT+SBAND = 7 2.) Efter at du har tændt for Arduino med skærmen installeret, skal du kontrollere, at modulet læser og genkender SIM -kortet. Med et stort vindue åbent og indstillet til Arduino -port og 9600 buad, tænd for Arduino. Opstartssekvensen skal se sådan ud: Start SM5100B Communication … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Kommunikation med modulet starter, efter at den første linje er vist. Den anden kommunikationslinje, +SIND: 10, fortæller os, om modulet kan se et SIM -kort. Hvis SIM -kortet opdages, er hvert andet felt et 1; hvis SIM -kortet ikke opdages, er hvert andet felt et 0. 3.) Vent på en netværksforbindelse, før du begynder at sende kommandoer. Efter svaret +SIND: 10 begynder modulet automatisk at forsøge at oprette forbindelse til et netværk. Vent, indtil du modtager følgende reponer: +SIND: 11 +SIND: 3 +SIND: 4 +SIND -svaret fra mobilmodulet fortæller modulernes status. Her er en hurtig gennemgang af svarbetydningerne: 0 SIM-kort fjernet 1 SIM-kort isat 2 Ringemelodi 3 AT-modul er delvist klar 4 AT-modul er helt klar 5 ID for frigivne opkald 6 Udgivet opkald, hvis ID = 7 Netværkstjenesten er tilgængelig for et nødopkald 8 Netværket er tabt 9 Lyd TIL 10 Vis status for hver telefonbog efter init -sætning 11 Registreret til netværk Efter registrering på netværket kan du begynde interaktion. Her er et par enkle og nyttige kommandoer til at komme i gang: For at foretage et opkald: AT-kommando-ATDxxxyyyzzzz Telefonnummer med formatet: (xxx) yyy-zzz prøv ---- cell.print ("ATDxxxyyyzzzz"); Hvis du foretager et telefonopkald, skal du referere til enhedsdatabladet for at tilslutte en mikrofon og højttaler til skærmen. Sådan sender du en txt -besked: AT -kommando - AT+CMGF = 1 Denne kommando indstiller tekstbeskedstilstanden til 'tekst'. AT -kommando = AT+CMGS = "xxxyyyzzzz" (vognretur) 'Tekst til afsendelse' (CTRL+Z) Denne kommando er lidt forvirrende at beskrive. Telefonnummeret i formatet (xxx) yyy-zzzz går inde i dobbelte citater. Tryk på 'enter' efter at have lukket tilbudene. Indtast derefter den tekst, der skal sendes. Afslut AT -kommandoen ved at sende CTRL+Z. Dette tegn kan ikke sendes fra Arduinos terminal. Brug et alternativt terminalprogram som Hyperterminal, Tera Term, Bray Terminal eller X-CTU. SM5100B -modulet kan meget mere end dette! Tjek databladene på produktsiden for at lære mere om modulet.*/Åbn den serielle port i terminalen. På en Mac opnås dette ved at skrive: screen /dev/tty.usbmodemfa131 9600 (udskift tty.usbmodemfa131 med din Arduinos serielle adresse) Vent med at se følgende rækkefølge returneret: Start af SM5100B Communication … +SIND: 3 +SIND: 4 +SIND: 11 (Hvis denne sekvens ikke returneres, skal du kontrollere fejlkoderne, der er angivet nederst i koden ovenfor, og fejlsøge korrekt. Du skal muligvis indstille modulet til nordamerikansk brug - se nedenfor - før det registreres til netværk (dvs. +SIND 11)) Send følgende kommandoer til den serielle port: Send dette til brug i Nordamerika: AT+SBAND = 7 Indstil det aktuelle tidspunkt - åå/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Send testopkald: ATD4155551212
Trin 8: Tekstbeskeder
Download og installer SerialGSM i dit Arduino -bibliotek.
For at sende en tekstbesked skal du besøge Tronixstuff-modulet til selvstudier og bruge eksempelkode 26.3:
Hvis du gerne vil køre eksempelkoden for at modtage en tekst, skal du tilslutte en LED til pin 8 og sætte den i serie med en 220 ohm modstand til jorden.
For at sende en tekstbesked skal du besøge Tronixstuff-modulet til selvstudier og bruge eksempelkode 26.5:
Send en af følgende kommandoer til dit mobilmodul:
// tænder lysdioden #a1
// slukker LED'en #a0
Trin 9: Stemme
Tilslut en mikrofon og højttaler til skærmen ved hjælp af jordet lydkabel. Centersignaltråden skal gå til audio plus -terminalerne, og afskærmningen skal gå til de respektive negative terminaler på skærmen. Disse kabler skal tilsluttes på samme måde på mikrofon- og højttalersiden.
For at initialisere et taleopkald skal du uploade følgende kode:
//**********************************************************************************
// RING // // BUFFERING CODE BASED UPON: // // //********************************************************************************** #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 // Opsæt buffer array char at_buffer [BUFFSIZ]; char buffidx; // Netværksstatusvariabler int network_registered; int network_AT_ready; // Code state variables int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Vil gemme det indgående tegn fra den serielle port. char indkommende_char = 0; // Opret en 'falsk' seriel port. Pin 2 er Rx pin, pin 3 er Tx pin. SoftwareSerial celle (2, 3); void setup () {// Initialiser Arduino seriel port til fejlfinding. Serial.begin (9600); // Initialiser den virtuelle serielle port for at tale med telefonen. celle. begyndte (9600); //Hej Verden. Serial.println ("Start af SM5100B -kommunikation …"); forsinkelse (1000); // Indstil indledende netværkstilstand network_registered = 0; network_AT_ready = 0; } // Læs AT -strenge fra cellular shield void readATString (void) {char c; buffidx = 0; // start ved begyndelsen for (x = 0; x 0) {c = cell.read (); hvis (c == -1) {at_buffer [buffidx] = '\ 0'; Vend tilbage; } hvis (c == '\ n') {fortsæt; } hvis ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; Vend tilbage; } at_buffer [buffidx ++] = c; }}}} // Behandl AT -strengene tom ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("netværksnetværk ikke tilgængeligt"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("netværk registreret"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("netværk AT Klar"); }} void loop () { / * Hvis der ringes til for første gang, skal du sløjfe, indtil netværket og AT er klar * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; mens (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Kig efter indgående opkald if (strstr (at_buffer, "+CPAS: 3")! = 0) {// Besvar telefonens cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}
Fandt du dette nyttigt, sjovt eller underholdende? Følg @madeineuphoria for at se mine seneste projekter.
Anbefalede:
Tegningsrobot med Adafruit Shield (Få det til at flytte konkurrence): 10 trin (med billeder)
Drawing Robot With Adafruit Shield (Make It Move Contest): Hej mine navne Jacob og jeg bor i Storbritannien. I dette projekt skal jeg bygge en robot, der tegner for dig. *Jeg er sikker på, at mange af jer vil se det, så hvis du vil vide det, skal du springe lige til det andet til sidste trin, men sørg for at komme tilbage her for at se
Styr dine lysdioder med din tv -fjernbetjening ?! -- Arduino IR -tutorial: 5 trin (med billeder)
Styr dine lysdioder med din tv -fjernbetjening ?! || Arduino IR Tutorial: I dette projekt vil jeg vise dig, hvordan jeg genanvendte de ubrugelige knapper på min fjernsyns fjernbetjening for at styre lysdioderne bag mit tv. Du kan også bruge denne teknik til at styre alle slags ting med en smule kode -redigering. Jeg vil også tale lidt om teorien
Tutorial til interface HMC5883L kompassensor med Arduino: 10 trin (med billeder)
Tutorial til Interface HMC5883L Kompassensor med Arduino: Beskrivelse HMC5883L er et 3-akset digitalt kompas, der bruges til to generelle formål: at måle magnetiseringen af et magnetisk materiale som en ferromagnet eller at måle styrken og i nogle tilfælde retningen af magnetfelt på et punkt i s
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
3, 7v nødoplader Nokia Cellular med 9v batteri: 6 trin
3,7v nødoplader Nokia Cellular med 9v batteri: Hej til alle. Jeg ville foreslå dig en simpel mobil oplader med teknologi på lavt niveau, der dog fungerer og udfører sin opgave perfekt. Udkast til en mobil nødsituation, der kan være uundværlig, hvis den bliver fundet for os med b