İçeriğe geç

4G LTE Geliştirme Kartı

CAVLI GSM/LTE Devboard

Cavli C16QS tabanlı kompakt 4G LTE geliştirme kartı. UART üzerinden mikrodenetleyicinize bağlayın; Nano SIM soketi ve anten bağlantılarıyla hücresel haberleşme projelerinizi geliştirin.

  • 4G LTECavli C16QS
  • GNSSOpsiyonel anten
  • Nano SIMKart üstü soket
  • UARTRX / TX
₺990,00

Stokta: 18 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/LTEBu ürün

Hücresel haberleşme odaklı projeler

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

CAVLI GSM/LTE Dahili GPS

Haberleşme ve konum verisi gereken projeler

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

Diğer sürümü incele →
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

Kompakt kart. Esnek entegrasyon.

UART arayüzü üzerinden mevcut mikrodenetleyicinize bağlanın. Telemetri, uzaktan izleme ve IoT projeleriniz için 4G LTE haberleşme altyapısını tek kartta kullanın.

  • Cavli C16QS 4G LTE modülü
  • UART (RX/TX) ile kolay entegrasyon
  • Nano SIM soketi
  • LTE ve GNSS anten bağlantıları
CAVLI GSM/LTE DevboardUART · Nano SIM · 4G LTE
4G LTE tabanlı IoT cihazları
Telemetri ve uzaktan veri iletimi
Araç takip ve GNSS uygulamaları
Endüstriyel izleme sistemleri

Donanım ve bağlantılar

Teknik Özellikler

Haberleşme Modülü
Cavli C16QS
Hücresel Teknoloji
4G / LTE
Haberleşme Arayüzü
UART
Haberleşme Pinleri
TX, RX
Kontrol Pinleri
RST (aktif-düşük), PKY
SIM Kart
Nano SIM soketi
Anten Bağlantısı
LTE (zorunlu), GNSS (opsiyonel, aktif anten önerilir)
Besleme Gerilimi
3,3 V (3V3 ve GND pinleri)
Besleme Akımı
Anlık en az 2 A (LTE veri pikleri)
Lojik Seviyesi
3,3 V (5 V toleranslı değil)
Durum LED'leri
PWR, NET
Kart Boyutu
38 × 41 mm

Geliştirme kaynakları

Ürün Dokümantasyonu

  • PDF

    Teknik Dokümantasyon ve Kullanım Kılavuzu

    Pin bağlantıları, AT komut rehberi, güç/voltaj gereksinimleri ve anten altyapısını içeren tam teknik doküman

    PDF · 397,4 KB
    PDF’yi aç ↗
  • AT Komutları ve Örnek Kod

    SIM, LTE, HTTP, MQTT, SMS ve GPS için 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,3 V lojik (5 V 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

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

Hayır. Kartın lojik seviyesi 3,3 V’tur ve pinleri 5 V toleranslı değildir. 5 V çı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 2 A sağlayabilmelidir. Bağlantı ayrıntılarını teknik dokümandan inceleyebilirsiniz.