Vizualizace senzorických dat v Microsoft Azure pomocí IoT Starter Kit
Pro získávání senzorických údajů a zapínání/vypínání relé jsme využili nový vývojářský nástroj IoT Starter Kit . Aplikaci lze snadno doplnit o další HW a SW rozšíření.
Protože potřebné programy a služby jsou pro něj již přichystány a veřejně dostupné, je vývoj bezdrátové IoT aplikace snadný a rychlý. Ke kitu jsou také dostupné tutoriály, které nás provedou všemi základními kroky.
UP board
Jako rozhraní mezi sítí IQRF a webovými službami Microsoft Azure byla využita oblíbená vývojářská deska UP od firmy AAEON. Jedná se hardwarově velmi zajímavý výrobek vynikající kvalitou, odolností i vnitřním vybavením. Detaily najdete zde.
Gateway zajišťuje komunikaci se sítí IQRF, dokáže z ní díky scheduleru pravidelně vyčítat data a zasílá je MQTT kanálem do připraveného IoT Hubu v Microsoft Azure. Obsluhu MQTT kanálů, formátování JSON zpráv a veškerou komunikaci řídí IQRF Daemon, který je pro tento vývojový kit k dispozici.
Pro nastavení MQTT kanálu jsme nastavili v konfiguračním souboru MqttMessaging.json jméno IoT Hubu v Microsoft Azure a jméno naší GW, kterou jsme si zde přidali jako zařízení.
{
"Name": "MqttMessaging2",
"Enabled": true,
"Properties": {
"BrokerAddr": "ssl://YOURIOTHUB.azure-devices.net:8883",
"ClientId": "YOURDEVICE",
"Persistence": 1,
"Qos": 1,
"TopicRequest": "devices/YOURDEVICE/messages/devicebound/#",
"TopicResponse": "devices/YOURDEVICE/messages/events/",
"User": "YOURIOTHUB.azure-devices.net/YOURDEVICE",
"Password": "SharedAccessSignature sr=YOURIOTHUB.azure-devices.net%2Fdevices%2FYOURDEVICE&sig=aUV7SV1YUtFtO3NoXtPxtnqoI4YYH4xO9A8cAAwt8%2BQ%3D&se=1492996556",
"EnabledSSL": true,
"KeepAliveInterval": 20,
"ConnectTimeout": 5,
"MinReconnect": 1,
"MaxReconnect": 64
}
}
V konfiguračním souboru Scheduler.json jsme nastavili parametry pro vyčítání senzorických hodnot. Parametry v proměnných pnum a pcmd vycházejí z připraveného Custom DPA Handleru, který je pro vyčítání senzorických hodnot nahrán v příslušném IQRF nodu.
{
"Tasks": [
],
"TasksJson": [
{
"time": "*/30 * * * * * *",
"service": "BaseServiceForMQTT2",
"message": {
"ctype":"dpa",
"type":"raw-hdp",
"msgid":"1",
"timeout":500,
"nadr":"01",
"pnum":"20",
"pcmd":"31",
"hwpid":"ffff",
"req-data":"",
"request":".",
"request-ts":"",
"confirmation":".",
"confirmation-ts":"",
"response":".",
"response-ts":""
}
}
]
}
Detailnější informace o instalaci a konfiguraci služeb najdete zde.
Bezdrátová IQRF mesh síť
Platforma IQRF slouží pro bezdrátový přenos v ISM pásmu, směrování v síti zajišťuje IQMESH protokol, topologie je typu mesh, která vyniká spolehlivostí doručení zpráv.
V IoT Starter Kitu najdete senzorický kit pro sběr senzorických údajů ze senzorů (externí teploměr, světelný senzor pro měření úrovně osvětlení, potenciometr pro měření napětí) a relé pro zapínání/vypínání dalších zařízení.
Jsou připraveny specifické Custom DPA Handlery zajišťující snadnou komunikaci jak s relé, tak s jednotlivými senzory.
V souboru Custom-DPA-Handler-DDC-core.c najdeme okomentovaný zdrojový kód, kde po rychlé analýze zjistíme, jaké periferie a jaké příkazy použít pro komunikaci se senzorickým nebo relé kitem.
----------- DDC-SE-01
Request: PNUM = 0x20, PCMD = 0x31
Response:
PData[0]=Temperature at [C]
PData[1]=Photoresistor value 0x00-0xFF
PData[2]=Potentiometer value 0x00-0xFF
returns ERROR_FAIL when error reading temperature
FRC=0xC0, returns temperature at C, 127 for 0 C, 0x80 for error reading temperature
FRC=0xC1, returns photoresistor value, returns 1 instead of 0
FRC=0xC2, returns potentiometer value, returns 1 instead of 0
----------- DDC-RE-01
Request: PNUM = 0x20, PCMD = 0x32
PData[0]=Relay1Ctrl
PData[1]=Relay2Ctrl
Response:
PData[0]=Relay1State
PData[1]=Relay2State
RelayCtrl: 0=Switch the Relay off, 1=Switch the Relay on, Other=Do not control the Relay
RelayState: 0=Relay was off, 1=Relay was on
Popis protokolu DPA, který celou bezdrátovou komunikaci zjednodušuje, najdete zde.
Videotutoriály IQRF
- Výstavba sítě IQRF nad IQRF OS 4.0
- Custom DPA Handlery pro IoT Starter Kit
- Makra pro IoT Starter Kit
Microsoft Azure
Pro zasílání získaných hodnot z jednotlivých senzorů ze sítě IQRF do IoT Hubu v MS Azure je využíván protokol MQTT. Zde jsou data vhodnými dotazy zpracována a zasílána na výstup. Pro ukázku bylo zpracováno video, jak lze data přehlednou formou zobrazit v Power BI.
Pro získání jednotlivých senzorických hodnot z příchozího řetězce jsme vytvořili javascriptovou funkci a SQL dotaz.
JavaScript
// Convert Hex value to integer.
function main(hexValue) {
return parseInt(hexValue, 16);
}
T-SQL
SELECT
*
,UDF.hex2Int(Substring (response,25,2)) AS Temperature
,UDF.hex2Int(Substring (response,28,2)) AS Light
,UDF.hex2Int(Substring (response,31,2)) AS Potentiometer
INTO
DataOUT
FROM
DataIN
Microsoft Azure nabízí i další pokročilé nástroje, kterými lze vytvořit například kompletní aplikaci pro ovládání senzorické sítě či předvídat budoucí stavy ve sledovaných objektech.
Workshop
K IoT Starter Kitu proběhne rozsáhlý workshop na IQRF Summitu 2017 v Praze 7. až 8. června. Účastníci summitu mohou pro případný nákup tohoto produktu a dalších rozšíření uplatnit výraznou slevu.
IQRF Alliance, 777 775 735, alliance@iqrf.org, www.iqrfalliance.org