【问题标题】:How to install Azure IoT Hub SDK (C#) on Unity3D?如何在 Unity3D 上安装 Azure IoT Hub SDK (C#)?
【发布时间】:2021-06-22 04:56:19
【问题描述】:

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

传感器 + Rapsberry Pi => IoT Hub => Unity 应用程序

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

我看到一篇关于使用 Unity 通用窗口平台模块执行 iot hub sdk 的帖子。但是这个UWP怎么安装,这个iot hub sdk怎么安装呢?

感谢您的回答!

【问题讨论】:

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


    【解决方案1】:

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

    传感器 + Raspberry Pi => IoT Hub => Unity 应用程序

    如果是这种情况,您应该将摄取的数据存储在某处,实现某种 API,以便为您的统一应用提供先前摄取的数据。

    传感器 + Raspberry Pi => IoT Hub => 存储 => Api => Unity 应用程序

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

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

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

    【讨论】:

    • 嗨!感谢您的回答,在这种情况下,我需要另一个 SDK(不同于 IoT Hub Sdk)来订阅 Azure?我正在寻找 API,但从 Unity 的角度来看,这并不容易。
    • 你好。假设您可能正在寻找类似这样的东西 Sensors + Raspberry Pi => IoT Hub => Publish to Service Bus Topic => Unity App(subscribe) 可以尝试以下教程: 1. 配置从 IoT Hub 到 Service Bus Topic 的消息路由:docs.microsoft.com/en-us/azure/iot-hub/tutorial-routing 2. 检查如何接收来自服务总线的消息主题:docs.microsoft.com/en-us/azure/service-bus-messaging/… 尝试是否可以让 Microsoft.Azure.ServiceBus NuGet 包在您的 Unity 项目中工作。
    • 再说一次,不确定这里的详细要求到底是什么,但请检查这些链接,看看它们是否适合您的情况。
    • 目的是将数据实时发送到Unity。
    • 最好的方法是 SDK,我想在没有 SDK 的情况下到达这个端点,感谢 HTTP 请求。但是 HTTP 请求不会像 sdk 那样完成这项工作。我将尝试不同版本的 Unity 并查看 SignalR
    【解决方案2】:

    我发现它可以让您免于不断询问有关 Microsoft 尚未正式支持的解决方案的问题。我不确定他们是否计划像往常一样,当(c# 兼容)SDK 出现明显的统一用途时,微软通常会在可能的情况下提供支持。从@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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-01
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多