4G-router als universele server voor IoT

4G-router als universele server voor IoT
Router serie ICR-3200 ontworpen om de klassieke combinatie te vervangen: singleboardcomputer + modem + router. Nu kunt u alle benodigde logica rechtstreeks op de router uitvoeren. Dankzij een krachtige ARM-processor, 512 MB RAM en ~2 GB ingebouwd flashgeheugen kun je zelfs een nodejs-server op de router draaien!

Seriële RS-232/485-interfaces zijn ook in de router ingebouwd en zijn onmiddellijk beschikbaar in het besturingssysteem met volledige root-toegang. Een open omgeving voor het bouwen van uw eigen programma's en C/C++-bibliotheken voor het werken met hardware-API's op laag niveau zijn ook beschikbaar.
De diepe slaapfunctie bespaart energie bij gebruik op batterijvoeding: de router kan alleen worden geactiveerd als communicatie echt nodig is.

In dit artikel analyseren we de interessante functies van het apparaat en proberen we in de praktijk te werken met de input-output-interface van shell-scripts.

Технические характеристики

Router serie ICR-3200 zijn gemaakt op één hardwareplatform en worden gepresenteerd in vijf modellen, die verschillen in LTE-frequentiebereiken, de aanwezigheid van Wi-Fi en geolocatie (GNSS). De apparaten zijn gepositioneerd als vervanging voor een combinatie van een single-board computer en een router. Dankzij een krachtige processor en een grote hoeveelheid RAM kunt u resource-intensieve gebruikerstoepassingen rechtstreeks op de router uitvoeren.

  • Cortex-A8-processor — klokfrequentie 1 GHz, 32-bits architectuur
  • 512MB RAM
  • Flash-geheugen van 1,5 tot 4 GB — voor het opslaan van gebruikersgegevens
  • I/O-poorten — RS-232/485-interfaces en digitale I/O-poorten zijn beschikbaar voor gebruik door gebruikersprogramma's

Afzonderlijk het model waard ICR-3211B, werkend volgens de LTE Cat-standaard. M1 (NB-ivd). LTE Cat-protocol M1 is speciaal ontworpen voor M2M-oplossingen, heeft een lage gegevensoverdrachtsnelheid (375 kb/s), een groot bereik en verhoogde stabiliteit in moeilijke communicatieomstandigheden binnenshuis. De router heeft een ingebouwde ionistor (supercondensator), waardoor het apparaat na een volledige stroomstoring nog korte tijd kan blijven werken.

Diepe slaapmodus

Met de diepe slaapmodus kunt u de router in een staat brengen waarin alle processen zijn bevroren en de hardware is uitgeschakeld om energie te besparen, terwijl alle functies van het apparaat zijn uitgeschakeld en van buitenaf volledig uitgeschakeld lijkt. Het energieverbruik in deze modus is 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 wakker

Wanneer u de router moet wekken om gegevens te verzenden, wordt deze ingeschakeld wordt binnen ~3 seconden wakker. Natuurlijk kost het extra tijd om de modem in het mobiele netwerk te registreren, maar dit is veel sneller dan het helemaal opnieuw laden van de router. Deze optie is handig voor systemen met eigen voeding die het grootste deel van de tijd inactief zijn en af ​​en toe worden geactiveerd om actieve acties uit te voeren, zoals een alarm of een back-upeenheid.

Wakker worden en in slaap vallen

Controle over in slaap vallen en wakker worden gebeurt via de module Slaapstand.

Er zijn 2 manieren om de slaapmodus te regelen:

  • Via digitale ingang — in deze modus wordt de router bestuurd door een extern apparaat, zoals een microcontroller. Wanneer een LAAG signaal naar de digitale ingang wordt gestuurd, gaat de router in de slaapstand, en wanneer hij een HOOG signaal ontvangt, wordt hij wakker, of omgekeerd. U kunt ook een triggertime-out instellen om te voorkomen dat er per ongeluk wordt overgeschakeld.
  • Via interne timer — de router telt de tijd en wordt op het juiste moment wakker/in slaap gevallen. Dit is handig om te gebruiken voor het uitvoeren van eenmalige handelingen of het downloaden van gegevens voor een bepaalde periode.

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

Laatste ademfunctie

Een stroomstoring op een externe locatie kan bijzonder vervelend zijn, omdat niet duidelijk is waarom de communicatie met de locatie niet beschikbaar is. Dankzij de “Last Gasp”-functie kan de router na een volledige stroomstoring nog enige tijd doorwerken en een bericht sturen dat er een noodsituatie heeft plaatsgevonden en dat de back-upstroom niet is ingeschakeld. Dankzij de ingebouwde ionistor, waarvan de levensduur aanzienlijk langer is dan die van oplaadbare batterijen, is onderhoud of vervanging niet nodig. Dit is handig voor stroomback-upsystemen waarbij storingen mogelijk zijn en het belangrijk is om het moment van volledig spanningsverlies bij te houden.

4G-router als universele server voor IoT
Zelfs na een volledige stroomstoring verzendt de router een stroomstoringssignaal

Om goed te kunnen reageren op een stroomstoring, moet u er op de een of andere manier van op de hoogte zijn.
De huidige voedingsspanning kan worden verkregen met behulp van het shell-commando 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 # ← напряжение питания
Temperature      : 37 C   # ← температура внутри корпуса
Time             : 2019-08-16 16:21:18
Uptime           : 0 days, 11 hours, 43 minutes

Hetzij met behulp van hardware Unix I/O-besturing (ioctl) en een programma in C/C++ of een andere taal.
De tabel toont de adressen van de benodigde hardwareregisters. De huidige voedingsspanning wordt geretourneerd als een geheel getal, in millivolt. Voor een snellere respons verdient het gebruik van een API op laag niveau de voorkeur boven shell-scripts. Gedetailleerde informatie over het werken met de hardware is beschikbaar in handleiding voor ontwikkelaars.

4G-router als universele server voor IoT
Een ioctl-verzoek dat de huidige voedingsspanning retourneert.

Seriële interfaces

De router heeft twee seriële interfaces ingebouwd: RS-232 en RS-485. Hiermee kunt u randapparatuur rechtstreeks op de router aansluiten, zonder het gebruik van extra bedrading. Tegelijkertijd kan er een volwaardige Node-RED- of Nodejs-server op de router draaien, waardoor je met één apparaat een eenvoudig automatiseringssysteem kunt inzetten, zonder extra computers en controllers.

4G-router als universele server voor IoT

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

ls -la /dev/ttyS*
crw-------    1 root     root      251,   0 Jan  1  1970 /dev/ttyS0 # ← порт rs-232
crw-------    1 root     root      251,   1 Jan  1  1970 /dev/ttyS1 # ← порт rs-485 
crw-------    1 root     root      251,   5 Jan  1  1970 /dev/ttyS5 # ← не разведен

Alle standaardbibliotheken ondersteunen deze apparaten zonder aanvullende instellingen, 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 volledige lijst met beschikbare modules is beschikbaar op de website https://advantech-bb.cz/products/software/user-modules.

Modules worden handmatig geïnstalleerd door het pakketbestand te downloaden via de webinterface:

4G-router als universele server voor IoT

Er zijn momenteel 73 modules beschikbaar. Hier zijn enkele interessante:

  • Knooppunt-ROOD - een populair hulpmiddel voor het combineren van verschillende industriële protocollen tot een holistisch systeem
  • nodejs — een volwaardige nodejs-server. Dankzij een grote hoeveelheid RAM en een krachtige processor kunt u resource-intensieve applicaties rechtstreeks op de router uitvoeren!
  • Python2/3
  • Webshell — hiermee kunt u via een browser in de console werken.
  • Azure IoT SDK-python — een set tools voor het ontwikkelen van programma's voor Microsoft Azure IoT Hub.

Omdat de firmware van de routers open is, kunnen ontwikkelaars hun eigen modules schrijven, ook modules met een webinterface. Referentiemateriaal is verkrijgbaar op handleiding voor het schrijven van modules и en sectie voor ontwikkelaars op de bedrijfswebsite. Voor het gemak van het samenstellen van pakketten is er een kant-en-klaar pakket beschikbaar omgeving voor kruiscompilatie.

Hardwarebronnen via shellscripts

Voor eenvoudige automatiseringstaken is het handig om shellscripts te gebruiken, van waaruit u de lichtindicatie kunt regelen en de status van digitale pinnen kunt opvragen/instellen.

De lichtindicatie toont handig de huidige status van de opdrachtuitvoering. Bijvoorbeeld gegevensoverdrachtindicatie - snel knipperend, verbindingspoging - zelden knipperend, inactief - continu verlicht. Denk aan het team LED. Er is slechts één argument nodig als invoer: het type LED dat knippert.

# led
led on|off|fast|slow

Zo ziet het er in het echt uit:


Demonstratie van aangepaste indicatorbedieningsmodi via shell-opdrachten

Gebruik de opdracht om met digitale pinnen te werken io.

$ io
Usage: io [get <pin>] | [set <pin> <value>]

io set out0 1 # Установить цифровой выход OUT0 в состояние 1 (LOW)
io get bin0   #  Получить значение цифрового входа BIN0

Het is belangrijk om te onthouden dat de logica in dit geval omgekeerd is. Dienovereenkomstig is 1=LAAG, 0=HOOG. Met behulp van de opdracht io we kunnen eenvoudig werken met digitale pinnen uit bash-scripts en eenvoudige logica bouwen voor automatisering en beheer.

Om het gemak van het werken met digitale ingangen en displays te demonstreren, gaan we een nutteloos script schrijven dat de status van een 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 status 0 staat, dan licht de diode regelmatig op, anders brandt hij continu. Zo ziet het er in het echt uit:


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

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

referenties

  • Dit artikel gaat niet in op de netwerkfuncties van routers, zoals balancering, failover, VPN, enz., aangezien al deze onderwerpen al in ons andere artikel zijn besproken: Industriële 4G-routers SmartMotion.
  • Voorbeeld van het gebruik van een router ICR-3211B staat in ons eerste artikel: Hallo Habr, wij zijn Advantech.
  • U kunt kennis maken met de prijzen van producten in het algemeen online winkel. Onze eigen website in het Russisch is nog niet klaar.

Wij nodigen u uit op het Advantech-partnerforum

4G-router als universele server voor IoT
Het Advantech Forum zal een uniek platform zijn voor het bespreken van lokale en mondiale trends op het gebied van het internet der dingen. Hier kunt u ervaringen uitwisselen over het gebruik van nieuwe technologische oplossingen en producten, nieuwe klanten en partners vinden. U krijgt de kans om de producten te zien die we in de artikelen hebben beschreven en meer. We zullen de komende jaren sprekers hebben van marktleiders en vertegenwoordigers van belangrijke partners: NVidia, Intel en andere bedrijven die actief betrokken zijn bij de ontwikkeling van het Industrial Internet of Things. Wij zien alle specialisten op het gebied van industriële automatisering en Internet of Things graag op het evenement. Deelname aan het evenement is gratis! Het aantal plaatsen is beperkt. Wees er snel bij om u te registreren.

Bron: www.habr.com

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster