Բովանդակություն:

Arduino բջջային վահանի ձեռնարկ. 9 քայլ (նկարներով)
Arduino բջջային վահանի ձեռնարկ. 9 քայլ (նկարներով)

Video: Arduino բջջային վահանի ձեռնարկ. 9 քայլ (նկարներով)

Video: Arduino բջջային վահանի ձեռնարկ. 9 քայլ (նկարներով)
Video: 3 Проект на arduino. Игра "Гоночки" 2024, Նոյեմբեր
Anonim
Arduino բջջային վահանի ձեռնարկ
Arduino բջջային վահանի ձեռնարկ

Arduino բջջային վահանը թույլ է տալիս բջջային հեռախոսազանգեր կատարել և ուղարկել տեքստային հաղորդագրություններ: Այս վահանի ուղեղը SM5100B- ն է, որը հզոր բջջային մոդուլ է, որը կարող է կատարել շատ ստանդարտ բջջային հեռախոսների բազմաթիվ առաջադրանքներ: Այս վահանը պահանջում է SIM քարտի օգտագործում բջջային ցանցին միանալու համար: Հետևյալ ձեռնարկը մերկ ոսկորների ձեռնարկ է վահանը նախաստորագրելու, ինչպես նաև տեքստային հաղորդագրություններ ուղարկելու և ստանալու և հեռախոսազանգեր կատարելու համար: Մոդուլի ֆունկցիոնալության մասին ավելին իմանալու համար համոզվեք, որ ստուգեք Sparkfun- ի արտադրանքի էջի տվյալների թերթերը:

Քայլ 1: Գնացեք նյութեր ձեռք բերելու համար

Գնացեք նյութեր ձեռք բերեք
Գնացեք նյութեր ձեռք բերեք

Ձեզ հարկավոր կլինի.

(x1) Բջջային վահան (x1) Stackable Arduino վերնագրեր (x1) Quad band ալեհավաք (x1) Arduino Uno

(Ուշադրություն դարձրեք, որ այս էջի որոշ հղումներ փոխկապակցված հղումներ են: Սա ձեզ համար չի փոխում ապրանքի արժեքը: Ինչ եկամուտներ եմ ստանում, ես նորից ներդնում եմ նոր նախագծերի իրականացման համար: Եթե այլընտրանքային մատակարարների համար որևէ առաջարկություն ունեք, խնդրում եմ թույլ տվեք ինձ իմացիր:)

Քայլ 2: oldոդման վերնագրեր

Oldոդման վերնագրեր
Oldոդման վերնագրեր
Oldոդման վերնագրեր
Oldոդման վերնագրեր
Oldոդման վերնագրեր
Oldոդման վերնագրեր

Տեղադրեք վերնագրերը վահանի մեջ և ամրացրեք դրանք տեղում:

Քայլ 3: Տեղադրեք

Տեղադրեք
Տեղադրեք
Տեղադրեք
Տեղադրեք

Տեղադրեք վերնագրի կապում Arduino- ի վարդակների մեջ:

Քայլ 4: Վերավաճառող

Վերավաճառող
Վերավաճառող

Անթենային մալուխի միացումը SM5100B մոդուլին սովորաբար շատ լավ չէ: Վերալիցքավորեք մալուխի յուրաքանչյուր միացում մոդուլին `կապը ապահովելու համար:

Քայլ 5: Կցեք ալեհավաքը

Կցեք ալեհավաքը
Կցեք ալեհավաքը
Կցեք ալեհավաքը
Կցեք ալեհավաքը

Անթենան ամրացրեք ալեհավաքի մալուխին:

Քայլ 6: Տեղադրեք SIM քարտ

Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ
Տեղադրեք SIM քարտ

SIM քարտը ապահով տեղադրեք SIM քարտի վարդակից:

Քայլ 7: Նախաստորագրեք

Նախաստորագրել
Նախաստորագրել

Arduino- ում գործարկեք հետևյալ ծածկագիրը.

/*

SparkFun Cellular Shield - Pass -Through Sample Sketch SparkFun Electronics- ը գրել է Ռայան Օուենսը 3/Նկարագրություն. Այս ուրվագիծը գրված է SparkFun Electronics- ից Arduino Duemillanove- ին Cellular Shield- ին միացնելու համար: Բջջային վահանը կարելի է ձեռք բերել այստեղ. իսկ բջջային մոդուլից ստացված պատասխանները տեղադրվում են տերմինալում: Լրացուցիչ տեղեկություններ կարելի է գտնել էսքիզների մեկնաբանություններում: Սարքը օգտագործելու համար ակտիվացված SIM քարտը պետք է տեղադրվի տախտակի վրա գտնվող SIM քարտի պահիչի մեջ: Այս ուրվագիծը օգտագործում է NewSoftSerial գրադարանը, որը գրել է Արդուինիանայի Միկալ Հարթը: Գրադարանը կարելի է ներբեռնել այս հասցեով ՝ https://arduiniana.org/libraries/NewSoftSerial/ Այս կոդը տրամադրվում է Creative Commons Attribution License- ի ներքո: Լրացուցիչ տեղեկություններ կարող եք գտնել այստեղ. գրադարան ՝ բջջային մոդուլին սերիական հրամաններ ուղարկելու համար: #include // Օգտագործվում է լարային մանիպուլյացիաների համար char incoming_char = 0; // Պահելու է սերիական նավահանգստից եկող կերպարը: Erialրագրային ապահովումՍերիալ բջիջ (2, 3); // Ստեղծեք «կեղծ» սերիական նավահանգիստ: Պին 2 -ը Rx քորոցն է, 3 -ը ՝ Tx քորոցը: void setup () {// Նախնականացնել հաղորդակցման սերիական նավահանգիստները: Serial.begin (9600); cell.begin (9600); //Եկեք սկսենք! Serial.println («SM5100B հաղորդակցության մեկնարկը …»); } void loop () {// Եթե կերպարը գալիս է բջջային մոդուլից… if (cell.available ()> 0) {incoming_char = cell.read (); // Ստացեք կերպարը բջջային սերիական պորտից: Serial.print (մուտքային_չար); // Տերմինալում տպեք մուտքային նիշը: } // Եթե տերմինալից գրանշան է գալիս Arduino … եթե (Serial.available ()> 0) {incoming_char = Serial.read (); // Ստացեք տերմինալից եկող կերպարը if (incoming_char == '~') // If it is a tilde… incoming_char = 0x0D; //… փոխակերպել փոխադրման վերադարձը այլ կերպ, եթե (մուտքային_չար == '^') // Եթե դա բարձրացված խնամք է … մուտքային_չար = 0x1A; //… փոխակերպել ctrl-Z բջջային. Տպել (մուտքային_չար); // Բնույթը ուղարկեք բջջային մոդուլին: Serial.print (մուտքային_չար); // Վերադարձեք այն տերմինալին}} / * SM5100B Quck Տեղեկանք AT հրամանի հավաքածուի համար * Եթե այլ կերպ նշված AT հրամանները չեն ավարտվում ՝ սեղմելով «մուտքագրել» ստեղնը: 1.) Համոզվեք, որ ձեր երկրի համար ընտրվել է համապատասխան GSM խումբը: ԱՄՆ -ի համար խումբը պետք է սահմանվի 7 -ի: Գոտին սահմանելու համար օգտագործեք այս հրամանը. AT+SBAND = 7 2.) Arduino- ն տեղադրված վահանը միացնելուց հետո ստուգեք, որ մոդուլը կարդում և ճանաչում է SIM քարտը: Բաց տերմինալային պատուհանով և տեղադրված Arduino նավահանգստով և 9600 բուդով, միացրեք Arduino- ին: Գործարկման հաջորդականությունը պետք է ունենա այսպիսի տեսք ՝ SM5100B հաղորդակցության մեկնարկ…… SIND ՝ 1 +SIND ՝ 10, «SM», 1, «FD», 1, «LD», 1, «MC», 1, «RC», 1, «ME», 1 Մոդուլի հետ կապը սկսվում է առաջին տողի ցուցադրումից հետո: Հաղորդակցության երկրորդ գիծը ՝ +SIND: 10, մեզ ասում է, թե արդյոք մոդուլը կարող է տեսնել SIM քարտ: Եթե SIM քարտը հայտնաբերվի, մնացած բոլոր դաշտերը 1 են; եթե SIM քարտը չի հայտնաբերվում, յուրաքանչյուր այլ դաշտ 0. է): +SIND: 10 պատասխանից հետո մոդուլը ինքնաբերաբար կսկսի փորձել միանալ ցանցին: Սպասեք մինչև ստանաք հետևյալ վերաիմաստավորումները ՝ +SIND: 11 +SIND: 3 +SIND: 4 Բջջային մոդուլից +SIND պատասխանը պատմում է մոդուլների կարգավիճակի մասին: Ահա պատասխանի իմաստների արագ թուլացում. հասանելի է շտապ օգնության համար 8 networkանցը կորած է 9 Աուդիո ON 10 initույց տալ սկզբնական արտահայտությունից հետո յուրաքանչյուր հեռախոսագրքի կարգավիճակը 11 Գրանցված է ցանցում eringանցում գրանցվելուց հետո կարող եք սկսել փոխազդեցությունը: Ահա մի քանի պարզ և օգտակար հրամաններ ՝ սկսելու համար. Aանգահարելու համար. AT հրաման-ATDxxxyyyzzzz Հեռախոսահամար ՝ ձևաչափով. Եթե հեռախոսազանգ եք կատարում, համոզվեք, որ հղում կատարեք սարքերի տվյալների թերթիկին ՝ խոսափողը և բարձրախոսը վահանին միացնելու համար: Txt հաղորդագրություն ուղարկելու համար. AT հրաման - AT+CMGF = 1 Այս հրամանը տեքստային հաղորդագրության ռեժիմը սահմանում է «տեքստ»: AT հրաման = AT+CMGS = "xxxyyyzzzz" (վագոնի վերադարձ) «Տեքստ ուղարկելու համար» (CTRL+Z) Այս հրամանը նկարագրելը մի փոքր շփոթեցնող է: Հեռախոսահամարը, ձևաչափով (xxx) yyy-zzzz անցնում է կրկնակի մեջբերումներով: Մեջբերումները փակելուց հետո սեղմեք 'enter': Հաջորդը մուտքագրեք ուղարկվելիք տեքստը: Ավարտեք AT հրամանը ՝ ուղարկելով CTRL+Z: Այս կերպարը չի կարող ուղարկվել Arduino- ի տերմինալից: Օգտագործեք այլընտրանքային տերմինալային ծրագիր, ինչպիսիք են Hyperterminal, Tera Term, Bray Terminal կամ X-CTU: SM5100B մոդուլը կարող է շատ ավելին անել, քան սա: Մոդուլի մասին ավելին իմանալու համար ստուգեք ապրանքի էջի տվյալների թերթերը:*/Բացեք սերիական նավահանգիստը տերմինալում: Mac- ում դա արվում է ՝ մուտքագրելով ՝: 11 (Եթե այս հաջորդականությունը չի վերադարձվում, ստուգեք վերևի կոդի ներքևում նշված սխալի ծածկագրերը և կարգաբերեք համապատասխանաբար: Հնարավոր է, որ անհրաժեշտ լինի մոդուլը սահմանել Հյուսիսային Ամերիկայի օգտագործման համար `տես ստորև` նախքան ցանցին գրանցվելը (այսինքն ՝ +SIND 11)) Սերիական նավահանգիստ ուղարկեք հետևյալ հրամանները. Ուղարկեք սա հյուսիսամերիկյան օգտագործման համար. AT+SBAND = 7 Սահմանեք ընթացիկ ժամանակը `yy/mm/dd: AT+CCLK =" 13/05/15, 11: 02:00 «Ուղարկեք փորձնական զանգ ՝ ATD4155551212

Քայլ 8: Տեքստային հաղորդագրություններ

Տեքստային հաղորդագրություններ
Տեքստային հաղորդագրություններ

Ներբեռնեք և տեղադրեք SerialGSM ձեր Arduino գրադարանում:

Տեքստային հաղորդագրություն ուղարկելու համար այցելեք Tronixstuff բջջային մոդուլի ձեռնարկը և օգտագործեք օրինակ 26.3 կոդը ՝

Եթե ցանկանում եք գործարկել տեքստի ստացման օրինակի կոդը, LED- ը միացրեք 8 -ի կապակցիչին և այն շարանի տեղադրեք 220 օմ դիմադրիչով գետնին:

Տեքստային հաղորդագրություն ուղարկելու համար այցելեք Tronixstuff բջջային մոդուլի ձեռնարկը և օգտագործեք օրինակ 26.5 կոդը ՝

Ձեր բջջային մոդուլին ուղարկեք հետևյալ հրամաններից մեկը.

// միացնում է LED- ը #a1

// անջատում է LED- ը #a0

Քայլ 9: Ձայն

Ձայն
Ձայն
Ձայն
Ձայն
Ձայն
Ձայն

Խոսափողը և բարձրախոսը միացրեք վահանին `օգտագործելով հիմնավորված ձայնային մալուխ: Կենտրոնական ազդանշանային հաղորդալարը պետք է անցնի աուդիո գումարած տերմինալներին, իսկ պաշտպանությունը `վահանի համապատասխան բացասական տերմինալներին: Այս մալուխները պետք է նմանապես միացված լինեն խոսափողի և բարձրախոսի կողմից:

Ձայնային զանգ սկսելու համար վերբեռնեք հետևյալ ծածկագիրը.

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

// ALLԱՆԳԵԼ // // ԲՈFՖԵՐԱՅԻՆ ԿՈԴ ՝ ՀԻՄՆԱԴՐՎԱ ՝ // // //********************************************************************************** #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: // // // ******************************************* ********************************* #ներառել #սահմանել BUFFSIZ 90 // Կարգավորել բուֆերային զանգվածի char at_buffer [BUFFSIZ]; char buffidx; // stateանցի վիճակի փոփոխականներ int network_registered; int network_AT_ready; // Կոդի փոփոխականներ int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Պահելու է սերիական նավահանգստից եկող կերպարը: char մուտքային_չար = 0; // Ստեղծեք «կեղծ» սերիական նավահանգիստ: Պին 2 -ը Rx քորոցն է, 3 -ը ՝ Tx քորոցը: Erialրագրային ապահովումՍերիալ բջիջ (2, 3); void setup () {// Նախագծել Arduino սերիայի պորտը ՝ վրիպազերծման համար: Serial.begin (9600); // Նախագծեք վիրտուալ սերիական նավահանգիստը ՝ Հեռախոսի հետ խոսելու համար: cell.begin (9600); //Բարեւ աշխարհ. Serial.println («SM5100B հաղորդակցության մեկնարկը …»); ուշացում (1000); // Նախադրել ցանցի սկզբնական վիճակի network_registered = 0; network_AT_ready = 0; } // Կարդացեք AT տողերը բջջային վահանից void readATString (void) {char c; buffidx = 0; // սկսել սկսած (x = 0; x 0) {c = cell.read (); եթե (c == -1) {at_buffer [buffidx] = '\ 0'; վերադարձ; } if (c == '\ n') {շարունակել; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; վերադարձ; } at_buffer [buffidx ++] = c; }}} // Մշակել AT տողերը անվավեր ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("ցանցի ցանցը հասանելի չէ"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println («ցանցը գրանցված է»); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println («ցանց AT Ready»); }} void loop () { / * Եթե առաջին անգամ կանչեք, շրջանցեք մինչև ցանցը և AT- ն պատրաստ լինեն * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Փնտրեք մուտքային զանգ եթե (strstr (at_buffer, "+CPAS: 3")! = 0) {// Պատասխանեք հեռախոսի cell.println ("ATA"); firstTimeInOtherLoop = 0; }}}

Պատկեր
Պատկեր

Ձեր կարծիքով սա օգտակար, զվարճալի կամ զվարճալի՞ց էր: Հետևեք @madeineuphoria- ին ՝ իմ վերջին նախագծերը տեսնելու համար:

Խորհուրդ ենք տալիս: