4G-router som en universalserver för IoT

4G-router som en universalserver för IoT
Serieroutrar ICR-3200 Àr utformade för att ersÀtta den klassiska kombinationen av en enkel PC + modem + router. Nu kan all nödvÀndig logik köras direkt pÄ routern. Tack vare den kraftfulla ARM-processorn, 512 MB RAM och ~2 GB intern flashminne kan man till och med köra en nodejs-server pÄ routern!

Sekventiella grÀnssnitt RS-232/485 Àr ocksÄ inbyggda i routern och Àr omedelbart tillgÀngliga i operativsystemet med full root-Ätkomst. En öppen miljö för att bygga egna program och C/C++-bibliotek för att arbeta med lÄgnivÄ hÄrdvaru-API finns ocksÄ.
Djupprocessorfunktionen gör att man kan spara energi vid anvÀndning av batteri: routern kan aktiveras endast nÀr kommunikationen verkligen behövs.

I artikeln kommer vi att diskutera intressanta funktioner i enheten och prova att arbeta med in- och utmatningsgrÀnssnitt frÄn shell-skript i praktiken.

Tekniska specifikationer

Serieroutrar ICR-3200 Àr byggda pÄ en enhetlig hÄrdvaruplattform och presenteras i fem modeller som skiljer sig Ät i LTE-frekvensband, förekomsten av Wi-Fi och geolokalisering (GNSS). Enheterna positioneras som en ersÀttning för kombinationen av en enkel PC och router. Den kraftfulla processorn och det stora RAM-minnet gör att man kan köra resurskrÀvande anvÀndarapplikationer direkt pÄ routern.

  • Cortex-A8-processor — klockfrekvens 1 GHz, 32-bitars arkitektur
  • 512 MB RAM
  • Flashminne frĂ„n 1,5 till 4 GB — för lagring av anvĂ€ndardata
  • In- och utmatningsportar — RS-232/485-grĂ€nssnitt och digitala in- och utmatningsportar Ă€r tillgĂ€ngliga för anvĂ€ndarprogram

SÀrskilt intressant Àr modellen ICR-3211B, som arbetar enligt LTE Cat. M1-standarden (NB-IoT). Protokollet LTE Cat. M1 Àr speciellt utvecklat för M2M-lösningar, har lÄg dataöverföringshastighet (375 kb/s) och dessutom en stor rÀckvidd och ökad stabilitet i svÄra inomhuskommunikationsförhÄllanden. Routern har en inbyggd superkondensator, vilket gör att enheten kan fungera en kort tid efter att strömmen har stÀngts av.

DjupprocessorlÀge

DjupprocessorlÀget gör att man kan sÀtta routern i ett tillstÄnd dÀr alla processer fryses och hÄrdvaran stÀngs av, för att spara energi, medan alla enhetens funktioner stÀngs av och den ser helt avstÀngd ut. Energiförbrukningen i detta lÀge Àr högst 10 mW.

4G-router som en universalserver för IoT
I vilolÀge förbrukar routern nÀstan ingen energi och vaknar pÄ 3 sekunder

NÀr det behövs att vÀcka routern för datatransfer, kommer den vakna pÄ ~3 sekunder. SjÀlvklart behövs ytterligare tid för att registrera modemet i det mobila nÀtet, men detta Àr avsevÀrt snabbare Àn att starta routern frÄn grunden. Denna funktion Àr anvÀndbar för system med fristÄende strömförsörjning, som tillbringar mest tid i vilolÀge och aktiveras ibland för att utföra aktiva ÄtgÀrder, till exempel larm eller reservblock.

VÀckning och sömn

Kontrollen av sömn och vÀckning sker via modulen Sleep Mode.

Det finns 2 sÀtt att styra sömnlÀget:

  • Genom digital ingĂ„ng — i detta lĂ€ge administreras routern av en extern enhet, till exempel en mikrokontroller. Vid en LOW-signal pĂ„ den digitala ingĂ„ngen gĂ„r routern i vilolĂ€ge, och vid mottagande av HIGH - vaknar den, eller omvĂ€nt. Det gĂ„r ocksĂ„ att stĂ€lla in en timeout för att skydda mot oavsiktliga omkopplingar.
  • Genom inbyggd timer — routern mĂ€ter tiden och vaknar/gĂ„r i vilolĂ€ge vid rĂ€tt tidpunkt. Detta Ă€r praktiskt att anvĂ€nda för enstaka operationer eller dataladdningar under en viss period.

4G-router som en universalserver för IoT
GrÀnssnitt för instÀllning av djup sömn

Funktionen 'sista andetag'

Strömavbrott vid en fjÀrranlÀggning kan vara sÀrskilt obehagligt, eftersom det inte Àr tydligt varför kommunikationen med anlÀggningen Àr otillgÀnglig. Funktionen 'Sista andetag' gör att routern kan arbeta en tid efter att strömtillförseln helt har avbrutits och skicka ett meddelande om att ett strömavbrott har intrÀffat och reservkraften inte har aktiverats. Tack vare den inbyggda superkondensatorn, vars livslÀngd Àr avsevÀrt lÀngre Àn traditionella batterier, krÀver den ingen underhÄll och byte. Detta Àr anvÀndbart för system med reservkraft dÀr driftstopp kan förekomma och det Àr viktigt att spÄra omedelbar strömförlust.

4G-router som en universalserver för IoT
Routern kommer att skicka ett signal om strömavbrott Àven efter att strömmen helt har stÀngts av

För att korrekt reagera pÄ strömavbrottet behöver man pÄ nÄgot sÀtt fÄ veta om det.
Den aktuella matningsspÀnningen kan fÄs antingen genom en shell-kommando 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 # ← strömkĂ€lla
Temperature      : 37 C   # ← temperatur inuti chassit
Time             : 2019-08-16 16:21:18
Uptime           : 0 dagar, 11 timmar, 43 minuter

Antingen med hjÀlp av hÄrdvaru Unix I/O control (ioctl) och ett program i C/C++ eller ett annat sprÄk.
I tabellen visas adresserna för de nödvÀndiga hÄrdvaruregistren. Den aktuella strömkÀllan returneras som ett heltal, i millivolt. AnvÀndning av lÄg nivÄ API Àr att föredra framför shell-script i detta fall för snabbare respons. Mer information om hur man arbetar med hÄrdvaran finns i utvecklarhandboken.

4G-router som en universalserver för IoT
Ioctl-anropet som returnerar den aktuella strömkÀllan.

Seriella grÀnssnitt

Routern har tvÄ inbyggda seriella grÀnssnitt: RS-232 och RS-485. Dessa gör det möjligt att ansluta perifera enheter direkt till routern utan att anvÀnda ytterligare utrustning. Dessutom kan en fullstÀndig server för Node-RED eller Nodejs köras pÄ routern, vilket gör att man kan klara sig med en enhet för att lansera ett enkelt automationssystem utan ytterligare datorer och kontroller.

4G-router som en universalserver för IoT

Som standard Àr bÄda grÀnssnitt tillgÀngliga för arbete som standard serial-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 # ← inte ansluten

Alla standardbibliotek kommer att stödja dessa enheter utan extra konfiguration, inklusive modulen Modbus-RTU2TCP och andra.

Anpassade moduler

Enhetens funktionalitet kan utökas med hjÀlp av anpassade moduler: detta Àr en förenklad version av paket, bara utan pakethanterare. Hela listan över tillgÀngliga moduler finns pÄ webbplatsen https://advantech-bb.cz/products/software/user-modules.

Moduler installeras manuellt genom att ladda upp paketfilen via webbgrÀnssnittet:

4G-router som en universalserver för IoT

För nÀrvarande finns 73 moduler tillgÀngliga. HÀr Àr nÄgra av de intressanta:

  • Node-RED — ett populĂ€rt verktyg för att koppla samman olika industriella protokoll till ett enhetligt system
  • Nodejs — en fullstĂ€ndig nodejs-server. Stort antal RAM och kraftfull processor möjliggör körning av resurskrĂ€vande applikationer direkt pĂ„ routern!
  • Python2/3
  • Webb-shell — gör det möjligt att arbeta i konsolen via webblĂ€saren.
  • Azure IoT SDK Python — verktygssats för utveckling av program för Microsoft Azure IoT Hub.

Eftersom routrarens firmware Àr öppen kan utvecklare skriva egna moduler, inklusive med ett webbgrÀnssnitt. Referensmaterial finns tillgÀngligt i handboken för modulskrivning och och avsnittet för utvecklare pÄ företagets webbplats. För att underlÀtta paketsammansÀttning finns en fÀrdig miljö för korskompilering.

HÄrdvaruresurser via shell-skript

För enkla automatiseringsuppgifter Àr det praktiskt att anvÀnda shell-skript, som kan styra belysning och hÀmta/stÀlla in tillstÄnd för digitala pinnar.

Belysningen Ă€r ett bekvĂ€mt sĂ€tt att visa den aktuella statusen för kommandon. Till exempel, datakommunikationsindikator — frekvent blinkande, anslutningsförsök — sĂ€llan blinkande, vila — lyser kontinuerligt. LĂ„t oss titta pĂ„ kommandot led. Den tar emot endast ett argument – typen av LED-blinkande.

# led
led on|off|fast|slow

SÄ hÀr ser det ut i verkliga livet:


Demonstration av arbetslÀgen för anvÀndarindikatorn via shell-kommandon

För att arbeta med digitala pinnar anvÀnds kommandot io.

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

io set out0 1 # SÀtta digital utgÄng OUT0 i tillstÄnd 1 (LOW)
io get bin0   # HÀmta vÀrdet av digital ingÄng BIN0

Det Àr viktigt att komma ihÄg att logiken i detta fall Àr inverterad. DÀrför 1=LOW, 0=HIGH. Genom att anvÀnda kommandot io kan vi enkelt arbeta med digitala pinnar i bash-skript och bygga enkel logik för automatisering och styrning.

Som en demonstration av enkelheten i att arbeta med digitala ingÄngar och indikatorer, lÄt oss skriva ett meningslöst skript som visar statusen för en digital ingÄng med en LED.

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

Principen för skriptet Àr enkel: om BIN0 Àr i tillstÄnd 0, blinkar dioden ofta, annars lyser den kontinuerligt. SÄ hÀr ser det ut i praktiken:


Demonstration av bash-skript som visar statusen för digital ingÄng med indikatorn.

Trots enkelheten i detta skript, visar det tydligt hur man pÄ en rad, utan extra programvara, bibliotek och instÀllningar kan hÀmta ingÄngsdata frÄn digitala ingÄngar och reagera pÄ dem.

LĂ€nkar

  • I denna artikel tas inte upp nĂ€tverksfunktioner för routrar, sĂ„som lastbalansering, failover, VPN med mera, eftersom alla dessa Ă€mnen redan har behandlats i en annan av vĂ„ra artiklar: Industriklass 4G-router SmartMotion.
  • Exempel pĂ„ anvĂ€ndning av en router ICR-3211B finns i vĂ„r första artikel: Hej, Habr, vi Ă€r Advantech.
  • Priser pĂ„ vĂ„ra produkter kan ses i den allmĂ€nna webbutiken. En egen webbplats pĂ„ ryska Ă€r Ă€nnu inte klar.

Vi inbjuder till Advantech-partnerforumet

4G-router som en universalserver för IoT
Advantech-forumet kommer att bli en unik plattform för att diskutera lokala och globala trender inom Internet of Things. HĂ€r kan du dela erfarenheter av att anvĂ€nda nya tekniska lösningar och produkter, hitta nya kunder och partners. Du fĂ„r ocksĂ„ chansen att se produkterna vi har beskrivit i artiklar och mer dĂ€rtill. Vi kommer att ha talare frĂ„n branschen och representanter för nyckelpartners – NVidia, Intel och andra företag som aktivt deltar i utvecklingen av industriellt Internet of Things under de kommande Ă„ren. Vi ser fram emot att se alla specialister inom industriell automation och Internet of Things vid evenemanget. Deltagande Ă€r gratis! Antalet platser Ă€r begrĂ€nsat. Se till att registrera dig.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster