Arduino GSM sköld (1 / 3 steg)

Steg 1: GSM biblioteket

Detta är den GSM_shield bibliotek dokumentationen:

Här är ett GSM_shield bibliotek avsedda för GSM sköld av Futura Elettronica (www.futurashop.it).

Detta bibliotek är härlett från Hwkitchen's GSM bibliotek http://www.hwkitchen.com och inkluderar NewSoftSerial-bibliotek för att kommunicera med hjälp av den PIN-kod 4 (RX) och 5 (TX).

Du kan också använda PIN-koden 0 och 1 (RX och TX) men du måste koppla bort modulen för att ladda upp skissen (så det inte är så trevligt) och du måste ändra biblioteket.

Hur installera bibliotek för Arduino

Efter nedladdning av GSM_Shield biblioteket packa upp mappen GSM_Shield till Arduino

Folder\libraries\ (es. C:\Programs\arduino-0022\libraries\GSM_Shield)

I GSM_Shield.zip kan du hitta i biblioteket att kommunicera med gsm-modul och fil för bruk i NewSoftSerial.

Grundläggande Beskrivning

GSM_Shield biblioteket skapas som standard klass med filerna Gsm_Shield.cpp och Gsm_Shield.h källa. GSM_Shield klass baseras främst på den seriell kommunikationen

mellan Arduino styrelsen och GSM-modulen placeras på GSM skölden. Finns begagnade standard kommandon för kommunikation med GSM modul.

Den aktuella versionen av bibliotek använder blockerande version av kommunikation.

Det innebär att programmet blockeras tills funktionen meddelande är klar – så tills nödvändiga data skickas och krävs svar erhålls. Fördelen med att blockera förhållningssätt är att det är lätt att

förstå programflöden. Å andra sidan finns det också nackdelen som vi inte kan använda processorresurserna i tiden när programmet bara väntar på inkommande data.

Obs: var uppmärksam på seriell kommunikation läge. Du kan nå standard vilket baudvärde för modul SIM900 (115200) med seriell hårdvara (stift 0 och 1). Men om du använder pin 4 och 5 NewSoftSerial biblioteket inte stödja (få) vilket baudvärde, så du måste välja en lägre hastighet.

Med kommandot TurnOn(baudrate) du aktivera modulen och fixa vilket baudvärde. t.ex. TurnOn(9600);

Metoder

Det finns beskrivs viktiga funktioner för slutanvändaren i detta dokument.

GSM_Shield biblioteket innehåller också vissa funktioner som används internt

och som inte beskrivs i dokumentet. Det är också möjligt att använda dessa

funktioner av slutanvändaren naturligtvis som de definieras som offentliga men det

behövs för att kontrollera bibliotek källkod med anteckningar.

int LibVer(void)

Returnerar bibliotek version i format XYY-det betyder X.YY (t.ex. 100 betyder vers. 1,00)

Exempel: GSM_Shield_LibVer

void TurnOn(baud)

vänder på GSM modulen om modulen är avstängd och skickar några initiering på kommandon som möjliga att skicka innan registrering -> InitParam(PARAM_SET_0)

Bör användas i början av skissen i funktionen setup().

Ange också modul vilket baudvärde (Obs: om du använder maskinvara följetongen, det finns ingen gräns för vilket baudvärde, 115200 är possibile. Men med hjälp av pin 4 och 5 NewSoftSerial måste användas och baud gränsen är 57600).

baud-värde possibile: 4800, 9600, 19200, 38400, 57600, 115200 (ingen användning med detta bibliotek som inkluderar NewSoftSerial)

void setup()

{

GSM. TurnOn(9600);

}

Exempel: GSM_Shield_LibVer

void InitParam(byte group)

Skickar parametrar för initiering av GSM-modul
Grupp: 0-parametrarna för grupp 0 – inte nödvändigt att vara registrerade i GSM

AT & F

1-parametrarna för grupp 1-är det nödvändigt att registreras

AT + KLIPP = 1

AT + CMEE = 0

AT + CMGF = 1

Exempel: GSM_Shield_LibVer

void Echo (byte state)
Funktion för att aktivera eller inaktivera eko

ECHO(1) aktiverar GSM eko-läge

ECHO(0) inaktivera GSM echo läge

Exempel: GSM_Shield_LibVer

byte CheckRegistration(void)

kontrollerar om GSM-modul registreras i GSM nätet.

Denna metod kommunicerar direkt med GSM-modul i motsats till metoden IsRegistered() som läser flaggan från module_status

(här flaggan anges inuti denna metod)

regelbundet måste anropas på en plats i främsta skiss slingan

(rekommendation upprepa tiden är från 1 sekund till 10 SEK.)

returnera valus:

REG_NOT_REGISTERED – inte registrerad

REG_REGISTERED – GSM-modul registreras

REG_NO_RESPONSE – GSM inte svar

REG_COMM_LINE_BUSY – comm line är inte gratis

Exempel: GSM_Shield_Reg

byte IsRegistered(void)

returer flagga om GSM-modul registreras i GSM nätet

Denna metod kommunicera inte direkt med GSM-modulen

bara läser flagg så det är mycket snabbt till skillnad från CheckRegistration()

som tar mer än 20msec.

Det rekommenderas att använda denna funktion varje gång det är nödvändigt att använda någon GSM funktion som behöver GSM-modul registreras – kontrollera utåtgående SMS, kontrollera samtal etc.

returnera valus:

0 – inte registrerad

> 0 – GSM-modul registreras

Exempel: GSM_Shield_Reg

byte CallStatus(void)

kontroller samtalsstatus

returvärden:

CALL_NONE – inget samtal

CALL_INCOM_VOICE – inkommande röstsamtal

CALL_ACTIVE_VOICE – aktivt röstsamtal

CALL_NO_RESPONSE – inget svar

Exempel: GSM_Shield_Call

byte CallStatusWithAuth (char * phone_number, byte first_authorized_pos, byte last_authorized_pos)

kontrollerar status för samtal (inkommande eller aktiv) och gör auktorisering med SIM positioner sökområdet

parametrar och returvärden:

phone_number: en pekare där tel. nummer strängen av aktuella samtal ska placeras så att utrymmet för telefon nummer strängen måste reserveras

first_authorized_pos: utgångsställning SIM-telefonboken där auktoriseringsprocessen börjar

last_authorized_pos: senaste SIM-telefonboken position där auktoriseringsprocessen avslutas

Note(Important):

================

I fallet first_authorized_pos = 0 och också last_authorized_pos = 0 mottagna inkommande telefonnummer inte bemyndigas alls, så varje inkommande anses som godkänt (CALL_INCOM_VOICE_NOT_AUTH returneras)

återkomst:

CALL_NONE – inga samtal verksamhet

CALL_INCOM_VOICE_AUTH – inkommande röst-auktoriserad

CALL_INCOM_VOICE_NOT_AUTH – inkommande röst-inte behörighet

CALL_ACTIVE_VOICE-aktiv röst

CALL_INCOM_DATA_AUTH – inkommande datasamtal – auktoriserad

CALL_INCOM_DATA_NOT_AUTH – inkommande datasamtal – inte behörighet

CALL_ACTIVE_DATA – aktiva datasamtal

CALL_NO_RESPONSE – inget svar på kommandot AT

CALL_COMM_LINE_BUSY – comm line är inte gratis

void PickUp(void)

plockar upp det inkommande samtalet

Exempel: GSM_Shield_Call

void HangUp(void)

hänger upp samtal (inkommande eller aktiva)

Exempel: GSM_Shield_Call

void Call(char *number_string)

kräver ett särskilt antal

t.ex. gsm. Call("+390123456789″);

Ogiltigt anrop (int sim_position)

ringer numret lagras vid den angivna positionen SIM

t.ex. gsm. Call(1); ringa till nummer lagras på SIM 1: a position

char SendSMS (char * number_str, char * message_str)

skickar SMS till ett visst telefonnummer

parametrar och returvärden:

number_str: pekare till telefon nummer strängen

message_str: pekare till textsträngen SMS

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-GSM-modul har svarat "Fel" sträng

OK ret val:

———–

0 – SMS skickades inte

1 – SMS sändes 9/15

exempel på användning:

GSM. SendSMS ("00XXXYYYYYYYYY", "SMS text");

char SendSMS (byte sim_phonebook_position, char * message_str)

skickar SMS till angiven SIM-telefonboken position

parametrar och returvärden:

sim_phonebook_position: SIM-telefonboken position < 1..20 >

message_str: pekare till textsträngen SMS

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3 – anges position måste vara > 0

OK ret val:

———–

0 – SMS skickades inte

1 – SMS skickades

ett exempel på användning:

GSM gsm.

GSM. SendSMS (1, "SMS text").

char IsSMSPresent(byte required_status)

får reda på om det finns närvarande minst en SMS med angiven status

om det finns nya SMS innan IsSMSPresent() körs denna SMS har statusen OLÄST och sedan efter att IsSMSPresent() metoden status för SMS automatiskt ändras till Läs

parametrar och returvärden:

required_status:

SMS_UNREAD – nya SMS – inte läst ännu

SMS_READ – läst redan SMS

SMS_ALL – alla lagrade SMS

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

OK ret val:

———–

0 – det finns inget SMS med angiven status

1..20 – position där SMS lagras

exempel på användning:

char ställning;

char phone_number [20]. matris för telefon nummer strängen

char * sms_text;

läge = gsm. IsSMSPresent(SMS_UNREAD);

om (position) {/ / läsa nya SMS

GSM. GetGSM (position, tel_number & sms_text);

}

char GetSMS (byte position, char * phone_number, char * SMS_text, byte max_SMS_len)

läser SMS från angivna memory(SIM) position

parametrar och returvärden:

position: SMS position < 1..20 >

phone_number: en pekare där strängen telefon nummer av mottagna SMS ska placeras

så utrymmet för telefon nummer strängen måste reserveras – se exempel

SMS_text: en pekare där SMS text ska placeras

max_SMS_len: maximal längd på SMS text utom också sträng om avslutande 0 × 00 karaktär

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3 – anges position måste vara > 0

OK ret val:

———–

GETSMS_NO_SMS – inga SMS hittades vid den angivna positionen

GETSMS_UNREAD_SMS – ny SMS hittades vid den angivna positionen

GETSMS_READ_SMS – läst redan SMS hittades vid den angivna positionen

GETSMS_OTHER_SMS – annan typ av SMS hittades ett exempel på användning:

GSM gsm.

char ställning;

char phone_num [20]. matris för telefon nummer strängen

char sms_text [100]. matris för SMS text snöre

läge = gsm. IsSMSPresent(SMS_UNREAD);

om (position) {

Det finns nya SMS = > läsa den

GSM. GetGSM (position, phone_num, sms_text, 100);

Serial.println ("FELSÖKA SMS telefonnummer:", 0);

Serial.println (phone_num, 0);

Serial.println ("\r\n SMS text:", 0);

Serial.println (sms_text, 1);

}

char GetAuthorizedSMS (byte position, char * phone_number, char * SMS_text, byte max_SMS_len, byte first_authorized_pos, byte last_authorized_pos)

läser SMS från angivna memory(SIM) position och gör tillstånd-

Det betyder SMS-nummer är jämfört med angivna SIM-telefonboken position(er) och i de fall nummer matchar GETSMS_AUTH_SMS returneras, annars returneras GETSMS_NOT_AUTH_SMS

parametrar och returvärden:

position: SMS position att läsa < 1..20 >

phone_number: en pekare där tel. nummer strängen av mottagna SMS ska placeras så att utrymmet för telefon nummer strängen måste reserveras – se exempel

SMS_text: en pekare där SMS text ska placeras

max_SMS_len: maximal längd på SMS text exklusive avslutande 0 × 00 karaktär

first_authorized_pos: utgångsställning SIM-telefonboken där auktoriseringsprocessen börjar

last_authorized_pos: senaste SIM-telefonboken position där auktorisering proces avslutas

Note(Important):

================

I fallet first_authorized_pos = 0 och också last_authorized_pos = 0

det mottagna SMS-nummer bemyndigas inte alls, så varje

SMS är ansedd som auktoriserad (GETSMS_AUTH_SMS returneras)

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

OK ret val:

———–

GETSMS_NO_SMS – inga SMS hittades vid den angivna positionen

GETSMS_NOT_AUTH_SMS – auktoriserat inte SMS hittade vid den angivna positionen

GETSMS_AUTH_SMS – auktoriserad SMS hittade vid den angivna positionen

ett exempel på användning:

GSM gsm.

char phone_num [20]. matris för strängen telefon nummer 12/15

char sms_text [100]. matris för SMS text snöre

auktorisera SMS med SIM-telefonboken positioner 1..3

om (GETSMS_AUTH_SMS == gsm. GetAuthorizedSMS(1, phone_num, sms_text, 100, 1, 3)) {

nya godkända SMS upptäcktes vid SMS läge 1

Serial.println ("FELSÖKA SMS telefonnummer:", 0);

Serial.println (phone_num, 0);

Serial.println ("\r\n SMS text:", 0);

Serial.println (sms_text, 1);

}

inte tillåta SMS med SIM-telefonboken på alla

om (GETSMS_AUTH_SMS == gsm. GetAuthorizedSMS(1, phone_num, sms_text, 100, 0, 0)) {

nya SMS upptäcktes vid SMS läge 1

eftersom tillståndet inte krävs

SMS anses vara auktoriserad

Serial.println ("FELSÖKA SMS telefonnummer:", 0);

Serial.println (phone_num, 0);

Serial.println ("\r\n SMS text:", 0);

Serial.println (sms_text, 1);

}

char DeleteSMS(byte position)

tar bort SMS från angiven SMS position

parametrar och returvärden:

position: SMS position < 1..20 >

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

OK ret val:

———–

0 – SMS togs inte bort

1 – SMS raderades

char GetPhoneNumber (byte position, char * phone_number)

läsningar telefon nummer sträng från angivna SIM-läge

parametrar och returvärden:

position: SMS position < 1..20 >

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

phone_number är tom sträng

OK ret val:

———–

0 – det finns inget telefonnummer på ställning

1-telefonnumret hittades

phone_number är fylld av telefon nummer strängen färdiga av 0 × 00

så det är nödvändigt att definiera sträng med minst

15 byte (inklusive också 0 × 00 uppsägning tecken)

ett exempel på användning:

GSM gsm.

char phone_num [20]. matris för telefon nummer strängen

om (1 == gsm. GetPhoneNumber (1, phone_num)) {

Ogiltigt telefonnummer på SIM pos. #1

telefon nummer sträng kopieras till arrayen phone_num

Serial.println ("DEBUG telefonnummer:", 0);

Serial.println (phone_num, 1);

}

annat {

Det finns inte giltigt telefonnummer på SIM pos. #1

Serial.println ("DEBUG det är inga telefonnummer", 1);

}

char WritePhoneNumber (byte position, char * phone_number)

skriver telefon nummer sträng till angivna SIM-läge

parametrar och returvärden:

position: SMS position < 1..20 >

phone_number: telefon nummer sträng för skrivandet

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

OK ret val:

———–

0 – telefonnummer skrevs inte

1 – telefonnummer skrevs 14/15

char DelPhoneNumber(byte position)

del nummer från angiven SIM position

parametrar och returvärden:

position: SIM position < 1..20 >

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

OK ret val:

———–

0 – telefonnummer inte togs bort

1 – telefonnummer har tagits bort

char ComparePhoneNumber (byte position, char * phone_number)

Jämför angett telefon nummer sträng med telefonnummer lagras vid den angivna positionen SIM

parametrar och returvärden:

position: SMS position < 1..20 >

phone_number: telefon nummer sträng som bör vara jämför

återkomst:

FEL ret. val:

—————

-1 – comm. linje till GSM-modulen är inte gratis

-2-GSM-modul inte svarade i timeout

-3-position måste vara > 0

OK ret val:

———–

0 – telefonnummer är olika

1 – telefonnummer är desamma

ett exempel på användning:

om (1 == gsm.ComparePhoneNumber (1, "123456789″)) {

den telefonen num. "123456789″ lagras på SIM-pos. #1

telefon nummer sträng kopieras till arrayen phone_num

Serial.println ("DEBUG telefonnummer är samma", 1);

}

annat {

Serial.println ("DEBUG telefonnummer är olika", 1);

}

Hämta GSM_Shield_Library

Se Steg
Relaterade Ämnen

Arduino + GSM + PIR = Awesome

I närvarande tid hem/kontor och många andra plats är trygghet viktigast. I vår frånvaro är dessa platser inte säkert. För att göra dessa palats säkra många folk hålla vakter och många föredrar elektroniska säkerhetssystem. I nutid finns många typer a...

Sensor + arduino + gsm sköld

detta är min första tid att ladda upp experimenthelt enkelt det handlar om en sensor (alla typer av digital sensor) en gång dess avkänning arduino skickar ett SMS till dig med en textSteg 1: Vad behöver du? behöver du:1_arduino uno eller duemilanove...

Skicka sms om rök upptäcks (Arduino + GSM SIM900A

Hii allaI mitt första instructable jag kommer att göra en gaslarm som skickar meddelande till användaren om föroreningar upptäcks.Steg 1: Material som krävs för(1) Arduino Uno styrelse (eller någon Arduino ombord)(2) GSM sköld (personligen rekommende...

Arduino & sony ericsson: gsm sköld hacka

Hej! Ett tag sedan jag ville fjärråtkomst till min arduino för att styra I/O pins, jag gillade verkligen arduino GSM sköld eftersom det skulle tillåta mig att kontrollera min arduino från var som helst i världen. Men sådan en sköld tyvärr kommer inte...

Gränssnitt SIM900A GSM Modem med Arduino

Detta är en mycket låg kostnad och enkel Arduino GSM och GPRS modul. Vi använder modulen SIMCom SIM900A. Det är den billigare modul nu avalaible i marknaden. Det här inlägget kan du ringa arduino kontrolleras och även skicka textmeddelanden.Steg 1: N...

Fyrkantig rök (GSM rökdetektor)

BAKGRUNDTraditionella rök är begränsade i sin funktion för de kan tyda på närvaro av rök och skicka en klingande larm till omgivningen. Men vad händer om ingen är förekommer i miljön där branden har startat. Fyrkantiga röken är en avancerad rök och g...

GSM Solar Powered vind stationen

Målet med detta projekt är att bygga en självständig station som ger vindhastighet och vindriktning.Stationen kommer att besvara telefonsamtal och leverera information över talsyntes.Steg 1: Material som används: 1 x vindgivare (ebay.ch Davis Vantage...

Arduino rörelsedetektor + göra det trådlösa + ring telefon när rörelse upptäcks

Jag har alltid velat ha en motion sensorsystem på minhus men de är allt för dyrt.Sedan jag började arbeta med arduino insåg jag att jag kunde göra en själv.Så gjorde jag detta projekt i 3 delar:1) enkel rörelse sensoren med en arduino och en led blin...

GSM kontrollerade stjärnljus

För att sparka bort en festlig stämning, beslutade vi att anpassa en typisk skandinavisk tradition. I December, kommer många människor dekorera sina hem genom hängning stora papper stjärnor inuti sina fönster. Stjärnorna har vanligtvis en enda lampa...

Med hjälp av Sim900/sim900A mini modul med Arduino UNO

Det finns massor av webbplatser som talar om att använda en GSM sköld med en Arduino, förutom Arduino IDE själv. Det finns också flera GSM bibliotek där ute, eller du kan använda AT-kommandon för att rulla dina egna. Jag kunde inte hitta någon som pr...

Athena: Den globala bil spårning System(3D Images)

ta ut dina 3D glasögon och njuta av tittar på ett nytt sätt! Jag har lagt till en ny dimension till min instructable. Om du inte har 3D-glasögon, kan du göra en själv. Följande länk förklarar hur man gör 3D-glasögon ( länk ).Observera: Detta instruct...

Rörelse, Sensored säkerhetssystemet

Detta är ett säkerhetssystem med en Arduino uno och en PIR rörelsesensor som utlöser ett larm när rörelse registreras och är bäst att du hus från inbrottstjuvar. Detta projekt är användbara som när inbrottstjuvar hör larmet ringen högt de ofta kör!I...

Gör din egen mobiltelefon från grunden.

DIY mobiltelefon är en arbetande (om än grundläggande) mobiltelefon som du kan göra själv. Det kan göra och ta emot telefonsamtal och textmeddelanden, lagra namn och telefonnummer, Visa tid och tjäna som en väckarklocka. Den ansluter till GSM-nät (so...

TXT mig

TXT mig tar emot SMS-meddelanden och visar dem, en bokstav i taget, genom att höja armarna med bokstäver på slutet. Vår värld blir snabbare och snabbare, så detta medvetet tar sin tid och "läser långsamt upp" ditt meddelande. Om du inte koncentr...

RoomAlert-inbrottsskydd

Detta var för mitt öppna slutade förstaårselev engineering sista projekt. Vi fick höra att bygga något som används elektronik för att förbättra livet för allmänheten. Det är min egen design och idé, kopia, förbättra och låt mig veta vad du har gjort...

DIY GPS spåras cykel lås

Har precis köpt en halv anständig cykel, och leva i en stad med en cykel stöld nästan lika hög som New York, ville jag ha några sinnesfrid som om en tjuv med en vinkelslip var att skära igenom min U-lås jag kunde fortfarande fånga dem.Min huvudsaklig...

Hacka en automat att släppa burkar med SMS

Denna HowTo är att visa hur vi hacka en RedBull automat och hjälpa dig att reproducera den.Vår första idé är att släppa burkar när folk skicka ett SMS med en giltig token visas i maskinen (eller i totens i närheten) och logga tid och mängden utsläpp....

Förbetalda Tollgate System!

En enkel prepaid tollgate system.using RFID, GSM och arduinoSteg 1: anslutning! Göra anslutningar enligt detta DiagramSteg 2: moduler används Steg 3: kod!/** RFID-anslutningar - RFID-tx---> rx(3) ardunio** GSM - GSM rx---> 8 arduino* GSM tx---> 7...

GSM baserade relä växlar med hjälp av Arduino UNO

Hej vänner, Pratik här...Vi ska diskutera här växla reläer över gsm modul använder och arduino och Gsm 900A.Material som behövs:1. Arduino uno2. Gsm 900A modul.3. 2 relä modul.4. 12v 1amp eller 2amp adapter för Gsm-modul.5. gäng peka peka anslutninga...