Soru:
SoftwareSerial olmadan GSM kalkanı için SerialGSM
user1584421
2014-06-23 14:40:03 UTC
view on stackexchange narkive permalink

SerialGSM, GSM kalkanlarını basitleştirmek için bir kitaplıktır.

Bu, SMS göndermek için örnek koddur:

  #include <SerialGSM.h> # include <SoftwareSerial.h>SerialGSM hücresi (2 , 3); void setup () {Serial.begin (9600); hücre.begin (9600); cell.Verbose (doğru); cell.Boot (); cell.FwdSMS2Serial (); hücre.Rcpt ("+ 972123456789"); cell.Message ("merhaba dünya"); cell.SendSMS ();} void döngü () {if (cell.ReceiveSMS ()) {Serial.println (cell.Message ()); cell.DeleteAllSMS (); }}  

Gördüğünüz gibi, seri yazılım kullanıyor.

Bunu okul tezim için kullanmayı düşünüyorum, ancak bir kalkan kullanıyorum, bu yüzden kazandım Yazılım Serisini kullanmamak.

Beni rahatsız eden bu satır

  SerialGSM cell (2,3);  

benim durumum, bunu böyle mi beyan etmeliyim ?:

  SerialGSM cell (0,1); 

Yoksa seri ile çatışmalar mı olacak?

DÜZENLEME: Başka bir deyişle, SeralGSM nesnesini yazılım serisini değil donanım serisini kullanarak nasıl ilan ederim?

Iki yanıtlar:
Peter Bloomfield
2014-06-23 20:41:07 UTC
view on stackexchange narkive permalink

SerialGSM , SerialGSM.h başlığındaki sınıf bildiriminden de görebileceğiniz gibi, yazılım serisiyle çalışmak üzere tasarlanmıştır:

  class SerialGSM: public SoftwareSerial {...};  

Ne yazık ki, seri donanım kullanmak için değiştirmek göründüğünden daha karmaşık. Bunu yapabileceğiniz iki olası yol vardır:

  1. SoftwareSerial yerine HardwareSerial 'dan türetme. Bu size esneklik sağlar, ancak tüm doğru verileri HardwareSerial yapıcısına iletmeniz gerekir ki bu oldukça dağınıktır.

  2. Hiçbir şeyden türetmeyin. Global Serial nesnesini kullanın ve tüm seri işlev çağrılarını Serial.xxx () eşdeğerleriyle manuel olarak değiştirin. Bu muhtemelen daha kolaydır, ancak sizi belirli bir seri bağlantı noktasıyla sınırlar.

Her iki yaklaşım da oldukça fazla kodlama içerir, dolayısıyla önemsiz görevler değildir. SerialGSM 'nin şu anda hata ayıklama bilgilerini çıkarmak için global Serial nesnesini kullandığını da unutmamak önemlidir. Donanım serisine dönüştürmeden önce bunu kaldırmanız veya değiştirmeniz gerekir, aksi takdirde müdahale edebilir.

Çok teşekkürler! Tamam, durum buysa, Yazılım Seri modunda kullanabilirim. Şimdi de kullanmak istediğim bir GPS ünitem var. Bu, kalkanı takın ve SerailGSM kitaplığını kullanın ve ayrıca gps'i 0 bağlantı noktalarına takın (ve gps'in veri almasını istiyorsam 1) ve Serial.begin (4800) kullanın; seri alımları başlatmak için?
"SerialGSM" nin hata ayıklama bilgisini donanım serisine verdiğini unutmayın. Bu, TX donanımını GPS'inize bağlarsanız, muhtemelen yanlış gideceği anlamına gelir.
Tamam, o zaman başka bir yaklaşım, arduino'ların sms göndermeye hazır bir örneğini kullanmak olacaktır. mesele şu ki, SM5100B yonga seti ile bu kalkanı https://www.sparkfun.com/products/9607. SMS gönderiminin arduino örneğinin bu kalkanla çalışıp çalışmayacağını biliyor musunuz?
O kalkanı hiç kullanmadım, bu yüzden korkarım bilmiyorum. Görünüşe göre SparkFun bunun için kendi örnek kodlarına sahip: https://github.com/sparkfun/SM5100B_Cellular_Shield/blob/master/Firmware/Cellular_Shield_Passthrough_b/Cellular_Shield_Passthrough/Cellular_Shield_Passthrough.pde
user1584421
2014-06-24 20:41:16 UTC
view on stackexchange narkive permalink

Boşver, arduino 1.0.5'ten GSM SMS örneğiyle gittim (bunu içeren arduino IDE sürümünü bilmiyorum) ve iyi çalışıyor.

SerialGSM kullanmayı düşünüyorsanız kütüphane buna gerek yok!

DİKKAT: Arduino'nun kütüphanesinde, telefon numarasını bildirirken uluslararası formatı kullanmanız gerekir

(Sağladığınız bilgiler için bloomfield'e teşekkürler önceki cevap)



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...