Tartalomjegyzék:

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

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

Videó: Arduino Cellular Shield bemutató: 9 lépés (képekkel)
Videó: How to use Prototyping Shield with breadboard for Arduino 2024, Július
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: