Conexio Stratus je open source LTE-M/NB-IoT/GNSS Cellular-IoT razvojni sistem baziran na Nordic Semi nRF9160 SiP-u koji se može baterijski napajati prikupljanjem energije u polju. Prikupljanje energije (‘Energy harvesting’, ‘Power harvesting’ ili ‘Energy scavenging’) jedan je od ključnih koncepata moderne enegetike, a svakako ključna komponenta savremene IoT tehnologije. Osnova ideje je da se energija prikuplja na licu mesta i lokalno skladišti u bateriji kako bi se obezbedio neprekidan rad uređaja kada izvor energije nije u mogućnosti da je generiše. Koncept je deo savremenih tehnoloških inicijativa kao što su: Industrija 5.0, pametni gradovi, inteligentna infrastruktura, nadgledanje flotom vozila. Energetska samoodrživost se oslanja na minimalnoj ukupnoj potrošnji i eliminisanju energetskih pikova. Potrebna energija se kod izdvojenih IoT uređaja može obezbediti: prikupljanjem solarne energije, što je i najčešći način, energije koju nose radio talasi u mrežama mobilne telefonije, radio ili TV signali, prikupljanjem kinetičke energije pokretnih objekata piezoelektričnim sklopovima i prikupljanjem toplotne energije tela živih bića, objekata ili mašina koja se rasipa u prostor.
Cellular-IoT uređaji su vrsta IoT uređaja koji pristupaju internetu preko mreže mobilne telefonije. Uz Conexio Stratus dolazi i SIM kartica 1NCE.com sa paketom koji omogućava prenos 500 MB podataka i 250 SMS poruka mobilnom mrežom u preko 165 zemalja sveta. Cena ove kartice je 10 Euro za 500 MB/250 SMS i može se naknadno dopunjavati po potrebi. Bitno je napomenuti da Conexio Stratus radi i bez SIM kartice, ali u tom slučaju nema pristupa internetu, već se svi do podaci do očitavanja moraju čuvati interno.
Primerak Conexio Stratus nRF9160 Cellular IoT Kit-a sa pratećom Conexio Stratus Shield V2 pločom smo za potrebe ove recenzije dobili direktno od američke kompanije Conexio Technologies koja ga je i razvila.
Hardver
Zahvaljujući nRF9160 SiP-u u njemu, Stratus može koristiti i LTE-M i NB-IoT low power IoT tehnologije za prenos podataka i time je primenjiv gotovo u svim zemljama sveta. LTE-M (Long Term Evolution for Machines) je dostupan na teritoriji nekih zemalja Zapadne Evrope, Severne i Južne Amerike i u Australiji. Od naših suseda ovu tehnologiju imaju Slovenija, Mađarska i Rumunija. On obezbeđuje protok podataka od 7 Mbps pri slanju i 4 Mbps prilikom prijema.
NB-IoT (NarrowBand-Internet of Things) je kao i LTE-M low power IoT tehnologija, ali mu je brzina prenosa dosta niža i iznosi maksimalno 159 Kbps za uplink i 127 Kbps za downlink. Pokrivenost ovom tehnologijom je manja u odnosu na LTE-M koji ga je zamenio i od naših suseda ima je samo Hrvatska. Na teritoriji Srbije nisu dostupne ni LTE-M ni NB-IoT, već: 2G, 3G i 4G(LTE) mreža, sa tim da se Yettel i A1 mogu koristiti sa SIM karticama Conexio IoT verifikovanih provajdera: 1NCE, Telit, Hologram, Soracom i iBasis.
nRF9160 SiP-u u sebi ima 64 MHz Arm Cortex-M33 procesor sa 1 MB Flash i 256 KB RAM-a, čija je namena izvršavanje programa. Arm Cortex-M33 i njegovu ARMv8-M arhitekturu smo već sreli u STM H5, L5, U5 i WBA serijama MCU-a (NUCLEO-U575ZI-Q je jedan primer koji radi na 160 MHz). U ovoj konfiguraciji on je ne samo dovoljan za nadziranje I/O saobraćaja, već i za DSP obradu prikupljenih podataka i za ML (Machine Learning) aplikacije. Conexio Stratus MCUBoot bootloader je kompatibilan sa Edge Impulse platformom u oblaku namenjenu za razvoj ML aplikacija.
Uz CPU u SiP-u je i LTE IPv4/IPv6 modem sa integrisanim TCP/UDP i TLS/DTLS protokolima, omogućenim aplikativnim lejerima: HTTP(s), CoAP, MQTT i LWM2M. Kao poseban deo, tu je i RF Front End (RFFE) kolo za kontrolu frekvencija telekomunikacionih signala.
U sebi ima integrisan GNSS risiver. GNSS je termin koji referiše International Multi-Constellation Satellite System i objedinjava: GPS, GLONASS, Baidu i Galileo sisteme kako bi omogućio lociranje i praćenje uređaja. nRF9160 SiP podržava i sve sisteme lociranja bazirane na mreži mobilne telefonije.
Conexio Stratus razvojni sistem je veličine 50.8 mm x 22.86 mm i težine svega 5 g. Fizički je nalik na ploče u Adafruit Feather standardu, ali ipak ima razlika u rasporedu signala po pinovima, kojih ima isto 32. Pored standardnih pinova za napajanje: 3V3, 5V i Power, tu je i ‘+Solar’ pin u skladu sa ‘Energy harvesting’ idejom. Signali na 26 GPIO pinova, namenjenih za povezivanje sa eksternim senzorima, aktuatorima ili drugim elektronskim napravama, su multipleksirani tako da se na njima može generisati veći broj različitih protokola, sa tim da se može dobiti najviše četiri od svakog iz grupe: SPI, UART, PWM, PDM, I²C, I²S, tri TIMER-a, dva RTC-a, jedan WDT i jedan 12 bitni ADC sa maksimalnom učestanošću uzorkovanja od 200 kHz.
Na ploči se nalaze i dva U.FL konektora za antene, jedan za LTE-M/NB-IoT, a drugi za GNSS antenu. Mi smo uz kit dobili TAOGLAS FXUB63 4G/LTE antenu za opseg signala od 698 do 3000 MHz.
Tu je i desetopinski JTAG/SWD interfejs koji vam neće biti neophodan za zamenu aplikacije na Conexio Stratus-u, jer ćete to raditi USB-C kablom ili preko mreže (FOTA), ali će biti potreban ukoliko želite da ažurirate firmware ploče.
Na ploči su i STM LIS2DH MEMS 3-osni akcelerometar i Sensirion SHT4x senzor temperature i vlage. Za oba ova senzora postoji Zephyr biblioteka, te nema nikakvih problema prilikom upotreba od samog starta.
Sistem za menadžment potrošnje SiP-a, pri naponu napajanja od 3.7 V, uz generisaje izlaznog signala od 24 dBm u PSM-u (Power Save Mode) ne zahteva struju napajanja iznad 2,7 uA, a u eDRX modu (Extended Discontinuous Reception) kada vrši prijem signala u delimično aktivnom stanju u trajanju do 655 sekundi, povlači struju od 6 uA (LTE-M), odnosno 9 uA (NB-IoT). Ove osobine čine ovaj SiC, pa time i kompletan razvojni sistem idealnim sa energetske strane za IoT aplikacije napajane prikupljanjem.
Za prikupljanje solarne energije na ploči je iskorišćen E-peas Semiconductors AEM10941 solar energy harvester koji može prikupljati energiju sa ulaza u opsegu napona od 5 mV do 5 V. Podržava rad sa do sedam solarnih ćelija, ali i povezivanje na Li-ion i NiMH baterije, za šta postoji poseban konektor na ploči. Conexio Stratus ulazni napon pretvara u 3V3 i u low-power modu vuče 5 uA, dok mu je vršna struja maksimalnih 0.9 A.
Uz Conexio Stratus moguće je dokupiti i Conexio Stratus Shield. On na sebi pored ležišta za Conexio Stratus ima i konektor za mikro BUS kartice, kao i jedan Seeed Studio Grove i dva Sparkfun QWIIC konektora za I2C periferije. Najzad tu je i poseban konektor za povezivanje solarnog panela spojen direktno sa ‘+Solar’ ulazom na Stratus-u i jedna programabilna LED dioda.
Softver
Programiranje Conexio Stratus-a nije onoliko jednostavno i okrenuto korisniku kao što je to recimo slučaj sa Arduino pločama. Samo postavljanje okruženja je zahtevniji posao od jednostavne instalacije IDE-a, na šta smo sada veliko navikli.
Sratus je predviđen da radi pod ZephyrRTOS-om. Na taj način je obezbeđena kompatibilnost sa svim periferijama koje su bibliotekama podržane od strane Zephyr-a, te Conexio Technologies nije imao potrebe, kao što je to kod Particle proizvoda, da se bavi pisanjem softverske podrške za veliki broj perifernih uređaja. Iako je Zephyr danas postao praktično standardni RTOS za Embedded sisteme, prilikom izbora dodatne periferije, dobro je prvo pogledati da li postoji već napisana biblioteka za nju.
Ukoliko vas ne interesuje naše neponovljivo iskustvo prilikom instalacije ZephyrRTOS toolchain-a za Conextio Stratus razvojnu ploču na Ubuntu 22 x86 računaru, kliknite ovde da bi preskočili pravu softversku zavrzlamu.
Prvo što smo morali da uradimo bilo je da instaliramo Zephyr SDK na naš računar. Videli smo da postoje distribucije za Ubuntu, macOS i Windows i probali smo sve, čak i obe Ubuntu verzije: za x86 i za ARM. Iz našeg iskustva nam se čini da je najelegantnije korišćenje Ubuntu 22.04 na x86 arhitekturi, jer je instalacija svih potrebnih alata u toj varijanti najlakša. Računajte da će vam trebati oko 20 GB prostora na disku za instalaciju kompletnog toolchain-a. Pratili smo uputstvo za instaliranje ZephyrRTOS koje je dato na njihovom sajtu i naša je preporuka da se odlučite za korišćenje virtual environment-a, jer je to način koji će u budućnosti i biti jedini moguć zbog novih preporuka za Python (PEP 668). Sve je prošlo glatko.
Nakon toga trebalo je instalirati nRF Connect SDK. Na Conexio sajtu postoji uputstvo koje se oslanja na cross-platform alat nRF Connect for Desktop koji je razvio Nordic Semi. Uputstvo je delimično zastarelo jer referencira SDK 1.7.0 i 2.1.0, dok je sadašnja verzija 2.5.0. Takođe, u trenutku pisanja uputstva, u Visual Studio Code-u nisu bile integrisane nRF ekstenzije, pa opis postupka te integracije sada neadekvatan. Mi smo ipak koristili drugi način: instalaciju iz Visual Studio Code-a, koja se nama pokazala manje zavisna od samog sistema na kome se izvodi, pa bi je stoga generalno preporučili. Prvi korak koji smo učini je instalacija VS Code ekstenzije nRF Connect for VS Code Extension Pack, koja će uz sebe automatski insalirati još šest dodatnih ekstenzija neophodnih za rad.
Nakon toga VS Code-a instalirali smo nRF SDK toolchain 2.5.0. Time je naš sistem postao softverski sposoban za razvoj aplikacija za nRF čipove.
Da bi mogli da flešujemo naše programe na Conexio Stratus koristeći USB port, a ne JTAG programator, morali smo da instaliramo newt i newtmgr. Taj poduhvat nije bio baš onakav kako stoji na sajtu proizvođača. Za instalaciju je bilo potrebno dodati JuulLabs-OSS apt repozitorijum, a u uputstvu je rečeno da se to radi sledećom komandom u terminalu:
wget -qO - https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/mynewt.gpg.key | sudo apt-key add -
Međutim, ovaj način je sada zabranjen zbog bezbednosti u Ubuntu i treba umesto te komande, koristiti sledeće dve, s tim da pre njih treba instalirati curl snap-om:
curl -sS https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/mynewt.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/mynewt.gpg echo "deb [signed-by=/usr/share/keyrings/mynewt.gpg] https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master latest main" | sudo tee /etc/apt/sources.list.d/mynewt.list
Neiskusniji Linux korisnici moraju da obrate pažnju da je potrebno dati privilegije korisniku da koristi ttyUSB0 (u našem slučaju). Pre flešovanja potrebno je dodeliti ttyUSB0 port profilu.
newtmgr -c serial image upload app_update.bin newtmgr conn add serial type=serial connstring='dev=/dev/ttyUSB0,baud=115200'
Obratite pažnju da je brzina serijske komunikacije 115200 bauda.
Najzad da bi imali šta da flešujemo, bilo je potrebno da dobijemo app_update.bin, koga smo našli u poddirektorijumu /build/zephyr projektnog direkorijuma. No, pre komande build, potrebno je bilo da dodamo dva direktorijuma u instalaciju toolchain-a i time ga prilagodimo Conexio Stratus ploči. Ova dva koraka postoje u uputstvu, ali su na različitim mestima i moguće ih je prevideti.
Prvo smo preuzeli Conexio firmware u kome se nalaze i demo programi sa GitHub-a i odpakovan direktorijum snimili u /ncs/v2.5.0 preimenuvši ga u conexio.
Dalje, u direktorijumu /ncs/v2.5.0/zephyr/boards/arm prekopirali smo direktorijum conexio_stratus preuzet sa Conexio sajta u kome su definicije same ploče. Time smo završili podešavanje softverskog okruženja.
Ostalo je samo da napišemo, modifikujemo ili jednostavno otvorimo neki od postojećih primera u VS Code-u. Pre build-a kreirali smo build okruženje kao na slici ispod. U direktrijumu koji smo definisali za build izlaz, u podirektorijumu /zephyr nalazo nam se app_update.bin.
Zaključak
Conexio Stratus je Cellular-IoT ploča čija je funkcija prikupljanje podataka senzorima vezanim na svoje GPIO linije, njihova obrada i slanje mrežom mobilne telefonije. Izbor nRF9160 obezbeđuje pokrivenost gotovo celog sveta. Mala potrošnja uz implementaciju ‘Energy Harvesting’ čipa na ploči omogućava da se kao IoT uređaj koristi na svakom mestu i u svakoj prilici.
Ovakva rešenja se koriste za menadžment flote transportnih ili servisnih vozila u realnom vremenu sa globalnom pokrivenošću, daljinsko nadgledanje zdravstvnog stanja pacijenta bez restrikcije njegove obilnosti, kao i u polju u Industriji 4.0 ili preciznoj poljoprivredi. Pravi benefiti se postižu na prostorima gde je dostupan LTE-M, ne samo zbog brzine prenosa, već zbog bolje implementacije rominga, dok je NB-IoT prigodniji za disperzne, ali statične tačke. Na našoj teritoriji nažalost nije dostupan ni LTE-M ni NB-IoT da bi mogli da istestiramo ove dve tehnologije.
Prednost ovog sistema je da je moguće uvezati veći broj Conexio Stratus uređaja preko celuarne mreže na neki od servisa na oblaku, čime se obezbeđuje simultano praćenje u dužem vremenskom periodu svih izmerenih vrednosti, njihov grafički prikaz i analiza, odnosno implementacija ML-a. Ovi servisi su po pravilu besplatni samo za osnovne potebe razvoja, ali se u profesionalnoj upotrebi njihove usluge plaćaju. Kako je pločica već duže vreme na tržišu, pored pomenutih, realizovane su i podrške za Memfault, Qubitro, thingsboard, PelionIoT, awscloud i Azure.
Cena Conexio Stratus nRF9160 Cellular IoT Kit-a je gotovo prepolovljena u odnosu na onu koja je ponuđena 2021 godine kada je on predstavljen tržištu. Verujemo da je jedan od razloga i najava Stratus Pro modela baziranog na nRF9161 SiC-u kome je dodata podrška za DECT NR+ i 3GPP Release 14 LTE-M/NB-IoT. Sada se za 89 USD nudi razvojna ploča. 10 USD treba dodati za Conexio Stratus Shield, koliko treba i za GNSS antenu i još 5 USD za LTE-M/NB-IoT antenu. Finalna cena kompleta je 115 USD, što je za ovaj tip uređaja sasvim korektna cena ukoliko se kupuje od proizvođača. S obzirom na aplikacije koje mogu pokriti, bez obzira na cenu, ovakvi sistemi jednostavno nemaju tehnološku alternativu.
- Banana Pi BPi-M5 pro a.k.a. ArmSoM-Sige5 recenzija - 02/12/2024
- Megger MVCT: Analizator naponskih i strujnih transformatora - 02/12/2024
- ICOP 86Duino Zero recenzija - 01/12/2024