Stap 7: initialiseren
/ * SparkFun mobiele Shield - Pass-Through monster Sketch SparkFun elektronica geschreven door Ryan Owens 3/8/10 Beschrijving: deze schets wordt weggeschreven naar een Arduino Duemillanove interface naar een cellulaire schild van SparkFun Electronics. Het cellulaire schild kan hier worden gekocht: http://www.sparkfun.com/commerce/product_info.php?products_id=9607 In deze schets seriële commando's vanuit een terminal programma worden doorgegeven naar de mobiele module van SM5100B; en reacties van de cellulaire module worden geplaatst in de terminal. Meer informatie is gevonden in de schets commentaren. Een geactiveerde SIM-kaart moet worden ingevoegd in de SIM-kaarthouder op het bord om het gebruik van het apparaat! Deze sketch maakt gebruik van de bibliotheek van de NewSoftSerial geschreven door Mikal Hart van Arduiniana. De bibliotheek kan worden gedownload op deze URL: http://arduiniana.org/libraries/NewSoftSerial/ deze code wordt verricht onder de Creative Commons Attribution License. Meer informatie kan hier worden gevonden: http://creativecommons.org/licenses/by/3.0/ (onze code vrij gebruiken! Vergeet alleen niet om ons te geven krediet waar het verschuldigd is. Bedankt!) * / #include < SoftwareSerial.h > //Include de NewSoftSerial-bibliotheek seriële om opdrachten te verzenden naar de cellulaire module. #include < string.h > //Used voor string manipulaties char incoming_char = 0; Zal het binnenkomende karakter van de seriële poort. SoftwareSerial cell(2,3); Maak een 'nep' seriële poort. Pin 2 is de Rx-pin, pin 3 is de Tx-pin. void setup {//Initialize seriële poorten voor communicatie. Serial.begin(9600); Cell.begin(9600); Laten we beginnen! Serial.println ("vanaf SM5100B communicatie...");} void loop {//If een teken vandaan de cellulaire module... if(cell.available() > 0) {incoming_char=cell.read(); //Get het teken van de cellulaire seriële poort. Serial.Print(incoming_char); Afdrukken van de binnenkomende teken naar de terminal. } //If een teken is afkomstig van de terminal aan de Arduino... als (Serial.available () > 0) {incoming_char = Serial.read (); / / Get het teken vanuit de terminal if (incoming_char == ' ~') / / als er een tilde... incoming_char = 0x0D; / /.. .convert een terugkeer anders als vervoer (incoming_char == ' ^') / / als er een up caret... incoming_char = 0x1A; / /.. .convert aan ctrl-Z cell.print (incoming_char); / / het teken verzendt naar de cellulaire module. Serial.Print (incoming_char); ECHO het terug naar de terminal}} / * SM5100B Quck referentie voor op de opdracht instellen * tenzij anders vermeld AT commando's zijn beëindigd door op de 'enter'-toets te drukken. 1.) Zorg ervoor dat de juiste GSM band is geselecteerd voor uw land. Voor de VS moet de band worden ingesteld op 7. Gebruik deze opdracht om de band: AT + SBAND = 7 2.) Controleer na het voeden op de Arduino met het schild geïnstalleerd, of de module leest en herkent de SIM-kaart. Met een terimal venster open en stel op de poort van de Arduino en 9600 buad, macht op de Arduino. De opstartvolgorde moet als volgt uitzien: start SM5100B communicatie... + SIND: 1 + SIND: 10, "SM", 1 "FD", 1, "LD", 1 "MC", 1, "RC", 1, "Mij", 1 communicatie met de module start nadat de eerste regel wordt weergegeven. De tweede lijn van communicatie, + SIND: 10, vertelt ons dat als de module een SIM-kaart kunt zien. Als de SIM-kaart wordt gedetecteerd dat elk andere veld is een 1; Als de SIM-kaart niet dat elk andere veld is een 0 ontdekt wordt. 3.) wachten op een netwerkverbinding voordat u beginnen met het verzenden van opdrachten. Na de + SIND: 10 reactie de module start automatisch verbinding met een netwerk probeert te maken. Wacht tot u de volgende repsones ontvangt: + SIND: 11 + SIND: 3 + SIND: 4 de + SIND reactie van de cellulaire module vertelt het de status van de modules. Hier is een snelle run-down van de betekenissen van de reactie: 0 SIM-kaart verwijderd 1 simkaart ingevoegde 2 Ring melodie 3 AT module is gedeeltelijk klaar 4 bij module is helemaal klaar 5 ID van vrijgegeven oproepen 6 Released oproep waarvan de ID = < idx > 7 de netwerkservice beschikbaar is voor een noodoproep 8 het netwerk is verloren 9 Audio op 10 Toon de status van elke telefoonlijst nadat init zin 11 geregistreerd met netwerk na het registreren op de netwerk kunt u beginnen met interactie. Hier zijn een paar eenvoudige en nuttige commando's aan de slag: om te bellen: op commando - ATDxxxyyyzzzz telefoonnummer met de indeling: (xxx) yyy-zzz proberen---cell.print("ATDxxxyyyzzzz"); Als u een telefoongesprek, zorg ervoor om te verwijzen naar het gegevensblad van de apparaten voor het aansluiten van een microfoon en luidspreker aan het schild. Een txt bericht verzenden: op de command - AT + CMGF = 1 dit commando stelt de tekstmodus van het bericht naar 'tekst'. Opdracht AT = AT + CMGS = "xxxyyyzzzz"(carriage return) "tekst naar send'(CTRL+Z) deze opdracht is enigszins verwarrend om te beschrijven. Het telefoonnummer, in de indeling (xxx) yyy-zzzz gaat binnen dubbele citaten. Druk op 'enter' na het sluiten van de citaten. Voer vervolgens de tekst worden verstuurd. De opdracht AT beëindigen door CTRL + Z te sturen. Deze teken kan niet worden verzonden vanaf de Arduino terminal. Gebruik een alternatieve terminalprogramma zoals Hyperterminal, Tera Term, Bray Terminal of X-CTU. De SM5100B module kan veel meer dan dit doen! Bekijk de datasheets op de productpagina voor meer informatie over de module.* /
De seriële poort openen in de terminal. Op een Mac is dit bereikt door te typen:
scherm /dev/tty.usbmodemfa131 9600
(Vervang tty.usbmodemfa131 met uw Arduino van seriële adres)
Wachten om te zien de volgende reeks geretourneerd:
Vanaf de mededeling van de SM5100B...
+ SIND: 3
+ SIND: 4
+ SIND: 11
(Deze volgorde is niet teruggekeerd check de foutcodes die aan de onderkant van de bovenstaande code worden vermeld als debug op de juiste manier. Mogelijk moet u de module voor Noord-Amerikaanse gebruik--zie hieronder--voordat het registreert met netwerk (d.w.z. + SIND 11))
Stuur de volgende opdrachten op de seriële poort:
Stuur dit voor Noord-Amerikaanse gebruik:
AT + SBAND = 7
Stel de huidige tijd - jj/mm/dd:
AT + CCLK = "13/05/15, 11: 02:00"
Stuur test oproep:
ATD4155551212