Innehållsförteckning:
- Steg 1: Gå på Hämta saker
- Steg 2: Lödhuvuden
- Steg 3: Infoga
- Steg 4: Lösning
- Steg 5: Fäst antennen
- Steg 6: Sätt i SIM -kortet
- Steg 7: Initiera
- Steg 8: Textmeddelanden
- Steg 9: Röst
Video: Arduino Cellular Shield -handledning: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Med Arduino Cellular Shield kan du ringa mobiltelefonsamtal och skicka textmeddelanden. Hjärnan i denna sköld är SM5100B som är en robust mobilmodul som kan utföra många av uppgifterna för de flesta vanliga mobiltelefoner. Denna skärm kräver användning av ett SIM -kort för att ansluta till ett mobilnät. Handledningen som följer är en skeletthandledning för att initiera skölden, och både skicka och ta emot textmeddelanden och telefonsamtal. För att lära dig mer om modulens funktionalitet, kolla in databladen på Sparkfun produktsida.
Steg 1: Gå på Hämta saker
Du kommer behöva:
(x1) Cellular shield (x1) Stackable Arduino headers (x1) Quad band antenne (x1) Arduino Uno
(Observera att några av länkarna på denna sida är affiliatelänkar. Detta ändrar inte kostnaden för varan för dig. Jag återinvesterar vad jag får för att göra nya projekt. Om du vill ha förslag på alternativa leverantörer, låt mig känna till.)
Steg 2: Lödhuvuden
Sätt in rubrikerna i skölden och löd dem på plats.
Steg 3: Infoga
Sätt in huvudstiften i uttagen på Arduino.
Steg 4: Lösning
Antennkabelns anslutning till SM5100B -modulen är vanligtvis inte särskilt bra. Lossa var och en av kabelns anslutningar till modulen för att säkerställa anslutning.
Steg 5: Fäst antennen
Trä antennen på antennkabeln.
Steg 6: Sätt i SIM -kortet
Sätt in SIM -kortet ordentligt i SIM -kortets uttag.
Steg 7: Initiera
Kör följande kod på Arduino:
/*
SparkFun Cellular Shield - Pass -Through Sample Sketch SparkFun Electronics Skrivet av Ryan Owens 3/Beskrivning: Denna skiss är skriven för att ansluta en Arduino Duemillanove till en Cellular Shield från SparkFun Electronics. Cellskärmen kan köpas här: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 I denna skiss överförs seriella kommandon från ett terminalprogram till mobilmodulen SM5100B; och svar från mobilmodulen publiceras i terminalen. Mer information finns i skisskommentarer. Ett aktiverat SIM -kort måste sättas in i SIM -korthållaren på kortet för att enheten ska kunna användas! Denna skiss använder NewSoftSerial -biblioteket skrivet av Mikal Hart från Arduiniana. Biblioteket kan laddas ner på denna URL: https://arduiniana.org/libraries/NewSoftSerial/ Denna kod finns under Creative Commons Erkännande Licens. Mer information finns här: https://creativecommons.org/licenses/by/3.0/ (Använd vår kod fritt! Kom bara ihåg att ge oss kredit där den beror på. Tack!) */#Include // Inkludera NewSoftSerial bibliotek för att skicka seriella kommandon till mobilmodulen. #include // Används för strängmanipulationer char incoming_char = 0; // Kommer att hålla det inkommande tecknet från serieporten. SoftwareSerial cell (2, 3); // Skapa en "falsk" serieport. Stift 2 är Rx -stiftet, stift 3 är Tx -stiftet. void setup () {// Initiera seriella portar för kommunikation. Serial.begin (9600); cell. började (9600); //Låt oss börja! Serial.println ("Startar SM5100B -kommunikation …"); } void loop () {// Om ett tecken kommer in från mobilmodulen … if (cell.available ()> 0) {incoming_char = cell.read (); // Hämta tecknet från den cellulära seriella porten. Serial.print (inkommande_char); // Skriv ut det inkommande tecknet till terminalen. } // Om ett tecken kommer från terminalen till Arduino … if (Serial.available ()> 0) {incoming_char = Serial.read (); // Få tecknet som kommer från terminalen om (incoming_char == '~') // Om det är en tilde … incoming_char = 0x0D; // … konvertera till en vagnretur annars om (inkommande_char == '^') // Om det är en uppåtvals … inkommande_char = 0x1A; // … konvertera till ctrl-Z cell.print (inkommande_char); // Skicka tecknet till mobilmodulen. Serial.print (inkommande_char); // Echo det tillbaka till terminalen}} / * SM5100B Quck -referens för AT -kommandoset * Om inte annat anges AT -kommandon avslutas genom att trycka på "enter" -knappen. 1.) Se till att rätt GSM -band har valts för ditt land. För USA måste bandet vara inställt på 7. För att ställa in bandet, använd det här kommandot: AT+SBAND = 7 2.) Efter att du har slagit på Arduino med skärmen installerad, kontrollera att modulen läser och känner igen SIM -kortet. Med ett stort fönster öppet och inställt på Arduino -port och 9600 buad, slå på Arduino. Startsekvensen ska se ut ungefär så här: Starta SM5100B Communication … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Kommunikation med modulen startar efter att den första raden visas. Den andra kommunikationslinjen, +SIND: 10, berättar om modulen kan se ett SIM -kort. Om SIM -kortet upptäcks är alla andra fält ett 1; om SIM -kortet inte upptäcks är alla andra fält ett 0. 3.) Vänta på en nätverksanslutning innan du börjar skicka kommandon. Efter svaret +SIND: 10 börjar modulen automatiskt försöka ansluta till ett nätverk. Vänta tills du får följande reponer: +SIND: 11 +SIND: 3 +SIND: 4 +SIND -svaret från mobilmodulen berättar modulernas status. Här är en snabb genomgång av svarsbetydelserna: 0 SIM-kort borttaget 1 SIM-kort isatt 2 Ringmelodi 3 AT-modulen är delvis klar 4 AT-modulen är helt klar 5 ID för släppta samtal 6 Släppt samtal vars ID = 7 Nättjänsten är tillgängligt för ett nödsamtal 8 Nätverket är förlorat 9 Ljud PÅ 10 Visa status för varje telefonbok efter initfras 11 Registrerad i nätverk Efter registrering i nätverket kan du påbörja interaktion. Här är några enkla och användbara kommandon för att komma igång: Att ringa ett samtal: AT-kommando-ATDxxxyyyzzzz Telefonnummer med formatet: (xxx) yyy-zzz försök ---- cell.print ("ATDxxxyyyzzzz"); Om du ringer ett telefonsamtal, se till att hänvisa till enhetsdatabladet för att ansluta en mikrofon och högtalare till skärmen. För att skicka ett txt -meddelande: AT -kommando - AT+CMGF = 1 Detta kommando anger textmeddelandeläget till "text". AT -kommando = AT+CMGS = "xxxyyyzzzz" (vagnretur) 'Text att skicka' (CTRL+Z) Detta kommando är lite förvirrande att beskriva. Telefonnumret, i formatet (xxx) yyy-zzzz går in i dubbla citat. Tryck på "enter" när du har stängt offerten. Ange sedan texten som ska skickas. Avsluta AT -kommandot genom att skicka CTRL+Z. Det här tecknet kan inte skickas från Arduinos terminal. Använd ett alternativt terminalprogram som Hyperterminal, Tera Term, Bray Terminal eller X-CTU. SM5100B -modulen kan mycket mer än så här! Kolla in databladen på produktsidan för att lära dig mer om modulen.*/Öppna serieporten i terminalen. På en Mac uppnås detta genom att skriva: skärm /dev/tty.usbmodemfa131 9600 (byt ut tty.usbmodemfa131 med din Arduinos serieadress) Vänta med att se följande sekvens: Starta SM5100B Communication … +SIND: 3 +SIND: 4 +SIND: 11 (Om denna sekvens inte returneras, kontrollera felkoderna som listas längst ner i koden ovan och felsök på rätt sätt. Du kan behöva ställa in modulen för nordamerikansk användning - se nedan - innan den registrerar sig till nätverket (dvs. +SIND 11)) Skicka följande kommandon till serieporten: Skicka detta för nordamerikansk användning: AT+SBAND = 7 Ställ in aktuell tid - åå/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Skicka testsamtal: ATD4155551212
Steg 8: Textmeddelanden
Ladda ner och installera SerialGSM i ditt Arduino -bibliotek.
För att skicka ett textmeddelande, besök Tronixstuff-modulen och använd exempelkod 26.3:
Om du vill köra exempelkoden för att ta emot en text, ansluter du en lysdiod till stift 8 och sätter den i serie med ett 220 ohm motstånd till jord.
Om du vill skicka ett textmeddelande besöker du Tronixstuff-modulen och använder exempelkod 26.5:
Skicka ett av följande kommandon till din mobilmodul:
// tänder lysdioden #a1
// släcker lysdioden #a0
Steg 9: Röst
Anslut en mikrofon och högtalare till skärmen med hjälp av en jordad ljudkabel. Mittsignalkabeln ska gå till audio plus -terminalerna och skärmen ska gå till respektive negativa terminaler på skärmen. Dessa kablar ska anslutas på samma sätt på mikrofon- och högtalarsidan.
För att initiera ett röstsamtal ladda upp följande kod:
//**********************************************************************************
// 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 // Konfigurera buffertmatris char at_buffer [BUFFSIZ]; röding buffidx; // Nätverksstatusvariabler int network_registered; int network_AT_ready; // Kodtillståndsvariabler int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Kommer att hålla det inkommande tecknet från serieporten. char inkommande_char = 0; // Skapa en "falsk" serieport. Stift 2 är Rx -stiftet, stift 3 är Tx -stiftet. SoftwareSerial cell (2, 3); void setup () {// Initiera Arduino seriell port för felsökning. Serial.begin (9600); // Initiera virtuell serieport för att prata med telefon. cell. började (9600); //Hej världen. Serial.println ("Startar SM5100B -kommunikation …"); fördröjning (1000); // Ställ in initialt nätverkstillstånd network_registered = 0; network_AT_ready = 0; } // Läs AT -strängar från den mobila skärmens tomrum readATString (void) {char c; buffidx = 0; // börja vid början för (x = 0; x 0) {c = cell.read (); if (c == -1) {at_buffer [buffidx] = '\ 0'; lämna tillbaka; } om (c == '\ n') {fortsätt; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; lämna tillbaka; } at_buffer [buffidx ++] = c; }}} // Bearbeta AT -strängarna void ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("nätverksnätverk ej tillgängligt"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("nätverksregistrerat"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("nätverk AT Ready"); }} void loop () { / * Om den uppmanas för första gången, loopa tills nätverket och AT är redo * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; medan (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Leta efter inkommande samtal if (strstr (at_buffer, "+CPAS: 3")! = 0) {// Svara på telefonen cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}
Tyckte du att det här var användbart, roligt eller underhållande? Följ @madeineuphoria för att se mina senaste projekt.
Rekommenderad:
Arduino TFT Graphics Shield: 4 steg (med bilder)
Arduino TFT Graphics Shield: a.articles {font-size: 110.0%; font-weight: fet; typsnitt: kursiv; text-dekoration: ingen; bakgrund-färg: röd;} a.articles: sväva {bakgrund-färg: svart;} Denna instruktion förklarar hur man gör en 240 x 320 pixlar (QVGA) färggrafik
Nedräkningstimer med GLCD Shield: 8 steg (med bilder)
Nedräkningstimer med hjälp av GLCD Shield: I det här projektet ritar jag en nedräkningstimer på en GLCD -skärm med 1 skärm, användaren av detta projekt kan Bestämma varaktigheten för timern med hjälp av en ritad knapp på GLCD, när timern når 0 kommer det att summera ljud och vibrationer
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
3, 7v nödladdare Nokia Cellular med 9v batteri: 6 steg
3,7v nödladdare Nokia Cellular med 9v batteri: Hej alla. Jag ville föreslå dig en enkel mobil laddare med teknik på låg nivå som dock fungerar och utför sin uppgift perfekt. Utkast till en mobil nödladdning som kan vara oumbärlig om den hittas för oss med b