Azure 物联网套件和物联网中心及其用法有什么区别?请告诉我 .NET 在物联网中的工作原理。谢谢您的帮助!
4 回答
Azure IoT Suite 只是 IoT 中心的加速器。它使用 IoT 中心和您可以自定义的其他 Azure 服务提供完整的应用程序。由于您获得了预测性维护和远程监控解决方案的源代码,因此它作为一种学习工具也很有趣。
您当然可以使用 IoT 中心和其他 Azure 服务构建自己的自定义解决方案。
查看此处的文档:https ://azure.microsoft.com/en-in/documentation/articles/iot-suite-overview/ ,我收集到Azure IoT Suite
的实际上是许多服务和其中一项服务的组合(尽管最重要的一个)是Azure IoT Hub
。
对我而言,Azure IoT Hub
它只解决了一部分问题,即提供设备到云和云到设备的消息传递功能,并充当通往云和其他关键物联网套件服务的网关。因此,本质上将此服务视为促进设备和云之间通信的服务。一旦数据进入云,还有其他服务Azure IoT Hub
可以处理您对数据的处理方式。其他服务使您能够大规模存储数据、开发和呈现对该数据的分析。
根据您在下面的回答,您的问题将是这样的方法:
IoTDevice -1-> IoT Hub -2-> StreamAnalytics -3-> DB -4-> ASP.Net(显示图表) | | ASP.Net (管理) -6--| |-----5----> PowerBi(显示图表)
流分析中 Nr.5 的输出只是您可以选择的一个选项。因此,您无需开发自己的 Dashboard 并立即获得解决方案。您还可以与人共享此仪表板。
Azure IoT 中心和事件中心是支持将数据引入到 Microsoft Azure 的工作负载。因此,您可以将它们视为 Azure 上的独立模块。
IoT Suite 是一种自动化工具,可提供多个模块,为端到端 IoT 解决方案提供样板。这些模块包括流分析、物联网中心、文档数据库、用于设备监控的自定义 Web 应用程序等。
下面是一些用 C# 连接设备的示例代码。
// Define the connection string to connect to IoT Hub
private const string DeviceConnectionString = "<replace>";
static void Main(string[] args)
{
// Create the IoT Hub Device Client instance
DeviceClient deviceClient = DeviceClient.CreateFromConnectionString(DeviceConnectionString);
// Send an event
SendEvent(deviceClient).Wait();
// Receive commands in the queue
ReceiveCommands(deviceClient).Wait();
Console.WriteLine("Exited!\n");
}
// Create a message and send it to IoT Hub.
static async Task SendEvent(DeviceClient deviceClient)
{
string dataBuffer;
dataBuffer = Guid.NewGuid().ToString();
Message eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer));
await deviceClient.SendEventAsync(eventMessage);
}
// Receive messages from IoT Hub
static async Task ReceiveCommands(DeviceClient deviceClient)
{
Console.WriteLine("\nDevice waiting for commands from IoTHub...\n");
Message receivedMessage;
string messageData;
while (true)
{
receivedMessage = await deviceClient.ReceiveAsync(TimeSpan.FromSeconds(1));
if (receivedMessage != null)
{
messageData = Encoding.ASCII.GetString(receivedMessage.GetBytes());
Console.WriteLine("\t{0}> Received message: {1}", DateTime.Now.ToLocalTime(), messageData);
await deviceClient.CompleteAsync(receivedMessage);
}
}
}
希望这可以帮助!
默特