Eğitimler
GSMExamplesSendSMS
Arduino veya Genuino kartından bir SMS mesajı gönderir. Arduino Yazılımının (IDE) seri monitörünü kullanarak bağlanacak numarayı ve gönderilecek metin mesajını gireceksiniz.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- Arduino + Telefonica GSM / GPRS Kalkanı
- SIM kart
devre

Kod
İlk olarak, GSM kütüphanesini içe aktarın
#include <GSM.h>
SIM kartların işlevlerini etkinleştiren bir PIN numarası olabilir. SIM'inizin PIN kodunu tanımlayın. SIM'inizde PIN'i yoksa boş bırakabilir:
#define PINNUMBER ""
Kullanacağınız sınıfların örneklerini inceleyin. Hem GSM hem de GSM_SMS sınıfına göre olacak.
GSM_SMS sms ;
setup
, seri seri bir bağlantı açın. Bağlantıyı açmaya sonra çizimin başladığını belirten bir mesaj gönderin.
Seri . başlar ( 9600 ) ;
Seri . println ( "SMS Mesaj Göndereni" ) ;
Bağlantı durumunu izlemek için yerel bir değişkenliğini izleyin. SIM'in ağa bağlanmasına kadar çizimin başlamasına kesinlikle için bunu yapınsınız:
gsmAccess.begin()
çağırarak ağa bağlanın. SIM kartın PIN kodunu argüman olarak alır. Bunu bir while()
döngüüsünün içine yerleştirerek, bağlantının durumunu sürekli olarak kontrol edebilirsiniz. Modem bağlanır, gsmAccess()
GSM_READY
değerini döndürür. notConnected
değişkenini true
veya false
olarak ayarlamak için notConnected
bayrak olarak kullanın. Bağlanıyor sonra, setup
geri kalanı çalışır.
{
Eger (gsmAccess. baslar (PINNUMBER) == GSM_READY)
notConnected = yanlış ;
Başka
{
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
Seri monitöre bazı bilgilerle setup
tamamlayın.
}
int
readSerial
adlı bir işlev çalıştırmak. Bunu, seri monitörden gelen giriş, SMS göndermek için numarayı ve göndereceğim mesajı saklamak için gereklisınız. Bir char
dizisini argüman olarak kabul etmelidir.
{
Seri arabelleğindeki öğeler arasında saymak için bir değişkenlikte ve sürekli olarak seçtiğinizecek bir while
döngüsü altında.
süre ( 1 )
{
Seri bilgileri mevcut olduğu hakkında, özellikler inChar
adlı bir değişkene inChar
.
{
char inChar = Seri . read ( ) ;
Okunmakta olan karakter yeni bir satırsa, diziyi sonlandırın, seri arabelleği içindir ve işlevden çıkın.
{
sonuç [ i ] = ' \ 0 ' ;
Seri . flush ( ) ;
dönüş 0 ;
}
ASCII karakteri ise, diziye ekleyin ve dizini artırın. while
döngüsel ve çalışır durumda.
{
sonuç [ i ] = inChar ;
i ++;
}
}
}
}
In loop
, bir olusturmak char
Adlı diziyi remoteNumber
boyutu SMS gondermek istediginiz numarayı tutmak icin. Oluşturdugunuz Az önce readSerial
işlevini readSerial
ettik remoteNumber
Bağımsız Değişken Olarak remoteNumber
. readSerial
yürütüldüğünde, remoteNumber
iletiyi göndermek için numarayla doldurur.
char remoteNumber [ 20 ] ;
readSerial ( remoteNumber ) ;
Seri . println ( remoteNumber ) ;
txtMsg
adlı yeni bir char
dizisi içindir. Bu, SMS'inizin olduğu tutacaktır. txtMsg
doldurmak için readSerial
.
char txtMsg [ 200 ] ;
readSerial ( txtMsg ) ;
Çağrı sms.beginSMS()
ve bu da geçer remoteNumber
mesaj, sms.print()
mesaj göndermek için ve sms.endSMS()
için gerekli. Bazı tanılama için yazdırmaın ve loop
içindir. Mesajınız geliyor!
Seri . println ( ) ;
Seri . println ( "Mesaj:" ) ;
Seri . println ( txtMsg ) ;
SMS. beginSMS ( remoteNumber ) ;
SMS. baskı ( txtMsg ) ;
SMS. endSMS ( ) ;
Seri . println ( " \ n TAMAM! \ n " ) ;
}
Kodunuz yüklendikten sonra seri monitörü açın. Seri monitörün sadece dönüşte yeni satır karakteri gönderecek şekilde ayarlandığından emin olun. Aramak istediğiniz numarayı girmeniz istendiğinde, sayıları girin ve geri dönmek için gerekli. Daha sonra mesajınızı girmeniz istenir. Bunu yazdıktan sonra, göndermek için geri dönmektedir.
Çizimin listesinde lütfendır.
/* SMS sender This sketch, for the Arduino GSM shield,sends an SMS message you enter in the serial monitor. Connect your Arduino with the GSM shield and SIM card, open the serial monitor, and wait for the "READY" message to appear in the monitor. Next, type a message to send and press "return". Make sure the serial monitor is set to send a newline when you press return. Circuit: * GSM shield * SIM card that can send SMS created 25 Feb 2012 by Tom Igoe This example is in the public domain. http://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS */ // Include the GSM library #include #define PINNUMBER "" // initialize the library instance GSM gsmAccess; GSM_SMS sms; void setup() { // initialize serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("SMS Messages Sender"); // connection state boolean notConnected = true; // Start GSM shield // If your SIM has PIN, pass it as a parameter of begin() in quotes while (notConnected) { if (gsmAccess.begin(PINNUMBER) == GSM_READY) { notConnected = false; } else { Serial.println("Not connected"); delay(1000); } } Serial.println("GSM initialized"); } void loop() { Serial.print("Enter a mobile number: "); char remoteNum[20]; // telephone number to send sms readSerial(remoteNum); Serial.println(remoteNum); // sms text Serial.print("Now, enter SMS content: "); char txtMsg[200]; readSerial(txtMsg); Serial.println("SENDING"); Serial.println(); Serial.println("Message:"); Serial.println(txtMsg); // send the message sms.beginSMS(remoteNum); sms.print(txtMsg); sms.endSMS(); Serial.println("\nCOMPLETE!\n"); } /* Read input serial */ int readSerial(char result[]) { int i = 0; while (1) { while (Serial.available() > 0) { char inChar = Serial.read(); if (inChar == '\n') { result[i] = '\0'; Serial.flush(); return 0; } if (inChar != '\r') { result[i] = inChar; i++; } } } }
/* SMS sender This sketch, for the Arduino GSM shield,sends an SMS message you enter in the serial monitor. Connect your Arduino with the GSM shield and SIM card, open the serial monitor, and wait for the "READY" message to appear in the monitor. Next, type a message to send and press "return". Make sure the serial monitor is set to send a newline when you press return. Circuit: * GSM shield * SIM card that can send SMS created 25 Feb 2012 by Tom Igoe This example is in the public domain. http://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS */ // Include the GSM library #include #define PINNUMBER "" // initialize the library instance GSM gsmAccess; GSM_SMS sms; void setup() { // initialize serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("SMS Messages Sender"); // connection state boolean notConnected = true; // Start GSM shield // If your SIM has PIN, pass it as a parameter of begin() in quotes while (notConnected) { if (gsmAccess.begin(PINNUMBER) == GSM_READY) { notConnected = false; } else { Serial.println("Not connected"); delay(1000); } } Serial.println("GSM initialized"); } void loop() { Serial.print("Enter a mobile number: "); char remoteNum[20]; // telephone number to send sms readSerial(remoteNum); Serial.println(remoteNum); // sms text Serial.print("Now, enter SMS content: "); char txtMsg[200]; readSerial(txtMsg); Serial.println("SENDING"); Serial.println(); Serial.println("Message:"); Serial.println(txtMsg); // send the message sms.beginSMS(remoteNum); sms.print(txtMsg); sms.endSMS(); Serial.println("\nCOMPLETE!\n"); } /* Read input serial */ int readSerial(char result[]) { int i = 0; while (1) { while (Serial.available() > 0) { char inChar = Serial.read(); if (inChar == '\n') { result[i] = '\0'; Serial.flush(); return 0; } if (inChar != '\r') { result[i] = inChar; i++; } } } }
See Also
- GSMinşaatçı
- GSM.begin()
- GSM.shutdown()
- GSM_SMSinşaatçı
- beginSMS()
- ready()
- endSMS()
- available()
- remoteNumber()
- read()
- write()
- print()
- peek()
- flush()
- Arduino GSM Shield- Komple ürün açıklaması.
- Getting started with the GSM Shield- Her şeyi dakikalar içinde kurun.
- GSM library- GSM Kütüphanesi için referansınız.
- GSMExamplesMakeVoiceCall- Mikrofon ve hoparlör ile sesli arama nasıl yapılır.
- GSMExamplesReceiveVoiceCall- Çağrı alınır ve bağlanır, aranan numara seri monitörde gösterilir ve çağrı kapatılır.
- GSMExamplesReceiveSMS- SMS mesajı nasıl alınır.
- GSMExamplesWebServer- Bir istemciden istek alındığında Analog girişlerde okunan değeri geri gönderen bir web sunucusu.
- GSMExamplesWebClient- Arduino.cc ana sayfasına bağlanın ve içindekileri seri monitör penceresinde yazdırın.
- GSMToolsTestGPRS- Verilen APN ve kimlik bilgileriyle GPRS üzerinden internete erişmeye çalışır.