Eğitimler
GSMExamplesWebClient
Bu çizim, bir Arduino veya Genuino kartını GSM kalkanı ü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 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 ""
Bağlanacağınız GPRS ağı hakkında bilgi içeren bir dizi sabit tanımlayın. Erişim Noktası Adı (APN), oturum açma adı ve parola gerekir. Bu bilgileri edinmek için en güncel bilgiler için şebeke sağlayıcınıza başvurun. Bu sayfada çeşitli operatör ayarları hakkında bazı bilgiler var, ancak güncel olmayabilir.
#define GPRS_LOGIN "login"
#define GPRS_PASSWORD "password"
Kullanacağınız sınıfların örneklerini başlatın. GSM, GPRS ve GSMClient sınıflarına ihtiyacınız olacak.
GPRS gpr'leri ;
GSM gsmAccess ;
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:
gsmAccess.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. Bu, daha önce bildirdiğiniz APN, oturum açma adı ve parolayı gerektirir. 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 gsmAccess()
, gsmAccess()
GSM_READY
. 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 )
( gprs. attachGPRS ( GPRS_APN , GPRS_LOGIN , GPRS_PASSWORD ) == GPRS_READY ) )
notConnected = yanlış ;
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://arduino.cc HTML'nin 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 GSM kalkanıyla bir web sitesine bağlanır. özellikle,
bu örnekte "http://www.arduino.cc/asciilogo.txt" URL'si indirilir ve
Seri monitöre yazdırır.
Devre:
* Arduino'ya bağlı GSM kalkanı
* Veri planlı SIM kart
oluşturuldu 8 Mar 2012
tarafından Tom Igoe
http: egitim.aspx e = GSMExamplesWebClient
* /
// kütüphaneler
#include <GSM.h>
// PIN numarası
#define PINNUMBER ""
// APN verileri
#define GPRS_APN "GPRS_APN" // GPRS APN'nizi değiştirin
#define GPRS_LOGIN "login" // GPRS giriş bilgilerinizle değiştirin
#define GPRS_PASSWORD "şifre" // GPRS şifrenizle değiştirin
// kütüphane örneğini başlat
GSMClient istemcisi ;
GPRS gpr'leri ;
GSM gsmAccess ;
// URL, yol ve bağlantı noktası (örneğin: arduino.cc)
char server [ ] = "arduino.cc" ;
char path [ ] = "/asciilogo.txt" ;
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
bool notConnected = true ;
// Modemi GSM.begin () ile başlattıktan sonra
// kalkanı APN, oturum açma adı ve parola ile GPRS şebekesine ekleyin
while ( notConnected ) {
eğer ( ( gsmAccess. başlar ( PINNUMBER ) == GSM_READY ) &
( gprs. attachGPRS ( GPRS_APN , GPRS_LOGIN , GPRS_PASSWORD ) == GPRS_READY ) ) {
notConnected = yanlış ;
} 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 ( ) ) {
char c = istemci. read ( ) ;
Seri . baskı ( c ) ;
}
// 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çı
- attachGPRS()
- GSMClientinşaatçı
- ready()
- connect()
- beginWrite()
- write()
- endWrite()
- connected()
- read()
- available()
- peek()
- flush()
- stop()
- 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.
- GSMExamplesMakeVoiceCall- Mikrofon ve hoparlör ile sesli arama nasıl yapılır.
- GSMExamplesReceiveVoiceCall- Çağrı alınır ve bağlanır, aranan numara seri monitörde gösterilir ve çağrı kapatılır.
- GSMExamplesReceiveSMS- SMS mesajı nasıl alınır.
- GSMExamplesSendSMS- Seri monitörden bir SMS giriş numarası ve metni nasıl gönderilir.
- GSMExamplesWebServer- Bir istemciden istek alındığında Analog girişlerde okunan değeri geri gönderen bir web sunucusu.
- GSMToolsTestGPRS- Verilen APN ve kimlik bilgileriyle GPRS üzerinden internete erişmeye çalışır.