Co je to LoRaTech MultiSense sensor?

LORATECH MultiSense sensor je nová generace platformy pro snímání a dálkové měření dodávaná společností RVTech s.r.o. Jedná se o rozšiřující desku pro platformu KETCube pro průmyslové použití. Lze ji objednat v mnoha variantách provedení (napájení, krabička, funkcionalita).

KETCube® je HW i SW prototypová a demo platforma vyvinutá na Katedře materiálů a technologií (KET) Elektrotechnické fakulty Západočeské univerzity v Plzni. Platforma KETCube® se obecně skládá ze základní desky a rozšiřujících desek. Má implementován základní autonomní RHT (relativní vlhkost a teplota) senzor. Další senzory lze připojit k základní desce připojením k pinům patice. Základní deska je osazena mikroBUSTM pinout-kompatibilní paticí.

KETCube

Patice KETCube je nadmnožinou definované zásuvky mikroBUS od MikroElektronika d.o.o. Podrobný pohled na oba pinouty je na obrázku. Pinout KETCube rozšiřuje pinout mikroBUSTM o další 4 IO piny do pinové lišty označené IO1 – IO4 (viz. obrázek). Kratší pinová lišta je duplikována při zachování rozložení pinů a zvýšení vzdálenosti patic z 22,86 mm = 0,9” pro mikroBUSTM na 27,94 mm = 1,1”.

Pinout KETCube

KETCube® pracuje s napájecím napětím a napětím logiky 3,3V. Pro napájení desky lze použít napětí 3,3V nebo 5V.

Hlavní deska KETCube (KETCube mainBoard)

Hlavní deska KETCube je základní součástí platformy KETCube. Procesor hlavní desky je STM32L0 integrovaný do modulu Murata Type ABZ. Některé z pinů STM32L0 jsou k dispozici na desce a na pinových lištách, některé z nich jsou určeny pro rádio typu ABZ, a proto je nemůže používat aplikace. Hlavní deska je vybavena snímačem RHT řady HDCx080 nebo SHT31, který může sloužit k monitorování relativní vlhkosti (RH) a teploty (T). Deska může být osazena integrovanou anténou nebo některým z anténních konektorů (u.FL, SMA) pro připojení externí antény.

Jak KETCube konfigurovat?

KETCube, a tedy i LoRaTech S0 sensor lze uživatelsky konfigurovat pomocí UART komunikace s terminálem prostřednictvím kabelu s převodníkem na USB. Na základě hardwarové konfigurace i softwarové aktivace jednotlivých modulů se odvíjí struktura datového rámce a tedy i parsovací tabulky v aplikaci LoRaTech. Dále lze nastavit periodu měření a zasílání informací. Nod podporuje připojení do sítě LoRaWAN jak pomocí OTAA (Over The Air Activation), tak i ABP (Autorization By Personalization).

Komunikační terminál

Pomocí UART komunikace prostřednictvím kabelu s převodníkem na USB a např. programu PuTTY je možné zařízení konfigurovat v prostředí LoRaTech terminálu.

Nastavení sériové komunikace:

  • Rychlost: 9600 bps
  • Data bits: 8
  • Stop bits: 1
  • Parita: No
  • HW Flow control: No
  • COM Port: záleží na nastavení konfigurace virtuálního COM portu (v OS Windows COMx, /dev/ttyUSBx pro OS na bázi Linuxu)

UART modul se připojuje na piny „dlouhé pinové lišty“ následovně:

  • GND a případně napájení o úrovni 3,3V na piny GND a 3V3 (první a druhý pin od společné hrany pinových lišt).
  • Komunikační signálové vodiče Tx a Rx se připojují na poslední dva piny dlouhé lišty (označeny IO1 a IO2), kde IO1 je Tx a IO2 Rx signál.

Práce s LoRaTech terminálem

Pokud obsahuje KETCube dodávaný firmware (zdarma jej lze získat ze stránek projektu na githubu), lze použít pro komunikaci s KETCube a jeho konfiguraci prostředí sériové komunikace s názvem KETCube Terminal. Ten je k dispozici na rozhraní USART1 (IO1 a IO2)

Terminál KETCube umožňuje konfigurovat moduly KETCube (LoRa, HDCX080, batMeas …) a parametry modulu (např. devEUI, appKey, … pro modul LoRa). Terminál KETCube je citlivý na velká písmena.

Modulem je označena ucelená část programového kódu řídící konkrétní funkcionalitu.

Příkazy terminálu se řídí hierarchickým stromovým uspořádáním. Po resetování zařízení se vypíše základní nápověda včetně kořenových/základních příkazů. Nápovědu lze kdykoli vyvolat příkazem help. Po stisknutí klávesy [TAB] se zobrazí vložená nápověda (např. Napište „s [TAB]“ a všechny příkazy začínající „s“ budou vytištěny – jsou to: „set“ a “show”). Inline nápověda je užitečná zejména pro příkazy skryté hluboko ve stromové struktuře. Chcete-li zobrazit seznam modulů, použijte příkaz list. Příkazy enable (povolit) / disable (zakázat) slouží k zapnutí / vypnutí modulů KETCube.

Když je modul povolen, začne provádět definovanou operaci (např. změří RH a teplotu a odešle výsledky přes LoRa). K ladění lze dodatečně použít povolovací příkaz a druhý (volitelný) parametr příkazu, který nastavuje úroveň severity (tj. množství ladících informací vypisovaných modulem na sériový terminál) modulu (bez použití druhého parametru zůstává severita na výchozí úrovni).

Úrovně severity jsou: NONE (0), ERROR (1), INFO (2) a DEBUG (3). Výchozí úroveň severity je ERROR. Příkazy show / set se používají k zobrazení / nastavení parametrů modulů KETCube® (např. show LoRa devEUI). Parametry se ukládají do EEPROM na čipu.

Historie příkazů je dostupná pomocí kláves > a <. Všechna nastavení, kromě těch nastavených příkazem setr, se aplikují až po resetu zařízení. Ten proveďte příkazem reload.

Příkaz setr slouží ke změně (některých) parametrů za běhu, příkaz showr pak slouží k zobrazení aktuálních parametrů, které mohou být odlišné od parametrů nastavených příkazem set. Hodnoty nastavené pŕíkazem setr jsou ztraceny po resetu KETCube®.

Výchozí nastavení terminálu:

  • Tx PIN: IO2
  • Rx PIN: IO1
  • Rychlost: 9600 b/s
  • Datových bitů: 8
  • Stop bitů: 1
  • Parita: Ne
  • HW Flow control: Ne
  • Konec řádku: CR + LF nebo LF

Terminál je case-sensitive (rozlišuje velká a malá písmena). Příkazy mají stromovou strukturu a nápovědu, takže práce s ním je vcelku intuitivní.

Příkazy:

  • about = výpis informací o KETCubeMulti, Copyright, License, …
  • help = vypíše seznam příkazů
  • disable = vypnutí KETCube modulu
  • enable = zapnutí KETCube modulu
  • list = výpis dostupných KETCube modulů
  • reload = restart KETCube
  • show = výpis LoRa, SigFox … parametrů zapsaných v paměti EEPROM
  • showr = výpis LoRa, SigFox … parametrů zapsaných v paměti RAM
  • set = nastavení LoRa, Sigfox … parametrů (nastavené změny parametrů se projeví až po HW restartu nebo po SW restartu – příkazu reload)
  • setr = nastavení LoRa, Sigfox … parametrů (nastavené změny parametrů se projeví okamžitě, jsou však zapsány pouze do paměti RAM a tedy po restartu již nebudou aktivní)

Zobrazení ladících zpráv lze zapnout parametrem příkazu enable. 0 = bez výpisu zpráv (příznak None), 1 = výpis pouze chybových zpráv (příznak eRror), 2 = výpis informačních zpráv (příznak Info), 3 = výpis všech zpráv (příznak Debug). Např. enable LoRa 2 zapne modul LoRa s výpisy informací o připojení a vysílání (včetně těch chybových).

V terminálu funguje i oblíbený inline help, který po napsání počátečního písmene příkazu a stisku klávesy [TAB] vypíše příkazy začínající na zadané písmeno přičemž na příkazovém řádku písmeno zůstane a můžeme pokračovat v zadávání příkazu. Inline help je užitečný zejména pro příkazy skryté hluboko v struktuře stromu či pokud si nejsme jisti přesnou podobou příkazu např. co se týká velkých a malých písmen.

KETCube Terminal

Jak KETCube programovat

Firmwarové moduly KETCube

Firmware pro aplikace s KETCube je sestaven ze sady modulů. Například:

  • LoRa – KETCube je vyvinut pro aplikace ve světě tzv. Internetu věcí (IoT). Tento modul řídí komunikaci pomocí protokolu LoRaWAN.
  • HDCX080 / SHT31 – KETCube má na desce implementován senzor relativní vlhkosti a teploty. Tento modul řídí měření těchto fyzikálních parametrů prostředí a komunikaci se senzorem po sběrnici I2C.
  • S0 – Při použití v aplikaci pro odečet energií je použit právě tento modul. Kromě „prostého“ čítání impulzů nabízí též funkci reakce na náběžnou hranu (změna stavu spínače 1 → 0 nebo obráceně).
  • batMeas – Tento modul provádí měření napětí napájecí baterie. Protože při práci s KETCube EDU je zařízení napájené prostřednictvím USB kabelu, nebudete tento modul patrně používat.
  • ADC – Tento modul provádí měření napětí v mV na pinu AN.
  • Arduino – Modul, jehož funkci můžete programovat v prostředí Arduino IDE. Pracujete-li s KETCube EDU, programujete v prostředí Arduino IDE funkce právě tohoto modulu.
  • Dokumentaci API KETCube EDU naleznete na webu: https://edu.ketcube.cz/files/apidoc/

Hardwarové řešení

Pro nahrání kódu je třeba v KETCube® inicializovat tzv. Bootloader.
Bootloader je malý program, který se stará o aktualizaci aplikačního kódu KETCube®. Bootloader je inicializován stiskem a podržením tlačítka BOOT na desce KETCube, krátkým stiskem tlačítka RST a puštěním tlačítka BOOT.

Software

Pro nahrání kódu lze použít např. oficiální SW výrobce mikrokontroléru STM32CubeProgrammer. Lze zvolit několik možností komunikace. Nejčastěji je používán protokol UART, kdy se nám nabídne vhodné nastavení vč. komunikačního portu (ten je třeba zkontrolovat, protože může být mylně přiřazen implicitní COM port). V druhé záložce vlevo je pak nabídnuto prostředí pro naprogramování mikrokontroléru.

Jinou možností je použít prostředí Arduino IDE. Návod lze nalézt na https://edu.ketcube.cz/ v oddílu Začínáme s KETCube EDU.

Závěr

Platforma KETCube® je dnes již standardním řešením ve většině projektů firmy RVTech používajích nejen komunikaci v prostředí  IoT (internetu věcí) prostřednictvím protokolu LoRaWAN. Tím, že se jedná o hardwarově i softwarově otevřenou platformu, lze ji bez omezení implementovat v mnoha oblastech. Více informací lze nalézt na https://ketcube.cz nebo na https://github.com/SmartCAMPUSZCU.