Skip to main content

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 6. rész

Megjelent: 2021. augusztus 12.

endrich lid 2

A GigaDevice GD32VF (RISC-V) kontrolleralapú
IoT egylapos miniszámítógép programozása – szenzorok adatainak olvasása

A cikksorozat előző részében bemutattuk az E-IoT platform népszerűsítésére az Endrich budapesti fejlesztőközpontjában az év folyamán létrehozott saját GD32VF-alapú ipari egylapos számítógépet. Az IoT SBC hardvercsalád a hozzá tartozó perifériákkal hasznos kiértékelő és fejlesztőeszköz az IoT területén tevékenykedő mérnökök számára, hiszen az áramkör a mikrokontroller mellett számos szenzort is tartalmaz, valamint a befoglalt háromsávos (2G/NB-IoT/LTE-M) modem felruházza a GSM hálózaton történő adatkommunikáció lehetőségével is.

 

A fejlesztés nyílt hardver- és szoftverkoncepción alapul, azaz bárki hozzáférhet a hardverkapcsoláshoz és a szoftvermintákhoz is a http://e-iot.info portálon. A cikksorozat következő részeiben ennek az eszköznek a programozásába, a szenzorok adatainak olvasásába és a kommunikációs csatorna kialakításába engedünk bepillantást.
A magazin hasábjain korábban ismertetett E-IoT bemutatórendszer – amely tartalmaz minden olyan hardver-, szoftver- és szolgáltatáselemet, ami ezen a területen szükséges – egy egységes, könnyen hozzáférhető és átlátható mintarendszert ad a fejlesztők kezébe. A megoldások hardver- és szoftverelemei szabadon hozzáférhetők, illetve az Endrich IoT ökoszisztéma egyes szolgáltatásai, mint például az Endrich Cloud Database vagy az Endrich Visual Gateway bizonyos feltételekkel a fejlesztőmérnökök számára ingyenesen rendelkezésre állnak. Az előző cikkben a 2020-as Ipar Napjai kiállítás nagydíjas hardvercsalád „zászlóshajóját” a GigaDevice 32 bites RISC-V architektúrájú mikrokontroller köré épített egylapos IoT számítógépet és a hozzá tartozó perifériákat mutattuk be.
Manapság rengeteg miniszámítógép kapható kereskedelmi forgalomban, gondoljunk csak a népszerű Arduino, Raspberry Pi vagy ESP32 eszközökre, azonban az Endrich saját fejlesztésű SBC (Single Board Computer) megoldása az ipari kivitel (nagy hőmérséklet-tartomány) mellett számos extra funkciót is hordoz, mint például a környezeti paraméterek mérésére szolgáló szenzorok nyújtotta lehetőségek és az integrált NB-IoT/LTE-M modem, ami IoT célú GSM kommunikációval egészíti ki az alapfunkciókat.

 

1abra

1. ábra Az Endrich IoT hadrvercsalád alapja az IoT SBC, amely minden szükséges funkciót integrál


Az E-IoT SBC szolgáltatásai

Az általános IoT eszközök három alapfeladatát, az érzékelést, az adatgyűjtés és az adattovábbítás vezérlését, valamint magát az adatkommunikációt az E-IoT hardvercsalád központi eleme a „zászlóshajó”, az IoT képességek teljes skáláját felvonultató független IoT csomópontként működtethető E-IoT SBC biztosítja. Ez a kártya egy adatgyűjtő-továbbító és vezérlőkártya is egyben, amely tartalmazza a szenzorokat, az adatgyűjtés „karmesterét”, a mikrokontrollert, valamint a kommunikációs csatornát biztosító GSM modemet is. A GigaDevice RISC-V mikrovezérlője folyamatosan mintavételezi mind a fedélzeti szenzorokat, mind az egyes külső perifériák (szenzorkártyák) felől érkező adatokat. Elkészíti az Endrich Cloud Database számára értelmezhető JSON datagramot és automatikusan felveszi a kapcsolatot a szerverrel. Képes a keskenysávú IoT hálózaton, az LTE-M (CAT-M1) hálózaton, vagy ezek hiányában akár a GPRS (2G) hálózaton is kommunikálni. (Egy ebből a megoldásból iterált változat az MVM-Net hálózatán LTE-M szolgáltatás használatára alkalmas speciális 450 MHz-es modemmel rendelkező lap.)
Az SBC rendelkezik 3 külső általános célú I/O porttal (GPIO) is, amelyek 3,3 V-os TTL szinttel vezérelhető relémodulok vagy más teljesítményfokozat illesztésével nagyobb feszültségű eszközök kapcsolására használhatók, és a megfelelő védelemmel is el vannak látva, így a szenzorok által mért adatok alapján közvetlen beavatkozásra is van lehetőség, például hőmérséklet-emelkedés esetén nagyteljesítményű ventilátor indítása, sötétség leszálltakor világítás kapcsolása. Az áramköri lapon a GSM modem AT parancsvezérlésre használható UART bemenete egy mini USB csatlakozón keresztül ki van vezetve, így ez a kártya használható a Fibocom GSM próbapanel kiváltására is – ezen a porton keresztül PC-hez kapcsolva a GSM modem külön is működtethető. Hasonlóan a mikrokontroller „in-circuit” programozó UART bemenete is kivezetésre került, így egy külső GD-LINK eszköz használatával vagy az USB-C csatlakozáson keresztül közvetlenül egy számítógéphez kapcsolva és a Windows/Linux által DFU eszközként felismerve a kezünkben van egy jól felszerelt GIGADEVICE RISK-V MCU próbapanel is.

 

Az E-IoT SBC használata

A mikrokontrollerlap részletes programozási segédlete a https://E-IoT.info oldalon megtalálható, jelen írásunkban leginkább néhány fontos érzékelő illesztésére, ezek adatainak lekérdezésére, és azoknak az Endrich által biztosított felhőalapú adatbázisba való juttatásárára szorítkozunk.

 

Termisztor illesztése mikrokontrolleres rendszerhez

Az ellenállás hőfüggésén alapuló szenzorok egyik csoportját a termisztorok alkotják. Ezeket a félvezető kerámia alapanyagú alkatrészeket nemlineáris ellenállás-hőmérsékleti karakterisztika jellemzi. Ha a hőmérséklet emelkedésének hatására jobb áramvezetőkké válnak, akkor NTC-nek hívjuk az ilyen típusú termisztort. Az NTC erősen nemlineáris viselkedést mutat, más hőmérsékletszenzorokkal összehasonlítva előnye a nagyobb érzékenység, hiszen ugyanakkora hőmérséklet-változás jelentősebb mértékben változtatja meg az ellenállás értékét, ezáltal a kiértékelő elektronika könnyebben dolgozhatja fel a nagyobb elektronikus válaszjelet. Az NTC ellenállás – hőfüggés karakterisztikája első közelítésben exponenciális függvénynek tekinthető, és az alábbi képlettel közelíthető:

 

1keplet

T25 = 298,15 [K] (25 oC), T: hőmérséklet [K]

Az R25 a +25 °C referencia-hőmérsékleten felvett ellenállásértéket jelenti, az úgynevezett B-érték [K] pedig a következő (1)-ből adódó logaritmikus összefüggéssel jellemezhető módon teremt kapcsolatot az ellenállás és a hőmérséklet között:

 

2keplet

 

A legtöbb alkalmazásban (1) elégséges matematikai korrelációt ad az ellenállás hőmérsékletfüggésének egy széles hőmérséklet-tartományon (0 °C…100 °C) való ±1 °C pontosságú leírásához, azonban, ha ennél precízebb összefüggésre van szükség, akkor bonyolultabb képlet alkalmazása válik szükségessé. A ma ismert és leginkább elfogadott közelítést a Steinhart-Hart féle egyenlet adja:

 

3keplet

 

Az R a T hőmérsékleten mért ellenállás értéke a (3) összefüggésben, az A, B és C együtthatók pedig a kísérleti mérésekből származó Steinhart-Hart koefficiensek, amelyeket az NTC chip gyártója tesz közzé. Ez a formula kb. ±0,15 °C pontosságot ad a -50 °C…+150 °C hőmérséklet-tartományon, ami a legtöbb alkalmazásban messzemenőkig megfelelő. Ha elegendő csak a 0 °C…100 °C tartományon közelíteni a függvényértékeket, akkor elérhető vele a ±0,01 °C pontosság is.
A hőmérsékletet a termisztor ellenállásának közvetett mérésével határozhatjuk meg – ehhez az azon eső feszültség értékének detektálásával az ellenállás számításával a mikrokontrollert kell segítségül hívni, majd az ellenállás ismeretében a hőmérséklet számítható.
A 2. ábrán látható elvi kapcsolási rajz nem más, mint egy feszültségosztó, ahol az R1 ellenállás egy ismert ellenállásérték (célszerűen megegyezik az NTC 25 °C-on vett ellenállásértékével), ezzel sorba kötve helyezkedik el az NTC. Az R1 egyik kivezetése az MCU tápfeszültségére van felhúzva, míg az NTC másik lába 0 potenciálon van.

 

2abra

2. ábra Ellenállásos osztó áramkör


Az RNTC ellenállásértéke az alábbi képlettel számítható:

 

4keplet



Ahol R1 és Utáp ismert adatok, az UNTC pedig a mikrokontroller A/D átalakítóján mért feszültség értéke. Amennyiben az RNTC számított értéke rendelkezésre áll, több lehetőség van a kívánt hőmérsékletérték meghatározására.

 

1. módszer: A legtöbb alkalmazásban az (1) egyenletből származtatott képlettel közelítően számított hőmérsékletérték elégséges matematikai korrelációt ad a hőmérséklet ellenállásfüggésének egy széles hőmérséklet-tartományon (0 °C…100 °C) való ±1 °C pontosságú leírásához.

 

 

5keplet


2. módszer: Ha az 1. módszernél precízebb összefüggésre van szükség, akkor bonyolultabb képlet alkalmazása válik szükségessé. A ma ismert és leginkább elfogadott közelítést a korábban elmondottak alapján a Steinhart-Hart féle egyenlet adja, ebből a hőmérséklet az alábbi módon számolható:

 

6keplet

 

3. módszer: Gyártói katalógusadat a diszkrét adatpárokból álló NTC R-T táblázat, ahol az egyes szomszédos adatok között a jelleggörbe lineárisnak tekinthető. Egy a táblázatban nem szereplő RNTC mért ellenállás esetén a legközelebbi létező szomszédos R1 és R3 értékekhez tartozó T1 és T3 hőmérsékletadatokból a TNTC a következőképp számítható:

 

7keplet

 

Maga a kapcsolás a 3. ábrán látható. A tápfeszültség természetesen bármilyen ismert, a mikrokontrolleres rendszerben elérhető fix DC feszültség lehet, de célszerű értékét és az R1 ellenállás értékét is úgy megválasztani, hogy az MCU ADC bemenetének felbontását maximálisan ki tudjuk használni. Egy 12 bites ADC az MCU tápfeszültségét 212 részre osztja fel, azaz a 0 V-hoz 0, a tápfeszültséghez 4096 érték tartozik. 5 V tápfeszültség esetén a felbontás 0,00122 V. Ha az NTC 25 °C-on vett ellenállásával megegyező értékű R1 ellenállást választunk, akkor 25 °C-on a mért feszültség éppen a tápfeszültség fele lesz.

 

8keplet

 

Abban az esetben, ha RNTC >> R1 (nagyon alacsony hőmérsékleten) a mért feszültség tart a tápfeszültség értékéhez, míg magas hőmérsékleten, ahol RNTC << R1 UNTC tart a nullához. Az ADC teljes felbontását kihasználtuk ezzel az elrendezéssel 0…Utáp tartományon (a 3. ábrán 5 V-os MCU tápfeszültség esetén).

 

3abra

3. ábra Az NTC illesztése az MCU ADC (analóg) bemenetére

 

A hőmérséklet meghatározása az 1. módszert használva a következő C kódrészlettel valósítható meg:

 program


Láthatófény-szenzor illesztése mikrokontrolleres rendszerhez

Az iparban alkalmazott félvezető-alapú fotoszenzorok egy része (fototranzisztor, fotodióda) az infravörös tartományban is érzékel, így alkalmatlanok szétválasztani az emberi szem érzékelési hullámhossztartományába eső látható fényt és a környező meleg tárgyak felől érkező hősugárzást. Az alkatrészgyártók megoldása a problémára a félvezető-alapú megoldások továbbfejlesztése és a fototranzisztor speciális infraszűrő bevonattal való ellátása, ami a komponens maximális érzékenységét eltolja a látható tartomány irányába. A 4. ábrán látható összehasonlításban ez jól megfigyelhető.

 

4abra

4. ábra Az emberi szem spektrális érzékenysége összevetve a bevonattal rendelkező ALS és a bevonat nélküli félvezető-alapú szenzor spektrális érzékenységgörbéjével (fototranzisztor)

 

Az így előállított félvezető-alapú láthatófény-szenzorok az úgynevezett ALS (Ambient Light Sensor) szenzorok, amelyek teljes mértékben megfelelnek az RoHS előírásainak és funkcionalitásukban közelítik az LDR megoldásokét.
Az Everlight kínálatában szereplő ALS szenzorok közül szeretnék kiemelni két megoldást, az egyik egy analóg szenzor (ALS-PDIC15-21C/L230/TR8), a másik pedig egy digitális I2C buszos változat (ALS-DPDIC17-78C/L749/TR8), amelyek helyet kaptak az E-IoT hardvercsalád eszközein is.

 

Analóg, felületszerelt láthatófény-szenzor: ALS-PDIC15-21C/L230/TR8

Az eszköz a fényerősségnek az emberi szem érzékelési spektrumában érzékelhető változására arányos, lineáris áramerősség-változással válaszol. 2,5 V– 5,5 V közötti feszültséggel táplálható.
A miniatűr SMD eszköz (3,2 × 1,5 × 1,05 mm) egy fotodiódát és egy erősítő IC-t tartalmazó chipből áll IR szűrő bevonattal.
Az analóg kimenettel rendelkező szenzor mikrokontrollerhez való illesztését úgy oldhatjuk meg egyszerűen, hogy egy sorosan kapcsolt, azaz az ALS szenzor kimeneti áramával terhelt söntellenálláson eső feszültséget mérünk az 5. ábra szerinti elvi elrendezésben.

 

5abra

5. ábra Ellenállásos osztó áramkör

 

Az USönt mérését a mikrokontroller egyik analóg bemenetén elhelyezkedő belső A/D átalakító végzi, a fényerősség az IALS áram meghatározása után (IALS = USönt/ RSönt) számítható. Ebből a fényerő a mért áram jelleggörbéje alapján számítható Lux érték.
Az illesztést és az IALS ~ EV (Lux) összefüggést a 6. ábra mutatja.

 

 6abra

6. ábra Az analóg ALS illesztése mikrokontrollerhez, valamint a mért áramerősség és a fényerő lineáris kapcsolata

 

Digitális I2C interfésszel ellátott láthatófény-szenzor: ALS-DPDIC17-78C/L749/TR8A

A speciális IR szűrő bevonattal ellátott fotodióda biztosítja, hogy ez az eszköz is csak az emberi szem által érzékelhető fénytartományban működjön. A beépített 16 bites I2C interfészen keresztül elérhető, A/D átalakítóval történő mintavételezés 0,0033 Lux/lépés felbontást tesz lehetővé, a beépített alsó és felső határértékekhez rendelt megszakítás (interrupt) -jelekkel egyszerűen vezérelhető az alkalmazott mikrokontroller. A maximálisan érzékelhető fényerősség 83 000 Lux. A kétcsatornás kimenet (emberi szem és tiszta fény) kiváló érzékelést tesz lehetővé különböző fényviszonyok között.
A mikrokontrollerhez I2C buszon keresztül csatlakoztathatjuk a szenzort és az INT (interrupt) kimenet figyelésével a beállított határértékekhez tartozó fényviszonyok mellett különböző szoftverrutinok futtathatók (pl. fényerő emelése, csökkentése valamely impulzusszélesség-modulációval ellátott digitális kimeneten keresztül).

 

7abra7. ábra A digitális ALS szenzor illesztése mikrokontrollerhez

 

A beépített erősítő programozható erősítéssel (x1, x4, x8, x32, x96) és az A/D konverter pedig programozható integrálási idővel ( mintavételezések száma) rendelkezik, amelyeket belső regisztereken keresztül állíthatunk.

Ezek alapján a fényerősség a következőképp számítható:
Ha a CH0/CH1 < 0,42 Lux = (CH0/ PGA_ALS)*[64/( ALSCONV +1)]*K1
Ha 0,42 < CH0/CH1 < 0,61 Lux = (CH0/ PGA_ALS)*[64/( ALSCONV +1)]*K2
Ha CH0/CH1 > 0,61 Lux = (CH0/ PGA_ALS)*[64/( ALSCONV +1)]*K3,ahol

  • CH0 CH1 az egyes kimeneti csatornák mért értékei CH0_DATA és CH1_DATA olvasható regiszterek (LB, HB) értékei,
  • PGA_ALS regiszter: a programozható erősítés mértéke (1X..96X)
  • ALSCONV regiszter: ennek a regiszternek az értéke mutatja meg, hogy az ADC mennyi ideig van mintavételezésben, és határozza meg a CH és CH1 csatornák felbontását.
    • 0x00: maximális kimeneti lépésszám 1023, TALS = 5,513 ms (default)
    • 0x01: maximális kimeneti lépésszám 2047, TALS = 8,138 ms
    • 0xff: maximális kimeneti lépésszám 65535, TALS = 674 888 ms
  • A szenzorra jellemző kalibrációs állandók : K1 = 0,41, K2=0,57, K3 =1,58

 

A sorozat következő (befejező) részében megmutatjuk, hogy miként lehet a szenzorok által gyűjtött adatokat a GSM modem segítségével UDP csatornán keresztül az Endrich Cloud Database szolgáltatás felé beküldeni.

 

  

Szerző: Kiss Zoltán – Export Igazgató, Endrich Bauelemente Vertriebs GmbH

 

Endrich Bauelemente Vertriebs GmbH
Sales Office Budapest
1191 Budapest, Corvin krt. 7–13.
Tel.: + 36 1 297 4191
E-mail: Ez az e-mail-cím a szpemrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.
www.endrich.com

 


A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 5. rész

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 4. rész

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 3. rész

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 2. rész

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 1. rész

 

A GigaDevice 32 bites mikrovezérlői IoT alkalmazásokhoz – 7. rész