如何将事件从Linux计算机发送到Azure IoT Edge Hub

时间:2018-07-10 22:50:15

标签: azure azure-iot-hub

我已将我的第一个IoT Edge设备成功部署到Azure IoT中心。边缘设备是Ubuntu 16.04,我使用以下链接作为指南https://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux

该链接使用tempSensor生成实时流数据。

在我的Ubuntu上,我使用以下链接http://acesinc.net/introducing-a-streaming-json-data-generator/

安装了json的实时事件流生成器。

当我查看日志时,可以在Ubuntu计算机上看到事件,我可以从tempSensor中看到日志,但是看不到流事件生成器中的事件。

问题是我可以从tempSensor中看到日志(正在生成流量),但是看不到实时流量所产生的流量。

我做了一些研究,发现为了将事件发送到边缘集线器,我需要创建一个自定义模块来接收消息并将其发送到边缘集线器。因此,我需要将流生成器修改为模块SDK以发送数据。建议我在以下链接中遵循该指南:

https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-csharp-module

现在,问题在于链接的指南基于使用基于tempSensor的数据生成器的模拟IoT边缘设备。而我的Ubuntu使用完全不同的生成器。因此,我仅尝试了我认为可以使我的Ubuntu将事件发送到IoT Edge集线器的指南。

我的配置如下:

  

命名空间mycsharpmodule4 {       使用System.Collections.Generic; //对于KeyValuePair <>       使用Microsoft.Azure.Devices.Shared; //用于TwinCollection       使用Newtonsoft.Json; //对于JsonConvert       使用系统;       使用System.IO;       使用System.Runtime.InteropServices;       使用System.Runtime.Loader;       使用System.Security.Cryptography.X509Certificates;       使用System.Text;       使用System.Threading;       使用System.Threading.Tasks;       使用Microsoft.Azure.Devices.Client;       使用Microsoft.Azure.Devices.Client.Transport.Mqtt;

 class MessageBody {   
public Machine machine {get;set;}
public Ambient ambient {get; set;}
public string timeCreated {get; set;} } class Machine {    public double temperature {get; set;}
        } class Ambient {    public double temperature {get; set;}    public int humidity {get; set;}          }

}

请注意,我已遵循指南中的所有内容: https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-csharp-module

当我尝试通过运行命令“ Build IoT Edge Solution”来构建代码时,出现以下错误:

CSC:错误CS5001:程序不包含适用于入口点的静态“ Main”方法[C:\ app \ mycsharpmodule4.csproj] 命令“ cmd / S / C dotnet publish -c Release -o out”返回非零代码:1

请参见图像以获取Visual Studio Code中错误的完整视图。

visualstudiocode

有人可以让我知道我要去哪里了吗

我在Stack Exchange上检查了类似的问题,并且遇到了

How to send data from a device to IOT HUB?。但是,我无法使其适合我。

我已经在这里待了将近7天,我将要放弃。

任何帮助将不胜感激

保罗

0 个答案:

没有答案