Eğitimler
GSMExamplesReceiveVoiceCall
Bu çizim, bir GSM kalkanı ile donatılmış bir Arduino veya Genuino kartından sesli bir çağrı alır. Çağrı alındıktan ve bağlandıktan sonra, aranan numarayı gösterir ve telefonu kapatır. Bağlı aramayı dinlemek ve sesinizi iletmek için bir hoparlör ve mikrofon bağlamanız gerekir.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- Arduino + Telefonica GSM / GPRS Kalkanı
- Mikrofon ve hoparlör GSM kalkanına takılı
- SIM kart
Devre
Kod
İlk olarak, GSM kütüphanesini içe aktarın
#include <GSM.h>
SIM kartların işlevlerinin kilidini açan 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 GSMVoiceCall sınıfına ihtiyacınız olacak.
GSMVoiceCall vcs;
Gelen numarayı saklamak için bir karakter dizisi oluşturun:
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 ( "Sesli Çağrı Al" ) ;
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 ) ;
}
}
Modemin gelen aramaları kabul etmeye hazır olduğundan emin olmak için hangCall()
işlevini kullanın
vcs.hangCall();
Seri monitöre bazı bilgilerle setup
tamamlayın.
Seri . println ( "Çağrı bekleniyor." ) ;
}
loop
, program akışını kontrol etmek için bir switch
deyimi kullanın. getvoiceCallStatus()
çağrıldığında durumunu döndürür.
{
anahtarı ( vcs. getvoiceCallStatus ( ) )
{
getvoiceCallStatus()
işlevi IDLE_CALL
döndürürse, hiçbir şey olmaz.
kırmak ;
Eğer getvoiceCallStatus()
döndürür RECEIVINGCALL
, birisi seni çağırıyor. Gelen sayıyı oluşturduğunuz numtel
dizisine numtel
için retrieveCallingNumber()
numtel
kullanın ve seri monitöre yazdırın.
answerCall()
ses bağlantısını başlatmak için answerCall()
kullanın.
Seri . println ( "ÇAĞRI ALMA" ) ;
vcs. retrieveCallingNumber ( numtel , 20 ) ;
Seri . print ( "Sayı:" ) ;
Seri . println ( numtel ) ;
vcs. answerCall ( ) ;
kırmak ;
Aramayı cevapladıktan sonra, getvoiceCallStatus()
, TALKING
getvoiceCallStatus()
döndürür. Çizim, yeni satır karakterinin hangCall()
tetiklemesini ve bağlantıyı sonlandırmasını hangCall()
.
switch
ifadesini kapatın.
Seri . println ( "TALKING. Kesilecek satırı girin." ) ;
iken (Seri.) (okuma! = '\ n')
gecikme ( 100 ) ;
vcs. hangCall ( ) ;
Seri . println ( "HANG. Bekleyen Çağrı." ) ;
kırmak ;
}
loop
ile devam etmeden önce küçük bir gecikme ekleyin:
}
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.
Çizimin tamamı aşağıdadır.
Sesli Çağrı Alma
Bu çizim, Arduino GSM kalkanı için sesli çağrılar alır,
arayan numarayı görüntüler, birkaç saniye bekler ve telefonu kapatır.
Devre:
* GSM kalkanı
* Ses devresi. GSM kalkanı başlangıç kılavuzuna başvurun
http://www.arduino.cc/en/Guide/ArduinoGSMShield#toc11 adresinde
* Sesli aramaları kabul edebilen SIM kart
Ses devresi olmadan çağrı bağlanır, ancak ses göndermez veya almaz
Mart 2012'de oluşturuldu
ile Javier Zorzano
Bu örnek kamu malıdır.
http: egitim.aspx e = GSMExamplesReceiveVoiceCall
* /
// GSM kütüphanesini dahil et
#include <GSM.h>
// PIN numarası
#define PINNUMBER ""
// kütüphane örneğini başlat
GSM gsmAccess ;
GSMVoiceCall vcs ;
// Gelen aramanın numarasını tutmak için dizi
karakter sayısı [ 20 ] ;
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 ( "Sesli Çağrı Al" ) ;
// 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 ) ;
}
}
// Bu modemin gelen olayları doğru bir şekilde raporlamasını sağlar
vcs. hangCall ( ) ;
Seri . println ( "Arama bekleniyor" ) ;
}
void loop ( ) {
// Sesli aramanın durumunu kontrol etme
switch ( vcs. getvoiceCallStatus ( ) ) {
case IDLE_CALL : // Hiçbir şey olmuyor
kırmak ;
case RECEIVINGCALL : // Evet! Birisi bizi arıyor
Seri . println ( "ÇAĞRI ALMA" ) ;
// Aranan numarayı al
vcs. retrieveCallingNumber ( numtel , 20 ) ;
// Aranan numarayı yazdır
Seri . print ( "Sayı:" ) ;
Seri . println ( numtel ) ;
// Aramayı cevapla, aramayı oluştur
vcs. answerCall ( ) ;
kırmak ;
case TALKING : // Bu durumda çağrı yapılır
Seri . println ( "KONUŞMA. Telefonu kapatmak için enter tuşuna basın." ) ;
while ( Serial . read ( ) ! = ' \ n ' ) {
gecikme ( 100 ) ;
}
vcs. hangCall ( ) ;
Seri . println ( " Telefonu kapatıp bir sonraki çağrıyı beklerken." ) ;
kırmak ;
}
gecikme ( 1000 ) ;
}
See Also
- GSMinşaatçı
- GSM.begin()
- GSM.shutdown()
- GSMVoiceCallinşaatçı
- getVoiceCallStatus()
- ready()
- voiceCall()
- answerCall()
- hangCall()
- retrieveCallingNumber()
- 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.
- 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.
- GSMExamplesWebClient- Arduino.cc ana sayfasına bağlanın ve içindekileri seri monitör penceresinde yazdırın.
- GSMToolsTestGPRS- Verilen APN ve kimlik bilgileriyle GPRS üzerinden internete erişmeye çalışır.