User Tools

Site Tools


teknik:teknik:embedded:esp32:ekstern5g

5G med ESP32

ESP32 understøtter ikke 5G direkte, da dens indbyggede trådløse modul kun håndterer 2,4 GHz Wi-Fi (802.11 b/g/n) og Bluetooth (Classic + BLE). Men du kan tilføje 5G-funktionalitet til ESP32 ved at bruge et eksternt 5G-modem, der kommunikerer med ESP32 via UART, SPI, I²C eller USB.


Muligheder for 5G med ESP32

Eksternt 5G-modem (anbefalet)

Du kan bruge et dedikeret 5G-modem (f.eks. Quectel, SIMCom, Telit, eller Huawei) og forbinde det til ESP32 via UART (AT-kommandos) eller USB. ESP32 fungerer som controller, mens 5G-modemet håndterer den trådløse kommunikation.

Modul Type Interface til ESP32 5G-standard Pris (ca.) Noter
Quectel EP06 5G NR (Sub-6 GHz) USB 3.0 / PCIe 5G SA/NSA ~1.500–2.500 DKK Kræver USB-to-UART konverter (f.eks. CP2102) eller PCIe-bridge.
Quectel RG500Q 5G NR (Sub-6 GHz) USB 3.0 / UART 5G SA/NSA ~2.000–3.000 DKK Understøtter AT-kommandos via UART.
SIMCom SIM8200 5G NR (Sub-6 GHz) USB / UART / PCIe 5G SA/NSA ~1.800–2.800 DKK Populært til IoT, understøtter Linux (OpenCPU).
Telit FN980 5G NR (Sub-6 GHz) USB / PCIe 5G SA/NSA ~2.500–4.000 DKK Industrielt modul, god dokumentation.
Huawei ME909s-521 5G (Sub-6 GHz) USB / UART 5G NSA ~2.000–3.500 DKK Kræver SIM-kort og antenner.
Sierra Wireless MC7455 4G/LTE (kan opgraderes til 5G) USB / PCIe LTE Cat. 6 ~1.000–2.000 DKK Godt til prototyping, men kun 4G (kan opgraderes til 5G-modeller).
⚠️ Bemærk:
* 5G-moduler er dyre (1.500–4.000 DKK) og kræver eksterne antenner og SIM-kort med 5G-dækning.
* ESP32 kan ikke håndtere 5G direkte – det kræver et separat modem.
* Strømforbrug: 5G-moduler bruger 0,5–2 A under aktiv brug (ESP32 skal have en ekstern strømforsyning).

Implementeringsmetoder

Metode 1: 5G-modem via UART (AT-kommandos)

Fordele:
✅ Nemt at integrere med ESP32 (UART er indbygget).
✅ Understøttes af de fleste 5G-moduler (Quectel, SIMCom, Telit).
✅ Lavt strømforbrug (sammenlignet med USB).

Ulemper:
❌ Langsommere end USB (begrænset af UART-hastighed, typisk 115200–4 Mbps).
❌ Kræver AT-kommandos til konfiguration.

Hardware-forbindelse

ESP32 (UART)  →  5G-modem (UART)
---------------------------------
TX (GPIO 17)  →  RX (Modem)
RX (GPIO 16)  →  TX (Modem)
GND           →  GND
3.3V/5V       →  VCC (Check modem-spænding!)
⚠️ Vigtigt:
* Nogle 5G-moduler kører på 5V, mens ESP32 er 3,3V. Brug en logisk niveau-konverter (f.eks. TXB0104).
* Tilslut antenner og SIM-kort til 5G-modemet.

Software (Arduino-kode til ESP32)

#include <HardwareSerial.h>
 
// Opret en ny HardwareSerial til 5G-modemet (UART2)
HardwareSerial SerialModem(2); // RX=16, TX=17
 
void setup() {
  Serial.begin(115200); // Debug til Serial Monitor
  SerialModem.begin(115200, SERIAL_8N1, 16, 17); // UART2: RX=16, TX=17
 
  delay(1000);
  sendATCommand("AT", "OK", 2000); // Test forbindelse
  sendATCommand("AT+CPIN?", "READY", 2000); // Tjek SIM-kort
  sendATCommand("AT+CREG?", "0,1", 2000); // Tjek netværksregistrering
  sendATCommand("AT+CGATT=1", "OK", 5000); // Aktiver GPRS/5G
  sendATCommand("AT+CGACT=1,1", "OK", 5000); // Aktiver PDP-kontekst
}
 
void loop() {
  // Eksempel: Send HTTP GET-anmodning
  String response = sendATCommand("AT+HTTPGET=1,80,\"http://example.com\"", "OK", 10000);
  Serial.println("HTTP Response: " + response);
  delay(30000); // Vent 30 sekunder
}
 
// Funktion til at sende AT-kommandos
String sendATCommand(String command, const char* resp, unsigned long timeout) {
  String response = "";
  SerialModem.println(command);
  unsigned long startTime = millis();
  while (millis() - startTime < timeout) {
    if (SerialModem.available()) {
      char c = SerialModem.read();
      response += c;
      if (response.indexOf(resp) != -1) {
        break;
      }
    }
  }
  Serial.print("AT Command: ");
  Serial.println(command);
  Serial.print("Response: ");
  Serial.println(response);
  return response;
}

Eksempel på AT-kommandos (SIMCom SIM8200)

Kommando Beskrivelse
`AT` Test forbindelse til modemet.
`AT+CPIN?` Tjek om SIM-kortet er indsat og klar.
`AT+CREG?` Tjek netværksregistrering (0,1 = registreret).
`AT+CGATT=1` Aktiver GPRS/5G-forbindelse.
`AT+CGACT=1,1` Aktiver PDP-kontekst (nødvendigt for data).
`AT+CNACT=1,1,“apn”` Opret forbindelse til APN (f.eks. `internet` eller `data`).
`AT+HTTPGET=1,80,“url”` Send HTTP GET-anmodning til en URL.
`AT+HTTPREAD=0,100` Læs HTTP-svar (100 bytes).
`AT+CSQ` Tjek signalstyrke (0–31, hvor 31 er bedst).
`AT+CPSI?` Vis 5G-netværksinfo (hvis understøttet).

Metode 2: 5G-modem via USB (anbefalet til høj hastighed)

Fordele:
✅ Højere hastighed (USB 3.0 understøtter op til 5 Gbps).
✅ Bedre stabilitet (mindre fejl end UART).
✅ Understøtter avancerede funktioner (f.eks. QMI, MBIM, NCM).

Ulemper:
❌ Kræver USB-host-funktionalitet (ESP32 har ikke indbygget USB-host).
❌ Kræver ekstern USB-host-controller (f.eks. MAX3421E eller FT232H).

Hardware-forbindelse (med USB-host)

ESP32  →  USB-Host-Chip (f.eks. MAX3421E)  →  5G-modem (USB)
-----------------------------------------------------------
GPIO   →  SPI (til MAX3421E)               →  USB A/B
3.3V   →  VCC                             →  5V (via regulator)
GND    →  GND                             →  GND
⚠️ Bemærk:
* MAX3421E er en USB-host-controller, der kan styres via SPI fra ESP32.
* Kræver ekstern strømforsyning (5G-moduler bruger 0,5–2 A).

Software (ESP32 + MAX3421E)

Du skal bruge USB-host-biblioteker til ESP32: * USB Host Library for ESP32 (til MAX3421E). * TinyUSB (alternativ).

#include <SPI.h>
#include <Usb.h>
#include <Max3421e.h>
#include <AndroidAccessory.h>
 
USB Usb;
MAX3421E UsbHost;
AndroidAccessory Acc(&Usb);
 
void setup() {
  Serial.begin(115200);
  UsbHost.Init();
  Usb.Init();
}
 
void loop() {
  Usb.Task();
  if (Acc.isConnected()) {
    Serial.println("5G-modem forbundet via USB!");
    // Send data via USB (f.eks. QMI/AT-kommandos)
  }
}
⚠️ Udfordringer:
* Kompleks opsætning (kræver dyb forståelse af USB-protokoller).
* Begrænset støtte til 5G-moduler via USB-host på ESP32.

Metode 3: 5G via Ethernet (ESP32 + 5G-router)

Hvis du ikke vil bruge et 5G-modem direkte, kan du forbinde ESP32 til en 5G-router via Ethernet (hvis ESP32-modellen understøtter det, f.eks. ESP32-Ethernet-Kit).

Hardware-forbindelse

ESP32 (Ethernet)  →  5G-router (Ethernet-port)
----------------------------------------------
TX/RX            →  Router
GND              →  GND
3.3V/5V          →  (Strøm til ESP32)
⚠️ Bemærk:
* ESP32-Ethernet-Kit (f.eks. ESP32-POE-ISO) understøtter 100 Mbps Ethernet.
* 5G-routeren skal have en Ethernet-port (f.eks. Huawei B818-263).

Software (ESP32 + Ethernet)

#include <Ethernet.h>
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC-adresse
IPAddress ip(192, 168, 1, 100); // Statisk IP (tilpas til dit netværk)
 
void setup() {
  Serial.begin(115200);
  Ethernet.begin(mac, ip);
  delay(1000);
  Serial.println("Forbundet til 5G-router via Ethernet!");
  Serial.print("IP: ");
  Serial.println(Ethernet.localIP());
}
 
void loop() {
  // Eksempel: Send HTTP GET-anmodning
  EthernetClient client;
  if (client.connect("example.com", 80)) {
    client.println("GET / HTTP/1.1");
    client.println("Host: example.com");
    client.println("Connection: close");
    client.println();
    while (client.available()) {
      Serial.write(client.read());
    }
    client.stop();
  }
  delay(30000);
}

Overvejelser og udfordringer

Fordele ved at bruge 5G med ESP32

Fordel Beskrivelse
Høj hastighed 5G giver 1–10 Gbps (teoretisk), 100–500 Mbps (reelt).
Lav latens 1–10 ms (godt til real-time applikationer).
Større dækning 5G (Sub-6 GHz) har bedre dækning end Wi-Fi.
Flere enheder 5G kan håndtere 1 million enheder pr. km² (godt til IoT).
Fremtidssikret 5G er den nyeste standard og vil blive udbredt.

Ulemper og udfordringer

Udfordring Beskrivelse Løsning
Høj pris 5G-moduler koster 1.500–4.000 DKK. Brug 4G/LTE som alternativ (billigere, f.eks. SIM800C ~200 DKK).
Strømforbrug 5G-moduler bruger 0,5–2 A. Brug ekstern strømforsyning (f.eks. 5V/3A power bank).
Kompleks opsætning Kræver AT-kommandos, antenner, SIM-kort. Brug færdige løsninger (f.eks. 5G-router + Ethernet).
Begrænset ESP32-understøttelse ESP32 har ingen indbygget 5G. Brug eksternt modem (UART/USB).
Netværksdækning 5G er ikke tilgængeligt overalt. Tjek dækning hos din udbyder (Telia, TDC, 3, etc.).
SIM-kort Kræver 5G-kompatibelt SIM-kort. Brug IoT-SIM (f.eks. fra Hologram, Soracom, eller lokale udbydere).
Antenner 5G-moduler kræver eksterne antenner. Brug MIMO-antenne for bedst ydeevne.

Alternativer til 5G med ESP32

Hvis 5G er for dyrt eller komplekst, kan du overveje disse alternativer:

Teknologi Hastighed Rækkevidde Strømforbrug Pris (modul) Bemærkninger
4G/LTE (Cat. 1) 10 Mbps 1–10 km 200–500 mA ~200–500 DKK Godt til IoT (f.eks. SIM800C).
4G/LTE (Cat. 4) 150 Mbps 1–10 km 300–800 mA ~500–1.000 DKK Hurtigere, men dyrere (f.eks. SIM7600).
NB-IoT 250 Kbps 1–10 km 10–100 mA ~300–800 DKK Lavt strømforbrug, god til sensorer.
LoRaWAN 0,3–50 Kbps 2–15 km 1–50 mA ~200–600 DKK Lang rækkevidde, lavt strømforbrug.
Wi-Fi (ESP32) 150 Mbps 50–100 m 50–200 mA ~50–200 DKK Nemt, men begrænset rækkevidde.
Bluetooth (BLE) 1–2 Mbps 10–100 m 10–50 mA ~50–200 DKK Godt til kortdistance-kommunikation.

Anbefalinger

Brugsscenarie Anbefalet løsning Modul Interface Pris (ca.)
Højhastigheds-data (100+ Mbps) 5G-modem via UART/USB Quectel EP06 UART/USB ~2.000 DKK
Lavt strømforbrug (batteri) 4G/LTE (Cat. 1) SIM800C UART ~200 DKK
Lang rækkevidde (IoT-sensorer) NB-IoT SIM7020 UART ~500 DKK
Kortdistance (hjemmeautomation) Wi-Fi (ESP32) ESP32-WROOM-32 Wi-Fi ~50 DKK
Enkelt opsætning 5G-router + Ethernet ESP32-Ethernet-Kit Ethernet ~300 DKK + router

Trin-for-trin guide til 5G med ESP32 (UART-metode)

Trin 1: Vælg et 5G-modul

* Anbefalet: Quectel RG500Q (5G, UART-understøttelse). * Alternativ: SIMCom SIM8200 (5G, USB/UART).

Trin 2: Køb nødvendige komponenter

Komponent Eksempel Pris (ca.)
ESP32 (f.eks. WROOM-32D) ESP32-WROOM-32D ~100 DKK
5G-modul Quectel RG500Q ~2.000 DKK
Logisk niveau-konverter TXB0104 ~50 DKK
5G-antenne MIMO-antenne ~200 DKK
SIM-kort IoT-SIM (f.eks. Hologram) ~100 DKK/år
Strømforsyning 5V/3A USB-C ~100 DKK
Breadboard & ledninger - ~50 DKK

Trin 3: Forbind hardware

1. Tilslut 5G-modulet til logisk niveau-konverter (hvis nødvendigt). 2. Forbind konverteren til ESP32 (UART-pins: RX/TX). 3. Tilslut antenner og SIM-kort til 5G-modulet. 4. Tilslut strømforsyning (5V/3A) til 5G-modulet.

Trin 4: Programmer ESP32

* Brug Arduino IDE med ovenstående UART-eksempelkode. * Test forbindelse med AT-kommandos (`AT`, `AT+CPIN?`, `AT+CREG?`).

Trin 5: Test 5G-forbindelse

1. Send `AT+CNACT=1,1,“apn”` (udskift `apn` med din udbyder, f.eks. `internet`). 2. Tjek forbindelse med `AT+CNACT?`. 3. Send data via `AT+HTTPGET` eller `AT+CSOCKSEND`.

Trin 6: Optimér strømforbrug

* Sluk for 5G-modulet, når det ikke er i brug (via `AT+CPOWD=1`). * Brug dyb søvn på ESP32 (`esp_deep_sleep()`).


Eksempel: Send data til en cloud-server via 5G

#include <HardwareSerial.h>
 
HardwareSerial SerialModem(2); // UART2: RX=16, TX=17
 
void setup() {
  Serial.begin(115200);
  SerialModem.begin(115200, SERIAL_8N1, 16, 17);
 
  // Aktiver 5G-forbindelse
  sendATCommand("AT+CPIN?", "READY", 2000);
  sendATCommand("AT+CREG=1", "OK", 2000);
  sendATCommand("AT+CGATT=1", "OK", 5000);
  sendATCommand("AT+CGACT=1,1", "OK", 5000);
  sendATCommand("AT+CNACT=1,1,\"internet\"", "OK", 10000); // Udskift "internet" med din APN
}
 
void loop() {
  // Send sensor-data til en cloud-server (f.eks. ThingSpeak)
  String temperature = "25.5"; // Eksempel: Temperatur fra sensor
  String payload = "{\"temperature\":" + temperature + "}";
 
  // Opret TCP-forbindelse
  sendATCommand("AT+CSOCKSEND=1,1,\"api.thingspeak.com\",80", "OK", 5000);
  String cmd = "POST /update HTTP/1.1\nHost: api.thingspeak.com\nContent-Type: application/json\nContent-Length: " + String(payload.length()) + "\n\n" + payload;
  sendATCommand(cmd, "OK", 10000);
 
  delay(60000); // Send data hver minut
}
 
String sendATCommand(String command, const char* resp, unsigned long timeout) {
  String response = "";
  SerialModem.println(command);
  unsigned long startTime = millis();
  while (millis() - startTime < timeout) {
    if (SerialModem.available()) {
      char c = SerialModem.read();
      response += c;
      if (response.indexOf(resp) != -1) {
        break;
      }
    }
  }
  Serial.print("AT: ");
  Serial.println(command);
  Serial.print("Response: ");
  Serial.println(response);
  return response;
}

Opsummering

Metode Kompleksitet Hastighed Strømforbrug Pris Anbefaling
5G-modem via UART ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ Bedste balance (anbefalet til de fleste).
5G-modem via USB ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Høj hastighed, men kompleks.
5G-router + Ethernet ⭐⭐ ⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐ Nem opsætning, men kræver router.
4G/LTE (alternativ) ⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐ Billigere og enklere.

Konklusion

* ESP32 understøtter ikke 5G direkte, men du kan tilføje det via et eksternt 5G-modem (UART/USB). * Anbefalet løsning: Quectel RG500Q + ESP32 (UART) for en balance mellem pris, hastighed og kompleksitet. * Alternativ: Brug 4G/LTE (f.eks. SIM7600) for en billigere og enklere løsning. * Husk: 5G-moduler kræver ekstern strøm, antenner og SIM-kort.

Hvis du har brug for høj hastighed og lav latens, er 5G en god løsning – men for de fleste IoT-projekter er 4G/LTE eller Wi-Fi tilstrækkeligt.

teknik/teknik/embedded/esp32/ekstern5g.txt · Last modified: by smarken

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.