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, [email protected], www.iqrfalliance.org
This post first appeared on MSDN Blogs | Get The Latest Information, Insights, Announcements, And News From Microsoft Experts And Developers In The MSDN Blogs., please read the originial post: here