【问题标题】:Send data to modules in IoT edge - Azure IoT Edge将数据发送到 IoT Edge 中的模块 - Azure IoT Edge
【发布时间】:2021-11-23 04:56:21
【问题描述】:

我刚开始学习 Azure IoT Edge。我的问题是,一旦我创建了一个自定义 java 模块,我如何从我的本地 spring 服务器与它通信,以便我可以向它发送数据。我尝试通过使用模块的连接字符串来使用 ModuleClient 对象。我注意到数据被直接发送到 edgeHub 而不是通过我的模块。 据我所知,路由仅用于模块到模块和模块到 edgeHub 的通信。所以我只想知道是否有其他方法可以将数据发送到我的模块。

我使用了下面的代码sn-p。

String connString = " ";

IotHubClientProtocol protocol = IotHubClientProtocol.AMQPS;
Message messageToSendFromDeviceToModule =  new Message("lorem ipsum.......");
ModuleClient moduleClient = new ModuleClient(connString ,protocol);
moduleClient.open();
moduleClient.sendEventAsync(messageToSendFromDeviceToModule ,null ,null);
System.out.println("MESSAGE SENT");
Thread.sleep(1000);
moduleClient.closeNow();

【问题讨论】:

    标签: java azure-iot-edge


    【解决方案1】:

    在 cmets 中添加更多上下文后更新我的答案。您提到您想知道如何将数据发送到通过this tutorial 制作的自定义模块。

    Azure IoT Edge 模块可以通过多种方式接收通信:

    1. 直接方法
    2. 模块孪生更新
    3. 模块到模块消息
    4. 公开自己的 API(定制)

    您链接的教程创建了一个支持监听模块孪生更新的 Java 模块,仅此。将此模块部署到设备后,您可以使用服务 SDK 或REST API 更新边缘模块。我不知道这在Java SDK 中是否可用,但它在 C#、Python、C 和 Node.js 中可用 如果您还没有部署到设备上,并且想先调试您的模块,您可以set up the Azure IoT Edge simulator through a device connection string。遵循选项 1(在此处复制):

    选项 1:模拟 IoT Edge 解决方案:

    在左侧的 Explorer 选项卡中,展开 Azure IoT Hub 部分。右键单击您的 IoT Edge 设备 ID,然后选择 设置 IoT Edge Simulator 使用设备连接启动模拟器 细绳。可以看到IoT Edge Simulator已经设置成功 阅读集成终端中的进度详细信息。

    这将在 Azure IoT Hub 中创建一个名为 target 的模块,您可以使用上面链接的相同 SDK 和 REST API 来更新模块孪生。

    如果你想使用模块到模块的通信,我会留下我原来的答案: 如果要将数据发送到自定义模块的输入,则应考虑运行 IoT Edge 模拟器。您可以参考this document 了解有关如何执行此操作的更多信息。这种方法将创建一个测试实用程序容器,可以将 HTTP 请求中继到模块的输入。您可以在请求中指定输出,示例如下(来自链接文档):

    curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
    

    【讨论】:

    • 我想知道如何通过 api 将数据发送到模块
    • 你是什么API?您是否在模块中公开 API?您是否尝试通过 IoT 中心执行此操作?
    • 例如,我开发了一个自定义 java 模块,我想与它通信并从我的本地 spring 服务器发送数据,我该如何实现呢?
    • 恐怕需要更多上下文,您可能也需要更新您的问题。您是否在模块中构建了 API?您的自定义模块通过什么方式接受传入数据?
    • 考虑下面链接中的示例 java 模块,我可以通过什么方式向它发送数据? link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多