Eğitimler
GSMToolsGsmScanNetworks
Bu örnek, modemin IMEI numarasını yazdırır, ardından bir taşıyıcıya bağlı olup olmadığını kontrol eder ve sinyal gücünü yazdırır. Ayrıca yakındaki tüm ağları tarar.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- Arduino + Telefonica GSM / GPRS Kalkanı
- Veri için SIM kart etkinleştirme
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. GSM, GSMScanner ve GSMModem sınıflarına ihtiyacınız olacak.
GSMScanner scannerNetworks;
GSMModem modemTest;
IMEI numarasını tutacak bir değişken ve seri monitöre gönderilecek bir durum mesajı oluşturun:
Dize errortext = "ERROR" ;
setup
, bilgisayara seri bir bağlantı açın. Bağlantıyı açtıktan sonra, Seri Monitöre çizimin başladığını belirten bir mesaj gönderin. Modemi sıfırlamak için @ scannerNetworks.begin () @@ 'yi arayın.
Seri . başlar ( 9600 ) ;
Seri . println ( "GSM şebekeleri tarayıcı" ) ;
scannerNetworks. begin ( ) ;
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 ) ;
}
}
modemTest.getIMEI()
ile modemin IMEI'sini alın ve seri monitöre yazdırın.
IMEI = modemTest. getIMEI ( ) ;
IMEI. değiştirin ( " \ n " , "" ) ;
eğer ( IMEI ! = NULL )
Seri . println ( IMEI ) ;
loop()
, mevcut tüm ağları tarayın ve yazdırın. Bu biraz zaman alabilir
Seri . println ( scannerNetworks. readNetworks ( ) ) ;
Bağlı olan taşıyıcıyı ve sinyalin gücünü yazdırın. Sinyal gücü 0-31 arasındadır, burada 0 en düşük ve 31 en yüksektir. loop()
kapatın loop()
.
Seri . println ( scannerNetworks. getCurrentCarrier ( ) ) ;
Seri . print ( "Sinyal Gücü:" ) ;
Seri . print ( scannerNetworks. getSignalStrength ( ) ) ;
Seri . println ( "[0-31]" ) ;
Kodunuz yüklendikten sonra, bağlantının durumunu görmek için seri monitörü açın.
Çizimin tamamı aşağıdadır.
GSM Tarama Ağları
Bu örnek, modemin IMEI numarasını yazdırır,
daha sonra bir taşıyıcıya bağlı olup olmadığını kontrol eder. Öyleyse,
kartla ilişkili telefon numarasını yazdırır.
Ardından yakındaki ağları tarar ve sinyal güçlerini yazdırır.
Devre:
* GSM kalkanı
* SIM kart
8 Mart 2012 tarihinde oluşturuldu
Tom Igoe, Javier Carazo tarafından uygulandı
Değiştirildi 4 Şub 2013
ile Scott Fitzgerald
http: egitim.aspx e = GSMToolsGsmScanNetworks
Bu örnek kod, genel alanın bir parçasıdır
* /
// kütüphaneler
#include <GSM.h>
// PIN numarası
#define PINNUMBER ""
// kütüphane örneğini başlat
GSM gsmAccess ; // hata ayıklamayı etkinleştirmek için bir 'true' parametresi ekle
GSMScanner tarayıcı Ağları ;
GSMModem modem Testi ;
// Veri değişkenlerini kaydet
Dize IMEI = "" ;
// seri monitör sonuç mesajları
Dize errortext = "ERROR" ;
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 Leonardo için gerekli
}
Seri . println ( "GSM şebekeleri tarayıcı" ) ;
scannerNetworks. begin ( ) ;
// bağlantı durumu
bool notConnected = true ;
// GSM kalkanını başlat
// SIM'iniz PIN içeriyorsa, tırnak işaretleri halinde begin () parametresi olarak iletin
while ( notConnected ) {
eğer ( gsmAccess. başlar ( PINNUMBER ) == GSM_READY ) {
notConnected = yanlış ;
} başka {
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
// modem parametrelerini al
// IMEI, benzersiz modem tanımlayıcısı
Seri . print ( "Modem IMEI:" ) ;
IMEI = modemTest. getIMEI ( ) ;
IMEI. değiştirin ( " \ n " , "" ) ;
eğer ( IMEI ! = NULL ) {
Seri . println ( IMEI ) ;
}
}
void loop ( ) {
// mevcut ağları tara, ağların bir listesini görüntüler
Seri . println ( "Kullanılabilir ağları tarama. Birkaç saniye sürebilir." ) ;
Seri . println ( scannerNetworks. readNetworks ( ) ) ;
// şu anda bağlı olan operatör
Seri . print ( "Şu anki taşıyıcı:" ) ;
Seri . println ( scannerNetworks. getCurrentCarrier ( ) ) ;
// gücü ve ber döndürür
// 0-31 ölçeğinde sinyal gücü. 31, güç> 51dBm anlamına gelir
// BER, Bit Hata Oranıdır. 0-7 ölçek. 99 = algılanamaz
Seri . print ( "Sinyal Gücü:" ) ;
Seri . print ( scannerNetworks. getSignalStrength ( ) ) ;
Seri . println ( "[0-31]" ) ;
}
See Also
- 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.
- GSMToolsTestGPRS- Verilen APN ve kimlik bilgileriyle GPRS üzerinden internete erişmeye çalışır.
- GSMToolsBandManagement- Modemde yapılandırılmış olan bandı kontrol eder ve değiştirmenize izin verir.
- GSMToolsPinManagement- PIN numarası nasıl değiştirilir veya kaldırılır.
- GSMToolsTestModem- GSM kalkanı modemin doğru çalışıp çalışmadığını test eder.
- GSMToolsTestWebServer- Hiçbir şeyi yanıtlamayan, ancak istemcinin isteğini ve sunucu IP adresini yazdıran basit bir web sunucusu.
- GSMExamplesMakeVoiceCall- Mikrofon ve hoparlör ile sesli arama nasıl yapılır.