Obsah:

Výučba mobilného štítu Arduino: 9 krokov (s obrázkami)
Výučba mobilného štítu Arduino: 9 krokov (s obrázkami)

Video: Výučba mobilného štítu Arduino: 9 krokov (s obrázkami)

Video: Výučba mobilného štítu Arduino: 9 krokov (s obrázkami)
Video: ESP32 Tutorial 14 - Playing Custom Music Note Using SunFounder ESP32 IoT Learnig kit 2024, Júl
Anonim
Výukový program Celulárny štít Arduino
Výukový program Celulárny štít Arduino

Mobilný štít Arduino vám umožňuje telefonovať a odosielať textové správy. Mozgom tohto štítu je SM5100B, ktorý je robustným bunkovým modulom a je schopný vykonávať mnoho úloh väčšiny štandardných mobilných telefónov. Tento štít vyžaduje na pripojenie k mobilnej sieti použitie karty SIM. Nasledujúci tutoriál je návodom na úplné kosti pre inicializáciu štítu, odosielanie a prijímanie textových správ a telefónne hovory. Ak sa chcete dozvedieť viac o funkciách modulu, pozrite sa na katalógové listy na produktovej stránke Sparkfunu.

Krok 1: Choďte si vybaviť veci

Choďte si zobrať veci
Choďte si zobrať veci

Budete potrebovať:

(x1) Celulárny štít (x1) Stohovateľné hlavičky Arduino (x1) Štvorpásmová anténa (x1) Arduino Uno

(Všimnite si toho, že niektoré odkazy na tejto stránke sú prepojeniami s pridruženými spoločnosťami. Na cene položky sa tým nič nemení. Všetky získané výnosy reinvestujem do vytvárania nových projektov. Ak by ste chceli akékoľvek návrhy na alternatívnych dodávateľov, dajte mi prosím vedieť vedieť.)

Krok 2: Spájkovacie hlavičky

Spájkovacie hlavičky
Spájkovacie hlavičky
Spájkovacie hlavičky
Spájkovacie hlavičky
Spájkovacie hlavičky
Spájkovacie hlavičky

Vložte hlavičky do štítu a spájkujte ich na svoje miesto.

Krok 3: Vložte

Vložiť
Vložiť
Vložiť
Vložiť

Vložte kolíky záhlavia do zásuviek na Arduine.

Krok 4: Rezolder

Resolder
Resolder

Pripojenie anténneho kábla k modulu SM5100B zvyčajne nie je dobré. Aby bola zaistená konektivita, prepájajte všetky pripojenia kábla k modulu.

Krok 5: Pripojte anténu

Pripojte anténu
Pripojte anténu
Pripojte anténu
Pripojte anténu

Navlečte anténu na kábel antény.

Krok 6: Vložte kartu SIM

Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu
Vložte SIM kartu

Zasuňte kartu SIM bezpečne do zásuvky pre kartu SIM.

Krok 7: Inicializácia

Inicializovať
Inicializovať

Na Arduino spustite nasledujúci kód:

/*

Mobilný štít SparkFun - priechodná ukážková skica SparkFun Electronics, ktorú napísal Ryan Owens 3/Popis: Táto skica je napísaná tak, aby prepojila Arduino Duemillanove a mobilný štít od spoločnosti SparkFun Electronics. Bunkový štít je možné zakúpiť tu: https://www.sparkfun.com/commerce/product_info.php?products_id=9607 V tomto náčrte sú sériové príkazy prenášané z terminálového programu do mobilného modulu SM5100B; a reakcie z mobilného modulu sú zverejnené v termináli. Viac informácií nájdete v komentároch k náčrtu. Aby ste zariadenie mohli používať, musí byť do držiaka SIM karty na doske vložená aktivovaná SIM karta! Tento náčrt využíva knižnicu NewSoftSerial, ktorú napísal Mikal Hart z Arduiniany. Knižnicu je možné stiahnuť na tejto adrese URL: https://arduiniana.org/libraries/NewSoftSerial/ Tento kód je poskytovaný pod licenciou Creative Commons Attribution License. Viac informácií nájdete tu: https://creativecommons.org/licenses/by/3.0/ (Používajte náš kód voľne! Nezabudnite nám poskytnúť kredit tam, kde je to potrebné. Vďaka!) */#Include // Zahrnúť NewSoftSerial knižnica na odosielanie sériových príkazov do mobilného modulu. #include // Používa sa na manipuláciu s reťazcami char incoming_char = 0; // Zadrží prichádzajúci znak zo sériového portu. Softvér Sériová bunka (2, 3); // Vytvorte „falošný“sériový port. Kolík 2 je kolík Rx, kolík 3 je kolík Tx. void setup () {// Inicializácia sériových portov na komunikáciu. Serial.begin (9600); cell.begin (9600); //Začnime! Serial.println („Spustenie komunikácie SM5100B …“); } void loop () {// Ak príde znak z mobilného modulu… if (cell.available ()> 0) {incoming_char = cell.read (); // Získať postavu z mobilného sériového portu. Serial.print (incoming_char); // Vytlačte prichádzajúci znak na terminál. } // Ak znak prichádza z terminálu do Arduina … ak (Serial.available ()> 0) {incoming_char = Serial.read (); // Získajte znak prichádzajúci z terminálu, ak (incoming_char == '~') // Ak je vlnovka … incoming_char = 0x0D; //… previesť na návrat vozíka else if (incoming_char == '^') // Ak je to up caret … incoming_char = 0x1A; //… previesť na ctrl-Z cell.print (incoming_char); // Odoslanie znaku do mobilného modulu. Serial.print (incoming_char); // Odošlite to späť na terminál}} / * SM5100B Quck Reference pre sadu príkazov AT * Pokiaľ nie je uvedené inak, AT príkazy sa ukončujú stlačením klávesu 'enter'. 1.) Uistite sa, že pre vašu krajinu bolo zvolené správne pásmo GSM. V USA musí byť pásmo nastavené na 7. Na nastavenie pásma použite tento príkaz: AT+SBAND = 7 2.) Po zapnutí Arduina s nainštalovaným štítom overte, či modul číta a rozpoznáva SIM kartu. Pri otvorenom terimálnom okne nastavenom na port Arduino a 9600 buad, zapnite Arduino. Štartovacia sekvencia by mala vyzerať asi takto: Spustenie komunikácie SM5100B … +SIND: 1 +SIND: 10, „SM“, 1, „FD“, 1, „LD“, 1, „MC“, 1, „RC“, 1, „ME“, 1 Komunikácia s modulom začína po zobrazení prvého riadka. Druhý riadok komunikácie, +SIND: 10, nám hovorí, či modul vidí kartu SIM. Ak je zistená SIM karta, každé ďalšie pole je 1; ak nie je zistená SIM karta, každé ďalšie pole je 0. 3.) Pred odosielaním príkazov počkajte na pripojenie k sieti. Po odpovedi +SIND: 10 sa modul automaticky začne pokúšať pripojiť k sieti. Počkajte, kým neobdržíte nasledujúce opakovania: +SIND: 11 +SIND: 3 +SIND: 4 Odpoveď +SIND z mobilného modulu oznámi stav modulov. Tu je stručný prehľad významov odpovedí: 0 SIM karta vybratá 1 SIM karta vložená 2 melódia zvonenia 3 AT modul je čiastočne pripravený 4 AT modul je úplne pripravený 5 ID uvoľnených hovorov 6 Uvoľnený hovor, ktorého ID = 7 Sieťová služba je k dispozícii pre núdzové volanie 8 Sieť je stratená 9 Zvuk ZAPNUTÝ 10 Zobraziť stav každého telefónneho zoznamu po začiatočnej fráze 11 Zaregistrovaný v sieti Po registrácii v sieti môžete začať interakciu. Tu je niekoľko jednoduchých a užitočných príkazov, ktoré môžete začať: Volanie: AT príkaz-ATDxxxyyyzzzz Telefónne číslo vo formáte: (xxx) yyy-zzz skúste ---- cell.print („ATDxxxyyyzzzz“); Ak telefonujete, uistite sa, že si pomocou štítku pripojíte k štítku mikrofón a reproduktor. Na odoslanie správy txt: Príkaz AT - AT+CMGF = 1 Tento príkaz nastaví režim textových správ na „text“. AT príkaz = AT+CMGS = "xxxyyyzzzz" (návrat vozíka) 'Text na odoslanie' (CTRL+Z) Tento príkaz je trochu mätúci na opis. Telefónne číslo vo formáte (xxx) rrr-zzzz obsahuje dvojité úvodzovky. Po zatvorení cenových ponúk stlačte „Enter“. Ďalej zadajte text, ktorý sa má odoslať. Ukončite príkaz AT odoslaním CTRL+Z. Túto postavu nemožno odoslať z terminálu Arduino. Použite alternatívny terminálový program, ako je Hyperterminal, Tera Term, Bray Terminal alebo X-CTU. Modul SM5100B dokáže oveľa viac! Viac informácií o module nájdete v produktových listoch na stránke produktu.*/Otvorte sériový port v termináli. Na počítačoch Mac sa to dosiahne zadaním: screen /dev/tty.usbmodemfa131 9600 (nahraďte tty.usbmodemfa131 sériovou adresou Arduina) Počkajte, kým sa nezobrazí nasledujúca sekvencia: Spustenie komunikácie SM5100B … +SIND: 3 +SIND: 4 +SIND: 11 (Ak sa táto sekvencia nevráti, skontrolujte chybové kódy uvedené v spodnej časti kódu vyššie a vhodne ich ladte. Pred registráciou do siete bude možno potrebné modul nastaviť na severoamerické použitie - pozri nižšie - (tj. +SIND 11)) Na sériový port odošlite nasledujúce príkazy: Odoslať pre severoamerické použitie: AT+SBAND = 7 Nastaviť aktuálny čas - rr/mm/dd: AT+CCLK = "13/05/15, 11: 02:00 "Odoslať skúšobný hovor: ATD4155551212

Krok 8: Textové správy

Textové správy
Textové správy

Stiahnite si a nainštalujte SerialGSM do svojej knižnice Arduino.

Ak chcete odoslať textovú správu, navštívte návod k mobilnému modulu Tronixstuff a použite vzorový kód 26.3:

Ak by ste chceli spustiť vzorový kód na prijatie textu, pripojte LED na pin 8 a zapojte ho do série s odporom 220 ohmov k zemi.

Ak chcete odoslať textovú správu, navštívte návod k mobilnému modulu Tronixstuff a použite vzorový kód 26.5:

Pošlite do mobilného modulu jeden z nasledujúcich príkazov:

// zapne LED diódu #a1

// vypne LED #a0

Krok 9: Hlas

Hlas
Hlas
Hlas
Hlas
Hlas
Hlas

Pripojte mikrofón a reproduktor k štítu pomocou uzemneného zvukového kábla. Stredový signálny vodič by mal ísť na svorky audio plus a tienenie by malo ísť na príslušné záporné svorky na tienení. Tieto káble by mali byť pripojené podobne na strane mikrofónu a reproduktora.

Ak chcete inicializovať hlasový hovor, nahrajte nasledujúci kód:

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

// ZAVOLAJTE // // VYDÁVAJÚCI KÓD NA ZÁKLADE: // // //********************************************************************************** #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; // Premenné stavu siete int network_registered; int network_AT_ready; // premenné stavu kódu int firstTimeInLoop = 1; int firstTimeInOtherLoop = 1; int x; // Zadrží prichádzajúci znak zo sériového portu. char incoming_char = 0; // Vytvorte „falošný“sériový port. Kolík 2 je kolík Rx, kolík 3 je kolík Tx. Softvér Sériová bunka (2, 3); void setup () {// Inicializácia sériového portu Arduino na ladenie. Serial.begin (9600); // Inicializujte virtuálny sériový port, aby ste mohli hovoriť s telefónom. cell.begin (9600); // Ahoj svet. Serial.println („Spustenie komunikácie SM5100B …“); oneskorenie (1000); // Nastavte počiatočný stav siete network_registered = 0; network_AT_ready = 0; } // Načítajte AT reťazce z bunkového štítu void readATString (void) {char c; buffidx = 0; // zacni na uzivani pre (x = 0; x 0) {c = cell.read (); ak (c == -1) {at_buffer [buffidx] = '\ 0'; návrat; } if (c == '\ n') {pokračovať; } if ((buffidx == BUFFSIZ - 1) || (c == '\ r')) {at_buffer [buffidx] = '\ 0'; návrat; } at_buffer [buffidx ++] = c; }}} // Spracujte reťazce AT neplatné ProcessATString () {if (strstr (at_buffer, "+SIND: 8")! = 0) {network_registered = 0; Serial.println („sieťová sieť nie je k dispozícii“); } if (strstr (at_buffer, "+SIND: 11")! = 0) {network_registered = 1; Serial.println ("sieť registrovaná"); } if (strstr (at_buffer, "+SIND: 4")! = 0) {network_AT_ready = 1; Serial.println ("Network AT Ready"); }} void loop () { / * Ak sa volá prvýkrát, slučku opakujte, kým nie je pripravená sieť a AT * / if (firstTimeInLoop == 1) {firstTimeInLoop = 0; while (network_registered == 0 || network_AT_ready == 0) {readATString (); ProcessATString (); }} if (firstTimeInOtherLoop == 1) {// Vyhľadajte prichádzajúci hovor if (strstr (at_buffer, "+CPAS: 3")! = 0) {// Odpovedzte na mobilný telefón.println ("ATA"); firstTimeInOtherLoop = 0; }}}

Obrázok
Obrázok

Považovali ste to za užitočné, zábavné alebo zábavné? Ak chcete vidieť moje najnovšie projekty, sledujte @madeineuphoria.

Odporúča: