Введение

Последние несколько дней я играю со своим MXChip и написал несколько статей об этом, вы сможете найти их здесь. В этой статье мы отправим некоторые данные в наш центр Интернета вещей Azure и подключим функцию Azure к нашему центру Интернета вещей с помощью атрибута триггера концентратора событий IoTHubTrigger. Если вы готовы, давайте сделаем это.

Вы всегда можете прочитать эту статью в моем блоге здесь.

Задний план

Как я уже сказал, эта статья является частью моей серии статей об Интернете вещей, поэтому, если вы читали мои предыдущие статьи по этой теме, вам будет легче понять концепцию. Прежде чем приступить к работе с этой статьей, убедитесь, что вы уже создали центр Интернета вещей Azure и что он запущен. Вы всегда можете отправлять сообщения в этот Центр Интернета вещей, подключив фактическое устройство, скажем MXChip, или используя имитирующее устройство.

Демо IoTHubTrigger

Создание приложения-функции Azure

Я собираюсь создать приложение-функцию Azure в Visual Studio. Если вы не уверены, как мы можем создать и опубликовать функцию Azure, прочтите этот раздел моей предыдущей статьи. Давайте сейчас создадим новое решение.

После того, как вы нажмете ОК, для вас будет сгенерирована новая функция Azure с некоторыми начальными кодами. Давайте отредактируем функцию, как показано ниже.

using Microsoft.Azure.EventHubs;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using System.Text;
using IoTHubTrigger = Microsoft.Azure.WebJobs.EventHubTriggerAttribute;
namespace IoTHubTrigger_Azure_Function_and_Azure_IoT_Hub
{
    public static class IoTHubFunc
    {
        [FunctionName("IoTHubData")]
        public static void Run(
            [IoTHubTrigger("messages/events", Connection = "IoTHubTriggerConnection", ConsumerGroup ="FuncGroup")]EventData message, 
            ILogger log)
        {
            log.LogInformation($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.Body.Array)}");
        }
    }
}

Здесь IoTHubTriggerConnection - это строка подключения, которую мы предоставляем в файле local.settings.json. Группа потребителей вступит в игру, если у вас есть много приложений, которым необходимо получать данные из вашего IoT Hub. Ниже приведено определение класса EventHubTriggerAttribute.

public sealed class EventHubTriggerAttribute : Attribute
    {
        public EventHubTriggerAttribute(string eventHubName);
        public string EventHubName { get; }
        public string ConsumerGroup { get; set; }
        public string Connection { get; set; }
    }

Отправка данных в Azure IoT Hub

Как я упоминал ранее, есть два способа отправить данные в Azure IoT Hub.

  1. Используя устройство, например, MXChip
  2. Имитация устройства

После отправки данных вы можете увидеть количество полученных сообщений в Центре Интернета вещей Azure в разделе обзора.

Запустите функцию Azure

Итак, Центр Интернета вещей начал получать сообщения от устройства, и теперь мы можем использовать нашу функцию Azure для извлечения данных из Центра Интернета вещей с помощью триггера центра Интернета вещей. Запустите приложение-функцию, приложение моделирования устройства и просмотрите результат.

Как видно из выходных данных, наше приложение-функция Azure мгновенно получает данные из центра Интернета вещей Azure. Теперь вы можете выполнять любые действия с этими данными. Я оставлю это тебе.

Вывод

Ух ты!. Теперь мы узнали,

  • Использование триггера Azure IoT Hub в функции Azure
  • Создание приложения-функции Azure
  • Просмотр данных из Azure IoT Hub в приложении-функции Azure

Вы всегда можете подготовить мои статьи об IoT здесь.

Вы всегда можете подписаться на меня в Medium и Twitter.





Твоя очередь. Что вы думаете?

Большое спасибо за чтение. Пропустил ли я что-нибудь, что, по вашему мнению, необходимо в этой статье? Не могли бы вы найти этот пост полезным? Пожалуйста, не забудьте поделиться со мной своим мнением.

С наилучшими пожеланиями
Сибиш Вену