Table of Contents

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.