4G usmjerivač kao univerzalni server za IoT

4G usmjerivač kao univerzalni server za IoT
Serija usmjerivača ICR-3200 namijenjeni su zamjeni klasične kombinacije: jednočipni računar + modem + usmjerivač. Sada je moguće pokrenuti svu potrebnu logiku direktno na usmjerivaču. Zahvaljujući moćnom ARM procesoru, 512 MB RAM-a i ~2 GB ugrađene fleš memorije, na usmjerivaču je moguće čak pokrenuti i nodejs server!

Serijski sučelja RS-232/485 također su integrirana u usmjerivač i odmah dostupna u operativnom sustavu s punim root pristupom. Također su dostupna otvorena okruženja za izradu vlastitih programa i C/C++ biblioteke za rad s niskonivovnim hardverskim API-jem.
Značajka dubokog sna omogućava uštedu energije kada se radi na bateriji: usmjerivač se može aktivirati samo kada je veza zaista potrebna.

U ovom članku razmotrit ćemo zanimljive značajke uređaja i pokušati praktično raditi s ulazno-izlaznim sučeljem iz shell skripti.

Tehničke specifikacije

Serija usmjerivača ICR-3200 urađeni su na jedinstvenoj hardverskoj platformi i predstavljeni u pet modela, koji se razlikuju po LTE frekvencijskim opsegu, dostupnosti Wi-Fi-ja i geolokacije (GNSS). Uređaji se pozicioniraju kao zamjena kombinaciji jednočipnog računara i usmjerivača. Moćan procesor i velika količina RAM-a omogućavaju pokretanje zahtjevnih korisničkih aplikacija direktno na usmjerivaču.

  • Cortex-A8 procesor — taktna frekvencija 1 GHz, 32-bitna arhitektura
  • 512 MB RAM-a
  • Fleš memorija od 1,5 do 4 GB — za pohranu korisničkih podataka
  • Ulazno-izlazni portovi — RS-232/485 sučelja i digitalni ulazno-izlazni portovi dostupni su za korištenje korisničkim programima

Posebno se ističe model ICR-3211B, koji radi prema standardu LTE Cat. M1 (NB-IoT). Protokol LTE Cat. M1 posebno je razvijen za M2M rješenja, ima nizak protok podataka (375 kb/s), kao i veliku domet i poboljšanu stabilnost u teškim uvjetima prijenosa unutar zgrada. Usmjerivač ima ugrađeni superkondenzator, koji omogućava uređaju da radi kratko vrijeme nakon potpunog isključivanja napajanja.

Način dubokog sna

Način dubokog sna omogućava da se usmjerivač stavi u stanje u kojem su svi procesi zaustavljeni, a hardverski dijelovi isključeni, radi uštede energije, pri čemu su sve funkcije uređaja isključene i s vanjske strane izgleda potpuno isključen. Potrošnja energije u ovom načinu rada iznosi ne više od 10 mW.

4G usmjerivač kao univerzalni server za IoT
U načinu mirovanja usmjerivač gotovo da ne troši energiju i budi se za 3 sekunde

Kada zatreba probuditi usmjerivač za prijenos podataka, on probudi se za ~3 sekunde. Naravno, trebat će dodatno vrijeme za registraciju modema u mobilnoj mreži, ali to je značajno brže od pokretanja usmjerivača iz početka. Ova opcija je korisna za sustave s autonomnim napajanjem, koji su veći dio vremena u stanju mirovanja i aktiviraju se povremeno, za obavljanje aktivnih radnji, poput signalizacije ili bloka rezerviranja.

Buđenje i uspavljivanje

Upravljanje uspavljivanjem i buđenjem odvija se putem modula Način mirovanja.

Postoje 2 načina upravljanja načinom mirovanja:

  • Putem digitalnog ulaza — u ovom načinu usmjerivačem upravlja vanjska jedinica, poput mikrokontrolera. Na signal LOW na digitalnom ulazu usmjerivač uspava, a pri primanju HIGH — budi se, ili obrnuto. Također se može postaviti vremenski odgodu aktivacije za zaštitu od slučajnih prebacivanja.
  • Putem unutarnjeg tajmera — usmjerivač odbrojava vrijeme i budi se/uspava u određeno vrijeme. Ovo je zgodno za izvršavanje jednokratnih operacija ili preuzimanje podataka u određenom razdoblju.

4G usmjerivač kao univerzalni server za IoT
Sučelje za postavljanje načina dubokog mirovanja

Funkcija 'posljednji uzdah'

Kvar napajanja na udaljenom objektu može biti osobito neugodan, jer nije jasno zašto je komunikacija s objektom nedostupna. Funkcija 'Posljednji uzdah' omogućuje usmjerivaču da radi neko vrijeme nakon potpunog isključenja napajanja i pošalje poruku da je došlo do kvara i rezervno napajanje nije uključeno. Zahvaljujući ugrađenom superkondenzatoru, čiji je resurs znatno veći od onih kod akumulatora, ne zahtijeva održavanje i zamjenu. Ovo je korisno za sustave rezervnog napajanja kod kojih mogu doći do prekida i važno je pratiti trenutak potpune gubitka napona.

4G usmjerivač kao univerzalni server za IoT
Usmjerivač će poslati signal o kvaru napajanja čak i nakon potpunog isključenja napajanja

Da bi se pravilno reagiralo na događaj gubitka napajanja, potrebno je nekako saznati o tome.
Trenutni napon napajanja može se dobiti ili putem shell naredbe 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 # ← napajanje
Temperature      : 37 C   # ← temperatura unutarnjeg kućišta
Time             : 2019-08-16 16:21:18
Uptime           : 0 dana, 11 sati, 43 minute

Ili pomoću hardverskog Unix I/O kontrola (ioctl) i programa na C/C++ ili nekom drugom jeziku.
U ovoj tablici su prikazane adrese potrebnih hardverskih registara. Trenutni izlaz napajanja vraća se kao cijeli broj, u milivoltima. Korištenje niskonivskog API-ja je poželjnije od shell skripti u ovom slučaju za bržu reakciju. Detaljne informacije o radu s hardverom dostupne su u priručniku za programere.

4G usmjerivač kao univerzalni server za IoT
Ioctl upit koji daje trenutačno napajanje.

Serijski interfejsi

Usmjerivač ima dva serijska interfejsa: RS-232 i RS-485. Oni omogućuju izravno povezivanje perifernih uređaja s usmjerivačem, bez korištenja dodatnih priključaka. U tom slučaju na usmjerivaču može raditi punopravni Node-RED ili Nodejs server, što omogućuje korištenje jednog uređaja za postavljanje jednostavnog sustava automatizacije, bez dodatnih računala i kontrolera.

4G usmjerivač kao univerzalni server za IoT

Prema zadanim postavkama, oba interfejsa dostupna su za korištenje kao standardni serijski uređaji u Linuxu:

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 # ← nije izveden

Sve standardne biblioteke će podržavati ove uređaje bez dodatnih podešavanja, uključujući modul Modbus-RTU2TCP i drugi.

Korisnički moduli

Funkcionalnost uređaja može se proširiti pomoću korisničkih modula: to je pojednostavljena verzija paketa, samo bez upravitelja paketa. Cijeli popis dostupnih modula nalazi se na web stranici https://advantech-bb.cz/products/software/user-modules.

Moduli se instaliraju ručno, pomoću preuzimanja paketa putem web sučelja:

4G usmjerivač kao univerzalni server za IoT

Trenutno je dostupno 73 modula. Evo neki zanimljivi među njima:

  • Node-RED — popularni alat za povezivanje različitih industrijskih protokola u cjelovit sustav
  • Nodejs — punokrvni nodejs server. Velika količina RAM-a i moćan procesor omogućuju pokretanje zahtjevnih aplikacija izravno na usmjerivaču!
  • Python2/3
  • Web-shell — omogućuje rad u konzoli putem preglednika.
  • Azure IoT SDK Python — set alata za razvoj aplikacija za Microsoft Azure IoT Hub.

Budući da je firmware usmjerivača otvoren, programeri mogu pisati vlastite module, uključujući i one s web sučeljem. Referentni materijali dostupni su u priručniku za pisanje modula i i sekciji za programere na web stranici tvrtke. Radi lakše izrade paketa dostupno je spremno okruženje za križno kompajliranje.

Hardverski resursi putem shell skripti

Za jednostavne zadatke automatizacije pogodno je koristiti shell skripte, iz kojih se može upravljati svjetlosnom indikacijom i dobivati/zadavati stanje digitalnih pinova.

Svjetlosna indikacija korisna je za prikazivanje trenutnog stanja izvršavanja naredbi. Na primjer, indikacija prijenosa podataka — učestalo treptanje, pokušaj povezivanja — rijetko treptanje, mirovanje — kontinuirano svjetlo. Razmotrimo naredbu led. Prima samo jedan argument — tip treptanja LED diode.

# led
led on|off|fast|slow

Evo kako to izgleda u stvarnom životu:


Demonstracija načina rada korisničkog indikatora putem shell naredbi

Za rad s digitalnim pinovima koristi se naredba io.

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

io set out0 1 # Postaviti digitalni izlaz OUT0 u stanje 1 (LOW)
io get bin0   #  Dobi vrijednost digitalnog ulaza BIN0

Važno je zapamtiti da je logika u ovom slučaju invertirana. Stoga je 1=LOW, 0=HIGH. Koristeći naredbu io možemo lako raditi s digitalnim pinovima iz bash skripti i graditi jednostavnu logiku za automatizaciju i upravljanje.

Kao demonstraciju jednostavnosti rada s digitalnim ulazima i indikacijom, napisat ćemo beskorisnu skriptu koja prikazuje status digitalnog ulaza putem LED dioda.

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

Princip rada skripte je jednostavan: ako je BIN0 u stanju 0, LED dioda treperi učestalo, inače svijetli kontinuirano. Evo kako to izgleda uživo:


Demonstracija rada bash skripte koja prikazuje stanje digitalnog ulaza putem indikatora.

Unatoč primitivitete ove skripte, ona jasno pokazuje kako u jednoj liniji, bez dodatnog softvera, biblioteka i postavki, mogu se dobiti ulazni podaci s digitalnih ulaza i reagirati na njih.

Linkovi

Pozivamo vas na partnerski forum Advantech

4G usmjerivač kao univerzalni server za IoT
Forum Advantech će postati jedinstvena platforma za raspravu o lokalnim i globalnim trendovima u području Interneta stvari. Ovdje ćete moći razmijeniti iskustva u korištenju novih tehnoloških rješenja i proizvoda, pronaći nove klijente i partnere. Imat ćete priliku vidjeti proizvode koje smo opisivali u člancima i još mnogo toga. U našem programu sudjelovat će lideri industrije i predstavnici ključnih partnera – NVidia, Intel i druge tvrtke koje aktivno sudjeluju u razvoju industrijskog Interneta stvari u sljedećim godinama. Bit će nam drago vidjeti na događaju sve stručnjake u području industrijske automatizacije i Interneta stvari. Sudjelovanje na događaju je besplatno! Broj mjesta je ograničen. Ne propustite se registrirati.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster