Eğitimler
MKRGSMExamplesSendSMS
Bu çizim, Arduino MKR GSM 1400'den 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ı girersiniz.
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;
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 Mesaj Göndereni" ) ;
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.
}
int
readSerial
adlı bir işlev oluşturun. Bunu, seri monitörden gelen giriş, SMS göndermek istediğiniz numarayı ve göndereceğiniz mesajı saklamak için kullanırsınız. Bir char
dizisini argüman olarak kabul etmelidir.
{
Seri arabelleğindeki öğeler arasında saymak için bir değişken oluşturun ve sürekli olarak yürütülecek bir while
döngüsü başlatın.
süre ( 1 )
{
Seri bilgiler mevcut olduğu sürece, verileri 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 temizleyin ve işlevden çıkın.
{
sonuç [ i ] = ' \ 0 ' ;
Seri . flush ( ) ;
dönüş 0 ;
}
Gelen karakter yeni satır veya satır başı dışında bir ASCII karakteri ise, diziye ekleyin ve dizini artırın. while
döngülerini ve işlevi kapatın.
{
sonuç [ i ] = inChar ;
i ++;
}
}
}
}
In loop
, bir oluşturmak char
adlı diziyi remoteNumber
size SMS göndermek istediğiniz numarayı tutmak için. Az önce oluşturduğunuz readSerial
işlevini readSerial
ve remoteNumber
bağımsız değişken olarak remoteNumber
. readSerial
yürütüldüğünde, remoteNumber
iletiyi göndermek istediğiniz numarayla doldurur.
char remoteNumber [ 20 ] ;
readSerial ( remoteNumber ) ;
Seri . println ( remoteNumber ) ;
txtMsg
adlı yeni bir char
dizisi oluşturun. Bu, SMS'inizin içeriğini tutacaktır. txtMsg
doldurmak için readSerial
.
char txtMsg [ 200 ] ;
readSerial ( txtMsg ) ;
Çağrı sms.beginSMS()
ve bu da geçer remoteNumber
mesaj, göndermeye başlamak için sms.print()
mesaj göndermek için ve sms.endSMS()
işlemini tamamlamak için. Bazı tanılama bilgilerini yazdırın ve loop
kapatın. 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 yalnızca 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 tuşuna basın. Daha sonra mesajınızı girmeniz istenir. Bunu yazdıktan sonra, göndermek için geri dön düğmesine basın.
Çizimin tamamı aşağıdadır.
SMS göndericisi
Bu çizim, MKR GSM 1400 kartı için bir SMS mesajı gönderir
seri monitöre girersiniz. Arduino'nuzu
GSM kalkanı ve SIM kart, seri monitörü açın ve bekleyin
ekranda "HAZIR" mesajı görüntülenir. Ardından, bir
göndermek için "geri" tuşuna basın. Dizinin
monitör, return tuşuna bastığınızda yeni satır gönderecek şekilde ayarlanmıştır.
Devre:
* MKR GSM 1400 kartı
* Anten
* SMS gönderebilen SIM kart
oluşturuldu 25 Şub 2012
tarafından Tom Igoe
* /
// 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 örneğini başlat
GSM gsmAccess ;
GSM_SMS sms ;
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 Mesaj Göndereni" ) ;
// bağlantı durumu
bool bağlı = yanlış ;
// GSM kalkanını başlat
// SIM'iniz PIN içeriyorsa, tırnak işaretleri halinde begin () parametresi olarak iletin
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ı" ) ;
}
void loop ( ) {
Seri . print ( "Bir cep telefonu numarası girin:" ) ;
char remoteNum [ 20 ] ; // sms göndermek için telefon numarası
readSerial ( remoteNum ) ;
Seri . println ( remoteNum ) ;
// sms metni
Seri . print ( "Şimdi, SMS içeriği girin:" ) ;
char txtMsg [ 200 ] ;
readSerial ( txtMsg ) ;
Seri . println ( "GÖNDERME" ) ;
Seri . println ( ) ;
Seri . println ( "Mesaj:" ) ;
Seri . println ( txtMsg ) ;
// mesajı gönder
SMS. beginSMS ( remoteNum ) ;
SMS. baskı ( txtMsg ) ;
SMS. endSMS ( ) ;
Seri . println ( " \ n TAMAM! \ n " ) ;
}
/ *
Giriş dizisini oku
* /
int readSerial ( karakter sonucu [ ] ) {
int i = 0 ;
yaparken ( 1 ) {
while ( Seri . kullanılabilir ( ) > 0 ) {
char inChar = Seri . read ( ) ;
if ( inChar == ' \ n ' ) {
sonuç [ i ] = ' \ 0 ' ;
Seri . flush ( ) ;
dönüş 0 ;
}
eğer ( inChar ! = ' \ r ' ) {
sonuç [ 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 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, aranan numara seri monitörde gösterilir ve çağrı kapatılır.
- MKRGSMExamplesReceiveSMS- SMS mesajı nasıl alınır.
- 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.