Eğitimler
GSMExamplesReceiveSMS
Bu çizim bir SMS mesajı bekler ve seri monitöre yazdırır. Arduino GSM Shield'in GSM kütüphanesini ve aktif bir SIM kartı kullanır. Çalıştırmak için SIM kartın bir veri planına ihtiyacı yoktur.
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 yoksa boş bırakabilirsiniz:
#define PINNUMBER ""
Kullanacağınız sınıfların örneklerini başlatın. Hem GSM hem de GSM_SMS sınıfına ihtiyacınız olacak.
GSM_SMS sms;
İletiyi gönderen numarayı tutmak için bir char
dizisi oluşturun:
char remoteNumber[20];
setup
, bilgisayara seri bir bağlantı açın. Bağlantıyı açtıktan sonra çizimin başladığını belirten bir mesaj gönderin.
Seri . başlar ( 9600 ) ;
Seri . println ( "SMS Mesajları Alıcısı" ) ;
Bağlantı durumunu izlemek için yerel bir değişken oluşturun. SIM'in ağa bağlanmasına kadar çizimin başlamasını önlemek için bunu kullanırsı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ğlandığında, 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ğlandıktan sonra, setup
geri kalanı çalışır.
{
eğer ( gsmAccess. başlar ( PINNUMBER ) == GSM_READY )
notConnected = yanlış ;
Başka
{
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
Seri monitöre bazı bilgilerle setup
tamamlayın.
Seri . println ( " Mesaj bekleniyor" ) ;
}
SMS mesajları modem tarafından alınır. SIM kartların gelen SMS'i depolamak için bir miktar hafıza alanı vardır. Kartın alabileceği SMS sayısı, SIM'e bağlı olarak 10 veya 200'e kadar olabilir. SIM kartınızın hafızasında ne kadar tutabileceğini belirlemek için sağlayıcınıza danışmalısınız.
loop()
, alınan herhangi bir SMS'deki karakterleri geçici olarak tutmak için char
türünde bir değişken oluşturun. sms.available()
mesaj olup olmadığını kontrol etmek için sms.available()
kullanın:
{
char c ;
if ( sms. kullanılabilir ( ) )
{
SMS varsa, sms.remoteNumber(remoteNumber, 20)
çağırarak uzak gönderenin numarasını sms.remoteNumber(remoteNumber, 20)
. remoteNumber
bağımsız değişkeni, remoteNumber
başında bildirdiğiniz char
dizisidir, 20 karakterden uzun olamaz. Bu numarayı seri monitöre gönderin.
SMS. remoteNumber ( remoteNumber , 20 ) ;
Seri . println ( remoteNumber ) ;
sms.flush()
çağırarak SMS mesajlarını silmek mümkündür. sms.peek()
kullanarak, kaldırma için yardımcı olabilecek mesaj dizin numarasını tanımlamak mümkündür
Aşağıdaki kod SIM'den herhangi birini kaldırmaz, ancak bir for
döngüsü üzerinden yineleyebilir veya aşağıda kullanılan kukla # yerine kaldırmak için belirli bir dizin numarasını tanımlayabilirsiniz
{
Seri . println ( "Silinen SMS" ) ;
SMS. flush ( ) ;
}
Mesajı okumak için sms.read()
kullanın. Burada, mesajdaki her karakteri c
değişkenine c
ve okunduğunda yazdıracaksınız.
Seri . baskı ( c ) ;
İletinin tamamlandığını sms.flush()
ve sms.flush()
ile bellekten kaldırın.
SMS. flush ( ) ;
Seri . println ( "MESAJ SİLİNDİ" ) ;
}
Kısa bir gecikme ekleyin ve loop
kapatın.
}
Kodunuz yüklendikten sonra seri monitörü açın. Telefon veya başka bir SMS özellikli servisle, SIM numaranıza bir SMS gönderin. Mesaj alındığında ekranda yazdırıldığını görmelisiniz.
Çizimin tamamı aşağıdadır.
SMS alıcısı
Bu çizim, Arduino GSM kalkanı için bir SMS mesajı bekliyor
ve Seri bağlantı noktası üzerinden görüntüler.
Devre:
* GSM kalkanı bağlı ve Arduino
* SMS mesajları alabilen SIM kart
oluşturuldu 25 Şub 2012
ile Javier Zorzano / TD
Bu örnek kamu malıdır.
http: egitim.aspx e = GSMExamplesReceiveSMS
* /
// GSM kütüphanesini dahil et
#include <GSM.h>
// SIM için PIN Numarası
#define PINNUMBER ""
// kütüphane örneklerini başlat
GSM gsmAccess ;
GSM_SMS sms ;
// SMS'in alındığı numarayı tutma dizisi
char senderNumber [ 20 ] ;
void setup ( ) {
// seri iletişimi başlatın ve portun açılmasını bekleyin:
Seri . başlar ( 9600 ) ;
while ( ! Seri ) {
; // seri portun bağlanmasını bekleyin. Yalnızca yerel USB bağlantı noktası için gereklidir
}
Seri . println ( "SMS Mesajları Alıcısı" ) ;
// bağlantı durumu
bool notConnected = true ;
// GSM bağlantısını başlat
while ( notConnected ) {
eğer ( gsmAccess. başlar ( PINNUMBER ) == GSM_READY ) {
notConnected = yanlış ;
} başka {
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
Seri . println ( "GSM başlatıldı" ) ;
Seri . println ( " Mesaj bekleniyor" ) ;
}
void loop ( ) {
char c ;
// Kullanılabilir SMS varsa ()
if ( sms. available ( ) ) {
Seri . println ( "Mesaj alındı:" ) ;
// Uzak numarayı al
SMS. remoteNumber ( senderNumber , 20 ) ;
Seri . println ( senderNumber ) ;
// Mesaj atma örneği
// # ile başlayan tüm mesajlar atılmalıdır
if ( sms. peek ( ) == '#' ) {
Seri . println ( "Silinen SMS" ) ;
SMS. flush ( ) ;
}
// Mesaj baytlarını oku ve yazdır
while ( c = sms. read ( ) ) {
Seri . baskı ( c ) ;
}
Seri . println ( " \ n MESAJIN SONU" ) ;
// Mesajı modem belleğinden sil
SMS. flush ( ) ;
Seri . println ( "MESAJ SİLİNDİ" ) ;
}
gecikme ( 1000 ) ;
}
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.
- GSMExamplesSendSMS- Seri monitörden bir SMS giriş numarası ve metni nasıl gönderilir.
- 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.