Eğitimler
MKRNBExamplesNBWebClient
Bu çizim, bir Arduino MKR NB 1500 kartını NB ağı üzerinden Arduino ana sayfasına ( http://arduino.cc) bağlar. Daha sonra sayfanın içeriğini Arduino Yazılımının (IDE) seri monitörü üzerinden yazdırır.
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, GPRS ve NBClient sınıflarına ihtiyacınız olacak.
GPRS gprs;
NB nbAccess;
Bağlanmak istediğiniz sunucuyu, yolu ve bağlantı noktasını tutmak için bazı değişkenler oluşturun.
char yolu [ ] = "/" ;
int bağlantı noktası = 80 ;
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 ( "Arduino web istemcisini başlatma." ) ;
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:
nbAccess.begin()
çağırarak ağa bağlanın. SIM kartın PIN kodunu argüman olarak alır. GPRS şebekesine gprs.attachGPRS()
kullanarak da bağlanacaksınız. Bir içinde bu yerleştirerek while()
döngü, sürekli bağlantının durumunu kontrol edebilirsiniz haline hem etmesini beklemeniz true
ilerlemeden önce.
Modem bağlandığında ve kendisini GPRS şebekesine nbAccess()
, nbAccess()
işlevi NB_READY
. 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 ) ;
}
}
client.connect()
kullanarak sunucuya bağlanmayı client.connect()
. connect()
, sunucu ve bağlantı noktası olmak üzere iki bağımsız değişken gerektirir. Sunucuya bağlandıktan sonra, client.print()
çağırarak bir HTTP isteği yapın. Tipik bir web isteği "GET yol adı HTTP / 1.0" şeklinde görünür. print
mesajı tıpkı bir tarayıcı gibi gönderir.
{
Seri . println ( "bağlı" ) ;
istemcisi. yazdır ( "GET" ) ;
istemcisi. yazdırma ( yol ) ;
istemcisi. println ( "HTTP / 1.0" ) ;
istemcisi. println ( ) ;
}
Sunucu bağlantısı başarısız olduysa, seri monitörde not edin ve setup
kapatın.
{
Seri . println ( "bağlantı başarısız" ) ;
}
}
İç loop
, sunucudan döndürülen bayt olup olmadığını kontrol edin. Öyleyse, bunları okuyun ve seri monitöre yazdırın.
{
char c = istemci. read ( ) ;
Seri . baskı ( c ) ;
}
Sunucu genellikle HTTP isteğini tamamladıktan sonra yapacağı bağlantıyı keserse, istemciyi yerel olarak durdurun ve loop
kapatın.
{
Seri . println ( ) ;
Seri . println ( "bağlantı kesiliyor." ) ;
istemcisi. stop ( ) ;
// sonsuza dek hiçbir şey yapma:
için ( ;; )
;
}
}
Kodunuz yüklendikten sonra seri monitörü açın. Http://example.org HTML'sinin alındığında ekranda çıktısını görmelisiniz. Yaklaşık bir dakika sürer, bu yüzden hemen bir geri bildiriminiz yoksa endişelenmeyin!
Çizimin tamamı aşağıdadır.
Web istemcisi
Bu çizim bir MKR NB 1500 kartı üzerinden bir web sitesine bağlanır. özellikle,
bu örnekte "http://example.org/" URL'si indirilir ve
Seri monitöre yazdırır.
Devre:
- MKR NB 1500 kartı
- Anten
- Veri planlı SIM kart
oluşturuldu 8 Mar 2012
tarafından Tom Igoe
* /
// 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
NBClient istemcisi ;
GPRS gpr'leri ;
NB nbAccess ;
// URL, yol ve bağlantı noktası (örneğin: example.org)
char server [ ] = "example.org" ;
char yolu [ ] = "/" ;
int bağlantı noktası = 80 ; // 80 numaralı bağlantı noktası HTTP için varsayılan değerdir
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 ( "Arduino web istemcisini başlatma." ) ;
// bağlantı durumu
boole bağlı = yanlış ;
// Modemi NB.begin () ile başlattıktan sonra
// APN, oturum açma adı ve parola ile GPRS şebekesine bağlanma
while ( ! bağlı ) {
eğer ( ( nbAccess. başlar ( PINNUMBER ) == NB_READY ) &&
( gprs. attachGPRS ( ) == GPRS_READY ) ) {
bağlı = doğru ;
} başka {
Seri . println ( "Bağlı değil" ) ;
gecikme ( 1000 ) ;
}
}
Seri . println ( "bağlanıyor ..." ) ;
// bir bağlantı alırsanız, seri yoluyla rapor verin:
if ( istemci. bağlantı ( sunucu , bağlantı noktası ) ) {
Seri . println ( "bağlı" ) ;
// Bir HTTP isteği yapın:
istemcisi. yazdır ( "GET" ) ;
istemcisi. yazdırma ( yol ) ;
istemcisi. println ( "HTTP / 1.1" ) ;
istemcisi. print ( "Ana Bilgisayar:" ) ;
istemcisi. println ( sunucu ) ;
istemcisi. println ( "Bağlantı: kapat" ) ;
istemcisi. println ( ) ;
} başka {
// sunucuyla bağlantı bulamadıysanız:
Seri . println ( "bağlantı başarısız" ) ;
}
}
void loop ( ) {
// kullanılabilir gelen bayt varsa
// sunucudan okuyun ve yazdırın:
if ( müşteri. kullanılabilir ( ) ) {
Seri . print ( ( char ) istemcisi. read ( ) ) ;
}
// sunucunun bağlantısı kesilirse, istemciyi durdurun:
if ( ! istemci. kullanılabilir ( ) && ! istemci. bağlı ( ) ) {
Seri . println ( ) ;
Seri . println ( "bağlantı kesiliyor." ) ;
istemcisi. stop ( ) ;
// sonsuza dek hiçbir şey yapma:
için ( ;; )
;
}
}
See Also
- GPRSinşaatçı
- MKRNBattachGPRS()
- GSMClientinşaatçı
- ready()
- connect()
- beginWrite()
- write()
- endWrite()
- connected()
- read()
- available()
- peek()
- flush()
- stop()
- 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.