Граница инноваций: как периферийные вычисления революционизируют IoT

В обширном и постоянно расширяющемся мире Интернета вещей (IoT) появилась концепция, которая меняет правила игры: периферийные вычисления. Представьте себе мир, где ваши устройства умного дома могут реагировать в режиме реального времени без необходимости обращаться к облаку. Это обещание периферийных вычислений, и оно преобразует то, как мы проектируем, развёртываем и взаимодействуем с системами IoT.

Что такое периферийные вычисления?

Периферийные вычисления — это практика обработки и анализа данных на границе сети, ближе к месту их генерации. Этот подход контрастирует с традиционными моделями, ориентированными на облако, когда данные отправляются в удалённое облако для обработки, а затем возвращаются обратно. Приближая вычислительные мощности к источникам данных, периферийные вычисления обеспечивают анализ в реальном времени и более эффективную работу.

Почему периферийные вычисления важны для IoT

Обработка данных в реальном времени

Одним из наиболее значительных преимуществ периферийных вычислений является их способность обрабатывать данные в режиме реального времени. В таких приложениях, как автономные транспортные средства, промышленная автоматизация или умные дома, каждая миллисекунда имеет значение. Периферийные вычисления гарантируют, что данные анализируются и обрабатываются немедленно, без задержек, связанных с облачной обработкой. Например, если датчик IoT в офисном здании обнаруживает повышение температуры, система может включить кондиционер или открыть окно, не дожидаясь ответа от облака.

Снижение нагрузки на сеть и затрат

Благодаря локальной обработке данных периферийные вычисления сокращают объём данных, которые необходимо передавать в облако. Это не только минимизирует перегрузку сети, но и снижает затраты на пропускную способность. Представьте себе заводской цех с сотнями датчиков; вместо отправки всех необработанных данных в облако периферийные вычисления позволяют системе отфильтровывать ненужные данные и отправлять только критически важную информацию, оптимизируя использование полосы пропускания.

Повышенная надёжность и безопасность

Периферийные вычисления распределяют вычислительную нагрузку, уменьшая зависимость от единого облачного объекта. Это означает, что даже если облачное соединение прервано, периферийные устройства могут продолжать работать, обеспечивая повышенную надёжность. Кроме того, локальная обработка конфиденциальных данных IoT повышает конфиденциальность и безопасность за счёт снижения риска утечки данных.

Практическое применение Azure IoT Edge

Чтобы проиллюстрировать практическое применение периферийных вычислений, давайте рассмотрим руководство по использованию Azure IoT Edge.

Настройка среды разработки

Чтобы начать разработку модулей IoT Edge, вам необходимо настроить свою среду разработки. Вот пошаговое руководство с использованием Visual Studio Code:

  1. Установите инструменты Azure IoT Edge: используйте расширение инструментов Azure IoT Edge для Visual Studio Code. Это расширение находится в режиме обслуживания, но оно по-прежнему обеспечивает необходимую функциональность.
  2. Создайте новый проект: используйте инструменты IoT Edge для создания нового проекта. Это создаст базовую структуру для вашего модуля.
  3. Соберите и разверните: соберите свой проект в виде контейнера Docker и сохраните его в реестре контейнеров Azure. Затем разверните свой код на устройстве IoT Edge.

Пример: Фильтрация данных о температуре

Вот пример того, как вы можете создать модуль IoT Edge для фильтрации данных о температуре:

using System.Collections.Generic;
using Microsoft.Azure.Devices.Shared;
using Newtonsoft.Json;

public class ModuleBackgroundService
{
    static int temperatureThreshold { get; set; } = 25;

    public class MessageBody
    {
        public Machine machine { get; set; }
        public Ambient ambient { get; set; }
        public string timeCreated { get; set; }
    }

    public class Machine
    {
        public double temperature { get; set; }
        public double pressure { get; set; }
    }

    public class Ambient
    {
        public double temperature { get; set; }
        public int humidity { get; set; }
    }

    public async Task ExecuteAsync(ModuleClient moduleClient)
    {
        // Считываем значение temperatureThreshold из желаемых свойств модуля-близнеца
        var twin = await moduleClient.GetTwinAsync();
        var desiredProperties = twin.Properties.Desired;
        temperatureThreshold = desiredProperties["temperatureThreshold"]?.Value<int>() ?? 25;

        // Регистрируем обратный вызов для получения сообщений от концентратора IoT Edge через конечную точку под названием input1
        await moduleClient.SetInputMessageHandlerAsync("input1", ProcessMessage, moduleClient);
    }

    private async Task<MessageResponse> ProcessMessage(Message message, object userContext)
    {
        var messageBody = JsonConvert.DeserializeObject<MessageBody>(Encoding.UTF8.GetString(message.GetBytes()));
        if (messageBody.machine.temperature > temperatureThreshold)
        {
            // Отправляем сообщение в IoT-хаб, если температура превышает пороговое значение
            await moduleClient.SendEventToOutputAsync("output1", message);
        }
        return MessageResponse.Completed;
    }
}

Маршрутизация между модулями

В IoT Edge модули могут взаимодействовать друг с другом через входные и выходные очереди. Вот простая диаграмма последовательности, иллюстрирующая это:

sequenceDiagram participant SimulatedTemperatureSensor participant FilterModule participant IoT Hub as "IoT Hub" SimulatedTemperatureSensor->>FilterModule: Send temperature data FilterModule->>FilterModule: Check if temperature exceeds threshold alt Temperature exceeds threshold FilterModule->>IoT Hub: Send data to IoT Hub else FilterModule->>FilterModule: Discard data end

MicroPython и периферийные вычисления

Для тех, кто работает с микроконтроллерами и встроенными системами, MicroPython предлагает мощный набор инструментов для периферийных вычислений. Вот как вы можете использовать MicroPython для отправки показаний температуры в Digi Remote Manager:

Настройка оборудования

Вам понадобится модуль Digi XBee3 Cellular LTE-M, датчик температуры TMP36 и программное обеспечение для настройки XCTU. Вот пошаговая установка:

  1. Подключите оборудование: подключите датчик температуры TMP36 к модулю Digi XBee3.
  2. Откройте терминал MicroPython: используйте XCTU, чтобы открыть терминал MicroPython.
  3. Загрузите код: загрузите следующий код MicroPython для считывания и отправки данных о температуре:
import xbee
import time

# Инициализируем устройство XBee
xbee = xbee.XBee()

# Функция для считывания температуры с датчика TMP36
def read_temperature():
    # Считываем аналоговое значение с датчика
    analog_value = xbee.analog_read(0)
    # Преобразуем аналоговое значение в температуру
    temperature = (analog_value * 120 / 1024) - 50
    return temperature

while True:
    temperature = read_temperature()
    # Отправляем данные о температуре в Digi Remote Manager
    xbee.send("data", str(temperature))
    time.sleep(1)

Отправка данных в Digi Remote Manager

Вот как вы можете визуализировать поток данных:

graph TD A("Код MicroPython") -->|Считывание температуры|B(Датчик TMP36) B -->|Аналоговое значение| A A -->|Отправка данных|C(Модуль Digi XBee3) C -->|Сотовая сеть|D(Digi Remote Manager) D -->|Поток данных| B("Визуализация/API")

Заключение

Периферийные вычисления — это не просто модное словечко, это преобразующая технология, которая привносит в системы IoT обработку в реальном времени, снижает задержки и повышает безопасность. Независимо от того, используете ли вы Azure IoT Edge или MicroPython, принципы остаются неизменными: обрабатывайте данные ближе к тому месту, где они генерируются, и наблюдайте, как ваши системы IoT оживают благодаря эффективности и интеллекту.

Начиная свой путь в области периферийных вычислений, помните, что волшебство происходит на периферии — именно здесь данные превращаются в информацию, а информация — в действие. Так что вперёд, расширяйте границы и смотрите, каких невероятных результатов вы сможете достичь на периферии.