Bu özelliklerle birlikte, Robonio GSM Shield'ın oldukça işlevsel bir cihaz olduğunu görebiliriz:
- Pil (Batarya) ve Adaptör ile Kullanım: Hem pil hem de adaptör ile kullanılabilir.
- Çalışma Gerilimi: 7-12V veya 5V arasında bir çalışma aralığına sahiptir.
- Lipo Pil Desteği: Tek hücreli lipo pil ile bağımsız kullanım imkanı sunar.
- Kolay Kullanım: Kullanımı kolaydır.
- GSM Kütüphanesi Desteği: Arduino projelerinde GSM iletişimini sağlamak için kütüphane desteği sunar.
- Türkçe İçerik: Kullanım kılavuzu ve belgeler Türkçe olabilir.
- 2G Bağlantı Desteği: Sadece 2G bağlantıya izin veren sim kartlar ve operatörlerle çalışır.
- IMEI Kayıtlı: IMEI numarası kayıtlıdır.
- Nano Sim Desteği: Nano SIM kartlarını destekler.
- Arduino Uyumlu: Orijinal ve klon Arduino modelleriyle uyumludur.
- Diğer Geliştirme Kartları ile Kullanım: Raspberry Pi, STM32 gibi diğer geliştirme kartlarıyla da kullanılabilir.
- Otomatik Lojik Seviye Algılama: 5V ve 3.3V ile çalışan geliştirme kartlarını destekler.
- Güç Bağlantısı Tercihleri: Farklı güç bağlantı seçenekleri sunar.
- Şarj Yeteneği: Lipo/lion pilleri şarj edebilme özelliği vardır.
- Düşük Güç Tüketimi: Düşük güç tüketimi ile çalışır.
- Sim Kart Koruması: Sim kartı koruma özelliği bulunur.
- Dahili Mikrofon: Dahili mikrofonu vardır.
- Harici Mikrofon ve Hoparlör Çıkışı: Harici mikrofon ve hoparlör çıkışı sağlar.
- Sim Kart Algılama: Sim kartı takıldığında veya çıkarıldığında algılama yapabilir.
- Açma/Kapama Düğmesi: GSM için açma/kapama düğmesi bulunur.
- 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.