İçeriğe geç

4G LTE + GPS Geliştirme Kartı

CAVLI GSM/LTE Devboard Dahili GPS

Cavli C16QS tabanlı, dahili GPS destekli kompakt 4G LTE geliştirme kartı. UART üzerinden mikrodenetleyicinize bağlanın; hücresel haberleşme ve konum bilgisini tek kartta kullanın.

  • 4G LTECavli C16QS
  • Dahili GPSKonum desteği
  • Nano SIMKart üstü soket
  • UARTRX / TX
₺1.140,00

Stokta: 2 adet

  • 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.

CAVLI GSM/LTE

Hücresel haberleşme odaklı projeler

4G LTE ve UART arayüzü; LTE ve opsiyonel GNSS anten bağlantıları.

Diğer sürümü incele →

CAVLI GSM/LTE Dahili GPSBu ürün

Haberleşme ve konum verisi gereken projeler

4G LTE ve UART ile birlikte dahili GPS (GNSS) konum desteği.

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.

Projenize hücresel bağlantı ekleyin

Haberleşme ve konum, tek kartta.

Dahili GPS desteğiyle konum bilgisini 4G LTE haberleşmeyle birleştirin. UART arayüzü üzerinden mevcut mikrodenetleyicinize bağlanarak araç takip, telemetri ve konum tabanlı IoT projeleri geliştirin.

  • Cavli C16QS ile 4G LTE haberleşme
  • Dahili GPS (GNSS) konum desteği
  • UART (RX/TX) ile mikrodenetleyici bağlantısı
  • Nano SIM soketi, LTE ve GNSS anten bağlantıları
CAVLI GSM/LTE Devboard Dahili GPS4G LTE · GPS / GNSS · UART
4G LTE tabanlı IoT cihazları
Araç takip sistemleri
GNSS destekli konum tabanlı sistemler
Telemetri ve uzaktan veri iletimi

Donanım ve bağlantılar

Teknik Özellikler

Haberleşme Modülü
Cavli C16QS
Hücresel Teknoloji
4G / LTE
Konum
Dahili GPS (GNSS)
Kart Ölçüsü
38 x 41 mm
Arayüz
UART
Haberleşme Pinleri
TX, RX
Kontrol Pinleri
RST (aktif-düşük), PKY
Besleme / Referans
3V3, GND
Besleme Akımı
3V3 hattı, LTE veri pikleri için anlık en az 2A sağlamalı
Lojik Seviyesi
3.3V (5V toleranslı DEĞİL)
SIM Kart
Nano SIM soketi
Anten Bağlantıları
LTE, GNSS
Durum Göstergeleri
PWR, NET

Geliştirme kaynakları

Ürün Dokümantasyonu

  • PDF

    Teknik Dokümantasyon ve Kullanım Kılavuzu

    Dahili GPS'li sürüme özel; pin bağlantıları, AT komut rehberi, güç/voltaj gereksinimleri, LTE ve GNSS anten altyapısını içeren tam teknik doküman

    PDF · 1,5 MB
    PDF’yi aç ↗
  • AT Komutları ve Örnek Kod

    GPS (GNSS) dahil Cavli C16QS AT komut başvurusu ve HTTP örneği; iki CAVLI sürümü için ortak depo

    GitHub ↗

İlk bağlantıdan veri aktarımına

Hızlı başlangıç ve kod örnekleri

  1. 1

    Beslemeyi hazırlayın

    3V3 ve GND bağlantılarını yapın. Besleme, LTE veri pikleri için anlık en az 2 A sağlayabilmeli.

  2. 2

    UART hattını bağlayın

    Kart TX → denetleyici RX, kart RX → denetleyici TX. GND ortak olmalı; lojik seviyesi 3.3 V.

  3. 3

    SIM ve anteni takın

    Nano SIM kartı ve LTE antenini bağlayın. Pin ve kontrol ayrıntıları için teknik dokümanı kullanın.

  4. 4

    İlk bağlantıyı test edin

    AT ile iletişimi, AT+CPIN? ile SIM durumunu, AT+CSQ ile sinyal seviyesini kontrol edin.

Temel AT komutları ile ilk test

Seri bağlantıyı, SIM durumunu ve sinyal seviyesini kontrol ederek başlayın.

> AT
OK

> AT+CGMR
[Sürüm Bilgisi]
OK

> AT+CPIN?
+CPIN: READY
OK

> AT+CSQ
+CSQ: 24,99
OK
Örneğin açıklaması ve bağlantı ayrıntıları

Teknik dokümandaki temel AT komutları: Cavli C16QS modülünü seri terminal veya mikrodenetleyici üzerinden test etmek ve durumunu sorgulamak için kullanılır. AT haberleşmenin aktif olduğunu doğrular; AT+CGMR modülün firmware sürümünü döndürür; AT+CPIN? yanıtında +CPIN: READY SIM kartın doğru takıldığını ve PIN kilidinin aktif olmadığını gösterir; AT+CSQ şebeke sinyal gücünü sorgular (0-31 arası, örnekteki 24 iyi bir değerdir). Bağlantı: kart TX → denetleyici RX, kart RX → denetleyici TX, GND ortak; 3.3V lojik (5V denetleyicide seviye dönüştürücü şart).

LTE üzerinden HTTP GET (ESP32-C3, PlatformIO)

ESP32-C3 / PlatformIO örneği. Pinleri ve APN bilgisini projenize göre ayarlayın; modem üzerinden HTTP GET isteği gönderin.

/* ─────────────────────────────────────────────────────────────────────────────
 *  Cavli C16QS — AT komutlarıyla ilk bağlantı ve HTTP GET örneği
 *
 *  Akış:
 *    1) Modemi başlat (gerekiyorsa PWRKEY ile aç)
 *    2) SIM yuvası:  AT^SIMSWAP?   → 1 değilse  AT^SIMSWAP=1
 *    3) SIM hazır:   AT+CPIN?      → READY
 *    4) Şebeke:      AT+CEREG?     → kayıtlı
 *    5) İnternet:    AT+CGDCONT + AT+CGACT=1,1
 *    6) HTTP GET:    AT+HTTPURL / AT+HTTPREQUEST=GET → cevabı seriale bas
 *
 *  Donanım: ESP32-C3 + Cavli C16QS (modem UART1'de).
 * ───────────────────────────────────────────────────────────────────────────── */

#include <Arduino.h>

// ═════════════════════ KULLANICI AYARLARI (karta/SIM'e göre değiştirin) ══════════════════════
#define MODEM_TX_PIN      6                      // ESP TX → modem RX   (karta göre değişir)
#define MODEM_RX_PIN      5                      // ESP RX ← modem TX   (karta göre değişir)
#define MODEM_PWRKEY_PIN  0                      // PWRKEY GPIO         (karta göre değişir)
#define APN               "internet"             // operatör APN'i      (SIM'e göre değişir)
#define HTTP_URL          "http://example.com"   // istek atılacak adres
// ═════════════════════════════════════════════════════════════════════════════════════════════

// ── Sabit ayarlar (genelde değişmez) ─────────────────────────────────────────
#define MODEM_SERIAL      Serial1   // C16QS fabrika default UART hızı
#define MODEM_BAUD        115200
#define DEBUG_SERIAL      Serial     // USB/serial üzerinden log
#define DEBUG_BAUD        115200

// PWRKEY kartta invert transistörden geçiyor → GPIO HIGH = basılı.
// Transistörsüz bir kartta PRESS/RELEASE değerlerini ters çevirin.
#define MODEM_PWRKEY_PRESS    HIGH
#define MODEM_PWRKEY_RELEASE  LOW
#define MODEM_PWRKEY_ON_MS    500

// Zaman aşımları (ms)
#define TIMEOUT_AT_READY   20000
#define TIMEOUT_SIM        15000
#define TIMEOUT_NET_REG    30000
#define TIMEOUT_PDP_OPEN   30000
#define TIMEOUT_HTTP_SEND  30000

// ═════════════════════════════ AT yardımcıları ═══════════════════════════════

// Komutu gönderir, OK/ERROR gelene (ya da süre dolana) kadar cevabı okur ve döndürür.
String atSend(const char* cmd, uint32_t timeout_ms = 3000) {
    while (MODEM_SERIAL.available()) MODEM_SERIAL.read();
    MODEM_SERIAL.println(cmd);

    String resp;
    uint32_t t = millis();
    while (millis() - t < timeout_ms) {
        while (MODEM_SERIAL.available()) resp += (char)MODEM_SERIAL.read();
        if (resp.indexOf("OK") >= 0 || resp.indexOf("ERROR") >= 0) break;
        delay(10);
    }
    resp.trim();
    DEBUG_SERIAL.printf(">> %-28s | %s\n", cmd, resp.c_str());
    return resp;
}

// Belirli bir metin gelene kadar bekler (asenkron URC'ler için).
String atWaitFor(const char* token, uint32_t timeout_ms) {
    String resp;
    uint32_t t = millis();
    while (millis() - t < timeout_ms) {
        while (MODEM_SERIAL.available()) resp += (char)MODEM_SERIAL.read();
        if (resp.indexOf(token) >= 0) break;
        delay(10);
    }
    resp.trim();
    return resp;
}

// AT'ye OK gelene kadar yoklar.
bool waitReady(uint32_t timeout_ms) {
    uint32_t t = millis();
    while (millis() - t < timeout_ms) {
        if (atSend("AT", 1000).indexOf("OK") >= 0) return true;
        delay(500);
    }
    return false;
}

// PWRKEY açma darbesi (modem kapalıyken).
void pwrkeyPulse() {
    pinMode(MODEM_PWRKEY_PIN, OUTPUT);
    digitalWrite(MODEM_PWRKEY_PIN, MODEM_PWRKEY_RELEASE);
    delay(100);
    digitalWrite(MODEM_PWRKEY_PIN, MODEM_PWRKEY_PRESS);
    delay(MODEM_PWRKEY_ON_MS);
    digitalWrite(MODEM_PWRKEY_PIN, MODEM_PWRKEY_RELEASE);
}

// ═══════════════════════════════ Başlatma ════════════════════════════════════

// Modemi başlat: UART'ı aç, (gerekiyorsa) PWRKEY ile aç, AT'ye hazır olmasını bekle.
bool modemBegin() {
    MODEM_SERIAL.begin(MODEM_BAUD, SERIAL_8N1, MODEM_RX_PIN, MODEM_TX_PIN);
    delay(100);

    if (!waitReady(3000)) {                 // modem cevap vermiyorsa kapalı → aç
        DEBUG_SERIAL.println("[MODEM] PWRKEY ile açılıyor...");
        pwrkeyPulse();
    }
    return waitReady(TIMEOUT_AT_READY);
}

// ═══════════════════════════ Bağlantı adımları ═══════════════════════════════

// SIM yuvasını sorgula; 1 değilse 1 yap.
void simSwapCheck() {
    if (atSend("AT^SIMSWAP?").indexOf("1") < 0) {
        DEBUG_SERIAL.println("[SIM] Yuva 1'e alınıyor...");
        atSend("AT^SIMSWAP=1", 5000);
        delay(1000);
    }
}

// SIM hazır (CPIN READY) olana kadar bekle.
bool simReady() {
    uint32_t t = millis();
    while (millis() - t < TIMEOUT_SIM) {
        if (atSend("AT+CPIN?").indexOf("READY") >= 0) return true;
        delay(1000);
    }
    return false;
}

// Şebekeye kayıt (CEREG: x,1 = home, x,5 = roaming) olana kadar bekle.
bool networkRegistered() {
    uint32_t t = millis();
    while (millis() - t < TIMEOUT_NET_REG) {
        String r = atSend("AT+CEREG?");
        if (r.indexOf(",1") >= 0 || r.indexOf(",5") >= 0) return true;
        delay(2000);
    }
    return false;
}

// APN'i ayarla ve veri bağlamını (PDP) aktive et.
bool pdpActivate() {
    atSend("AT+CGDCONT=1,\"IP\",\"" APN "\"", 5000);
    atSend("AT+CGACT=1,1", TIMEOUT_PDP_OPEN);
    return atSend("AT+CGACT?", 5000).indexOf("1,1") >= 0;
}

// HTTP GET isteği at ve cevabı seriale bas.
void httpGet(const char* url) {
    atSend((String("AT+HTTPURL=") + url).c_str(), 5000);

    DEBUG_SERIAL.println("[HTTP] GET gönderiliyor...");
    MODEM_SERIAL.println("AT+HTTPREQUEST=GET");
    atWaitFor("SUCCESS", TIMEOUT_HTTP_SEND);     // HTTPSEND:SUCCESS

    atSend("AT+HTTPGETSTAT?", 10000);            // STATUS_RESPONSE:<kod>
    String clen = atSend("AT+HTTPGETCLEN?", 10000);  // CONTENT_LENGTH:<n>

    int len = 0, p = clen.indexOf("CONTENT_LENGTH:");
    if (p >= 0) len = clen.substring(p + 15).toInt();

    DEBUG_SERIAL.println("\n──────── HTTP CEVAP ────────");
    if (len > 0) {
        String body = atSend((String("AT+HTTPGETCONT=0,") + len).c_str(), 30000);
        DEBUG_SERIAL.println(body);
    }
    DEBUG_SERIAL.println("────────────────────────────\n");
}

// ════════════════════════════════ setup / loop ═══════════════════════════════

void setup() {
    DEBUG_SERIAL.begin(DEBUG_BAUD);
    delay(300);
    DEBUG_SERIAL.println("\n=== Cavli C16QS AT örneği ===");

    if (!modemBegin())        { DEBUG_SERIAL.println("[HATA] Modem başlatılamadı.");   return; }
    atSend("ATE0");           // echo kapat
    atSend("AT+CMEE=2");      // hataları metin olarak ver

    simSwapCheck();
    if (!simReady())          { DEBUG_SERIAL.println("[HATA] SIM hazır değil.");       return; }
    if (!networkRegistered()) { DEBUG_SERIAL.println("[HATA] Şebekeye kaydolunamadı."); return; }
    if (!pdpActivate())       { DEBUG_SERIAL.println("[HATA] İnternet açılamadı.");     return; }

    httpGet(HTTP_URL);
    DEBUG_SERIAL.println("=== Bitti ===");
}

void loop() {
    // Örnek tek seferliktir.
}
Örneğin açıklaması ve bağlantı ayrıntıları

GitHub deposundaki örnek (src/main.cpp, PlatformIO, ESP32-C3): modemi PWRKEY ile açar, AT^SIMSWAP ile karttaki Nano SIM yuvasını seçer, AT+CPIN? ile SIM'i ve AT+CEREG? ile LTE şebeke kaydını bekler, APN ile veri bağlamını açar (AT+CGDCONT, AT+CGACT) ve modemin dahili HTTP istemcisiyle bir adrese GET isteği gönderip cevabı seri ekrana yazar (AT+HTTPURL, AT+HTTPREQUEST=GET, AT+HTTPGETCONT). Kullanmadan önce baştaki KULLANICI AYARLARI bölümünde MODEM_TX_PIN, MODEM_RX_PIN, MODEM_PWRKEY_PIN pinlerini kendi devrenize, APN'i de operatörünüze göre değiştirin. Seri ekran: 115200 baud.

Sık sorulanlar

Başlamadan önce

Bu sürümün farkı nedir?

Bu sürüm, 4G LTE haberleşmenin yanında dahili GPS (GNSS) konum desteği sunar. LTE ve GNSS anten bağlantıları kart üzerinde bulunur.

5V lojik seviyesine doğrudan bağlanabilir mi?

Hayır. Kartın lojik seviyesi 3.3V’tur ve pinleri 5V toleranslı değildir. 5V çıkışlı denetleyicilerde TX/RX hattında uygun seviye dönüştürücü kullanılmalıdır.

Hangi SIM kart kullanılır?

Kart üzerinde Nano SIM soketi bulunur.

Hangi mikrodenetleyicilerle kullanılabilir?

UART üzerinden STM32, ESP32, Arduino, PIC ve nRF gibi denetleyicilerle kullanılabilir. Bağlantıda besleme ve lojik seviye gereksinimlerine dikkat edilmelidir.

Örnek kod ve teknik doküman var mı?

Evet. Bu sayfada ilk test için AT komutları, ESP32-C3 ile HTTP GET örneği, teknik PDF ve GitHub deposu bulunur.

Besleme seçerken nelere dikkat etmeliyim?

Mevcut teknik dokümana göre 3V3 hattı, LTE veri pikleri sırasında anlık en az 2A sağlayabilmelidir. Bağlantı ayrıntılarını teknik dokümandan inceleyebilirsiniz.