Eğitimler
MKRNBScanNetworks
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 MKR NB 1500
- anten
- Veri için SIM kart etkinleştirme
Devre
Kod
İlk olarak, NB kütüphanesini içe aktarın
#include <MKRNB.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. NB, NBScanner ve NBModem sınıflarına ihtiyacınız olacak.
NBScanner scannerNetworks;
NBModem 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 ( "NB ağ 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, nbAccess()
işlevi NB_READY
değerini döndürür. connected
değişkeni true
veya false
olarak ayarlamak için bunu bayrak olarak kullanın. Bağlandıktan sonra, setup
geri kalanı çalışır.
{
eğer ( ( nbAccess. başlar ( PINNUMBER ) == GSM_READY ) &&
( gprs. attachGPRS ( ) == GPRS_READY ) ) {
bağlı = doğru ;
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.
NB 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.
Ardından yakındaki ağları tarar ve sinyal güçlerini yazdırır.
Devre:
* MKR NB 1500 kartı
* Anten
* SIM kart
8 Mart 2012 tarihinde oluşturuldu
Tom Igoe, Javier Carazo tarafından uygulandı
Değiştirildi 4 Şub 2013
ile Scott Fitzgerald
* /
// kütüphaneler
#include <MKRNB.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
NB nbAccess ; // hata ayıklamayı etkinleştirmek için bir 'true' parametresi ekle
NBScanner tarayıcı Ağları ;
NBModem 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 ( "NB IoT / LTE Cat M1 ağ tarayıcı" ) ;
scannerNetworks. begin ( ) ;
// bağlantı durumu
boole bağlı = yanlış ;
// Modülü başlat
// SIM'iniz PIN içeriyorsa, tırnak işaretleri halinde begin () parametresi olarak iletin
while ( ! bağlı ) {
eğer ( nbAccess. başlar ( PINNUMBER ) == NB_READY ) {
bağlı = doğru ;
} 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 ( ) {
// ş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]" ) ;
// 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 ( ) ) ;
// tekrar taramadan önce on saniye bekleyin
gecikme ( 10000 ) ;
}
See Also
- Arduino MKR NB 1500- Komple ürün açıklaması.
- Getting started with the MKR NB 1500- Her şeyi dakikalar içinde kurun.
- MKRNB library- NB Kütüphanesi için referansınız.
- MKRNBToolsTestGPRS- GPRS üzerinden internete erişmeye çalışır.
- MKRNBToolsPinManagement- PIN numarası nasıl değiştirilir veya kaldırılır.
- MKRNBToolsTestModem- MKR NB 1500 modeminin doğru çalışıp çalışmadığını test eder.