Bezdrátový přenos s IQRF: čtení z externích čidel

8. 6. 2016
Doba čtení: 2 minuty

Sdílet

Dnes si ukážeme, jak číst data z externího teplotního čidla Dallas, hodnoty z čidla intenzity osvitu (fotorezistor) či hodnoty napětí pomocí potenciometru. Využijeme Custom DPA Handler.

Napětí a osvit

Pro získání hodnot reprezentujících napětí a intenzitu osvitu můžete využít rozšiřující senzorický kit DDC-SE-01, který lze snadno připojit do vývojového zařízení DK-EVAL-04A. Na tomto kitu najdete senzor intenzity osvětlení – fotorezistor, potenciometr pro snímání hodnot napětí či externí teplotní čidlo Dallas 18B20.

V sadě připravených příkladů (Examples\DPA\CustomDpaHandlerExamples) najdete příklad CustomDpaHandler-UserPeripheral-ADC.c určený pro čtení hodnot z fotorezistoru a potenciometru.

minulém dílu jste se seznámili s tím, jak pracovat s programovou nadstavbou Custom DPA Handler. Také jste sestavili funkční mesh síť IQRF, pomocí které můžete pokrýt rozlehlou plochu, ze které můžete snímat hodnoty a ovládat zařízení. Nebudeme zde tedy znovu rozebírat, jak postavit síť a jak zařízení nakonfigurovat, aby mohla programovou nadstavbu Custom DPA Handler využívat.

Do Nodu, na který připojíte rozšiřující senzorický kit, nahrajte zkompilovaný program CustomDpaHandler-UserPeripheral-ADC-7×D-V226–160303.hex (či jeho jinou variantu) a povolte použití Custom DPA Handleru. Prostudujte tento handler, abyste věděli, na jakou periferii zasílat příkazy, případně data.

Technické údaje

Z komentářů v příslušném Custom DPA Handleru zjistíte, že PNUM = 0×20 a PCMD = 0 vrací dvoubajtovou hodnotu s 10b ADC výsledkem z pinu C5 (AN4) v parametru PData, a že PNUM = 0×21 a PCMD = 0 vrací dvoubajtovou hodnotu s 10b ADC výsledkem z pinu C1 (AN0) v parametru PData.

V dokumentaci senzorického kitu zjistíte, že pin C5 je připojen na potenciometr a C1 na fotorezistor.

Když tedy zašlete příkaz PCMD = 0 na první uživatelskou periferii PNUM = 0×20, získáte v parametru PData hodnotu z potenciometru, a pokud jej zašlete na druhou uživatelskou periferii PNUM = 0×21, získáte hodnotu z fotorezistoru.

Přijatá hodnota v parametru PData (v pořadí Little-endian – PDATA[1] a PDATA[0]) – zde 0×022A odpovídá hodnotě z potenciometru – binárně vyjádřeno jako 0000 0010 0010 1010. Jedná se o 10bitovou hodnotu zapsanou v těchto 2 bajtech, která se dá převést na napětí.

Podobně, když pošlete příkaz PCMD = 0 na druhou uživatelskou periferii PNUM = 0×21, bude vrácena hodnota z čidla intenzity osvitu.

Tato 10bitová hodnota (zde 0×0126 – binárně 0000 0001 0010 0110) lze dle dokumentace daného čidla převést na hodnotu odpovídající hodnotě intenzity osvětlení.

Teplota z čidla Dallas 18B20

Na senzorickém kitu najdete externí teplotní čidlo Dallas 18B20, pomocí kterého můžete měřit teplotu okolí neovlivněnou vlastním transceiverem. Pro čtení této teploty je připraven příklad CustomDpaHandler-UserPeripheral-18B20.c. Příslušný hex soubor nahrajte do transceiveru, prostudujete kód Custom DPA Handleru, a zašlete data pro získání teploty.

Postup je stejný jako v případě získání hodnoty z potenciometru. Příkaz PCMD = 0 se zasílá na první uživatelskou periferii PNUM = 0×20, a vrácená hodnota se nachází v parametru PData. Rozdíl je tedy pouze v tom, jaký program zaslaný příkaz zpracovává.

V této ukázce jsme získali hodnotu 0×0190, což binárně odpovídá hodnotě 0000 0001 1001 0000. Interpretace hodnoty závisí na samotném čidlu, jehož manuál je třeba vyhledat a prostudovat. Zde byla vrácena hodnota 25°C.

ict ve školství 24

Zdroj: datasheet DS18B20 [PDF]

V příštím dílu se podíváme blíže na tzv. FRC – Fast Response Command, který umožňuje hromadné získávání informací ze zařízení či jejich řízení.

Autor článku

Má za sebou patnáctiletou praxi ve školství, dnes pracuje pro firmu IQRF Tech a IQRF Alliance a má na starosti akademický program IQRF Smart School zaměřený na podporu vzdělanosti mládeže v oblasti technologie IQRF.