Eğitimler
MKRGSMExamplesReceiveSMS
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 MKR GSM 1400
- anten
- SIM kart
Devre
Kod
İlk olarak, MKRGSM kütüphanesini içe aktarın
#include <MKRGSM.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, MKR GSM 1400 kartı için bir SMS mesajı bekliyor
ve Seri bağlantı noktası üzerinden görüntüler.
Devre:
* MKR GSM 1400 kartı
* Anten
* SMS mesajları alabilen SIM kart
oluşturuldu 25 Şub 2012
ile Javier Zorzano / TD
* /
// GSM kütüphanesini dahil et
#include <MKRGSM.h>
#include "arduino_secrets.h"
// Lütfen hassas verilerinizi Gizli sekmesine veya arduino_secrets.h girin
// PIN numarası
const char PINNUMBER [ ] = SECRET_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 bağlı = yanlış ;
// GSM bağlantısını başlat
while ( ! bağlı ) {
eğer ( gsmAccess. başlar ( PINNUMBER ) == GSM_READY ) {
bağlı = doğru ;
} başka {
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
Seri . println ( "GSM başlatıldı" ) ;
Seri . println ( " Mesaj bekleniyor" ) ;
}
void loop ( ) {
int 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
((c = sms okumak ()) =.! - 1) ise {
Seri . baskı ( ( karakter ) 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 MKR GSM 1400- Komple ürün açıklaması.
- Getting started with the MKR GSM 1400- Her şeyi dakikalar içinde kurun.
- MKRGSM library- GSM Kütüphanesi için referansınız.
* MKRGSMExamplesMakeVoiceCall- Mikrofon ve hoparlör ile sesli arama nasıl yapılır.
- MKRGSMExamplesReceiveVoiceCall - Çağrı alınır ve bağlanır, çağrılan numara seri monitörde gösterilir ve çağrı kapatılır .
- MKRGSMExamplesSendSMS- Seri monitörden bir SMS giriş numarası ve metni nasıl gönderilir.
- MKRGSMExamplesWebServer- Bir istemciden istek alındığında Analog girişlerde okunan değeri geri gönderen bir web sunucusu.
- MKRGSMExamplesWebClient- Arduino.cc ana sayfasına bağlanın ve içindekileri seri monitör penceresinde yazdırın.
- MKRGSMToolsTestGPRS- Verilen APN ve kimlik bilgileriyle GPRS üzerinden internete erişmeye çalışır.