如何在Unity3D上安装Azure IoT中心SDK(C#)?

时间:2019-04-10 07:41:46

标签: unity3d azure-iot-hub azure-iot-sdk

我目前正在Unity 3d中开发仪表板。我想将Unity应用程序连接到Azure IoT中心以接收我的传感器的数据:

传感器+ Rapsberry Pi => IoT中心=> Unity应用

Azure为python开发人员提供了IoT中心sdk:对于传感器部分很有用。但是Azure还为c#开发人员提供了IoT中心sdk。将此sdk用于统一3d会很好。实际上,Unity中的脚本是通过Visual Studio用c#编写的。 问题是我不太了解如何在我的统一项目中安装此SDK?

我看到了一篇有关使用Unity通用窗口平台模块执行iot hub sdk的帖子。但是如何安装该UWP,以及如何安装此iot hub sdk?

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

如果我很好理解,在您的情况下,您正在将数据从RPI和传感器提取到IoT中心,并可能在您的统一应用程序中显示一些信息,对吗?

传感器+ Raspberry Pi => IoT中心=> Unity应用

如果是这种情况,则应将提取的数据存储在某处,并实现某种API,该API可将先前提取的数据用于统一应用。

传感器+ Raspberry Pi => IoT中心=>存储=> Api => Unity应用

不确定什么是商业案例,但您可能也在寻找类似的东西:

传感器+ Raspberry Pi => IoT中心=>发布到服务总线主题=> Unity应用(订阅)

我不建议在您的统一SDK中使用IoT SDK,因为在这种情况下,Unity应用只是“订阅者”。从安全的角度来看,该方法不能反映最佳实践,因为您将必须添加访问服务端点(通过共享访问密钥)到客户端的权限,这可能会带来安全风险。

答案 1 :(得分:0)

我发现它可以让您免于不断询问有关 Microsoft 尚未正式支持的解决方案的问题。我不确定他们是否打算像往常一样,当(c# 兼容)SDK 出现在统一中的明显用途时,Microsoft 通常会在可能的情况下提供支持。从@kgalic,我想出了一个虽然麻烦但有效的解决方案

它的设备(Json遥测)=> IOT-Hub => ServiceBusQueue=>(ServicebusTrigger)AzureFunction(将json分解为类)=>存储(例如设备类数据存储表)。

然后请求遥测(您选择请求的频率) Unity App(http GET/POST) => (HTTP trigger)AzureFunction(从存储中拉取数据并返回Json) => UnityApp(将Json分解为类并可视化)

当您想向设备发送命令/消息时 UnityApp(http Get/POST) => AzureFunction(你实际上可以在这里导入和调用SDK) => UnityApp(Receive Acknowledgement)。

重点是 Unity 可以通过 HTTP 与 Azure Functions 通信,而 Azure Functions 可以使用设备 SDK。

我最后一年的项目实现了这一点。稍后我可能会在 GitHub 上上传文件。