Orodha ya maudhui:
- Hatua ya 1: Nenda Pata vitu
- Hatua ya 2: Vichwa vya Solder
- Hatua ya 3: Ingiza
- Hatua ya 4: Resolder
- Hatua ya 5: Ambatisha Antena
- Hatua ya 6: Ingiza SIM Card
- Hatua ya 7: Anzisha
- Hatua ya 8: Ujumbe wa maandishi
- Hatua ya 9: Sauti
Video: Mafunzo ya Ngao ya Simu ya Arduino: Hatua 9 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:49
Ngao ya Simu ya Arduino hukuruhusu kupiga simu za rununu, na kutuma ujumbe mfupi. Ubongo wa ngao hii ni SM5100B ambayo ni moduli thabiti ya rununu inayoweza kutekeleza majukumu mengi ya simu nyingi za kawaida. Ngao hii inahitaji matumizi ya SIM kadi kuungana na mtandao wa rununu. Mafunzo yanayofuata ni mafunzo wazi ya mifupa ya kuanzisha ngao, na wote kutuma na kupokea ujumbe wa maandishi, na simu. Ili kujifunza zaidi juu ya utendaji wa moduli, hakikisha uangalie data za data kwenye ukurasa wa bidhaa wa Sparkfun.
Hatua ya 1: Nenda Pata vitu
Utahitaji:
(x1) Ngao ya rununu (x1) Vichwa vya Arduino vya kubaki (x1) Antena ya bendi ya Quad (x1) Arduino Uno
(Kumbuka kuwa viungo vingine kwenye ukurasa huu ni viungo vya ushirika. Hii haibadilishi gharama ya bidhaa kwako. Ninaweka tena mapato yoyote ninayopokea katika kutengeneza miradi mipya. Ikiwa ungependa maoni yoyote kwa wauzaji mbadala, tafadhali niruhusu kujua.)
Hatua ya 2: Vichwa vya Solder
Ingiza vichwa ndani ya ngao na uziweke mahali pake.
Hatua ya 3: Ingiza
Ingiza pini za kichwa ndani ya soketi kwenye Arduino.
Hatua ya 4: Resolder
Uunganisho wa kebo ya antena kwa moduli ya SM5100B kawaida sio nzuri sana. Resolder kila uhusiano wa kebo na moduli ili kuhakikisha unganisho.
Hatua ya 5: Ambatisha Antena
Piga antena kwa kebo ya antena.
Hatua ya 6: Ingiza SIM Card
Ingiza SIM kadi salama kwenye tundu la SIM kadi.
Hatua ya 7: Anzisha
Endesha nambari ifuatayo kwenye Arduino:
/*
SparkFun Cellular Shield - Pass-through Sampuli Mchoro SparkFun Electronics Imeandikwa na Ryan Owens 3 / Maelezo: Mchoro huu umeandikwa ili kushughulikia Arduino Duemillanove kwa Shield ya rununu kutoka SparkFun Electronics. Ngao ya rununu inaweza kununuliwa hapa: na majibu kutoka kwa moduli ya rununu yamewekwa kwenye terminal. Habari zaidi inapatikana katika maoni ya mchoro. SIM iliyoamilishwa lazima iingizwe kwenye kishikilia SIM kadi kwenye ubao ili utumie kifaa! Mchoro huu hutumia maktaba ya NewSoftSerial iliyoandikwa na Mikal Hart wa Arduiniana. Maktaba inaweza kupakuliwa kwenye URL hii: https://arduiniana.org/libraries/NewSoftSerial/ Nambari hii imetolewa chini ya Leseni ya Ubunifu wa Commons. Habari zaidi inaweza kupatikana hapa: maktaba ya kutuma amri za serial kwa moduli ya rununu. # ingiza // Inatumika kwa udanganyifu wa kamba char incoming_char = 0; // Itashikilia tabia inayoingia kutoka Bandari ya Serial. ProgramuSeli ya seli (2, 3); // Unda bandari ya serial 'bandia'. Pini 2 ni pini ya Rx, pini 3 ni pini ya Tx. kuanzisha batili () {// Anzisha bandari za serial kwa mawasiliano. Kuanzia Serial (9600); seli. kuanza (9600); //Tuanze! Serial.println ("Kuanzisha Mawasiliano ya SM5100B…"); } kitanzi batili () {// Ikiwa tabia inaingia kutoka kwa moduli ya rununu… ikiwa (seli haipatikani ()> 0) {incoming_char = cell.read (); // Pata mhusika kutoka bandari ya serial ya rununu. Serial.print (inayoingia_char); // Chapisha tabia inayoingia kwenye terminal. } // Ikiwa mhusika anakuja kutoka kwa kituo hadi Arduino… ikiwa (Serial.available ()> 0) {incoming_char = Serial.read (); // Pata mhusika anayekuja kutoka kwa terminal ikiwa (incoming_char == '~') // Ikiwa ni tilde… incoming_char = 0x0D; //… badilisha kurudi kwa gari tena ikiwa (incoming_char == '^') // Ikiwa ni kituo cha juu… incoming_char = 0x1A; //… badili kuwa ctrl-Z cell.print (incoming_char); // Tuma tabia kwa moduli ya rununu. Serial.print (inayoingia_char); // Rudisha nyuma kwenye kituo}} / * SM5100B Quck Rejea ya Uwekaji wa Amri ya AT * Isipokuwa amri zingine za AT zilizoamriwa zinamalizika kwa kubonyeza kitufe cha 'ingiza'. 1.) Hakikisha bendi sahihi ya GSM imechaguliwa kwa nchi yako. Kwa Amerika bendi lazima iwekwe hadi 7. Kuweka bendi, tumia amri hii: AT + SBAND = 7 2.) Baada ya kuwezesha Arduino na ngao iliyosanikishwa, thibitisha kuwa moduli inasoma na inatambua SIM kadi. Na dirisha la juu limefunguliwa na kuweka bandari ya Arduino na buad 9600, nguvu kwenye Arduino. Mlolongo wa kuanza unapaswa kuangalia kitu kama hiki: Kuanzisha Mawasiliano ya SM5100B… + SIND: 1 + SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 Mawasiliano na moduli huanza baada ya laini ya kwanza kuonyeshwa. Mstari wa pili wa mawasiliano, + SIND: 10, inatuambia ikiwa moduli inaweza kuona SIM kadi. Ikiwa SIM kadi hugunduliwa kila uwanja mwingine ni 1; ikiwa SIM kadi haipatikani kila uwanja mwingine ni 0. 3.) Subiri unganisho la mtandao kabla ya kuanza kutuma amri. Baada ya + SIND: jibu 10 moduli moja kwa moja itaanza kujaribu kuungana na mtandao. Subiri hadi upokee repsones zifuatazo: + SIND: 11 + SIND: 3 + SIND: 4 Jibu + la SIND kutoka kwa moduli ya rununu huambia hali ya moduli. Hapa kuna utaftaji wa haraka wa maana za majibu: 0 SIM kadi imeondolewa 1 SIM kadi imeingizwa 2 Melodi ya pete 3 Moduli ya AT iko tayari 4 Moduli ya AT iko tayari kabisa 5 ID ya simu zilizotolewa 6 Iliyotolewa simu ambayo ID = 7 Huduma ya mtandao ni inapatikana kwa simu ya dharura 8 Mtandao unapotea 9 Sauti YA 10 Onyesha hali ya kila kitabu cha simu baada ya kifungu cha init 11 Kusajiliwa kwenye mtandao Baada ya kusajili kwenye mtandao unaweza kuanza mwingiliano. Hapa kuna amri chache rahisi na muhimu kuanza: Kupiga simu: AT amri - ATDxxxyyyzzzz Nambari ya simu na fomati: (xxx) yyy-zzz jaribu ---- cell.print ("ATDxxxyyyzzzz"); Ukipiga simu hakikisha unarejelea data ya vifaa ili kuunganisha kipaza sauti na spika kwenye ngao. Kutuma ujumbe wa txt: AT amri - AT + CMGF = 1 Amri hii inaweka modi ya ujumbe wa maandishi kuwa 'maandishi.' AT command = AT + CMGS = "xxxyyyzzzz" (gari inarudi) 'Nakala ya kutuma' (CTRL + Z) Amri hii inachanganya kidogo kuelezea. Nambari ya simu, katika muundo (xxx) yyy-zzzz huenda ndani ya nukuu mara mbili. Bonyeza 'ingiza' baada ya kufunga nukuu. Halafu ingiza maandishi ya kutuma. Maliza amri ya AT kwa kutuma CTRL + Z. Tabia hii haiwezi kutumwa kutoka kituo cha Arduino. Tumia programu mbadala ya terminal kama Hyperterminal, Tera Term, Bray Terminal au X-CTU. Moduli ya SM5100B inaweza kufanya mengi zaidi kuliko hii! Angalia hati za data kwenye ukurasa wa bidhaa ili ujifunze zaidi juu ya moduli. Fungua bandari ya serial kwenye terminal. Kwenye Mac hii inafanikiwa kwa kuandika: skrini / dev / tty.usbmodemfa131 9600 (badilisha tty.usbmodemfa131 na anwani yako ya serial ya Arduino) Subiri kuona mlolongo ufuatao ukirudishwa: Kuanzisha Mawasiliano ya SM5100B… + SIND: 3 + SIND: 4 + SIND: 11 (Ikiwa mlolongo huu haurudishwi angalia nambari za makosa zilizoorodheshwa chini ya nambari hapo juu, na utatue ipasavyo. Unaweza kuhitaji kuweka moduli kwa matumizi ya Amerika Kaskazini - angalia hapa chini - kabla haijasajili kwenye mtandao (i.e. + SIND 11)) Tuma amri zifuatazo kwa bandari ya serial: Tuma hii kwa matumizi ya Amerika Kaskazini: AT + SBAND = 7 Weka wakati wa sasa - yy / mm / dd: AT + CCLK = "13/05/15, 11: 02:00 "Tuma simu ya mtihani: ATD4155551212
Hatua ya 8: Ujumbe wa maandishi
Pakua na usakinishe SerialGSM kwenye maktaba yako ya Arduino.
Kutuma ujumbe wa maandishi tembelea mafunzo ya moduli ya rununu ya Tronixstuff na utumie nambari ya mfano 26.3:
Ikiwa ungependa kutumia nambari ya mfano kupokea maandishi, unganisha LED ili kubandika 8 na kuiweka kwa safu na kontena la 220 ohm chini.
Kutuma ujumbe wa maandishi tembelea mafunzo ya moduli ya rununu ya Tronixstuff na utumie nambari ya mfano 26.5:
Tuma moja ya amri zifuatazo kwa moduli yako ya rununu:
// inawasha mwangaza kwenye # a1
// inazima LED # a0
Hatua ya 9: Sauti
Unganisha maikrofoni na spika kwenye ngao ukitumia kebo ya sauti iliyowekwa chini. Waya ya ishara ya katikati inapaswa kwenda kwenye vituo vya sauti pamoja na sauti na kinga inapaswa kwenda kwenye vituo hasi kwenye ngao. Cables hizi zinapaswa kuunganishwa vile vile kwenye kipaza sauti na upande wa spika.
Ili kuanzisha simu ya sauti pakia nambari ifuatayo:
//**********************************************************************************
// PIGA WITO // // SHERIA YA MATAFAHISI ILIYOPANGWA: // // //********************************************************************************** #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]; char buffidx; // Vigeuzi vya hali ya mtandao ndani ya mtandao_sajili; mtandao_AT_ayari; // Vigeuzi vya hali ya Msimbo int firstTimeInLoop = 1; int kwanzaTimeInOtherLoop = 1; int x; // Itashikilia tabia inayoingia kutoka Bandari ya Serial. char incoming_char = 0; // Unda bandari ya serial 'bandia'. Pini 2 ni pini ya Rx, pini 3 ni pini ya Tx. SoftwareSeli ya kiini (2, 3); kuanzisha batili () {// Anzisha bandari ya serial ya Arduino kwa utatuzi. Kuanzia Serial (9600); // Anzisha bandari ya serial ya kuzungumza na Simu. seli. kuanza (9600); //Salamu, Dunia. Serial.println ("Kuanzisha Mawasiliano ya SM5100B…"); kuchelewesha (1000); // Weka mtandao wa kwanza wa mtandao_sajiliwa = 0; mtandao_AT_ayari = 0; } // Soma nyuzi za AT kutoka kwa ngao ya utupu batili kusomaString (batili) {char c; buffidx = 0; // anza kuanza kwa (x = 0; x 0) {c = seli.soma (); ikiwa (c == -1) {at_buffer [buffidx] = '\ 0'; kurudi; } ikiwa (c == '\ n') {endelea; } ikiwa ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; kurudi; } at_buffer [buffidx ++] = c; }}} // // Tengeneza masharti ya AT batili ProcessATString () {if (strstr (at_buffer, "+ SIND: 8")! = 0) {network_registered = 0; Serial.println ("Mtandao wa mtandao haupatikani"); } ikiwa (strstr (at_buffer, "+ SIND: 11")! = 0) {network_registered = 1; Serial.println ("Usajili wa mtandao"); } ikiwa (strstr (at_buffer, "+ SIND: 4")! = 0) {network_AT_ayari = 1; Serial.println ("mtandao AT Tayari"); }} kitanzi batili () {/ * Ikiwa imeitwa kwa mara ya kwanza, kitanzi hadi mtandao na AT iko tayari * / ikiwa (firstTimeInLoop == 1) {firstTimeInLoop = 0; wakati (network_registered == 0 || network_AT_ready == 0) {readATString (); MchakatoATString (); }} ikiwa (firstTimeInOtherLoop == 1) {// Tafuta simu inayoingia ikiwa (strstr (at_buffer, "+ CPAS: 3")! = 0) {// Jibu kiini cha simu.println ("ATA"); kwanzaTimeInOtherLoop = 0; }}}
Je! Umepata hii muhimu, ya kufurahisha, au ya kuburudisha? Fuata @madeineuphoria kuona miradi yangu ya hivi karibuni.
Ilipendekeza:
Ngao ya Picha ya Arduino TFT: Hatua 4 (na Picha)
Ngao ya Picha ya Arduino TFT: a.nyuzi {font-size: 110.0%; font-uzito: ujasiri; mtindo wa fonti: italiki; maandishi-mapambo: hakuna; rangi-ya-nyuma: nyekundu;
Iphone yenye nywele! KESI YA SIMU YA DIY Hacks ya Maisha - Gundi ya Moto ya Gundi ya Simu: Hatua 6 (na Picha)
Iphone yenye nywele! KESI YA SIMU YA DIY Maisha Hacks - Kesi ya Simu ya Gundi ya Moto: I bet hujawahi kuona iPhone yenye nywele! Vizuri katika mafunzo haya ya kesi ya simu ya DIY hakika utafanya! :)) Kama simu zetu siku hizi zinafanana na kitambulisho chetu cha pili, nimeamua kutengeneza " miniature mimi " … kidogo ya kutisha, lakini inafurahisha sana!
Mafunzo ya Ngao ya Dereva wa Magari ya Arduino L293D: Hatua 8
Mafunzo ya Shield ya Dereva wa Magari ya Arduino L293D: Unaweza kusoma hii na mafunzo mengine mengi ya kushangaza kwenye wavuti rasmi ya ElectroPeakOverview Katika mafunzo haya, utajifunza jinsi ya kuendesha gari za DC, stepper na servo ukitumia ngao ya dereva wa gari ya Arduino L293D.
Kubadilisha simu ya simu kwa simu ya rununu: Hatua 7 (na Picha)
Kubadilisha simu ya mkononi kwa simu ya rununu: Na Bill Reeve ([email protected]) Imechukuliwa kwa maagizo na Panya kuchukua. Ikiwa haifanyi kazi, au ukivunja kitu, sio m
Mafunzo ya Ngao ya TFT: Hatua 4
Mafunzo ya Ngao ya TFT: Leo, utajifunza jinsi unavyoweza kuunda na kutumia vifungo katika miradi yako ya Arduino TFT Touchscreen. Ninatumia 2.8 & quot ya Kuman; Ngao ya TFT pamoja na Kuman Arduino UNO. Bonus: Ngao ya TFT kutoka Kuman inakuja na Stylus ya bure ambayo unaweza kutumia