Arduino Cellular Shield bemutató: 9 lépés (képekkel)
Arduino Cellular Shield bemutató: 9 lépés (képekkel)
Anonim
Arduino Cellular Shield bemutató
Arduino Cellular Shield bemutató

Az Arduino Cellular Shield lehetővé teszi mobiltelefonhívásokat és szöveges üzenetek küldését. Ennek a pajzsnak az agya az SM5100B, amely egy robusztus mobil modul, amely képes elvégezni a legtöbb szabványos mobiltelefon feladatait. Ehhez a pajzshoz SIM -kártya használata szükséges a mobilhálózathoz való csatlakozáshoz. A következő oktatóanyag csupasz csontokból ismerteti a pajzs inicializálását, valamint szöveges üzenetek küldését és fogadását, valamint telefonhívásokat. Ha többet szeretne megtudni a modul működéséről, feltétlenül nézze meg a Sparkfun termékoldalának adatlapjait.

1. lépés: Menjen és szerezzen be dolgokat

Menj és szerezz be dolgokat
Menj és szerezz be dolgokat

Szükséged lesz:

(x1) Cellular pajzs (x1) Halmozható Arduino fejlécek (x1) Négysávos antenna (x1) Arduino Uno

(Ne feledje, hogy az ezen az oldalon található linkek egy része társult link. Ez nem változtatja meg a cikk költségét az Ön számára. A kapott bevételt újra befektetem új projektek megvalósításába. Ha bármilyen javaslatot szeretne az alternatív beszállítókra vonatkozóan, kérjük, engedje meg tudni.)

2. lépés: Forrasztási fejlécek

Forrasztófejlécek
Forrasztófejlécek
Forrasztófejlécek
Forrasztófejlécek
Forrasztófejlécek
Forrasztófejlécek

Helyezze a fejléceket a pajzsba, és forrasztja a helyükre.

3. lépés: Beszúrás

Beszúrás
Beszúrás
Beszúrás
Beszúrás

Illessze a fejlécet az Arduino aljzatába.

4. lépés: Határozottabb

Határozottabb
Határozottabb

Az antenna kábel csatlakozása az SM5100B modulhoz általában nem túl jó. A csatlakozás biztosítása érdekében oldja fel a kábel minden egyes csatlakozóját a modulhoz.

Lépés: Csatlakoztassa az antennát

Csatlakoztassa az antennát
Csatlakoztassa az antennát
Csatlakoztassa az antennát
Csatlakoztassa az antennát

Fűzze az antennát az antenna kábeléhez.

6. lépés: Helyezze be a SIM -kártyát

Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát
Helyezze be a SIM -kártyát

Helyezze be biztonságosan a SIM -kártyát a SIM -kártya foglalatába.

7. lépés: Inicializálás

Inicializálás
Inicializálás

Futtassa a következő kódot az Arduino -n:

/*

SparkFun Cellular Shield - Áthaladási minta vázlat SparkFun Electronics Írta: Ryan Owens 3/Leírás: Ez a vázlat egy Arduino Duemillanove és a SparkFun Electronics Cellular Shield közötti interfészhez készült. A cellás pajzs itt vásárolható meg: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 Ebben a vázlatban a soros parancsokat a terminálprogram továbbítja az SM5100B cellás modulnak; és a cellás modul válaszai a terminálon kerülnek közzétételre. További információ a vázlat megjegyzéseiben található. Az eszköz használatához aktivált SIM -kártyát kell behelyezni a táblán lévő SIM -kártya tartóba! Ez a vázlat a NewSoftSerial könyvtárat használja, amelyet Mikal Hart, Arduiniana írt. A könyvtár a következő URL -ről tölthető le: https://arduiniana.org/libraries/NewSoftSerial/ Ez a kód a Creative Commons Hozzárendelési Licenc alatt található. További információ itt található: https://creativecommons.org/licenses/by/3.0/ (Használja szabadon a kódunkat! Kérjük, ne felejtse el jóváírni nekünk, ahol esedékes. Köszönjük!) */#Include // Include the NewSoftSerial könyvtárban, hogy soros parancsokat küldjön a cellás modulnak. #include // A karakterláncok manipulációjára szolgál char charinging_char = 0; // Tartja a soros portról érkező karaktert. SoftwareSerial cell (2, 3); // Hozzon létre egy "hamis" soros portot. A 2 -es csap az Rx -tű, a 3 -as a Tx -es csap. void setup () {// Inicializálja a soros portokat a kommunikációhoz. Sorozat.kezdet (9600); cell.begin (9600); //Lássunk neki! Serial.println ("Az SM5100B kommunikáció indítása …"); } void loop () {// Ha egy karakter érkezik a cellás modulból… if (cell.available ()> 0) {bejövő_száz = cell.read (); // Szerezze be a karaktert a cellás soros portból. Soros.nyomtatás (bejövő_száma); // A bejövő karakter nyomtatása a terminálra. } // Ha egy karakter érkezik a terminálról az Arduino -hoz… if (Serial.available ()> 0) {bejövő_char = Serial.read (); // A karaktert a terminálról kapja, ha (bejövő_száz == '~') // Ha ez egy tilde… bejövő_száz = 0x0D; //… konvertálás kocsivisszaváltássá if if (bejövő_száz == '^') // Ha felfelé irányuló karakter… bejövő_száz = 0x1A; //… konvertálás ctrl-Z cellává.print (bejövő_száz); // Küldje el a karaktert a cellás modulba. Soros.nyomtatás (bejövő_száma); // Visszahangolás a terminálhoz}} / * SM5100B Quck referencia AT parancskészlethez * Hacsak másképp nem jelezzük, az AT parancsok az 'enter' billentyű megnyomásával fejeződnek be. 1.) Ellenőrizze, hogy az Ön országának megfelelő GSM sávot választotta -e ki. Az USA -ban a sávot 7 -re kell állítani. A sáv beállításához használja ezt a parancsot: AT+SBAND = 7 2.) Miután bekapcsolta az Arduino -t és telepítette a pajzsot, ellenőrizze, hogy a modul olvassa -e és felismeri -e a SIM -kártyát. Nyitott, ablakos, ablakban, Arduino portra és 9600 buadra állítva, kapcsolja be az Arduino -t. Az indítási sorrendnek valahogy így kell kinéznie: SM5100B kommunikáció indítása … +SIND: 1 +SIND: 10, "SM", 1, "FD", 1, "LD", 1, "MC", 1, "RC", 1, "ME", 1 A kommunikáció a modullal az első sor megjelenése után kezdődik. A második kommunikációs vonal, +SIND: 10, azt jelzi, hogy a modul látja -e a SIM -kártyát. Ha a SIM -kártyát észleli, minden más mező 1; ha a SIM -kártyát nem észleli, minden más mező 0. 3.) A parancsok küldésének megkezdése előtt várja meg a hálózati kapcsolatot. A +SIND: 10 válasz után a modul automatikusan megpróbál csatlakozni a hálózathoz. Várjon, amíg meg nem kapja a következő ismétléseket: +SIND: 11 +SIND: 3 +SIND: 4 A mobilmodul +SIND válasza megmondja a modulok állapotát. Íme a válaszjelentések gyors lefutása: 0 SIM-kártya eltávolítva 1 SIM-kártya behelyezve 2 Csengetési dallam 3 Az AT-modul részben készen áll 4 Az AT-modul teljesen készen áll 5 Az elengedett hívások azonosítója 6 Elengedett hívás, amelynek azonosítója = 7 A hálózati szolgáltatás rendelkezésre áll segélyhívásra 8 A hálózat elveszett 9 Audio BE 10 Mutassa be az egyes telefonkönyvek állapotát az init mondat után 11 Regisztrált hálózatra A hálózaton történő regisztráció után megkezdheti az interakciót. Íme néhány egyszerű és hasznos parancs az induláshoz: Hívás kezdeményezése: AT parancs-ATDxxxyyyzzzz Telefonszám a következő formátumban: (xxx) yyy-zzz try ---- cell.print ("ATDxxxyyyzzzz"); Ha telefonál, feltétlenül hivatkozzon az eszközök adatlapjára, hogy a mikrofont és a hangszórót a pajzshoz csatlakoztassa. Txt üzenet küldése: AT parancs - AT+CMGF = 1 Ez a parancs a szöveges üzenet módot "text" -re állítja. AT parancs = AT+CMGS = "xxxyyyzzzz" (kocsi visszaadás) 'Küldendő szöveg' (CTRL+Z) Ezt a parancsot kissé zavaró leírni. A telefonszám (xxx) yyy-zzzz formátumban dupla idézőjelbe kerül. Az idézetek lezárása után nyomja meg az 'Enter' gombot. Ezután írja be a küldeni kívánt szöveget. Fejezze be az AT parancsot a CTRL+Z billentyűkód elküldésével. Ezt a karaktert nem lehet elküldeni az Arduino termináljáról. Használjon alternatív terminálprogramot, például Hyperterminal, Tera Term, Bray Terminal vagy X-CTU. Az SM5100B modul ennél sokkal többet tud! Nézze meg a termékoldalon található adatlapokat, ha többet szeretne megtudni a modulról.*/Nyissa ki a soros portot a terminálban. Mac gépen ezt a következőképpen írhatja be: screen /dev/tty.usbmodemfa131 9600 (cserélje le a tty.usbmodemfa131 fájlt az Arduino soros címére) Várja meg, amíg megjelenik a következő sorrend: SM5100B kommunikáció indítása… +SIND: 3 +SIND: 4 +SIND: 11 (Ha ezt a szekvenciát nem adja vissza, ellenőrizze a fenti kód alján felsorolt hibakódokat, és végezze el a megfelelő hibakeresést. Előfordulhat, hogy a modult észak -amerikai használatra kell beállítani - lásd alább -, mielőtt regisztrálna a hálózatra (pl. +SIND 11)) Küldje el a következő parancsokat a soros portra: Küldje el észak -amerikai használatra: AT+SBAND = 7 Állítsa be a pontos időt - éé/hh/dd: AT+CCLK = "13/05/15, 11: 02:00 "Teszthívás küldése: ATD4155551212

8. lépés: Szöveges üzenetek

Szöveges üzenetek
Szöveges üzenetek

Töltse le és telepítse a SerialGSM -et az Arduino könyvtárába.

Szöveges üzenet küldéséhez keresse fel a Tronixstuff mobil modul oktatóanyagát, és használja a 26.3 példakódot:

Ha futtatni szeretné a példakódot szöveg fogadásához, csatlakoztasson egy LED -et a 8 -as érintkezőhöz, és tegye sorba 220 ohmos ellenállással a földhöz.

Szöveges üzenet küldéséhez keresse fel a Tronixstuff mobil modul oktatóanyagát, és használja a 26.5 példakódot:

Írja be az alábbi parancsok egyikét a mobilmodulba:

// bekapcsolja a LED -et #a1

// kikapcsolja a LED -et #a0

9. lépés: Hang

Hang
Hang
Hang
Hang
Hang
Hang

Csatlakoztasson egy mikrofont és hangszórót az árnyékoláshoz földelt audio kábellel. A középső jelvezetéknek az audio plusz csatlakozókhoz, az árnyékolásnak pedig az árnyékolás megfelelő negatív kapcsaihoz kell mennie. Ezeket a kábeleket ugyanúgy kell csatlakoztatni a mikrofon és a hangszóró oldalán.

A hanghívás inicializálásához töltse fel a következő kódot:

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

HÍVÁS HOZÁSA // PUHFERKÓD ALAPJÁN: // //********************************************************************************** #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 // Puffertömb beállítása char at_buffer [BUFFSIZ]; char buffidx; // Hálózati állapotváltozók int network_registered; int network_AT_ready; // Kódállapot -változók int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Tartja a soros portról érkező karaktert. char bejövő_szén = 0; // Hozzon létre egy "hamis" soros portot. A 2 -es csap az Rx -tű, a 3 -as a Tx -tű. SoftwareSerial cell (2, 3); void setup () {// Inicializálja az Arduino soros portot hibakereséshez. Sorozat.kezdet (9600); // Inicializálja a virtuális soros portot a telefonnal való beszélgetéshez. cell.begin (9600); //Helló Világ. Serial.println ("Az SM5100B kommunikáció indítása …"); késleltetés (1000); // Kezdeti hálózati állapot beállítása network_registered = 0; network_AT_ready = 0; } // AT karakterláncok olvasása a cellás pajzsból void readATString (void) {char c; buffidx = 0; // kezdje a (x = 0; x 0) kezdetén {c = cell.read (); if (c == -1) {at_buffer [buffidx] = '\ 0'; Visszatérés; } if (c == '\ n') {folytatás; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; Visszatérés; } at_buffer [buffidx ++] = c; }}} // Feldolgozza az AT karakterláncokat void ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println ("a hálózati hálózat nem érhető el"); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("hálózat regisztrálva"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("hálózati AT Ready"); }} void loop () { / * Ha először hívják, ciklus, amíg a hálózat és az AT készen áll * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Keresse meg a bejövő hívást, ha (strstr (at_buffer, "+CPAS: 3")! = 0) {// Válasz a cellára.println ("ATA"); firstTimeInOtherLoop = 0; }}}

Kép
Kép

Hasznosnak, szórakoztatónak vagy szórakoztatónak találta ezt? Kövesd a @madeineuphoria oldalt, és nézd meg legújabb projektjeimet.

Ajánlott: