4G-router som en universell server for IoT

4G-router som en universell server for IoT
Ruterne i serien ICR-3200 er designet for å erstatte den klassiske kombinasjonen: ett-kort datamaskin + modem + ruter. Nå kan du kjøre all nødvendig logikk direkte på ruteren. Takket være den kraftige ARM-prosessoren, 512 MB RAM og ~2 GB innebygd flashminne, kan du til og med kjøre en nodejs-server på ruteren!

Serielle grensesnitt RS-232/485 er også innebygd i ruteren og tilgjengelig umiddelbart i operativsystemet med full root-tilgang. Et åpent miljø for å bygge egne programmer og C/C++-biblioteker for arbeid med lavnivå maskinvare-API er også tilgjengelig.
Laget for dyp søvnmode lar deg spare batteri: ruteren kan aktiveres bare når tilkobling virkelig er nødvendig.

I denne artikkelen vil vi se nærmere på interessante funksjoner ved enheten og prøve å jobbe praktisk med I/O-grensesnitt fra shell-skript.

Tekniske spesifikasjoner

Ruterne i serien ICR-3200 er bygget på en enhetlig maskinvareplattform og er presentert i fem modeller, som varierer i LTE-frekvensområder, tilstedeværelse av Wi-Fi og geolokalisering (GNSS). Enhetene posisjoneres som en erstatning for kombinasjonen av ett-kort datamaskin og ruter. Den kraftige prosessoren og stort minne gjør det mulig å kjøre ressurskrevende applikasjoner direkte på ruteren.

  • Cortex-A8-prosessoren — klokkefrekvens 1 GHz, 32-bit arkitektur
  • 512 MB RAM
  • Flashminne fra 1,5 til 4 GB — for lagring av brukerdata
  • Inngangs-/utgangsporter — RS-232/485 grensesnitt og digitale inngangs-/utgangsporter er tilgjengelige for brukerprogrammer

Det er verdt å nevne modellen ICR-3211B, som opererer etter standarden LTE Cat. M1 (NB-IoT). Protokollen LTE Cat. M1 er spesielt utviklet for M2M-løsninger, har lav dataoverføringshastighet (375 kb/s), samt større rekkevidde og økt stabilitet under vanskelige forhold innendørs. Ruteren har innebygd superkondensator, som lar enheten operere i kort tid etter å ha mistet strømtilførselen.

Dyp søvn-modus

Dyp søvn-modus lar ruteren gå inn i en tilstand hvor alle prosesser fryses og maskinvaren er slått av, for å spare energi, samtidig som alle funksjoner på enheten deaktiveres, og den vil se helt avstengt ut. Energiforbruket i denne modusen er ikke mer enn 10 mW.

4G-router som en universell server for IoT
I hvilemodus bruker ruteren nesten ikke energi og våkner på 3 sekunder

Når det er nødvendig å vekke ruteren for datatransmisjon, våkner den på ~3 sekunder. Naturligvis vil det ta mer tid for modemet å registrere seg i mobilnettet, men dette er betydelig raskere enn å starte ruteren fra bunnen av. Denne funksjonen er nyttig for systemer med autonom strømforsyning, som ofte er i hvilemodus og aktiveres sjelden for å utføre aktive handlinger, som for eksempel varsling eller reservelås.

Vekking og dvale

Styringen av dvale og vekking skjer via modulen Sleep Mode.

Det finnes 2 måter å styre hvilemodus på:

  • Gjennom digital inngang — i denne modusen styres ruteren av en ekstern enhet, for eksempel en mikrocontroller. Ved LOW-signal på den digitale inngangen går ruteren i dvale, og ved å motta HIGH-våkner den igjen, eller omvendt. Det er også mulig å sette en tidsavbrudd for å unngå utilsiktede omkoblinger.
  • Gjennom intern timer — ruteren teller tiden og våkner/går i dvale til riktig tid. Dette er praktisk å bruke for engangsoperasjoner eller nedlasting av data i en bestemt periode.

4G-router som en universell server for IoT
Grensesnitt for innstilling av dyp søvnmodus

Funksjonen «siste sukk»

Strømutfall på en fjern enhet kan være spesielt ubehagelig, fordi det ikke er klart hvorfor forbindelsen til enheten er utilgjengelig. Funksjonen «Siste sukk» gjør at ruteren kan fungere en stund etter fullstendig strømbrudd og sende en melding om at det har vært et strømutfall og at nødstrømmen ikke har blitt aktivert. Takket være den innebygde superkondensatoren, som har en betydelig lengre levetid enn batterier, krever den ikke vedlikehold eller utskifting. Dette er nyttig for nødstrømssystemer, der det kan oppstå feil, og det er viktig å registrere øyeblikket med total spenningsfall.

4G-router som en universell server for IoT
Ruteren vil sende et signal om strømbrudd selv etter fullstendig strømutkobling

For å reagere riktig på strømbrudd, må man på en eller annen måte få vite om dette.
Nåværende strømspenning kan fås enten ved hjelp av shell-kommandoen status sys:

$ status sys
Firmware Version : 6.1.10 (2019-07-02)
Serial Number    : ACZ1100000623519
Profile          : Standard
RTC Battery      : Ok
Supply Voltage   : 12.3 V # ← forsyningsspenning
Temperature      : 37 C   # ← temperatur inni kabinettet
Time             : 2019-08-16 16:21:18
Uptime           : 0 dager, 11 timer, 43 minutter

Enten ved hjelp av maskinvare Unix I/O-kontroll (ioctl) og et program i C/C++ eller et annet språk.
Tabellen viser adressene til de nødvendige maskinvareregistrene. Den nåværende forsyningsspenningen returneres som et heltall, i millivolt. Bruk av lavnivå API er å foretrekke fremfor shell-skript i dette tilfellet for raskere responstid. Detaljert informasjon om arbeid med maskinvaredelar er tilgjengelig i utviklerhåndboken.

4G-router som en universell server for IoT
Ioctl-forespørsel som returnerer den nåværende forsyningsspenningen.

Serielle grensesnitt

Ruteren har innebygde to serielle grensesnitt: RS-232 og RS-485. De lar deg koble periferiutstyr direkte til ruteren, uten å bruke ekstra kablinger. Samtidig kan en fullverdig Node-RED eller Nodejs-server kjøre på ruteren, noe som gjør at man kan bruke én enhet til å sette opp et enkelt automatiseringssystem, uten ekstra datamaskiner og kontrollere.

4G-router som en universell server for IoT

Som standard er begge grensesnittene tilgjengelige for å fungere som standard serielle enheter i Linux:

ls -la /dev/ttyS*
crw-------    1 root     root      251,   0 Jan  1  1970 /dev/ttyS0 # ← rs-232-port
crw-------    1 root     root      251,   1 Jan  1  1970 /dev/ttyS1 # ← rs-485-port
crw-------    1 root     root      251,   5 Jan  1  1970 /dev/ttyS5 # ← ikke tilkoblet

Alle standardbiblioteker vil støtte disse enhetene uten ekstra konfigurasjoner, inkludert modulen Modbus-RTU2TCP og andre.

Brukermoduler

Funksjonaliteten til enheten kan utvides med brukermoduler: dette er en enklere versjon av pakker, bare uten pakkestyrer. Den komplette listen over tilgjengelige moduler finnes på nettstedet https://advantech-bb.cz/products/software/user-modules.

Moduler installeres manuelt, ved å laste opp pakken via nettgrensesnittet:

4G-router som en universell server for IoT

For tiden er 73 moduler tilgjengelige. Her er noen interessante:

  • Node-RED — et populært verktøy for å koble sammen ulike industrielle protokoller til et samlet system
  • Nodejs — fullverdig nodejs-server. Stort minne og kraftfull prosessor gjør det mulig å kjøre ressurskrevende applikasjoner direkte på ruteren!
  • Python2/3
  • Web-shell — gir tilgang til konsollen gjennom nettleseren.
  • Azure IoT SDK Python — verktøysett for utvikling av programmer for Microsoft Azure IoT Hub.

Siden fastvaren til rutere er åpen, kan utviklere lage egne moduler, inkludert de med webgrensesnitt. Referansemateriell er tilgjengelig i veiledningen for modulutvikling og og delen for utviklere på selskapets nettsted. For enkel pakkesamling er det et klart miljø for krysskompilering.

Maskinvare ressurser via shell-skript

For enkle automatiseringsoppgaver er det praktisk å bruke shell-skript, som kan kontrollere lysindikatorer og hente/sette tilstanden til digitale pinner.

Lysindikatorer er nyttige for å vise den nåværende statusen til utførelsen av kommandoer. For eksempel, datatransportindikasjons — hyppig blinking, tilkoblingsforsøk — sjelden blinking, hvilende — lyser kontinuerlig. La oss se på kommandoen led. Den tar bare ett argument — typen blinking av LED-lampen.

# led
led on|off|fast|slow

Slik ser det ut i virkeligheten:


Demonstrasjon av driftsmodi for brukerindikatoren gjennom shell-kommandoer

For å arbeide med digitale pinner brukes kommandoen io.

$ io
Usage: io [get ] | [set  ]

io set out0 1 # Sett digital utgang OUT0 til tilstand 1 (LOW)
io get bin0   #  Hent verdien av digital inngang BIN0

Det er viktig å huske at logikken i dette tilfellet er invertert. Følgelig er 1=LOW, 0=HIGH. Ved å bruke kommandoen io kan vi enkelt arbeide med digitale pinner fra bash-skript og bygge enkel logikk for automatisering og kontroll.

Som en demonstrasjon av enkelheten ved å jobbe med digitale innganger og indikasjon, vil vi skrive et ubrukelig skript som viser statusen til digitale innganger med en LED.

#!/bin/bash
while true
do
	[ $(io get bin0) -eq 0 ] && led fast || led on
done

Prinsippet for skriptet er enkelt: hvis BIN0 er i tilstand 0, blinker diode ofte, ellers lyser den kontinuerlig. Slik ser det ut live:


Demonstrasjon av et bash-skript som viser tilstanden til en digital inngang med en indikator.

Til tross for den enkle utformingen av dette skriptet viser det tydelig hvordan man i én linje, uten ekstra programvare, biblioteker og innstillinger kan hente inngangsdata fra digitale innganger og reagere på dem.

Lenker

  • Denne artikkelen berører ikke de nettverksfunksjoner av rutere, som belastningsfordeling, failover, VPN og lignende, ettersom alle disse emnene allerede er dekket i vår annen artikkel: Industrielle 4G-rutere SmartMotion.
  • Eksempel på bruk av router ICR-3211B finnes i vår første artikkel: Hei, Habr, vi er Advantech.
  • Du kan se prisene på produktene i den generelle nettbutikken. Egen nettside på russisk er ikke klar ennå.

Vi inviterer til Advantech-partnerforum

4G-router som en universell server for IoT
Advantech-forumet vil bli en unik plattform for å diskutere lokale og globale trender innen Internet of Things. Her kan du dele erfaringer med å bruke nye teknologiske løsninger og produkter, finne nye kunder og partnere. Du vil få mulighet til å se produktene vi har beskrevet i artiklene og mer. Bransjeledere og representanter fra nøkkelpartnere – NVidia, Intel og andre selskaper som aktivt bidrar til utviklingen av industrielt Internet of Things de kommende årene – vil delta. Vi ser frem til å møte alle fagfolk innen industriell automatisering og Internet of Things på arrangementet. Deltakelse på arrangementet er gratis! Antall plasser er begrenset. Sørg for å registrere deg.

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster