Агуулгын хүснэгт:

Arduino Cellular Shield хичээл: 9 алхам (зурагтай)
Arduino Cellular Shield хичээл: 9 алхам (зурагтай)

Видео: Arduino Cellular Shield хичээл: 9 алхам (зурагтай)

Видео: Arduino Cellular Shield хичээл: 9 алхам (зурагтай)
Видео: SKR Pro V1.1 - DRV8825 stepper driver install 2024, Долдугаар сарын
Anonim
Arduino Cellular Shield заавар
Arduino Cellular Shield заавар

Arduino үүрэн бамбай нь гар утасны дуудлага хийх, мессеж илгээх боломжийг танд олгоно. Энэхүү бамбайны тархи нь SM5100B бөгөөд ихэнх стандарт гар утасны олон ажлыг гүйцэтгэх чадвартай бат бөх үүрэн модуль юм. Энэхүү бамбай нь үүрэн сүлжээнд холбогдохын тулд SIM карт ашиглахыг шаарддаг. Дараахь заавар нь бамбайг эхлүүлэх, мессеж илгээх, хүлээн авах, утасны дуудлага хийх нүцгэн ясны заавар юм. Модулийн үйл ажиллагааны талаар илүү ихийг мэдэхийн тулд Sparkfun -ийн бүтээгдэхүүний хуудсан дээрх мэдээллийн хүснэгтийг сайтар шалгаж үзээрэй.

Алхам 1: Бараа авах

Бараа авах
Бараа авах

Танд хэрэгтэй болно:

(x1) Үүрэн бамбай (x1) Arduino -ийн овоолсон толгой (x1) Дөрвөн зурвасын антен (x1) Arduino Uno

(Энэ хуудсан дээрх зарим холбоосууд нь түншлэлийн линкүүд гэдгийг анхаарна уу. Энэ нь таны бүтээгдэхүүний өртөгийг өөрчлөхгүй. Би хүлээн авсан орлогоо шинэ төсөлд оруулахын тулд дахин хөрөнгө оруулалт хийдэг. Хэрэв та өөр нийлүүлэгчдэд ямар нэгэн санал өгөхийг хүсч байвал надад зөвшөөрнө үү. мэднэ.)

Алхам 2: Гагнуурын толгой

Гагнуурын толгой
Гагнуурын толгой
Гагнуурын толгой
Гагнуурын толгой
Гагнуурын толгой
Гагнуурын толгой

Толгойнуудыг бамбай руу оруулаад гагнана.

Алхам 3: оруулах

Оруулах
Оруулах
Оруулах
Оруулах

Толгойн зүүг Arduino дээрх залгуурт оруулна уу.

Алхам 4: Дахин худалдах

Дахин худалдагч
Дахин худалдагч

Антенны кабелийн SM5100B модульд холбогдох нь ихэвчлэн тийм ч сайн байдаггүй. Кабелийн холболт бүрийг модульд дахин холбож холболтыг баталгаажуулна уу.

Алхам 5: Антеныг холбоно уу

Антеныг холбоно уу
Антеныг холбоно уу
Антеныг холбоно уу
Антеныг холбоно уу

Антенныг антенны кабельд холбоно уу.

Алхам 6: SIM карт оруулах

SIM карт оруулах
SIM карт оруулах
SIM карт оруулах
SIM карт оруулах
SIM карт оруулах
SIM карт оруулах
SIM карт оруулах
SIM карт оруулах

SIM картыг SIM картны залгуурт найдвартай оруулна уу.

Алхам 7: Эхлүүлэх

Эхлүүлэх
Эхлүүлэх

Дараах кодыг Arduino дээр ажиллуулна уу.

/*

SparkFun үүрэн бамбай - Нэвтрүүлгийн дээж SparkFun Electronics -ийг Райан Оуэнс бичсэн 3/Тодорхойлолт: Энэхүү ноорог нь Arduino Duemillanove -ийг SparkFun Electronics -ийн үүрэн бамбай руу холбох зорилгоор бичигдсэн болно. Үүрэн бамбайг эндээс худалдан авч болно: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Энэхүү тоймд цуваа командуудыг терминалын програмаас SM5100B үүрэн модульд дамжуулдаг; ба үүрэн модулийн хариуг терминалд байрлуулсан болно. Дэлгэрэнгүй мэдээллийг ноорог тайлбараас авах боломжтой. Төхөөрөмжийг ашиглахын тулд идэвхжүүлсэн SIM картыг самбар дээрх SIM карт эзэмшигчид оруулах ёстой! Энэхүү ноорог нь Ардуиниана мужийн Микал Харт бичсэн NewSoftSerial номын санг ашигладаг. Номын санг дараах хаягаар татаж авах боломжтой: https://arduiniana.org/libraries/NewSoftSerial/ Энэ кодыг Creative Commons Attribution License дор өгсөн болно. Дэлгэрэнгүй мэдээллийг эндээс авах боломжтой: https://creativecommons.org/licenses/by/3.0/ (Манай кодыг чөлөөтэй ашиглаарай! Хугацаа нь дуусах үед бидэнд зээл өгөхөө мартуузай. Баярлалаа!) */#Include // NewSoftSerial -ийг оруулна уу үүрэн модульд цуваа команд илгээх номын сан. #include // мөрийг удирдахад ашиглагддаг char incoming_char = 0; // Цуваа портоос ирж буй тэмдэгтийг хадгалах болно. SoftwareSerial cell (2, 3); // 'Хуурамч' цуваа порт үүсгэх. 2 -р зүү нь Rx зүү, 3 -р зүү нь Tx зүү юм. void setup () {// Харилцаа холбооны цуваа портуудыг эхлүүлэх. Цуваа эхлэх (9600); cell.begin (9600); //Эхэлцгээе! Serial.println ("SM5100B холболтыг эхлүүлж байна …"); } void loop () {// Хэрэв үүрэн модулаас тэмдэгт орвол… if (cell.available ()> 0) {incoming_char = cell.read (); // Үүрэн цуваа портоос тэмдэгтийг аваарай. Цуваа.хэвлэх (ирж буй_чар); // Ирж буй тэмдэгтийг терминал дээр хэвлэ. } // Хэрэв тэмдэгт терминалаас Arduino руу ирж байгаа бол … if (Serial.available ()> 0) {incoming_char = Serial.read (); // Хэрэв терминалаас ирж буй тэмдэгтийг аваарай (incoming_char == '~') // Хэрэв энэ нь tilde бол… incoming_char = 0x0D; //… тэрэгний буцах руу хөрвүүлэх өөр тохиолдолд if (incoming_char == '^') // Хэрэв энэ нь карет бол… incoming_char = 0x1A; //… ctrl-Z нүд рүү хөрвүүлэх.print (incoming_char); // Тэмдэгтийг үүрэн модульд илгээх. Цуваа.хэвлэх (ирж буй_чар); // Үүнийг терминал руу буцаана уу}} / * AT командын багцад зориулсан SM5100B Quck лавлагаа * Хэрэв өөрөөр заагаагүй бол AT командыг 'enter' товчлуур дээр дарж дуусгаагүй болно. 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 байна. 3.) Та команд илгээж эхлэхээсээ өмнө сүлжээний холболтыг хүлээнэ үү. +SIND: 10 хариултын дараа модуль автоматаар сүлжээнд холбогдохыг оролдож эхэлнэ. Дараах хариултыг хүлээн авах хүртэл хүлээнэ үү: +SIND: 11 +SIND: 3 +SIND: 4 Үүрэн модулийн +SIND хариулт нь модулийн статусыг хэлнэ. Хариултын утгыг энд харуулав: 0 SIM карт хасагдсан 1 SIM карт оруулсан 2 Бөгжний ая 3 AT модуль хэсэгчлэн бэлэн болсон 4 AT модуль бүрэн бэлэн болсон 5 Гарсан дуудлагын ID 6 6 ID = 7 Сүлжээний үйлчилгээ яаралтай дуудлага хийх боломжтой 8 Сүлжээ тасарсан 9 Аудио АСААЛТ 10 Утасны дэвтэр бүрийн статусыг анхны хэллэгээс хойш харуул 11 Сүлжээнд бүртгүүлсэн Сүлжээнд бүртгүүлсний дараа та харилцаж эхлэх боломжтой. Эхлэх хэдэн энгийн бөгөөд хэрэгтэй командууд энд байна: Дуудлага хийхийн тулд: AT тушаал-ATDxxxyyyzzzz Утасны дугаарыг форматаар оруулна уу: (xxx) yyy-zzz оролдох ---- cell.print ("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 дээр үүнийг бичих замаар гүйцэтгэнэ: screen /dev/tty.usbmodemfa131 9600 (tty.usbmodemfa131 -ийг Arduino -ийн сериал хаягаар орлуулах) Дараах дарааллыг буцааж харахыг хүлээнэ үү: SM5100B харилцаа холбоог эхлүүлж байна … +SIND: 3 +SIND: 4 +SIND: 11 (Хэрэв энэ дарааллыг буцааж өгөөгүй бол дээрх кодын доод талд байгаа алдааны кодыг шалгаад зохих ёсоор дибаг хийгээрэй. Та сүлжээнд бүртгүүлэхээсээ өмнө Хойд Америкийн хэрэглээнд зориулагдсан модулийг тохируулах хэрэгтэй болно. +SIND 11)) Дараах тушаалуудыг цуваа порт руу илгээнэ үү: Үүнийг Хойд Америкийн хэрэглээнд илгээх: AT+SBAND = 7 Одоогийн цагийг тохируулах - yy/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Туршилтын дуудлага илгээх: ATD4155551212

Алхам 8: Текст мессеж

Текст мессеж
Текст мессеж

Arduino номын санд SerialGSM татаж аваад суулгаарай.

Текст мессеж илгээх бол Tronixstuff үүрэн модулийн зааварчилгаанд зочилж 26.3 жишээ кодыг ашиглана уу:

Хэрэв та текст хүлээн авахын тулд жишээ кодыг ажиллуулахыг хүсч байвал LED -ийг 8 -р зүү рүү холбож, 220 ом эсэргүүцэл бүхий газардуулаарай.

Текст мессеж илгээх бол Tronixstuff үүрэн модулийн зааварчилгаанд зочилж 26.5 жишээ кодыг ашиглана уу:

Дараах командын аль нэгийг үүрэн холбооны модульд бичээрэй.

// LED -ийг асаах #a1

// LED -ийг унтраана #a0

Алхам 9: Дуу хоолой

Дуу хоолой
Дуу хоолой
Дуу хоолой
Дуу хоолой
Дуу хоолой
Дуу хоолой

Газардуулсан аудио кабель ашиглан микрофон болон чанга яригчийг бамбай руу холбоно уу. Төвийн дохионы утас нь аудио плюс терминалууд руу, бамбай нь бамбай дээрх холбогдох сөрөг терминалууд руу орох ёстой. Эдгээр кабелийг микрофон болон чанга яригч талд ижилхэн холбох ёстой.

Дуут дуудлагыг эхлүүлэхийн тулд дараах кодыг оруулна уу.

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

// ДУУДЛАГА ХИЙГЭЭД // // //********************************************************************************** #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 // буфер массивын char_buffer дээр тохируулна уу [BUFFSIZ]; char buffidx; // Сүлжээний төлөв байдлын хувьсагчид int network_registered; int network_AT_ready; // төлөв төлөвийн хувьсагчдыг int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Цуваа портоос ирж буй тэмдэгтийг хадгалах болно. char incoming_char = 0; // 'Хуурамч' цуваа порт үүсгэх. 2 -р зүү нь Rx зүү, 3 -р зүү нь Tx зүү юм. SoftwareSerial cell (2, 3); void setup () {// Arduino цуваа портыг дибаг хийх зорилгоор эхлүүлэх. Цуваа эхлэх (9600); // Утсаар ярихын тулд виртуал цуваа портыг эхлүүлнэ үү. cell.begin (9600); // Сайн уу ертөнц. Serial.println ("SM5100B холболтыг эхлүүлж байна …"); саатал (1000); // Анхны сүлжээний төлөв байдлыг тохируулна уу_registered = 0; network_AT_ready = 0; } // AT мөрүүдийг үүрэн бамбайгаас уншина уу void readATString (void) {char c; buffidx = 0; // (x = 0; x 0) {c = cell.read (); if (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 ("сүлжээ бэлэн байна"); }} 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 -г дагаж миний хамгийн сүүлийн үеийн төслүүдийг үзээрэй.

Зөвлөмж болгож буй: