# Виртуальные датчики

Виртуальные датчики позволяют более эффективно обрабатывать телеметрические данные. Сопоставляя бортовое напряжение, они могут помочь вам рассчитывать моточасы на основе заданных условий и значений. Кроме того, они позволяют преобразовывать несколько точек данных от разных датчиков, подключенных к устройству, в более понятные индикаторы, такие как «горячо», «холодно», «открыто» и «закрыто», независимо от производителя или модели устройства. Это открывает новые возможности для мониторинга, отслеживания и прогнозирования работы сложных технологий.

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_clvf66ikbi.png" alt="Virtual sensor interface"><figcaption><p>Интерфейс виртуального датчика</p></figcaption></figure>

### Как создать виртуальный датчик

Виртуальные датчики можно создать через **«Датчики и кнопки»** блок, расположенный в **Устройства и настройки** модуле. Чтобы создать виртуальный датчик:

1. Перейдите в раздел устройств и настроек
2. Выберите GPS-устройство
3. Нажмите на **+** кнопка
4. Выберите **Виртуальный датчик**

На каждое устройство может приходиться до 100 виртуальных датчиков.

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_73sv6rayqh.png" alt="Virtual sensor adding in sensors and buttons block" width="375"><figcaption><p>Добавление виртуального датчика в датчиках и кнопках</p></figcaption></figure>

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

### Методы расчета

У виртуальных датчиков есть три разных типа расчета:

* Значение в диапазоне
* Исходное значение
* Индекс бита

Все значения для виртуальных датчиков должны соответствовать форме, в которой они получены от устройства. Все состояния — это ваши определения для этих значений.

Здесь мы описываем, как работают разные методы расчета. Нажмите на название метода расчета, чтобы раскрыть его.

#### **Значение в диапазоне**

Этот тип виртуального датчика помогает нашим клиентам удерживать важные параметры, такие как виртуальное зажигание, температура, влажность и уровень топлива, в заданном диапазоне.

Вот как это работает:

* Если значение датчика находится внутри заданных границ, для платформы оно равно 1. А 1 соответствует вашему значению A.
* Если значение датчика находится вне этих границ, значение виртуального датчика для платформы равно 0. А 0 соответствует вашему значению B.

#### Пример виртуального зажигания

Если у вас нет входа зажигания или ваше устройство уже работает на полную мощность, вы можете использовать виртуальный инструмент зажигания для определения состояния зажигания. Бортовое напряжение автомобиля значительно увеличивается при включении двигателя, что позволяет использовать порог напряжения как индикатор того, работает двигатель или нет. Как правило, бортовое напряжение должно превышать 13.2 V, чтобы указывать на работу двигателя.

Чтобы создать этот датчик:

1. Начните с присвоения ему имени.
2. Установите вход как **Бортовое напряжение** или любой другой датчик, если это необходимо.
3. Включите **Считать состоянием зажигания** в настройках.
4. Выберите «Значение в диапазоне» в качестве метода расчета.
5. Укажите минимальное значение диапазона, например 13.2V. Максимальное значение не требуется, так как бортовое напряжение может изменяться при включенном зажигании.
6. Наконец, задайте значения состояний 0 и 1. Обычно это **вкл** и **выкл,** соответственно.

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_7qx9prhhxc.png" alt="Example configuration for virtual ignition" width="375"><figcaption><p>Пример настройки виртуального зажигания</p></figcaption></figure>

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

Кроме того, это зажигание будет использоваться для определения поездок и стоянок с учетом зажигания.

#### Пример с аналоговым датчиком

Этот пример похож на предыдущий, но вместо контроля зажигания автомобиля он отслеживает температуру.

Предположим, у вас есть аналоговый датчик, который собирает данные о температуре. Допустим, он выдает 1020 для -10°C, а 1900 = 0°C. Данные, поступающие от аналоговых датчиков, не откалиброваны, поэтому их также необходимо указывать в этой форме для виртуального датчика.

Диапазон можно настроить: все, что находится между 1020 и 1900, будет классифицироваться как «холодно» (1), а все, что выше 1900, будет считаться «горячо» (0).

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_kgzvrsdzb1.png" alt="Example configuration for reading temperature from analog sensor" width="563"><figcaption><p>Пример настройки для считывания температуры с аналогового датчика</p></figcaption></figure>

#### **Исходное значение**

С помощью виртуальных датчиков вы можете назначить свое определение любым полученным значениям. Этот метод работает с предопределенными наборами значений и строк, что упрощает работу со статическими значениями без необходимости задавать разные диапазоны. Кроме того, он может работать с любыми нужными вам данными. Например:

* 0/1,
* true/false,
* on/off,
* open/close,
* armed/disarmed,
* state 1/state 2/state 3,
* key 1/key 2/key 3 и т. д.

Режим работает следующим образом:

* когда приходит значение 1, это ваше значение A;
* когда приходит значение 2, это ваше значение B;
* а когда приходит значение 3, это ваше значение C, и так далее.

Давайте продемонстрируем этот тип функциональности на конкретном примере.

#### Пример с показаниями CAN автомобиля

Некоторые CAN-датчики могут передавать на платформу различные числовые значения. Например, у нас есть грузовик с CAN: датчик состояния PTO, который может выдавать только следующие значения:

* 0 – Выкл.
* 1 – Удержание
* 2 – Дистанционное удержание
* 3 – Ожидание
* 4 – Дистанционное ожидание
* 5 – Установить
* 6 – Замедление
* 7 – Возобновить
* 8 – Ускорение

Чтобы настроить этот датчик:

1. Введите его имя.
2. Выберите вход.
3. **Считать состоянием зажигания** должен быть выключен.
4. Выберите **Исходное значение** в качестве метода расчета.
5. Заполните таблицу своими значениями слева и соответствующими значениями датчика справа. Добавляйте строки, нажимая **+** кнопку, и удаляйте их с помощью кнопки с корзиной.

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_xlxdl1ak9e.png" alt="Configuration example for source value calculation method" width="563"><figcaption><p>Пример настройки для метода расчета исходного значения</p></figcaption></figure>

#### Показания аппаратного ключа для водителей, оборудования и прицепов

Некоторые устройства могут считывать данные о водителях и их iButton, RFID-ключах или оборудовании, подключенном к устройству через Bluetooth-датчики. Платформа может определять ближайшее к устройству оборудование или водителя, а виртуальный датчик способен отображать такие имена.

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

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_vw7hkgdl0n.png" alt="Configuration example for source value calculation method for hardware key or state field sensor reading" width="563"><figcaption><p>Пример настройки для метода расчета исходного значения для показаний аппаратного ключа или датчика поля состояния</p></figcaption></figure>

#### **Индекс бита**

Некоторые устройства могут передавать в своих пакетах расширенные данные, иногда объединяя несколько параметров [в одно значение](https://www.navixy.com/blog/sensor-parameters-avl/). Инструмент «Виртуальные датчики» позволяет работать с частями телематических значений, тем самым декодируя данные, передаваемые GPS-оборудованием.

Например, передаваемое значение — 011. Сначала мы должны прочитать эту информацию в little-endian в соответствии с протоколом:

* 1 показывает состояние ремня водителя: 0 — пристегнут, 1 — не пристегнут. Бит 0.
* 1 отображает состояние двери водителя: 0 — закрыта, 1 — открыта. Бит 1.
* 0 указывает состояние капота: 0 — закрыт, 1 — открыт. Бит 2.

Каждая позиция в параметре отображает значение различных систем автомобиля. Чтобы настроить и отображать их, необходимо создать отдельный датчик для каждого параметра.

Для датчика, который показывает состояние капота автомобиля в нашем примере, вам необходимо

1. Задать имя датчика
2. Выбрать вход в соответствии с документацией устройства
3. Выберите **Индекс бита** в качестве метода расчета
4. Выберите бит 2 для этого поля

Ниже приведен пример датчика, который показывает состояние капота автомобиля.

<figure><img src="https://www.navixy.com/wp-content/uploads/2024/03/browser_2qcam8zclk.png" alt="Configuration example for Bit index calculation sensor" width="563"><figcaption><p>Пример настройки датчика для расчета по индексу бита</p></figcaption></figure>

После настройки виртуального датчика и получения данных от связанного с ним датчика устройства его можно просматривать в **виджете показаний датчиков** на вкладке **Информация** устройства. Теперь датчики вашего устройства могут говорить на вашем языке.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/user/ru/guide/devices-and-settings/vehicle-sensors/virtual-sensors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
