4G maršrutētājs kā universāls serviss IoT

4G maršrutētājs kā universāls serviss IoT
Sērijas maršrutētāji ICR-3200 ir paredzēti, lai aizvietotu klasisko kombināciju: vienas plates dators + modems + maršrutētājs. Tagad visu nepieciešamo loģiku var palaist tieši maršrutētājā. Pateicoties jaudīgajam ARM procesoram, 512 MB operatīvās atmiņas un ~2GB iebūvētās zibspuldzes atmiņas, maršrutētājā var pat palaist nodejs serveri!

Sekvenciālie RS-232/485 interfeisi ir iebūvēti maršrutētājā un pieejami nekavējoties operētājsistēmā ar pilnu root piekļuvi. Atvērtā vide, lai izstrādātu savas programmas un C/C++ bibliotēkas, lai strādātu ar zema līmeņa aparatūras API, ir arī pieejama.
Dziļā miega funkcija ļaus ekonomēt enerģiju, strādājot no akumulatora: maršrutētāju var aktivizēt tikai tad, kad savienojums patiešām ir nepieciešams.

Rakstā mēs izskatīsim interesantas ierīces funkcijas un mēģināsim praktiski strādāt ar ieejas-izejas interfeisiem no shell skriptiem.

Tehniskās specifikācijas

Sērijas maršrutētāji ICR-3200 tiek veikti uz vienotas aparatūras platformas un tiek piedāvāti piecās modeļos, kas atšķiras ar LTE frekvenču joslām, Wi-Fi klātbūtni un ģeolokāciju (GNSS). Ierīces tiek pozicionētas kā aizstāšana vienas plates datora un maršrutētāja kombinācijai. Jaudīgais procesors un liels operatīvās atmiņas apjoms ļauj palaist resursus prasīgus lietotāja lietojumus tieši maršrutētājā.

  • Cortex-A8 procesors — takts frekvence 1 GHz, 32 bitu arhitektūra
  • 512 MB RAM
  • Zibspuldzes atmiņa no 1,5 līdz 4 GB — lietotāja datu glabāšanai
  • Ieejas-izejas porti — RS-232/485 interfeisi un digitālās ieejas-izejas porti pieejami lietotāja programmām

Atsevišķi jāizceļ modelis ICR-3211B, kas darbojas pēc LTE Cat. M1 standarta (NB-IoT). LTE Cat. M1 protokols tika speciāli izstrādāts M2M risinājumiem, tam ir zema datu pārsūtīšanas ātrums (375 kb/s), kā arī liela darbības distance un uzlabota stabilitāte sarežģītos savienojumu apstākļos iekštelpās. Maršrutētājam ir iebūvēts jonu kondensators (superkondensators), kas ļauj ierīcei strādāt īsu laiku pēc pilnīgas strāvas izslēgšanas.

Dziļā miega režīms

Dziļā miega režīms ļauj ievest maršrutētāju stāvoklī, kad visi procesi ir iesaldēti un aparatūras daļa ir izslēgta, lai ekonomētu enerģiju, tajā pašā laikā visas ierīces funkcijas tiek izslēgtas, un no puses tā izskatīsies pilnībā izslēgta. Enerģijas patēriņš šādā režīmā ir ne vairāk kā 10 mW.

4G maršrutētājs kā universāls serviss IoT
Miegs režīmā maršrutētājs gandrīz patērē enerģiju un pamostas 3 sekunžu laikā

Kad ir nepieciešams pamodināt maršrutētāju datu pārsūtīšanai, tas pamodīsies ~3 sekunžu laikā. Protams, reģistrācijai mobilo tīklu vajadzēs papildu laiku, tomēr tas ir ievērojami ātrāk nekā maršrutētāja ielāde no nulles. Šī opcija ir noderīga autonomās jaudas sistēmām, kas lielāko daļu laika ir neaktīvas un aktivizējas reti, piemēram, drošības signālu vai rezerves bloka izpildei.

Pamodināšana un aizmigšana

Aizmigšanas un pamodināšanas kontrole notiek caur moduli Miega režīms.

Pastāv 2 veidi, kā kontrolēt miega režīmu:

  • Caur digitālo ieeju — šajā režīmā maršrutētājs tiek kontrolēts no ārēja ierīce, piemēram, mikroprocesora. Uz LOW signāla digitālajā ieejā maršrutētājs aizmieg, bet, saņemot HIGH, pamostas vai otrādi. Var arī iestatīt aktivizēšanās laika ierobežojumu, lai pasargātu no nejaušiem pārslēgumiem.
  • Caur iekšējo taimeri — maršrutētājs skaita laiku un pamostas/aizmieg noteiktajā laikā. To ērti izmantot vienreizēju operāciju veikšanai vai datu ielādēšanai noteiktā laika periodā.

4G maršrutētājs kā universāls serviss IoT
Miega režīma dziļās iestatīšanas interfeiss

Funkcija „pēdējais elpas vilciens”

Kvarcējums pie attālinātā objekta var būt īpaši nepatīkams, jo nav skaidrs, kāpēc nav saziņas ar objektu. Funkcija „Pēdējais elpas vilciens” ļauj maršrutētājam darboties kādu laiku pēc pilnīgas elektroapgādes izslēgšanās un nosūtīt ziņojumu, ka notikusi avārija un rezerves enerģija nav iekļauta. Pateicoties iebūvētajam superkapacitāram, kura resurss ir ievērojami lielāks nekā akumulatoriem, tam nav nepieciešama apkope un maiņa. Tas ir noderīgi jaudas rezerves sistēmām, kurās iespējamas neveiksmes un ir svarīgi uzraudzīt pilnīgas sprieguma zuduma momentu.

4G maršrutētājs kā universāls serviss IoT
Maršrutētājs nosūtīs signālu par elektroapgādes avāriju pat pēc pilnīgas barošanas izslēgšanās

Lai pareizi reaģētu uz elektroapgādes zuduma notikumu, ir jāzina par to.
Pašreizējo barošanas spriegumu var iegūt vai nu ar shell komandu status sys:

$ status sys
Firmware Version : 6.1.10 (2019-07-02)
Serial Number    : ACZ1100000623519
Profile          : Standarts
RTC Battery      : Labi
Supply Voltage   : 12.3 V # ← strāvas spriegums
Temperature      : 37 C   # ← temperatūra korpusā
Time             : 2019-08-16 16:21:18
Uptime           : 0 dienas, 11 stundas, 43 minūtes

Vai nu ar aparatūras Unix I/O kontroli (ioctl) un programmu C/C++ vai citā valodā.
Tabulā ir uzskaitītas nepieciešamo aparatūras reģistru adreses. Pašreizējais strāvas spriegums tiek atgriezts kā vesels skaitlis, milivoltā. Zemo līmeņu API izmantošana ir priekšroka, salīdzinot ar shell skriptiem, šajā gadījumā ātrākai reakcijai. Sīkāka informācija par aparatūras daļu ir pieejama izstrādātāja rokasgrāmatā.

4G maršrutētājs kā universāls serviss IoT
Ioctl pieprasījums, kas atgriež pašreizējo strāvas spriegumu.

Sekvenciārie interfeisi

Maršrutētājā ir iebūvēti divi sekvenciārie interfeisi: RS-232 un RS-485. Tie ļauj pieslēgt perifērijas ierīces tieši maršrutētājam, nesazinoties ar papildu automatizāciju. Tajā pašā laikā uz maršrutētāja var darboties pilnvērtīgs Node-RED vai Nodejs serveris, kas ļauj izmantot vienu ierīci, lai izveidotu vienkāršu automatizācijas sistēmu, bez papildu datoriem un kontrolieriem.

4G maršrutētājs kā universāls serviss IoT

Pēc noklusējuma abi interfeisi ir pieejami darbam kā standarta serial ierīces Linux operētājsistēmā:

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 # ← nav izstrādāts

Visas standarta bibliotēkas atbalstīs šīs ierīces bez papildu konfigurācijām, tostarp modulis Modbus-RTU2TCP un citi.

Lietotāju moduļi

Ierīces funkcionalitāti var paplašināt, izmantojot lietotāju moduļus: tas ir vienkāršots pakotņu variants, tikai bez pakotņu pārvaldnieka. Pilns pieejamo moduļu saraksts ir pieejams mājaslapā https://advantech-bb.cz/products/software/user-modules.

Moduli tiek instalēti manuāli, augšupielādējot pakotnes failu caur tīmekļa interfeisu:

4G maršrutētājs kā universāls serviss IoT

Šobrīd ir pieejami 73 moduļi. Šeit ir daži interesanti no tiem:

  • Node-RED — populārs rīks dažādu rūpniecisko protokolu apvienošanai vienotā sistēmā
  • Nodejs — pilnvērtīgs nodejs serveris. Lielais operatīvās atmiņas apjoms un jaudīgs procesors ļauj palaist resursietilpīgas lietotnes tieši uz maršrutētāja!
  • Python2/3
  • Web-shell — ļauj strādāt konsolē caur pārlūkprogrammu.
  • Azure IoT SDK Python — rīku komplekts Microsoft Azure IoT Hub programmu izstrādei.

Tā kā maršrutētāju programmatūra ir atvērta, izstrādātāji var rakstīt savus moduļus, tostarp ar tīmekļa saskarni. Atsauces materiāli pieejami moduļu rakstīšanas rokasgrāmatā un un izstrādātāju sadaļā kompānijas vietnē. Lai atvieglotu pakotņu veidošanu, ir pieejama gatava kros-kompilācijas vide..

Aparatūras resursi caur shell skriptiem

Vienkāršām automatizācijas uzdevumu risināšanai ērtāk izmantot shell skriptus, ar kuriem var pārvaldīt gaismas indikāciju un iegūt/iestatīt digitālo pin modu stāvokli.

Gaismas indikācijai ir ērti parādīt pašreizējo komandu izpildes stāvokli. Piemēram, datu pārsūtīšana — bieža mirgošana, pieslēgšanās mēģinājums — reta mirgošana, gaidīšanas režīms — nepārtraukta gaismas iedegšanās. Apskatīsim komandu led. Tai ir tikai viens arguments — gaismas dioda mirgošanas veids.

# led
led on|off|fast|slow

Lūk, kā tas izskatās reālajā dzīvē:


Lietotāja indikatora režīmu demonstrācija caur shell komandām

Darbojoties ar digitālajiem pin moduļiem, tiek izmantota komanda io.

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

io set out0 1 # Iestatīt digitālo izeju OUT0 stāvokli 1 (LOW)
io get bin0   #  Iegūt digitālā ieejas BIN0 vērtību

Ir svarīgi atcerēties, ka šajā gadījumā loģika ir inversa. Attiecīgi 1=LOW, 0=HIGH. Izmantojot komandu io mēs varam viegli strādāt ar digitālajiem pin moduļiem no bash skriptiem un veidot vienkāršu loģiku automatizācijai un pārvaldībai.

Kā vienkāršu darba demonstrāciju ar digitālajiem ieejas un indikāciju, uzrakstīsim bezjēdzīgu skriptu, kas attēlo digitālās ieejas statusu ar gaismas dioda palīdzību.

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

Skripta darbības princips ir vienkāršs: ja BIN0 ir stāvoklī 0, diods mirgo bieži, citādi tas iedegas nepārtraukti. Lūk, kā tas izskatās dzīvē:


Bash skripta demonstrācija, kas parāda digitālās ieejas stāvokli ar indikatora palīdzību.

Neskatoties uz šī skripta primitivitāti, tas ilustrē, kā vienā rindā, bez papildu programmatūras, bibliotēkām un iestatījumiem var iegūt ieejas datus no digitālajiem ieejas un reaģēt uz tiem.

Saites

Aicinām uz Advantech partneru forumu

4G maršrutētājs kā universāls serviss IoT
Advantech forums kļūs par unikālu platformu lokālo un globālo tendenciju apspriešanai Internetu lietu jomā. Šeit jūs varēsiet apmainīties ar pieredzi par jaunu tehnoloģisko risinājumu un produktu izmantošanu, atrast jaunus klientus un partnerus. Jums būs iespēja apskatīt produktus, par kuriem mēs rakstījām rakstos, un ne tikai. Mūsu pasākumā uzstāsies nozares līderi un galveno partneru pārstāvji – NVidia, Intel un citas kompānijas, kas aktīvi piedalās industriālā Internetu lietu attīstībā tuvākajos gados. Mēs priecāsimies redzēt visus speciālistus industriālās automatizācijas un Internetu lietu jomā šajā pasākumā. Piedalīšanās pasākumā ir bezmaksas! Vietu skaits ir ierobežots. Nepalaidiet garām reģistrēšanos.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster