4G-router als universele server voor IoT

4G-router als universele server voor IoT
Routerserie ICR-3200 is ontworpen om de klassieke combinatie van: single-board computer + modem + router te vervangen. Nu kunnen alle benodigde logica en functies direct op de router worden uitgevoerd. Dankzij de krachtige ARM-processor, 512 MB RAM en ~2 GB ingebouwde flash-geheugen kan zelfs een nodejs-server op de router draaien!

Seriële expressinterfaces RS-232/485 zijn ook in de router geïntegreerd en zijn direct beschikbaar in het besturingssysteem met volledige root-toegang. Een open omgeving voor het bouwen van uw eigen programma's en C/C++-libraries voor interactie met de low-level hardware API zijn ook beschikbaar.
De diepe slaapfunctie helpt energie te besparen wanneer op batterij wordt gewerkt: de router kan alleen worden geactiveerd wanneer de connectiviteit echt nodig is.

In dit artikel zullen we de interessante functies van het apparaat behandelen en praktisch werken met de in- en uitgangsinterface vanuit shell-scripts.

Technische specificaties

Routerserie ICR-3200 zijn uitgevoerd op een eenheid hardwareplatform en worden aangeboden in vijf modellen, die verschillen in de frequentiebanden van LTE, aanwezigheid van Wi-Fi en geografische locatie (GNSS). De apparaten worden gepositioneerd als vervanging voor de combinatie van single-board computer en router. De krachtige processor en de grote hoeveelheid RAM maken het mogelijk om veeleisende gebruikersapplicaties direct op de router uit te voeren.

  • Cortex-A8-processor — kloksnelheid van 1 GHz, 32-bit architectuur
  • 512 MB RAM
  • Flash-geheugen van 1,5 tot 4 GB — voor opslag van gebruikersdata
  • In- en uitgangspoorten — RS-232/485 interfaces en digitale in- en uitgangspoorten zijn beschikbaar voor gebruik door gebruikersprogramma's

Een aparte vermelding waard is het model ICR-3211B, dat werkt volgens de LTE Cat. M1-standaard (NB-IoT). Het LTE Cat. M1-protocol is speciaal ontwikkeld voor M2M-oplossingen, heeft een lage datasnelheid (375 kb/s) en biedt ook een groter bereik en verhoogde stabiliteit in uitdagende communicatieomstandigheden binnen gebouwen. De router heeft een ingebouwde supercapacitor, waarmee het apparaat korte tijd kan werken na volledige uitschakeling van de voeding.

Diepe slaapstand

De diepe slaapmodus stelt de router in staat om in een staat te komen waarin alle processen zijn bevroren en de hardware is uitgeschakeld om energie te besparen, terwijl alle functies van het apparaat worden uitgeschakeld en het aan de buitenzijde volledig uitgeschakeld lijkt. Het energieverbruik in deze modus bedraagt niet meer dan 10 mW.

4G-router als universele server voor IoT
In de slaapmodus verbruikt de router vrijwel geen energie en wordt hij binnen 3 seconden weer wakker

Wanneer het nodig is om de router wakker te maken voor gegevensoverdracht, wordt hij wakker binnen ~3 seconden. Uiteraard is er extra tijd nodig voor de registratie van de modem in het mobiele netwerk, maar dit is aanzienlijk sneller dan het opstarten van de router vanuit een volledige uitschakeling. Deze optie is nuttig voor autonome systemen die het grootste deel van de tijd inactief zijn en sporadisch worden geactiveerd voor actieve taken, zoals alarmen of back-upblokken.

Wakker worden en in slaap vallen

Beheer van in slaap vallen en wakker worden gebeurt via de module Slaapmodus.

Er zijn 2 manieren om de slaapmodus te beheren:

  • Via de digitale ingang — in deze modus wordt de router bestuurd door een extern apparaat, zoals een microcontroller. Bij een LOW-signaal op de digitale ingang gaat de router in slaap, en bij een HIGH-signaal wordt hij weer wakker, of omgekeerd. Er kan ook een tijdslimiet worden ingesteld om ongewenste schakelingen te voorkomen.
  • Via de interne timer — de router telt de tijd af en wordt op het juiste moment weer wakker of gaat in slaap. Dit is handig voor het uitvoeren van eenmalige operaties of voor het laden van gegevens over een bepaalde periode.

4G-router als universele server voor IoT
De interface voor het instellen van de diepe slaapmodus

De functie ‘laatste zucht’

Een stroomuitval op een externe locatie kan bijzonder vervelend zijn, omdat het onduidelijk is waarom de communicatie met het object niet beschikbaar is. De functie ‘Laatste zucht’ stelt de router in staat om enige tijd door te werken na een volledige stroomonderbreking en een bericht te sturen dat er een storing is opgetreden en dat de noodstroom niet is ingeschakeld. Dankzij de ingebouwde supercapacitor, die veel langer meegaat dan accu's, vereist deze geen onderhoud of vervanging. Dit is nuttig voor noodstroomsystemen waar storingen kunnen optreden en het belangrijk is om te registreren wanneer het voltage volledig verloren is.

4G-router als universele server voor IoT
De router zal een signaal van stroomuitval sturen, zelfs na een volledige stroomonderbreking.

Om correct te reageren op een stroomonderbreking, moet je er op de een of andere manier achter komen.
De huidige voedingsspanning kan worden verkregen met de shell-opdracht status sys:

$ status sys
Firmwareversie : 6.1.10 (2019-07-02)
Serienummer     : ACZ1100000623519
Profiel         : Standaard
RTC-batterij    : Ok
Voedingsspanning : 12.3 V # ← voedingsspanning
Temperatuur     : 37 C   # ← temperatuur binnen de behuizing
Tijd            : 2019-08-16 16:21:18
Uptime          : 0 dagen, 11 uur, 43 minuten

Of via hardware Unix I/O control (ioctl) en een programma in C/C++ of een andere taal.
In de tabel worden de adressen van de benodigde hardwareregisters weergegeven. De huidige voedingsspanning wordt teruggegeven als een geheel getal, in millivolts. Het gebruik van een low-level API heeft de voorkeur boven shell-scripts in dit geval voor een snellere reactie. Gedetailleerde informatie over het werken met hardware is beschikbaar in de ontwikkelaarshandleiding.

4G-router als universele server voor IoT
Een ioctl-aanroep die de huidige voedingsspanning teruggeeft.

Seriële interfaces

In de router zijn twee seriële interfaces ingebouwd: RS-232 en RS-485. Deze maken het mogelijk om randapparatuur rechtstreeks op de router aan te sluiten, zonder dat extra bekabeling nodig is. Op de router kan een volledig Node-RED of Nodejs-server draaien, zodat je met één apparaat een eenvoudig automatiseringssysteem kunt implementeren, zonder extra computers en controllers.

4G-router als universele server voor IoT

Standaard zijn beide interfaces beschikbaar als standaard seriële apparaten in Linux:

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

Alle standaardbibliotheken zullen deze apparaten ondersteunen zonder extra configuratie, inclusief de module Modbus-RTU2TCP en anderen.

Aangepaste modules

De functionaliteit van het apparaat kan worden uitgebreid met aangepaste modules: dit is een vereenvoudigde versie van pakketten, maar zonder pakketbeheerder. De complete lijst van beschikbare modules is te vinden op de website https://advantech-bb.cz/products/software/user-modules.

Modules worden handmatig geïnstalleerd door het uploaden van het pakketbestand via de webinterface:

4G-router als universele server voor IoT

Momenteel zijn er 73 modules beschikbaar. Hier zijn enkele interessante:

  • Node-RED — een populaire tool voor het integreren van verschillende industriële protocollen in een samenhangend systeem
  • Nodejs — een volwaardige nodejs-server. Een grote hoeveelheid RAM en een krachtige processor maakt het mogelijk om veeleisende applicaties rechtstreeks op de router te draaien!
  • Python2/3
  • Web-shell — maakt werken in de console via de browser mogelijk.
  • Azure IoT SDK Python — een set hulpmiddelen voor het ontwikkelen van programma's voor Microsoft Azure IoT Hub.

Aangezien de firmware van routers open is, kunnen ontwikkelaars hun eigen modules schrijven, inclusief die met een webinterface. Referentiematerialen zijn beschikbaar in de gids voor het schrijven van modules en en de ontwikkelaarssectie op de website van het bedrijf. Voor het gemak van het samenstellen van pakketten is er een kant-en-klare omgeving voor cross-compilatie.

Hardwarebronnen via shell-scripts

Voor eenvoudige automatiseringstaken is het handig om shell-scripts te gebruiken, waarmee je de LED-indicatie kunt beheren en de status van digitale pinnen kunt lezen/instellen.

LED-indicatie maakt het eenvoudig om de huidige status van de uitvoering van opdrachten weer te geven. Bijvoorbeeld, datatransmissie - frequent knipperen, verbindingspoging - zeldzaam knipperen, standby - continu aan. Laten we de opdracht bekijken led. Het neemt slechts één argument aan - het type knipperen van de LED.

# led
led on|off|fast|slow

Zo ziet het eruit in de praktijk:


Demonstratie van de werkmodi van de gebruikersindicator via shell-opdrachten

Voor het werken met digitale pinnen wordt de opdracht gebruikt io.

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

io set out0 1 # Stel digitale uitgang OUT0 in op staat 1 (LOW)
io get bin0   #  Verkrijg waarde van digitale ingang BIN0

Het is belangrijk om te onthouden dat de logica in dit geval geïnverteerd is. Dus 1=LOW, 0=HIGH. Met de opdracht io kunnen we gemakkelijk werken met digitale pinnen vanuit bash-scripts en eenvoudige logica opbouwen voor automatisering en controle.

Als demonstratie van het gemak van werken met digitale ingangen en indicatie, schrijven we een nutteloos script dat de status van de digitale ingang weergeeft met behulp van een LED.

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

Het principe van het script is eenvoudig: als BIN0 in staat 0 is, knippert de diode vaak, anders brandt hij continu. Zo ziet het eruit in het echt:


Demonstratie van een bash-script dat de status van een digitale ingang toont met behulp van een indicator.

Ondanks de eenvoud van dit script laat het duidelijk zien hoe je in één regel, zonder extra software, bibliotheken of instellingen, invoer van digitale ingangen kunt verkrijgen en daarop kunt reageren.

Links

  • In dit artikel worden de netwerkmogelijkheden van routers niet behandeld, zoals load balancing, failover, VPN en dergelijke, omdat al deze onderwerpen al in een ander artikel van ons zijn besproken: Industriële 4G-routers SmartMotion.
  • Voorbeeld van het gebruik van de router ICR-3211B is te vinden in ons eerste artikel: Hallo, Habr, wij zijn Advantech.
  • Je kunt de prijzen van onze producten vinden in de algemene online winkel. De eigen website in het Russisch is nog niet klaar.

Wij nodigen je uit voor het partnerforum van Advantech

4G-router als universele server voor IoT
Het Advantech-forum wordt een unieke gelegenheid om lokale en globale trends op het gebied van Internet of Things te bespreken. Hier kun je ervaringen uitwisselen over het gebruik van nieuwe technologische oplossingen en producten, nieuwe klanten en partners vinden. Je krijgt de kans om de producten te zien die we in onze artikelen hebben beschreven en meer. Wij hebben sprekers uit de industrie en vertegenwoordigers van belangrijke partners – NVidia, Intel en andere bedrijven die actief bijdragen aan de ontwikkeling van de industriële Internet of Things in de komende jaren. We kijken ernaar uit om alle specialisten op het gebied van industriële automatisering en Internet of Things op het evenement te verwelkomen. Deelname aan het evenement is gratis! Het aantal plaatsen is beperkt. Zorg dat je je op tijd registreert.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster