Bruke en global mobilradiomodul til å raskt og sikkert koble IoT-enheter til skyen
Bidrag fra DigiKey's European Editors
2023-12-12
For å koble bærbare eller eksterne nettverksenheter til tingenes Internett (IoT), eller for å styre maskiner eksternt ved hjelp av maskin-til-maskin-kommunikasjon (M2M), er mobil radiotilkobling for datautveksling via skyen et godt alternativ. Dette alternativet gir imidlertid noen utfordringer for utvikleren, for eksempel når det gjelder å fastsette hvilke trådløse nettverk som kan støtte den nødvendige datagjennomstrømningen over hele verden og hvilke protokoller det trådløse modemet må være i stand til å håndtere. Det må også tas hensyn til systemets skalerbarhet, datasikkerhet, kostnader, tiden det tar å få det endelige produktet ut på markedet, samt brukerens anskaffelses- og driftskostnader.
Denne artikkelen forklarer kort hva LTE Cat 1 tilbyr utviklere av IoT- og M2M-konstruksjoner. Den introduserer deretter radiomoduler fra u-blox LARA-R6-serien som gir universell konnektivitet og pålitelig ytelse. Artikkelen avsluttes med å vise hvordan utviklere kan bruke et evalueringskort (EVB – evaluation board) for å enkelt konfigurere og styre modulene via AT-kommandoer og generere AT-kommandostrenger via bibliotekfunksjoner.
LTE Cat 1 sammenlignet med LTE Cat 1bis, LTE Cat M og LTE Cat NB
Selv om LTE-mobilradio nå oppnår gigabit-overføringshastigheter, er LPWA-protokoller (LPWA – low-power, wide-area) som LTE Cat 1, LTE Cat 1bis, LTE Cat M og LTE Cat NB utviklet for å være spesielt effektive når det gjelder energiforbruk, nettverksressurser og kostnader. Dette er svært viktig for IoT-enheter.
Med en båndbredde på opptil 20 megahertz (MHz) i full dupleks, oppnår LTE Cat 1 nedlastingsdatahastigheter på opptil 10 megabit per sekund (Mb/s) og opplastingsdatahastigheter på opptil 5 Mb/s. To antenner aktiverer antifading (diversity) for mottakeren (Rx) for å gi bedre ytelse (tabell 1). LTE Cat 1bis bruker én antenne.
|
Tabell 1: Ytelsessammenligning av LPWA-protokoller. LTE CAT 1 bruker to antenner for Rx-antifading. LTE Cat 1bis bruker én antenne. (Bildekilde: Wikipedia, Jens Wallmann)
LTE Cat 1-mobilradio for global tilgjengelighet
u-blox LARA-R6-serien består av robuste mobilradiomoduler som er konstruert for standardene RAT (Radio Access Technology – radiotilgang-teknologi) LTE Cat 1 FDD (Frequency Division Duplex – frekvensdeling-dupleks) og TDD (Time Division Duplex – tidsdeling-dupleks). De støtter 3G UMTS/HSPA og 2G GSM/GPRS/EGPRS som reserveløsning. Disse modulene er en utmerket løsning for global/multiregional dekning, og de kommer i en liten LGA-formfaktor som måler 26 x 24 millimeter (mm).
LARA-R6-modulene er utstyrt med allsidige grensesnitt, et bredt utvalg av funksjoner og flerbånds- og flermoduskapasitet, og de er egnet for konstruksjoner som krever middels datahastighet, sømløs konnektivitet, utmerket dekning og lav latenstid. Slike konstruksjoner inkluderer sporing av eiendeler, telematikk, ekstern overvåking, alarmsentre, videoovervåking, tilkoblet helse og terminaler for kassesystemer.
Alle moduler støtter Rx-antifading for å gi pålitelig ytelse under vanskelige dekningsforhold eller når tale over LTE (VoLTE) er nødvendig. Programmerere kan dra nytte av de integrerte IoT-protokollene (LwM2M, MQTT) og sikkerhetsfunksjonene (TLS/DTLS, sikker oppdatering og sikker oppstart) for å implementere ulike funksjoner, for eksempel enhetsadministrasjon, ekstern enhetsstyring og sikre trådløse fastvareoppdateringer (FOTA – firmware over-the-air).
LARA-R6-serien støtter LTE Cat 1 i henhold til 3GPP utgivelse 10, og oppnår global dekning med tre regionale varianter:
- Modulene LARA-R6001-00B (data og tale) og LARA-R6001D-00B (kun data) støtter 18 LTE FDD/TDD-frekvensbånd pluss 3G/2G-reserve for global konnektivitet.
- Modulene LARA-R6401-00B (data og tale) og LARA-R6401D-00B (kun data) er en ideell LTE Cat 1-løsning for Nord-Amerika, og støtter LTE-bånd fra AT&T, FirstNet, Verizon og T-Mobile.
- Modulene LARA-R6801-00B (data og tale) og LARA-R6801D-01B (kun data) er utviklet for distribusjon i følgende regioner: Europa og Midtøsten (EMEA), Asia og Stillehavsområdet (APAC), Japan (JP) og Latin-Amerika (LATAM) (figur 1).
Figur 1: Tre regionale varianter av LARA-R6-modulene dekker kloden. (Bildekilde: DigiKey, modifisert av skribent)
Kjapp oversikt over spesialfunksjonene i LARA-R6
LARA-R6-moduler integrerer en basebåndprosessor for mobiltelefoni med eksterne grensesnitt, en RF-transceiver med forsterkere og filtre, minne og en strømstyringsenhet (figur 2).
Figur 2: Intern struktur i en LARA-R6-modul. (Bildekilde: u-blox)
RF-transceiveren fungerer i frekvensbåndene 700 MHz, 800 MHz, 850 MHz, 900 MHz, 1,7 GHz, 1,8 GHz, 1,9 GHz, 2,1 GHz og 2,6 GHz. Alle dataoverføringsprotokoller i basebåndprosessoren for mobiltelefoni kan styres og konfigureres med AT-kommandoer via de eksterne UART- og USB-grensesnittene.
Protokoller
- Dobbeltstakk IPv4 og IPv6
- Integrert TCP/IP, UDP/IP, FTP og HTTP
- Integrert MQTT og MQTT-SN
- Integrert LwM2M
- eSIM og BIP (Bearer Independent Protocol)
LARA-R6-moduler krever en forsyningsspenning på 3,1 til 4,5 volt og har et blindstrømforbruk på rundt 1,1 milliampere (mA). I 2G-drift kan individuelle TDMA-tidsluker nå maksimal overføringseffekt på over 33 desibel, referert til som 1 milliwatt (mW) (dBm) (> 2,0 watt), og alle andre RAT-nivåer når over 24 dBm (> 0,25 watt).
En utmerket antennefølsomhet på mindre enn –100 dBm, som tilsvarer signaleffekter på mindre enn 0,1 pikowatt (pW), muliggjør stabile radiotilkoblinger på inngangspunktet (edge) av mobilnettverket.
Evaluering og programmering
Den raskeste måten å begynne å evaluere og programmere en LARA-R6-modul på, er å bruke en R6 EVB (EVK-R6) og et innpluggbart LARA-R6-adapterkort (ADP-R6) for den korresponderende regionen. For eksempel inkluderer EVK-R6001-00B for globale konstruksjoner det innpluggbare adapterkortet ADP-R6001-00B (tale + data) og et GNSS-adapterkort (figur 3).
Figur 3: LARA-R6 EVB (EVK-R6) med et tilknyttet LARA-R6-adapterkort (nederst) og et GNSS-kort (øverst til venstre). (Bildekilde: u-blox)
EVK-R6401-00B-varianten for Nord-Amerika inkluderer ADP-R6401-00B-adapteren, mens EVK-R6801-00B for EMEA/APAC/JP/LATAM inkluderer ADP-R6801-00B-adapteren. De tre adapterkortene som allerede er nevnt for tale- og dataoverføring, er også tilgjengelige separat, i likhet med versjoner kun for dataoverføring, inkludert ADP-R6401D-00B (Nord-Amerika) og ADP-R6001D-00B (globalt).
R6-adapterkortet utvider LARA-R6-modulen med to antenner og to MiniUSB-kontakter. R6 EVB legger til en GNSS-modul, et SIM-kortspor, ekstra innpluggbare tilkoblinger, forbindelseskabler, brytere og en strømforsyning til modulens eksterne enheter (figur 4).
Figur 4: Funksjonelt blokkskjema over R6 EVB med GNSS og LARA-R6-adaptere koblet til. (Bildekilde: u-blox)
Hvert sett inneholder en EVB med et tilkoblet LTE Cat 1 LARA-R6-adapterkort og en GNSS-modul fra u-blox, en USB-kabel, to LTE-mobilradioantenner, en GPS/GLONASS-antenne og en strømforsyning.
Idriftssetting av EVK
Det brukervennlige, kraftige EVK-R6-settet fra u-blox forenkler evalueringen av LTE Cat 1-/3G-/2G-mobilmoduler med flermodus. En Windows-PC som har LARA-R6 USB-driveren installert styrer LARA-R6-modemet via USB-kontakten og forenkler tilkoblingsoppsettet via systeminnstillingene. For å komme i gang må utvikleren gjøre følgende:
- Sett inn SIM-kortet og koble til både mobilantenner og GNSS-antennen.
- Konfigurer forsiktig forbindelseskablene og bryterne på EVK-en.
- Påfør forsyningsspenningen og slå på SW400-hovedbryteren på EVB-en.
-
- For å oppnå drift som et modem med lav datahastighet via det primære UART-grensesnittet (Main UART), kobler du PC-en til MiniUSB-kontakten J501 eller RS232-kontakten J500 på EVK-en.
- For drift som modem med lav datahastighet via to UART-er (Two UARTs), kobler du PC-en til J201-grensesnittet for mobiltelefoni med USB-kontakt på ADP-en.
- For drift som modem med høy datahastighet via integrert USB for mobiltelefoni (Native Cellular USB), kobler du PC-en til MiniUSB-kontakten J105 på ADP-en.
- Trykk på Mobiltelefoni PÅ-knappen (Cellular Power-On) SW302 på EVB-en.
- Kjør en terminalprogramvare (for eksempel m-center), gå til COM-portens konfigurasjonsmeny, velg AT-porten som korresponderer med 4a, 4b eller 4c, og angi disse verdiene: datahastighet: 115 200 bps; databits: 8; paritet: N; stoppbits: 1.
Hvis du vil ha mer informasjon, kan du se EVK-R6_UserGuide_UBX-21035387. m-center-verktøyet hjelper til med å evaluere, konfigurere og teste u-blox-mobilprodukter, og det kommer med en AT-kommandoterminal.
Enkel Internett-tilkobling med en Windows-PC
Ved å koble en Windows-PC til EVK-en, kan brukeren etablere en trådløs Internett-tilkobling på to måter:
1: En pakkedatatilkobling med lav hastighet: Denne bruker TCP/IP-stakken til Windows-PC-en via UART-grensesnittet til LARA-R6-modulen. PC-en og EVK-en er koblet til i henhold til metode 4a. Utvikleren må velge Telefon og modem > Modemer > Legg til ved å bruke Windows-styringspanelet. Det neste trinnet er å merke av i avmerkingsboksen «Ikke detekter modemet mitt», velge «Standard 33,6 kb/s modem» og tildele en COM-port. Hvis det er nødvendig, kan utvikleren legge til Egenskaper > Avansert > Ekstra initialiseringskommandoer.
2: En pakkedatatilkobling med høy hastighet: Denne får tilgang til Internett ved å bruke TCP/IP-stakken til Windows-PC-en via USB-grensesnittet for mobiltelefoni som er integrert i LARA-R6-modulen. PC-en og EVK-en er koblet til i henhold til metode 4c. Utvikleren må velge Nettverk og delingssenter > Angi ny tilkobling eller et nytt nettverk via Windows-styringspanelet, og klikke på «Koble til Internett». Det neste trinnet er å velge «Oppringning» (Dial-up) og en av AT USB-portene. Det siste trinnet er å angi oppringingsparametere (innringingsnummer, leverandørnavn, bruker-ID og passord).
Registrering av SIM-kortet hos mobiloperatøren
Når SIM-kortet og MNO-parameteren er konfigurert, registrerer mobilmodulen seg automatisk på mobilnettverket etter at den er slått på. Hvis det er et problem, kan registreringen kontrolleres manuelt ved hjelp av AT-kommandoene som er vist i tabell 2.
|
Tabell 2: AT-registreringskommandoer. (Bildekilde: u-blox, modifisert av skribent)
Kommunikasjon til ekstern HTTP-server via AT-kommando
GitHub-arkivet «Firechip_u-blox_LARA-R6_Arduino_Library» inneholder et omfattende bibliotek med AT-kommandoer for LARA-R6-modulene, skrevet i C++ for Arduino-styringene. Seksten eksempler, deriblant ping-tester, registrering, pakkesvitsj (packet switch), SMS, GNSS og IoT-sky, gir forslag til egendefinerte kodestrukturer.
AT-kommandoer kan også sende forespørsler til en ekstern HTTP-server under en aktiv tilkobling, motta serverresponsen og lagre denne responsen transparent i det lokale filsystemet. De støttede metodene er HEAD, GET, DELETE, PUT, POST fil og POST data.
Lara_R6_Example9 sender tilfeldige temperaturer til RemoteHTTP-Server ThingSpeak.com ved å bruke HTTP POST eller GET. ThingSpeak er en IoT-analysetjeneste fra MathWorks som bidrar til å samle, visualisere og analysere sanntidsdatastrømmer i skyen. Tabell 3 viser syntaksen til HTTP-kommandoen «POST-data».
|
Tabell 3: «POST-data» er HTTP-kommando nummer 5 og er formatert som vist. (Bildekilde: u-blox, modifisert av skribent)
Dette eksemplet kan programmeres på en Arduino-vertsstyring, som styrer LARA-R6-modulen på et EVK-kort via AT-kommandoer. I tillegg kreves et konfigurert SIM-kort.
Programmereren må opprette en ThingSpeak-brukerkonto og angi felt 1 for den tilfeldige temperaturmålingsverdien via menyelementet Kanaler > Mine kanaler > Ny kanal. Den korresponderende «Skriv API-nøkkel» legges inn i hovedprogrammet, «LARA-R6_Example9_ThingSpeak.ino» i variabelen myWriteAPIKey.
C++-hovedprogrammet genererer en tilfeldig temperaturverdi, danner den skyspesifikke datastrengen og kaller bibliotekfunksjonen sendHTTPPOSTdata hvert 20. sekund (liste 1).
Kopier
...
1 String myWriteAPIKey = "PFIOEXW1VF21T7O6"; // Change this to your API key
2 String serverName = "api.thingspeak.com"; // Domain Name for HTTP POST/GET
3 [...]
4 void loop()
5 {
6 // Create a random temperature between 20 and 30
7 float temperature = ((float)random(2000,3000)) / 100.0;
8
9
10 // Send data using HTTP POST
11 String httpRequestData = "api_key=" + myWriteAPIKey + "&field1=" +
String(temperature);
12
13 Serial.print(F("POSTing a temperature of "));
14 Serial.print(String(temperature));
15 Serial.println(F(" to ThingSpeak"));
16
17 // Send HTTP POST request to /update. The reponse will be written to
post_response.txt in the LARA's file system
18 myLARA.sendHTTPPOSTdata(0, "/update", "post_response.txt", httpRequestData,
LARA_R6_HTTP_CONTENT_APPLICATION_X_WWW);
19
20
21 // Send data using HTTP GET
22 ==> see original code on Github
23
24 for (int i = 0; i < 20000; i++) // Wait for 20 seconds
25 {
26 myLARA.poll(); // Keep processing data from the LARA so we can catch
the HTTP command result
27 delay(1);
28 }
29 }
...
Liste 1: Dette hovedprogrammet genererer en tilfeldig temperaturverdi og kaller bibliotekfunksjonen sendHTTPPOSTdata hvert 20. sekund. (Kodekilde: Firechip på Github)
Generer AT-kommandostrengen som kaller bibliotekfunksjoner
Bibliotektopptekst «Firechip_u-blox_LARA-R6_Arduino_Library.h» videresender funksjonskallet sendHTTPPOSTdata til biblioteksprosedyren «Firechip_u-blox_LARA-R6_Arduino_Library.cpp», der den fullt formaterte AT-kommandostrengen genereres og sendes (liste 2).
Kopier
...
1 LARA_R6_error_t LARA_R6::sendHTTPPOSTdata(int profile, String path,
String responseFilename, String data,
LARA_R6_http_content_types_t httpContentType)
2 {
3 LARA_R6_error_t err;
4 char *command;
5
6 if (profile >= LARA_R6_NUM_HTTP_PROFILES)
7 return LARA_R6_ERROR_ERROR;
8
9 command = lara_r6_calloc_char(strlen(LARA_R6_HTTP_COMMAND) + 24 +
path.length() + responseFilename.length()
+ data.length());
10 if (command == nullptr)
11 return LARA_R6_ERROR_OUT_OF_MEMORY;
12 sprintf(command, "%s=%d,%d,\"%s\",\"%s\",\"%s\",%d",
LARA_R6_HTTP_COMMAND, profile, LARA_R6_HTTP_COMMAND_POST_DATA,
path.c_str(), responseFilename.c_str(), data.c_str(),
httpContentType);
13
14 err = sendCommandWithResponse(command, LARA_R6_RESPONSE_OK_OR_ERROR,
nullptr, LARA_R6_STANDARD_RESPONSE_TIMEOUT);
15
16 free(command);
17 return err;
18 }
...
Liste 2: Denne C++-bibliotekprosedyren genererer og sender den fullt formaterte AT-kommandostrengen (linje 12). (Kodekilde: Firechip på Github)
Bibliotekprosedyren LARA_R6::sendHTTPPOSTdata (liste 2) bruker de godkjente parametrene til funksjonskallet myLARA.sendHTTPPOSTdata() (liste 1) og ekstra deklarerte variabler fra bibliotektoppteksten til å generere den fullstendige HTTP-kommandostrengen i henhold til tabell 3. Til slutt sender LARA-R6-modemet den resulterende AT-kommandostrengen til ThingSpeak RemoteHTTP-serveren:
AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0
Konklusjon
LTE Cat 1-radiomoduler i flermodus fra LARA-R6-serien er effektive og kostnadseffektive for det globale nettverket av IoT- og M2M-konstruksjoner med lavt strømforbruk. Som vist har utviklere lett tilgang til alle grensesnitt gjennom EVK, og kan enkelt konfigurere og styre modulens protokoller og funksjoner via AT-kommandoer. Dette gir enkle alternativer når det gjelder å fungere som et PC-modem, sende data til skyen og generere AT-kommandostrenger via bibliotekfunksjoner.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.


