4G-ruuter universaalse serverina IoT jaoks

4G-ruuter universaalse serverina IoT jaoks
Sari routerid ICR-3200 on mĂ”eldud klassikalise kombinatsiooni asendamiseks: ĂŒheplaadine arvuti + modem + ruuter. NĂŒĂŒd on vĂ”imalik kĂ€ivitada kogu vajalik loogika otse ruuteris. TĂ€nu vĂ”imsale ARM-protsessorile, 512 MB RAM-ile ja ~2GB sisseehitatud vĂ€lkmĂ€lule, vĂ”ib ruuteri peal isegi kĂ€ivitada nodejs-serveri!

Seeriate RS-232/485 liidesed on samuti ruuterisse integreeritud ja saadaval kohe operatsioonisĂŒsteemis, kus on tĂ€ielik root-juurdepÀÀs. Samuti on olemas avatud keskkond oma programmide koostamiseks ja C/C++ raamatukogud, et töötada madala taseme riistvara API-iga.
SĂŒgava une funktsioon vĂ”imaldab energiat sÀÀsta aku kasutamise ajal: ruuterit saab aktiveerida ainult siis, kui ĂŒhendus on tĂ”eliselt vajalik.

Artiklis uurime seadme huvitavaid funktsioone ja proovime praktikas töötada sisend-vÀljundliidesega shell-skriptide kaudu.

Tehnilised andmed

Sari routerid ICR-3200 on ĂŒksik seadmeplatvorm ja esindab viit mudelit, millel on erinevad LTE sagedusvahemikud, Wi-Fi ja geolokatsiooni (GNSS) tugi. Seadmed on positsioneeritud kui ĂŒhekahteist seotud arvuti ja ruuteri asendajad. TĂ”hus protsessor ja suur töötlemismĂ€lu vĂ”imaldavad kĂ€ivitada ressursimahukaid kasutaja rakendusi otse ruuteril.

  • Cortex-A8 protsessor — taktsagedus 1 GHz, 32-bitine arhitektuur
  • 512 MB RAM
  • Flash-mĂ€lu vahemikus 1,5 kuni 4 GB — kasutajaandmete salvestamiseks
  • Sisendi ja vĂ€ljundi ports — RS-232/485 liidesed ja digitaalsed sisendi-vĂ€ljundi portid on kasutamiseks saadaval kasutaja rakendustes

Eraldi tuleks esitada mudel ICR-3211B, mis töötab LTE Cat. M1 standardi alusel (NB-IoT). LTE Cat. M1 protokoll on spetsiaalselt vĂ€lja töötatud M2M lahenduste jaoks, omades madalat andmeedastuskiirus (375 kb/s), samuti suurt tööulatust ja suurenenud stabiilsust keerulistes siseviidudoludes. Ruuteril on sisseehitatud ioonikondensaator (superkondensaator), mis vĂ”imaldab seadmel töötada lĂŒhikese aja jooksul pĂ€rast tĂ€ielikku toite katkestamist.

SĂŒgava une reĆŸiim

SĂŒva une reĆŸiim vĂ”imaldab ruuterit viia seisundisse, kus kĂ”ik protsessid on kĂŒlmutatud ja riistvara on vĂ€lja lĂŒlitatud energiasÀÀstmiseks, mille tulemusena on kĂ”ik seadme funktsioonid vĂ€lja lĂŒlitatud ja sealt vaatamisel nĂ€ib see olema tĂ€ielikult vĂ€lja lĂŒlitatud. Energiatarve sellises reĆŸiimis on mitte rohkem kui 10 mW.

4G-ruuter universaalse serverina IoT jaoks
Une reĆŸiimis tarbib ruuter peaaegu null energiat ja Ă€rkab 3 sekundi jooksul

Kui on vaja ruuter Ă€ratada andmete edastamiseks, Ă€rkab see umbes 3 sekundi pĂ€rast. Loomulikult on vajalik lisaaeg modemi registreerimiseks mobiilivĂ”rgus, kuid see on oluliselt kiirem kui ruuteri kĂ€ivitamine nullist. Selline vĂ”imalus on kasulik iseseisva toiteallikaga sĂŒsteemidele, mis veedavad suurema osa ajast seisakus ja aktiveeruvad harva aktiivsete toimingute sooritamiseks, nĂ€iteks hĂ€iresignaalide or varu-eeskirja tĂ€itmiseks.

Äratamine ja uinumine

Uinumise ja Àrkamise juhtimine toimub mooduli kaudu Sleep Mode.

Une reĆŸiimi haldamiseks on kaks meetodit:

  • Digitaalse sisendi kaudu — sel ajal juhib ruuteri vĂ€line seade, nĂ€iteks mikrokontroller. Madala signaali korral magab ruuter ja kĂ”rge signaali korral Ă€rkab ĂŒles, vĂ”i vastupidi. Samuti on vĂ”imalik seadistada ajapiirang juhuks, kui juhuslikud lĂŒlitused vĂ”ivad tekkida.
  • Sisemise taimeri kaudu — ruuter loendab aega ja Ă€rkab/ magab vajalikul ajal. Seda on mugav kasutada ĂŒhekordsete toimingute tegemiseks vĂ”i andmete laadimiseks teatud perioodi jooksul.

4G-ruuter universaalse serverina IoT jaoks
SĂŒva une reĆŸiimi seadistamise liides

Funktsioon 'viimane hingetÔmme'

Toitekatkestus kaugobjektil on eriti ebameeldiv, kuna on raske mĂ”ista, miks objektiĂŒhendus ei ole saadaval. Funktsioon 'Viimane hingetĂ”mme' vĂ”imaldab ruuteril töötada mĂ”nda aega pĂ€rast tĂ€ielikku toite vĂ€ljalĂŒlitamist ja saata teate, et on toimunud rike ja varutoide ei kĂ€ivitunud. TĂ€nu integreeritud superkondensaatorile, mille ressurss on oluliselt suurem kui akude oma, ei nĂ”ua see hooldust ega asendamist. See on kasulik toite varustamise sĂŒsteemides, kus vĂ”ivad esineda tĂ”rked ja on oluline jĂ€lgida tĂ€ieliku pinge kadumise hetke.

4G-ruuter universaalse serverina IoT jaoks
Router saadab toitekatkestuste signaali isegi pĂ€rast tĂ€ielikku toite vĂ€ljalĂŒlitamist.

SĂŒndmusele reageerimiseks tuleb kuidagi teada saada toitekaotuse kohta.
Praegust toitepinget saab saada kas shell-kÀsu abil. 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 # ← toitepinge
Temperature      : 37 C   # ← temperatuuri sees korpuses
Time             : 2019-08-16 16:21:18
Uptime           : 0 days, 11 hours, 43 minutes

VÔi kasutada riistvaralist Unix I/O kontrolli (ioctl) ja C/C++ keeles vÔi muus keeles kirjutatud programmi.
Tabelis on nĂ€idatud vajalikud riistvararegistrite aadressid. Praegune toitepinge tagastatakse tĂ€isarvuna, millivoltides. Madala taseme API kasutamine on soovitatav shell-skriptide asemel kiirema reageerimise pĂ€rast. Üksikasjalik teave riistvara kĂ€itluse kohta on saadaval arendaja juhendis.

4G-ruuter universaalse serverina IoT jaoks
Ioctl pÀring, mis tagastab praeguse toitepinge.

Seeria liidesed

Ruuterisse on ehitatud kaks jĂ€rjestikust liidest: RS-232 ja RS-485. Need vĂ”imaldavad otseĂŒhendust perifeerseadmetega ruuteri kaudu, ilma lisakomplektita. Samuti vĂ”ib ruuteris töötab tĂ€isfunktsionaalne Node-RED vĂ”i Nodejs server, mis vĂ”imaldab kasutada ĂŒht seadet lihtsa automatiseerimissĂŒsteemi seadistamiseks, ilma tĂ€iendavate arvutite ja kontrolleriteta.

4G-ruuter universaalse serverina IoT jaoks

Vaikimisi on mÔlemad liidesed saadaval standardsete serial-seadmetena Linuxis:

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 # ← ei ole voolujuhtimiseks

KÔik standardraamatukogud toetavad neid seadmeid ilma lisaseadistusteta, sealhulgas moodul Modbus-RTU2TCP ja teised.

Kohandatud moodulid

Seadme funktsionaalsust saab laiendada kohandatud moodulite abil: see on lihtsustatud pakettide variant, ainult ilma pakettide haldurita. Kogu saadavalolevate moodulite loetelu on veebisaidil https://advantech-bb.cz/products/software/user-modules.

Moodulid installitakse kÀsitsi, laadides pakettifaili lÀbi veebiliidese:

4G-ruuter universaalse serverina IoT jaoks

Praegu on saadaval 73 moodulit. Siin on mÔned huvitavad neist:

  • Node-RED — populaarne tööriist erinevate tööstusprotokollide ĂŒhendamiseks ĂŒhtsesse sĂŒsteemi
  • Nodejs — tĂ€isfunktsionaalne nodejs-server. Suur RAM ja vĂ”imas protsessor vĂ”imaldavad ressursimahukate rakenduste kĂ€ivitamist otse ruuteris!
  • Python2/3
  • Veeb-shell — vĂ”imaldab brauseri kaudu konsoolis töötada.
  • Azure IoT SDK Python — Microsoft Azure IoT Hubi rakenduste arendamiseks mĂ”eldud tööriistade komplekt.

Kuna ruuteri tarkvara on avatud, saavad arendajad kirjutada oma mooduleid, sealhulgas veebiliidesega. Viidatud materjalid on saadaval moodulite kirjutamise juhendis ja ja arendajate jaotises ettevÔtte veebisaidil. Pakettide mugavaks ehitamiseks on saadaval valmis ristkompileerimise keskkond.

Riistvaralised ressursid shell-skriptide kaudu

Lihtsate automatiseerimisĂŒlesannete jaoks on mugav kasutada shell-skripte, millega saab hallata valgusindikaatoreid ja saada/seada digitaalsete pinni olekut.

ValgustusnĂ€idik nĂ€itab mugavalt kĂ€skude tĂ€itmise hetkeolukorda. NĂ€iteks andmete edastamise nĂ€itamiseks vilgub see pidevalt, ĂŒhenduse loomise katse puhul vilgub harva ning ooteolekus pĂŒsib see pidevalt sisse lĂŒlitatuna. Vaatame kĂ€sku led. Sellele saab anda ainult ĂŒhe argumendi — LED-i vilkumise tĂŒĂŒbi.

# led
led on|off|fast|slow

Nii see elus vÀlja nÀeb:


Kasutaja indikaatori tööreĆŸiimide demonstreerimine shell-kĂ€skude kaudu

Digitaalse pingiga töötamiseks kasutatakse kÀsku io.

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

io set out0 1 # Seada digitaalne vÀljund OUT0 olekusse 1 (LOW)
io get bin0   #  Saada digitaalne sisendi BIN0 vÀÀrtus

Oluline on meeles pidada, et loogika on selles osas pööratud. Seega 1=LOW, 0=HIGH. KÀsku kasutades io vÔime hÔlpsalt töötada digitaalsete pingidega bash-skripti kaudu ja luua lihtsat loogikat automatiseerimiseks ning juhtimiseks.

TÔenduseks digitaalsete sisendite ja indikaatsiooni lihtsuse kohta kirjutame kasutu skripti, mis kuvab digitaalsete sisendite staatust LED-i abil.

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

Skripti tööpÔhimÔte on lihtne: kui BIN0 on seisundis 0, siis diood pÔleb sageli, muidu pÔleb pidevalt. Nii see elus vÀlja nÀeb:


Bash-skripti demonstratsioon, mis kuvab digitaalse sisendi seisundit indikaatori abil.

Kuigi see skript on primitiivne, nĂ€itab see hĂ€sti, kuidas ĂŒhes reas, ilma tĂ€iendava tarkvara, raamatukogude ja seadistusteta, saab saada andmeid digitaalsetelt sisenditelt ja neile reageerida.

Lingid

Kutsume Advantechi partnerfoorumile

4G-ruuter universaalse serverina IoT jaoks
Advantech'i foorum on ainulaadne koht kohalike ja globaalsete asjade Interneti suundumuste arutamiseks. Siin saate jagada kogemusi uute tehnoloogiliste lahenduste ja toodete kasutamisest, leida uusi kliente ja partnereid. Teil on vĂ”imalus nĂ€ha tooteid, millest oleme kirjutanud artiklites, ja palju muud. Üritusel astuvad ĂŒles tööstuse liidrid ja vĂ”tmepartnerite esindajad – NVidia, Intel ja teised ettevĂ”tted, kes vĂ”tavad aktiivselt osa tööstusliku asjade Interneti arengust jĂ€rgmiste aastate jooksul. Ootame ĂŒritusele kĂ”iki tööstusautomaatika ja asjade Interneti spetsialiste. Üritusel osalemine on tasuta! Kohtade arv on piiratud. Registreeruge kiiresti.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster