4G-Router als universeller Server fĂŒr IoT

4G-Router als universeller Server fĂŒr IoT
Router der Serie ICR-3200 sind dafĂŒr konzipiert, die klassische Kombination aus Einzelplatinencomputer + Modem + Router zu ersetzen. Jetzt kann die gesamte erforderliche Logik direkt auf dem Router ausgefĂŒhrt werden. Mit einem leistungsstarken ARM-Prozessor, 512 MB RAM und etwa 2 GB internem Flash-Speicher kann auf dem Router sogar ein Node.js-Server betrieben werden!

Serielle RS-232/485-Schnittstellen sind ebenfalls in den Router integriert und sofort im Betriebssystem mit vollem Root-Zugriff verfĂŒgbar. Eine offene Umgebung zur Erstellung eigener Programme und C/C++-Bibliotheken fĂŒr die Arbeit mit der Low-Level-Hardware-API ist ebenfalls vorhanden.
Die Deep-Sleep-Funktion hilft, Energie zu sparen, wenn der Router mit Akku betrieben wird: Der Router kann nur dann aktiviert werden, wenn die Verbindung tatsÀchlich benötigt wird.

In diesem Artikel werden wir interessante Funktionen des GerÀts erörtern und praktisch mit der Eingabe-/Ausgabe-Schnittstelle aus Shell-Skripten arbeiten.

Technische Spezifikationen

Router der Serie ICR-3200 werden auf einer einheitlichen Hardware-Plattform umgesetzt und bieten fĂŒnf Modelle, die sich in den LTE-Frequenzbereichen, der VerfĂŒgbarkeit von Wi-Fi und Geolokalisierung (GNSS) unterscheiden. Die GerĂ€te werden als Ersatz fĂŒr eine Kombination aus Einplatinencomputer und Router positioniert. Ein leistungsstarker Prozessor und ein großer Arbeitsspeicher ermöglichen es, ressourcenintensive Benutzeranwendungen direkt auf dem Router auszufĂŒhren.

  • Cortex-A8 Prozessor — Taktfrequenz 1 GHz, 32-Bit-Architektur
  • 512 MB RAM
  • Flash-Speicher von 1,5 bis 4 GB — zur Speicherung von Benutzerdaten
  • Ein- und AusgĂ€nge — RS-232/485-Schnittstellen und digitale Ein- und AusgĂ€nge stehen fĂŒr Benutzeranwendungen zur VerfĂŒgung

Besonders hervorzuheben ist das Modell ICR-3211B, das nach dem LTE Cat. M1-Standard arbeitet (NB-IoT). Das LTE Cat. M1-Protokoll wurde speziell fĂŒr M2M-Lösungen entwickelt, bietet eine niedrige DatenĂŒbertragungsrate (375 kb/s) sowie eine grĂ¶ĂŸere Reichweite und verbesserte StabilitĂ€t unter schwierigen Innenraumbedingungen. Der Router verfĂŒgt ĂŒber einen Superkondensator, der es dem GerĂ€t ermöglicht, kurze Zeit nach dem vollstĂ€ndigen Stromausfall zu arbeiten.

Tiefschlafmodus

Der Tiefschlafmodus ermöglicht es dem Router, in einen Zustand zu versetzen, in dem alle Prozesse eingefroren und die Hardware ausgeschaltet ist, um Energie zu sparen. In diesem Zustand sind alle Funktionen des GerĂ€ts deaktiviert, und von außen sieht es vollstĂ€ndig ausgeschaltet aus. Der Energieverbrauch in diesem Modus betrĂ€gt nicht mehr als 10 mW.

4G-Router als universeller Server fĂŒr IoT
Im Schlafmodus verbraucht der Router so gut wie keine Energie und wacht innerhalb von 3 Sekunden auf.

Wenn der Router zur DatenĂŒbertragung aufgeweckt werden muss, wacht er in etwa 3 Sekunden auf.NatĂŒrlich benötigt er zusĂ€tzliche Zeit, um das Modem im Mobilfunknetz zu registrieren, jedoch ist dies erheblich schneller als das Hochfahren des Routers von Grund auf. Diese Option ist nĂŒtzlich fĂŒr Systeme mit autonomer Stromversorgung, die sich die meiste Zeit im Standby befinden und gelegentlich aktiviert werden, um aktive Aufgaben zu erledigen, wie z. B. Alarmierung oder Backup-Blockierung.

Wecken und Schlafen

Die Steuerung des Schlafens und Aufweckens erfolgt ĂŒber das Modul Schlafmodus.

Es gibt 2 Möglichkeiten zur Steuerung des Schlafmodus:

  • Über den digitalen Eingang — In diesem Modus wird der Router von einem externen GerĂ€t, wie einem Mikrocontroller, gesteuert. Bei einem LOW-Signal an dem digitalen Eingang schlĂ€ft der Router ein, und bei einem HIGH-Signal wacht er auf oder umgekehrt. Außerdem kann ein Timeout zum Schutz vor versehentlichen Umschaltungen konfiguriert werden.
  • Über den internen Timer — Der Router misst die Zeit und schlĂ€ft/wacht zu den festgelegten Zeiten. Das ist praktisch fĂŒr einmalige Operationen oder das Laden von Daten ĂŒber einen bestimmten Zeitraum.

4G-Router als universeller Server fĂŒr IoT
BenutzeroberflÀche zur Konfiguration des Tiefschlafmodus

Funktion „Letzter Atemzug“

Ein Stromausfall am Remote-Standort kann besonders Ă€rgerlich sein, da oft unklar bleibt, warum die Verbindung zum Standort unterbrochen ist. Die Funktion „Letzter Atemzug“ ermöglicht es dem Router, eine Zeit lang nach vollstĂ€ndiger Abschaltung der Stromversorgung zu arbeiten und eine Nachricht zu senden, dass ein Ausfall aufgetreten ist und die Notstromversorgung nicht aktiviert wurde. Dank des integrierten Superkondensators, dessen KapazitĂ€t wesentlich höher ist als die von Batterien, ist dieser wartungsfrei und muss nicht ersetzt werden. Dies ist nĂŒtzlich fĂŒr Backup-Systeme, in denen AusfĂ€lle möglich sind und es wichtig ist, den Moment des vollstĂ€ndigen Spannungsverlusts nachzuvollziehen.

4G-Router als universeller Server fĂŒr IoT
Der Router sendet ein Signal ĂŒber einen Stromausfall, selbst nach einem kompletten Stromausfall.

Um auf das Ereignis eines Stromverlustes korrekt zu reagieren, muss man irgendwie darĂŒber informiert werden.
Die aktuelle Versorgungsspannung kann entweder ĂŒber den Shell-Befehl status sys:

$ status sys
Firmware-Version : 6.1.10 (2019-07-02)
Seriennummer       : ACZ1100000623519
Profil            : Standard
RTC-Batterie      : Ok
Versorgungsspannung: 12,3 V # ← Versorgungsspannung
Temperatur        : 37 C   # ← Temperatur im GehĂ€use
Zeit              : 2019-08-16 16:21:18
Betriebszeit      : 0 Tage, 11 Stunden, 43 Minuten

oder ĂŒber die Hardware-Unix-I/O-Steuerung (ioctl) sowie ein Programm in C/C++ oder einer anderen Sprache abgerufen werden.
In der Tabelle sind die Adressen der benötigten Hardwareregister aufgefĂŒhrt. Die aktuelle Versorgungsspannung wird als Ganzzahl in Millivolt zurĂŒckgegeben. Die Verwendung einer Low-Level-API ist in diesem Fall fĂŒr eine schnellere Reaktion bevorzugt, im Vergleich zu Shell-Skripten. Detaillierte Informationen zur Hardwareprogrammierung finden Sie im Entwicklerhandbuch.

4G-Router als universeller Server fĂŒr IoT
ioctl-Anfrage, die die aktuelle Versorgungsspannung liefert.

Serielle Schnittstellen

Der Router verfĂŒgt ĂŒber zwei serielle Schnittstellen: RS-232 und RS-485. Diese ermöglichen den direkten Anschluss von PeripheriegerĂ€ten an den Router, ganz ohne zusĂ€tzliche Verkabelung. Dabei kann auf dem Router ein vollwertiger Node-RED oder Node.js Server betrieben werden, wodurch nur ein GerĂ€t fĂŒr die Umsetzung eines einfachen Automatisierungssystems benötigt wird, ganz ohne zusĂ€tzliche Computer und Controller.

4G-Router als universeller Server fĂŒr IoT

StandardmĂ€ĂŸig sind beide Schnittstellen als herkömmliche serielle GerĂ€te in Linux verfĂŒgbar:

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

Alle Standardbibliotheken unterstĂŒtzen diese GerĂ€te ohne zusĂ€tzliche Konfiguration, einschließlich des Moduls Modbus-RTU2TCP und anderen.

Benutzerdefinierte Module

Die FunktionalitĂ€t des GerĂ€ts kann durch benutzerdefinierte Module erweitert werden: dies ist eine vereinfachte Version von Paketen, nur ohne Paketmanager. Eine vollstĂ€ndige Liste der verfĂŒgbaren Module finden Sie auf der Website. https://advantech-bb.cz/products/software/user-modules.

Module werden manuell installiert, indem die Paketdatei ĂŒber die WeboberflĂ€che hochgeladen wird:

4G-Router als universeller Server fĂŒr IoT

Aktuell stehen 73 Module zur VerfĂŒgung. Hier sind einige interessante davon:

  • Node-RED — ein beliebtes Werkzeug zur Integration verschiedener industrieller Protokolle in ein umfassendes System.
  • Nodejs — ein vollstĂ€ndiger Node.js-Server. Mit viel RAM und einem leistungsstarken Prozessor können ressourcenintensive Anwendungen direkt auf dem Router ausgefĂŒhrt werden!
  • Python2/3
  • Web-Shell — ermöglicht die Arbeit in der Konsole ĂŒber den Browser.
  • Azure IoT SDK Python — eine Sammlung von Werkzeugen zur Entwicklung von Anwendungen fĂŒr Microsoft Azure IoT Hub.

Da die Firmware der Router offen ist, können Entwickler eigene Module, einschließlich solcher mit Web-OberflĂ€che, schreiben. Hilfsmaterialien sind verfĂŒgbar im Modulschreibhandbuch und und im Entwicklerbereich auf der Website des Unternehmens. FĂŒr die einfache Paketassembly steht eine fertige Umgebung fĂŒr die Cross-Kompilierung.

Hardware-Ressourcen ĂŒber Shell-Skripte

FĂŒr einfache Automatisierungsaufgaben ist es praktisch, Shell-Skripte zu verwenden, mit denen die Lichtanzeige gesteuert und der Zustand digitaler Pins abgerufen/gesetzt werden kann.

Die Lichtanzeige ermöglicht eine praktische Anzeige des aktuellen Status der BefehlsausfĂŒhrung. Zum Beispiel: DatenĂŒbertragung wird durch hĂ€ufiges Blinken angezeigt, Verbindungsversuch durch seltenes Blinken, und Ruhemodus durch dauerhaftes Leuchten. Betrachten wir den Befehl led. Er akzeptiert nur ein Argument – die Blinktyp des LED.

# led
led on|off|fast|slow

So sieht es in der RealitÀt aus:


Demonstration der Betriebsmodi des Benutzerindikators ĂŒber Shell-Befehle

Um mit digitalen Pins zu arbeiten, wird der Befehl verwendet io.

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

io set out0 1 # Setze den digitalen Ausgang OUT0 auf Zustand 1 (LOW)
io get bin0   #  Hole den Wert des digitalen Eingangs BIN0

Es ist wichtig zu beachten, dass die Logik hier invertiert ist. Entsprechend ist 1=LOW, 0=HIGH. Mit dem Befehl io können wir einfach mit digitalen Pins aus Bash-Skripten arbeiten und einfache Logik zur Automatisierung und Steuerung erstellen.

Als Demonstration der Einfachheit der Arbeit mit digitalen EingÀngen und der Anzeige schreiben wir ein sinnloses Skript, das den Status des digitalen Eingangs mit einer LED anzeigt.

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

Das Funktionsprinzip des Skripts ist einfach: Wenn BIN0 auf 0 ist, leuchtet die Diode hÀufig, andernfalls leuchtet sie kontinuierlich. So sieht das in der Praxis aus:


Demonstration eines Bash-Skripts, das den Zustand des digitalen Eingangs ĂŒber eine Anzeige darstellt.

Trotz der Einfachheit dieses Skripts zeigt es anschaulich, wie man in einer Zeile, ohne zusÀtzliche Software, Bibliotheken und Einstellungen, Eingangsdaten von digitalen EingÀngen erfassen und darauf reagieren kann.

Links

  • In diesem Artikel werden die Netzwerkfunktionen von Routern, wie Lastverteilung, Failover, VPN und andere, nicht behandelt, da all diese Themen bereits in einem anderen Artikel von uns behandelt wurden: Industrielle 4G-Router SmartMotion.
  • Anwendungsbeispiel des Routers ICR-3211B erfahren Sie in unserem ersten Artikel: Hallo, Habr, wir sind Advantech.
  • Die Preise fĂŒr die Produkte können im allgemeinen Online-Shopeingesehen werden. Die eigene Webseite auf Russisch ist noch nicht bereit.

Wir laden Sie zum Partnerforum von Advantech ein

4G-Router als universeller Server fĂŒr IoT
Das Advantech-Forum wird eine einzigartige Plattform fĂŒr die Diskussion ĂŒber lokale und globale Trends im Bereich des Internets der Dinge. Hier haben Sie die Möglichkeit, Erfahrungen mit neuen technologischen Lösungen und Produkten auszutauschen sowie neue Kunden und Partner zu finden. Sie werden die Gelegenheit haben, die Produkte zu sehen, die wir in unseren Artikeln beschrieben haben und noch viel mehr. BranchenfĂŒhrer und Vertreter wichtiger Partner – NVidia, Intel und andere Unternehmen, die aktiv an der Entwicklung des industriellen Internets der Dinge in den kommenden Jahren beteiligt sind – werden bei uns zu Gast sein. Wir freuen uns, alle Fachleute aus dem Bereich der industriellen Automatisierung und des Internets der Dinge auf der Veranstaltung zu begrĂŒĂŸen. Die Teilnahme an der Veranstaltung ist kostenlos! Die Anzahl der PlĂ€tze ist begrenzt. Melden Sie sich schnell an.

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster