Arduino ve SIM800C GSM Kontrol Kartı
ArduGSM
ATmega328P ve SIM800C tabanlı kontrol kartı. İki röle, Micro SIM ve USB Type-C ile uzaktan kontrol ve GSM/GPRS projeleri geliştirin.
- Arduino UNOATmega328P
- 2G GSMSIM800C
- 2 röleCihaz kontrolü
- USB Type-CArduino IDE
Stokta yok
- PayTR ile güvenli ödeme
- Teknik dokümantasyon ve örnek kodlar
Ürün seçimi ve kapsamı
İhtiyacınıza uygun sürümü ve kurulum gereksinimlerini değerlendirin.
Paket, kurulum ve hizmet kapsamı
Geliştirme kartı
Kartın bağlantı ve besleme gereksinimleri teknik bilgiler bölümündedir. Anten, SIM, kablo, adaptör ve harici denetleyicinin paket kapsamını satın almadan önce teyit edin.
Projenize hazırlık
Pin düzenini, besleme ve lojik seviyesini kontrol edin. Şebeke veya anten bağlantısı gereken kartlarda operatör ve RF gereksinimlerini de değerlendirin.
Arduino ve SIM800C GSM Kontrol Kartı
Arduino, GSM ve röle kontrolü bir arada.
ArduGSM; ATmega328P tabanlı Arduino UNO mimarisi, SIM800C GSM/GPRS modülü, iki röle, buzzer, mikrofon ve güç katını tek kartta birleştiren tümleşik bir kontrol ve haberleşme platformudur. Type-C USB üzerinden programlanabilir ve kullanılabilir Arduino pinleri kart üzerinde dışarı alınmıştır.
- Mikrodenetleyici · ATmega328P (Arduino UNO uyumlu)
- Röle · 2 adet
- Koruma · Ters polarite ve TVS koruma
- USB Bağlantısı · USB Type-C (programlama)
ATmega328P · SIM800C · 2G GSM/GPRSDonanım ve bağlantılar
Teknik Özellikler
- Mikrodenetleyici
- ATmega328P (Arduino UNO uyumlu)
- Dahili Bellek
- 32 KB Flash, 2 KB SRAM, 1 KB EEPROM
- Haberleşme Modülü
- SIM800C
- Hücresel Teknoloji
- 2G GSM/GPRS
- Röle
- 2 adet
- Buzzer
- 1 adet
- Kontrol Pinleri
- D7 Buzzer, D8 Röle 1, D9 Röle 2
- SIM800C Seri Hattı
- D10 SIM TX → Arduino RX, D11 SIM RX ← Arduino TX
- SIM Kart
- Micro SIM soketi (TVS korumalı)
- Anten Bağlantısı
- SMA, 3 dBi 90° anten
- Ses
- Dahili mikrofon ve hoparlör konnektörü
- USB Bağlantısı
- USB Type-C (programlama)
- Besleme Gerilimi
- 12 V DC
- Besleme Akımı
- 1 A (12 V DC adaptör)
- Regülatör
- Dahili LM2596S, 3 A
- Koruma
- Ters polarite ve TVS koruma
- Kart Boyutu
- 97 × 85 mm
Geliştirme kaynakları
Ürün Dokümantasyonu
- PDFPDF’yi aç ↗
Teknik Dokümantasyon ve Kullanım Kılavuzu
Pin bağlantıları, güç gereksinimleri, koruma devreleri ve montaj detaylarını içeren tam teknik doküman
PDF · 1,1 MB - GitHub ↗
Örnek Kodlar ve AT Komutları
SMS, arama, röle ve GPRS için Arduino örnekleri, SIM800C AT komut başvurusu ve teknik doküman
İlk bağlantıdan veri aktarımına
Hızlı başlangıç ve kod örnekleri
- 1
Beslemeyi bağlayın
GSM ve röle kullanımı için 12 V DC / 1 A harici adaptör bağlayın.
- 2
SIM ve anteni takın
Micro SIM ve SMA anten kullanın. Operatörünüzün bölgede 2G hizmetini kontrol edin.
- 3
Programı yükleyin
USB Type-C üzerinden Arduino IDE ile ATmega328P’yi programlayın.
- 4
Kontrolü deneyin
D10/D11 seri hattını ve D8/D9 rölelerini GitHub örnekleriyle test edin.
Programlama ve bağlantı ayrıntıları
ATmega328P, Type-C USB üzerinden Arduino IDE ile programlanabilir.
SIM800C seri haberleşmesi D10 alıcı ve D11 verici pinleri üzerinden kullanılmalıdır.
USB bağlantısı tek başına SIM800C bölümünü beslemez; GSM/GPRS kullanımı için 12 V DC besleme gereklidir.
SIM800C 2G altyapısını kullanır; kullanılacağı bölgede ve operatörde 2G hizmetinin mevcut olduğu doğrulanmalıdır.
Sabit pin atamaları: D7 buzzer (HIGH yapıldığında ses verir), D8 Röle 1 ve D9 Röle 2 (HIGH yapıldığında röle çeker), D10 SIM800C TX hattı (Arduino tarafında SoftwareSerial RX), D11 SIM800C RX hattı (Arduino tarafında SoftwareSerial TX). Yazılım geliştirirken bu pinlerin başka işlerde kullanılmamasına dikkat edin.
Harici 12 V / 1 A DC adaptör zorunludur: SIM800C şebekeye ilk kayıt ve GPRS veri iletimi sırasında anlık 2 A'e kadar akım çeker, bunu kart üzerindeki 3 A'lik regülatör karşılar. Yalnız USB takılıyken ATmega328P programlanabilir ama GSM modülü çalışmaz ve röleler tetiklenmez; SMS, arama ve röle testleri için adaptör takılı olmalıdır.
Kartta Micro SIM soketi ve harici anten için SMA konnektör bulunur; şebekeye bağlanmadan önce SMA anteni takın. Besleme girişinde ters polarite koruması, SIM hattında TVS/ESD koruması vardır.
AT komut terminali
Örneği inceleyin; bağlantı ve yapılandırma ayrıntıları aşağıdaki açıklamada yer alır.
/*
* ArduGSM — 01 AT Komut Terminali
*
* Bilgisayardaki Seri Monitörden yazdığınız AT komutlarını SIM800C'ye iletir,
* modemin cevaplarını geri gösterir. Yeni bir SIM kartı, anteni veya şebeke
* kapsamasını denemenin en hızlı yolu budur.
*
* Kullanım:
* 1. Kartı 12 V / 1 A adaptörle besleyin (yalnız USB ile SIM800C çalışmaz),
* SMA anteni ve Micro SIM'i takın.
* 2. Arduino IDE → Araçlar → Kart: "Arduino Uno", Port: kartın COM portu.
* 3. Yükleyin, Seri Monitörü 115200 baud ve "Both NL & CR" ile açın.
* 4. AT yazın → OK görmelisiniz. Diğer komutlar için docs/AT_KOMUTLARI.md.
*
* Bağlantılar (kart üzerinde sabit):
* D10 ← SIM800C TX (SoftwareSerial RX)
* D11 → SIM800C RX (SoftwareSerial TX)
*
* EN: Bridges the USB Serial Monitor (115200 baud) to the SIM800C (9600 baud)
* so you can type AT commands directly. Power the board with 12 V.
*/
#include <SoftwareSerial.h>
#define GSM_RX_PIN 10 // SIM800C TX hattı
#define GSM_TX_PIN 11 // SIM800C RX hattı
#define PC_BAUD 115200
#define GSM_BAUD 9600 // SoftwareSerial için güvenilir hız; SIM800C otomatik baud algılar
SoftwareSerial gsm(GSM_RX_PIN, GSM_TX_PIN);
void setup() {
Serial.begin(PC_BAUD);
gsm.begin(GSM_BAUD);
delay(1000);
Serial.println(F("ArduGSM AT terminali hazir. AT yazip Enter'a basin."));
// SIM800C otomatik baud algılama yapar: ilk birkaç "AT" hızı eşler.
for (uint8_t i = 0; i < 5; i++) {
gsm.println(F("AT"));
delay(300);
}
}
void loop() {
// Modem → bilgisayar
while (gsm.available()) {
Serial.write(gsm.read());
}
// Bilgisayar → modem
while (Serial.available()) {
gsm.write(Serial.read());
}
}Örneğin açıklaması ve bağlantı ayrıntıları
Seri Monitörden yazdığınız AT komutlarını SIM800C'ye iletir ve modemin cevaplarını gösterir; yeni bir SIM kartı, anteni veya şebeke kapsamasını denemenin en hızlı yolu. Kartı 12 V / 1 A adaptörle besleyin, Seri Monitörü 115200 baud ve "Both NL & CR" ile açın; AT yazınca OK görmelisiniz.
Röle ve buzzer testi
Örneği inceleyin; bağlantı ve yapılandırma ayrıntıları aşağıdaki açıklamada yer alır.
/*
* ArduGSM — 02 Röle ve Buzzer Testi
*
* Kart üstündeki iki röleyi ve buzzer'ı sırayla çalıştırır. GSM gerekmez;
* kartın ilk kurulumunda donanımı kontrol etmek için kullanın.
*
* Not: Röleler yalnız 12 V / 1 A adaptör takılıyken çeker. Yalnız USB ile
* çalışırken röle LED'leri yanmaz, bu bir arıza değildir.
*
* Bağlantılar (kart üzerinde sabit):
* D7 → Buzzer (HIGH = ses)
* D8 → Röle 1 (HIGH = röle çeker)
* D9 → Röle 2 (HIGH = röle çeker)
*
* EN: Cycles relay 1, relay 2 and the buzzer. Relays need the 12 V supply.
*/
#define BUZZER_PIN 7
#define ROLE1_PIN 8
#define ROLE2_PIN 9
void bip(uint16_t sure_ms) {
digitalWrite(BUZZER_PIN, HIGH);
delay(sure_ms);
digitalWrite(BUZZER_PIN, LOW);
}
void setup() {
Serial.begin(115200);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(ROLE1_PIN, OUTPUT);
pinMode(ROLE2_PIN, OUTPUT);
digitalWrite(ROLE1_PIN, LOW);
digitalWrite(ROLE2_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
Serial.println(F("ArduGSM role ve buzzer testi"));
}
void loop() {
Serial.println(F("Role 1 ON"));
digitalWrite(ROLE1_PIN, HIGH);
bip(100);
delay(1500);
digitalWrite(ROLE1_PIN, LOW);
Serial.println(F("Role 2 ON"));
digitalWrite(ROLE2_PIN, HIGH);
bip(100);
delay(1500);
digitalWrite(ROLE2_PIN, LOW);
Serial.println(F("Buzzer"));
bip(400);
delay(2000);
}Örneğin açıklaması ve bağlantı ayrıntıları
Kart üstündeki iki röleyi ve buzzer'ı sırayla çalıştırır; GSM gerekmez, ilk kurulumda donanımı kontrol etmek için kullanılır. Röleler yalnız 12 V adaptör takılıyken çeker; yalnız USB ile röle LED'lerinin yanmaması arıza değildir.
SMS gönderme
Örneği inceleyin; bağlantı ve yapılandırma ayrıntıları aşağıdaki açıklamada yer alır.
/*
* ArduGSM — 03 SMS Gönder
*
* Kart açıldığında modemi hazırlar (SIM, şebeke) ve TELEFON_NO'ya bir SMS gönderir.
* Her adımın sonucu Seri Monitörde (115200 baud) görünür.
*
* Ayarlar: TELEFON_NO'yu uluslararası biçimde yazın (+90...).
* Gereken: 12 V / 1 A adaptör, SMA anten, SMS gönderebilen Micro SIM.
*
* Bağlantılar (kart üzerinde sabit): D10 ← SIM800C TX, D11 → SIM800C RX
*
* EN: Prepares the modem and sends one SMS to TELEFON_NO (international format).
*/
#include <SoftwareSerial.h>
// ─────────── KULLANICI AYARLARI ───────────
const char TELEFON_NO[] = "+905XXXXXXXXX"; // SMS gidecek numara
const char MESAJ[] = "ArduGSM'den merhaba!"; // Türkçe karakter kullanmayın (GSM 7-bit)
// ──────────────────────────────────────────
#define GSM_RX_PIN 10
#define GSM_TX_PIN 11
#define BUZZER_PIN 7
SoftwareSerial gsm(GSM_RX_PIN, GSM_TX_PIN);
// Komutu gönderir, OK / ERROR (ya da "bitis") gelene veya süre dolana kadar cevabı toplar.
String at(const __FlashStringHelper* komut, uint32_t sure_ms = 2000, const char* bitis = "OK") {
while (gsm.available()) gsm.read();
gsm.println(komut);
String cevap;
uint32_t t = millis();
while (millis() - t < sure_ms) {
while (gsm.available()) cevap += (char)gsm.read();
if (cevap.indexOf(bitis) >= 0 || cevap.indexOf(F("ERROR")) >= 0) break;
}
cevap.trim();
Serial.print(F(">> ")); Serial.print(komut); Serial.print(F(" | ")); Serial.println(cevap);
return cevap;
}
// Modemi kullanıma hazırlar: AT → SIM hazır → şebeke kaydı.
bool modemHazirla() {
bool cevapVar = false;
for (uint8_t i = 0; i < 10 && !cevapVar; i++) { // otomatik baud eşleme + açılış beklemesi
cevapVar = at(F("AT"), 1000).indexOf(F("OK")) >= 0;
}
if (!cevapVar) return false;
at(F("ATE0")); // komut yankısını kapat
at(F("AT+CMEE=2")); // hataları metin olarak ver
uint32_t t = millis();
while (at(F("AT+CPIN?")).indexOf(F("READY")) < 0) { // SIM hazır mı?
if (millis() - t > 20000) return false;
delay(1000);
}
t = millis();
for (;;) { // şebeke kaydı: 0,1 = ev, 0,5 = dolaşım
String r = at(F("AT+CREG?"));
if (r.indexOf(F(",1")) >= 0 || r.indexOf(F(",5")) >= 0) break;
if (millis() - t > 60000) return false;
delay(2000);
}
at(F("AT+CSQ")); // sinyal gücü: 10 ve üzeri yeterli
return true;
}
bool smsGonder(const char* numara, const char* metin) {
at(F("AT+CMGF=1")); // metin modu
at(F("AT+CSCS=\"GSM\""));
while (gsm.available()) gsm.read();
gsm.print(F("AT+CMGS=\""));
gsm.print(numara);
gsm.println(F("\""));
gsm.setTimeout(5000);
if (!gsm.find((char*)">")) { // modem metin için ">" istemini verir
Serial.println(F("[HATA] Modem '>' istemini vermedi."));
return false;
}
gsm.print(metin);
gsm.write(26); // Ctrl+Z: mesajı gönder
String cevap;
uint32_t t = millis();
while (millis() - t < 60000) { // gönderim 60 sn'ye kadar sürebilir
while (gsm.available()) cevap += (char)gsm.read();
if (cevap.indexOf(F("+CMGS:")) >= 0 || cevap.indexOf(F("ERROR")) >= 0) break;
}
Serial.print(F("SMS cevabi: ")); Serial.println(cevap);
return cevap.indexOf(F("+CMGS:")) >= 0;
}
void setup() {
Serial.begin(115200);
gsm.begin(9600);
pinMode(BUZZER_PIN, OUTPUT);
delay(3000); // SIM800C açılışı
Serial.println(F("=== ArduGSM SMS ornegi ==="));
if (!modemHazirla()) {
Serial.println(F("[HATA] Modem hazir degil: 12 V besleme, anten, SIM ve 2G kapsamasini kontrol edin."));
return;
}
if (smsGonder(TELEFON_NO, MESAJ)) {
Serial.println(F("SMS gonderildi."));
digitalWrite(BUZZER_PIN, HIGH); delay(150); digitalWrite(BUZZER_PIN, LOW);
} else {
Serial.println(F("[HATA] SMS gonderilemedi."));
}
}
void loop() {}Örneğin açıklaması ve bağlantı ayrıntıları
Modemi hazırlar (SIM ve şebeke kaydı) ve TELEFON_NO'ya bir SMS gönderir; her adımın sonucu Seri Monitörde görünür. Numarayı uluslararası biçimde (+90…) yazın, mesajda Türkçe karakter kullanmayın. SMS ile röle kontrolü, arama ile tetikleme ve GPRS örnekleri GitHub deposunda.
Sık sorulanlar
Başlamadan önce
Yalnız USB ile çalışır mı?
USB ile ATmega328P programlanabilir. GSM modülü ve röleler için harici 12 V DC besleme gerekir.
4G SIM kartla 4G bağlantı sağlar mı?
Hayır. SIM800C, 2G GSM/GPRS modülüdür. Kullanılacak SIM ve operatörün 2G hizmeti desteklemesi gerekir.
Hangi SIM kart kullanılır?
TVS korumalı Micro SIM soketi bulunur.
Röle ve buzzer hangi pinlerde?
D7 buzzer, D8 Röle 1 ve D9 Röle 2 için ayrılmıştır. Bu çıkışlar HIGH seviyesinde etkinleşir.





