Robonio GSM Shield: Nedir ve Nasıl Kullanılır?

Robonio GSM Shield Nedir?

Robonio GSM Shield, Arduino tabanlı projeler için bir GSM iletişim modülüdür. Bu kalkan, Arduino ile GSM ağlarına bağlanmanızı ve SMS gönderme, arama yapma, veri iletişimi ve diğer GSM işlevlerini gerçekleştirmenizi sağlar. GSM Shield, Arduino'ya takılarak, Arduino'nun dijital ve analog pinlerini kullanarak GSM iletişimini sağlar. Bu, Arduino projelerine cep telefonu ağı üzerinden iletişim özelliği eklemek isteyenler için ideal bir çözümdür.

Robonio GSM Teknik Özellikleri

Bu özelliklerle birlikte, Robonio GSM Shield'ın oldukça işlevsel bir cihaz olduğunu görebiliriz:

  1. Pil (Batarya) ve Adaptör ile Kullanım: Hem pil hem de adaptör ile kullanılabilir.
  2. Çalışma Gerilimi: 7-12V veya 5V arasında bir çalışma aralığına sahiptir.
  3. Lipo Pil Desteği: Tek hücreli lipo pil ile bağımsız kullanım imkanı sunar.
  4. Kolay Kullanım: Kullanımı kolaydır.
  5. GSM Kütüphanesi Desteği: Arduino projelerinde GSM iletişimini sağlamak için kütüphane desteği sunar.
  6. Türkçe İçerik: Kullanım kılavuzu ve belgeler Türkçe olabilir.
  7. 2G Bağlantı Desteği: Sadece 2G bağlantıya izin veren sim kartlar ve operatörlerle çalışır.
  8. IMEI Kayıtlı: IMEI numarası kayıtlıdır.
  9. Nano Sim Desteği: Nano SIM kartlarını destekler.
  10. Arduino Uyumlu: Orijinal ve klon Arduino modelleriyle uyumludur.
  11. Diğer Geliştirme Kartları ile Kullanım: Raspberry Pi, STM32 gibi diğer geliştirme kartlarıyla da kullanılabilir.
  12. Otomatik Lojik Seviye Algılama: 5V ve 3.3V ile çalışan geliştirme kartlarını destekler.
  13. Güç Bağlantısı Tercihleri: Farklı güç bağlantı seçenekleri sunar.
  14. Şarj Yeteneği: Lipo/lion pilleri şarj edebilme özelliği vardır.
  15. Düşük Güç Tüketimi: Düşük güç tüketimi ile çalışır.
  16. Sim Kart Koruması: Sim kartı koruma özelliği bulunur.
  17. Dahili Mikrofon: Dahili mikrofonu vardır.
  18. Harici Mikrofon ve Hoparlör Çıkışı: Harici mikrofon ve hoparlör çıkışı sağlar.
  19. Sim Kart Algılama: Sim kartı takıldığında veya çıkarıldığında algılama yapabilir.
  20. Açma/Kapama Düğmesi: GSM için açma/kapama düğmesi bulunur.
  21. Dahili Push Buton ve LED: Kullanıcıya tanımlı dahili push buton ve LED sunar.

Robonio GSM Shield ile DMTF Röle Kontrolü Örneği

#include <RobonioGSM.h>
#include <SoftwareSerial.h> // SoftwareSerial kütüphanesini ekledik
RobonioGSM Robonio;

#define TelefonNumarasi "+90.........." // Telefon numarası
#define ROLE_SAYISI 8 // Kontrol edilecek röle sayısı

// Her bir röle için pin numaraları
int rolePinleri[ROLE_SAYISI] = { 2, 3, 4, 5, 6, 7, 8, 9 };

SoftwareSerial Robonio_SIM(10, 11); // SoftwareSerial nesnesi oluşturdum

void setup() {
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
delay(3000);
digitalWrite(7, LOW);
Robonio.start();
delay(2000);
Serial.begin(9600);
delay(2000);
Robonio.allSmsDelete();
delay(2000);
Robonio_SIM.begin(9600); // SoftwareSerial'i başlattım
Robonio_SIM.println("ATS0=1");
delay(2000);
Robonio_SIM.println("AT+DDET=1");
delay(2000);
Serial.println("Sistem çalışıyor!");
Robonio.smsSend(TelefonNumarasi, "Sistem başlatıldı!");

// Röle pinleri çıkış olarak ayarlanır
for (int i = 0; i < ROLE_SAYISI; i++) {
pinMode(rolePinleri[i], OUTPUT);
}
}

void loop() {
String gelenKomut = "";
if (Robonio_SIM.available()) {
while (Robonio_SIM.available()) {
delay(13);
char karakter = Robonio_SIM.read();
gelenKomut += karakter;
}
Serial.print("Gelen komut: ");
Serial.println(gelenKomut);

// Gelen komutu kontrol edip ilgili röleyi aç veya kapat - > Gelen sadece rakamsa ilgili röleyi açar 1#...8# gibiyse ilgili röleyi kapat
if (gelenKomut.length() == 1 && String(gelenKomut) >= "1" && String(gelenKomut) <= "8") {
int roleIndeksi = gelenKomut.toInt() - 1; // Röle indeksi (0'dan başlar)
roleDurumunuDegistir(roleIndeksi);
} else if (gelenKomut.length() == 2 && gelenKomut.charAt(1) == '#' && gelenKomut >= "1#" && gelenKomut <= "8#") {
int roleIndeksi = gelenKomut.charAt(0) - '1'; // Röle indeksi (0'dan başlar)
roleDurumunuDegistir(roleIndeksi);
}
}
}

// Belirli bir röleyi açmak veya kapatmak için kullanılan fonksiyon
void roleDurumunuDegistir(int roleIndeksi) {
digitalWrite(rolePinleri[roleIndeksi], !digitalRead(rolePinleri[roleIndeksi])); // Röleyi aç veya kapat
String mesaj = "Role ";
mesaj += String(roleIndeksi + 1);
mesaj += digitalRead(rolePinleri[roleIndeksi]) ? " açıldı" : " kapatıldı";
Robonio.smsSend(TelefonNumarasi, mesaj.c_str()); // Röle durum mesajı gelmesini istemiyorsan bu satırı yorum yap
}

Robonio GSM Shield Kütüphanesini buradan indirebilirsiniz.

Benzer Konular