Итоговый тест по Модулю 1: Введение в IoT
COURSE-16-M01-QUIZ — Итоговый тест по Модулю 1: Введение в IoT
Инструкции для инженера
Данный тест предназначен для проверки базовых знаний, полученных в рамках модуля «Введение в Интернет вещей». Тест состоит из 7 практических заданий, охватывающих ключевые концепции, компоненты экосистемы HI и основы проектирования IoT-решений.
- Время на выполнение: 45 минут.
- Проходной балл: 75% (необходимо набрать не менее 21 из 28 баллов).
- Формат ответов: Ответы предоставляются в свободной форме, если не указано иное. Основное внимание уделяется не только правильности, но и инженерной точности формулировок, а также применимости к платформе HI.
---
Задание 1: Сопоставление компонентов платформы (4 балла)
Сопоставьте компонент технологического стека HI с его основным назначением в проекте автоматизации.
| Компонент | Назначение |
| :--- | :--- |
| 1. Node-RED | A. Промышленный протокол для опроса датчиков и управления модулями по шине RS-485. |
| 2. Универсальный вход (UI) | B. Легковесный протокол для обмена сообщениями между устройствами и облаком по принципу "издатель-подписчик". |
| 3. MQTT | C. Среда визуального программирования для создания сценариев (flows) автоматизации на контроллере. |
| 4. Modbus RTU | D. Физический порт контроллера для подключения датчиков типа "сухой контакт", кнопок, герконов или датчиков 1-Wire. |
Ваш ответ (укажите пары, например, 1-A, 2-B):`________________`
Ключ к ответу и критерии оценки
- Правильные ответы:
* 2-D: Универсальный вход используется для подключения оконечных устройств, таких как кнопки и датчики.
* 3-B: MQTT — это протокол обмена сообщениями по модели "издатель-подписчик".
* 4-A: Modbus RTU — это протокол для полевой шины RS-485.
- Оценка:
* 3 балла за 3 правильных сопоставления.
* 1 балл за 2 правильных сопоставления.
* 0 баллов за 1 или 0 правильных сопоставлений.
---
Задание 2: Логика управления вентиляцией по уровню CO2 (4 балла)
В офисном помещении установлен датчик CO2, подключенный к контроллеру HI. Необходимо автоматически включать приточную вентиляцию (подключена к реле `RL-05`), когда уровень CO2 превышает 1000 ppm, и выключать, когда он опускается ниже 800 ppm.
Какой из предложенных потоков Node-RED наиболее корректно и надежно решает эту задачу, предотвращая частое включение/выключение вентиляции (дребезг)?
A) `[Modbus Read CO2] -> [Switch: msg.payload > 1000] -> [Turn ON Relay]` B) `[Modbus Read CO2] -> [Function: if (level > 1000) return ON; else return OFF;] -> [Control Relay]` C) `[Modbus Read CO2] -> [Switch: check state] -> (if level > 1000 AND state is OFF) -> [Turn ON Relay] -> [Set state to ON]``-> (if level < 800 AND state is ON) -> [Turn OFF Relay] -> [Set state to OFF]`
D) `[Modbus Read CO2] -> [Inject: every 1 second] -> [Control Relay]` Ваш ответ (укажите букву):`________________`
Ключ к ответу и критерии оценки
- Правильный ответ: C.
- Объяснение:
* Вариант B создаст "дребезг": вентиляция будет постоянно включаться и выключаться, как только уровень CO2 будет колебаться вокруг отметки 1000 ppm.
* Вариант C корректно реализует логику с гистерезисом (двумя порогами: 1000 ppm на включение и 800 ppm на выключение) и хранит текущее состояние системы. Это классический паттерн "Конечный автомат" (FSM), предотвращающий дребезг и обеспечивающий стабильную работу.
* Вариант D не содержит никакой логики, связанной с уровнем CO2.
- Оценка:
* 0 баллов за любой другой вариант.
---
Задание 3: Заполните пропуски (4 балла)
Заполните пропуски в определении, используя термины из контекста платформы HI.
"На платформе HI система Интернета вещей состоит из (1) __________, который собирает данные с (2) __________ (например, датчиков температуры по шине 1-Wire или счетчиков по Modbus) и управляет (3) __________ (например, реле освещения или клапанами). Вся логика взаимодействия между ними настраивается в среде (4) __________ в виде визуальных потоков (flows)."
Ваш ответ (перечислите 4 слова/термина):`1. ________________`
`2. ________________`
`3. ________________`
`4. ________________`
Ключ к ответу и критерии оценки
- Правильные ответы:
2. датчиков / сенсоров / устройств ввода
3. исполнительными устройствами / нагрузками / актуаторами
4. Node-RED
- Оценка:
---
Задание 4: Влияние IoT на управление энергией (4 балла)
Заказчик (владелец небольшого офисного здания) хочет снизить расходы на электроэнергию. Опишите три конкретных сценария автоматизации, которые можно реализовать с помощью контроллера HI для достижения этой цели. Для каждого сценария укажите, какие входы/выходы контроллера будут задействованы.
Ваш ответ (описание трех сценариев):`________________`
Ключ к ответу и критерии оценки
- Пример эталонного ответа:
1. Сценарий "Умное освещение": Автоматическое выключение света в помещениях (переговорные, коридоры) при отсутствии движения.
* Оборудование: Датчики движения (PIR), подключенные к универсальным входам (UI) контроллера. Группы освещения, подключенные к релейным выходам (RL).
* Логика: Если на входе UI нет сигнала от датчика движения в течение 10 минут, контроллер отключает соответствующий выход RL.
2. Сценарий "Контроль розеточных групп": Отключение питания розеток, к которым подключена некритичная офисная техника (мониторы, зарядные устройства), в нерабочее время (например, с 20:00 до 07:00 и по выходным).
* Оборудование: Розеточные группы, подключенные через контактор к релейному выходу (RL) контроллера.
* Логика: В Node-RED настраивается расписание (с помощью узла `Inject` или `cron-plus`), которое подает команду на отключение реле в 20:00 и включение в 07:00 в будние дни.
3. Сценарий "Климат-контроль по присутствию": Снижение интенсивности работы систем отопления/кондиционирования в переговорных комнатах, если они свободны.
* Оборудование: Датчики присутствия (например, на базе PIR или CO2), подключенные к универсальным входам (UI) или по Modbus/MQTT. Управление климатическим оборудованием через релейные выходы (RL) (например, включение/выключение фанкойла) или по Modbus/DALI (для более точного управления).
* Логика: Если датчик присутствия не фиксирует активность в течение 30 минут, контроллер переводит систему климата в режим энергосбережения (например, снижает температуру на 2°C или отключает фанкойл).
- Критерии оценки:
* По 0.5 балла за каждое правильное указание задействованных входов/выходов.
* Максимум 4 балла.
* Снижение баллов: За неточности в описании, отсутствие привязки к оборудованию HI, нереалистичные сценарии.
---
Задание 5: Контракт сообщения MQTT (4 балла)
Вы разрабатываете систему мониторинга температуры в серверной. Датчик температуры (DS18B20) подключен к универсальному входу `UI-01` контроллера HI. Показания температуры должны публиковаться в MQTT.
Сформируйте пример `msg.payload` в формате JSON, который будет отправлен в MQTT-брокер, соблюдая паттерн "Контракт сообщения" Академии HI. Укажите топик MQTT.
Текущие данные:- Температура: 24.7 °C
- Время измерения: текущее (Unix timestamp в миллисекундах)
- Источник: `server_room_temp_sensor_ui01`
- MQTT Topic: `________________`
- msg.payload (JSON):
{
// Ваш JSON
}
Ключ к ответу и критерии оценки
- Пример эталонного ответа:
* msg.payload (JSON):
{
"value": 24.7,
"unit": "°C",
"source": "server_room_temp_sensor_ui01",
"ts": 1678886400000 // Пример Unix timestamp в миллисекундах
}
- Критерии оценки:
* 1 балл за наличие поля `value` с правильным типом данных.
* 1 балл за наличие поля `source` с уникальным идентификатором.
* 1 балл за наличие поля `ts` с корректным форматом Unix timestamp.
* Дополнительно (необязательно, но приветствуется): наличие поля `unit`.
* Снижение баллов: За отсутствие обязательных полей, неверный формат JSON, нелогичный топик.
---
Задание 6: Диагностика Modbus RTU (4 балла)
Инженер на объекте пытается подключить Modbus RTU датчик влажности к контроллеру HI по шине RS-485. После настройки узла `Modbus-Read` в Node-RED, он постоянно получает ошибку "Timeout".
Перечислите 4 наиболее вероятные причины этой ошибки и кратко опишите, как их диагностировать.
Ваш ответ (4 причины и диагностика):`________________`
Ключ к ответу и критерии оценки
- Пример эталонного ответа:
1. Причина: Неправильное физическое подключение RS-485. Перепутаны линии A/B, обрыв кабеля, плохой контакт.
* Диагностика: Визуальная проверка клемм A и B на контроллере и датчике. Проверка целостности кабеля мультиметром. Попытка поменять местами A и B на одной из сторон (это не повредит оборудованию, но часто решает проблему).
2. Причина: Несоответствие параметров COM-порта. Скорость (Baud Rate), четность (Parity), биты данных (Data Bits), стоп-биты (Stop Bits) на контроллере HI не совпадают с настройками датчика.
* Диагностика: Проверить документацию на датчик. Попробовать наиболее распространенные комбинации (например, 9600 8N1, 19200 8N1). Убедиться, что в Node-RED Modbus-Client настроен на правильный COM-порт (`/dev/ttyUSBx` или `/dev/ttySx`).
3. Причина: Неправильный Slave ID (Unit ID) датчика. В Node-RED указан ID, отличный от того, что настроен на датчике.
* Диагностика: Проверить Slave ID, установленный на датчике (DIP-переключатели, программная настройка). Убедиться, что этот же ID указан в узле `Modbus-Read` в Node-RED.
4. Причина: Отсутствие или неправильное терминирование шины. На длинных линиях или при наличии нескольких устройств отсутствие согласующих резисторов 120 Ом на крайних устройствах вызывает отражения сигнала.
* Диагностика: Проверить наличие терминирующих резисторов на первом и последнем устройствах шины. Убедиться, что они активированы (если есть встроенные переключатели).
5. Причина: Отсутствие питания на датчике. Датчик не включен или не получает достаточного питания.
* Диагностика: Проверить наличие напряжения питания на клеммах датчика с помощью мультиметра.
- Критерии оценки:
* Максимум 4 балла.
* Снижение баллов: За неточные или неполные описания, отсутствие методов диагностики.
---
Задание 7: Создание простого сценария освещения (4 балла)
В гостиничном номере необходимо реализовать сценарий "Включить свет в ванной". Для этого используется настенный выключатель (подключен к универсальному входу `UI-02` как "сухой контакт") и реле `RL-01`, управляющее освещением в ванной.
Нарисуйте ASCII-схему Node-RED flow, который будет включать/выключать свет в ванной по нажатию выключателя. Укажите типы узлов и их основные связи.
Ваш ответ (ASCII-схема flow):`________________`
Ключ к ответу и критерии оценки
- Пример эталонного ответа:
// FLOW-LIGHT-BATH-001: Управление светом в ванной
//
// [rpi gpio in] - Узел для чтения состояния универсального входа UI-02
// [Function] - Узел для реализации логики переключения (триггер)
// [rpi gpio out] - Узел для управления релейным выходом RL-01
// [Debug] - Узел для отладки и просмотра сообщений
[rpi gpio in: UI-02] --(msg.payload: 1/0)--> [Function: Toggle Light] --(msg.payload: 1/0)--> [rpi gpio out: RL-01]
|
v
[Debug]
Код для узла `Function: Toggle Light`:
// Сохраняем текущее состояние света в контексте потока
// Инициализируем состояние, если его нет (например, при первом запуске)
let currentState = flow.get('bathroomLightState') || 0; // 0 = выключен, 1 = включен
// Если пришло сообщение от выключателя (UI-02)
if (msg.payload === 1) { // Предполагаем, что 1 - это нажатие/замыкание
// Переключаем состояние
currentState = 1 - currentState; // Если было 0, станет 1; если было 1, станет 0
flow.set('bathroomLightState', currentState); // Сохраняем новое состояние
// Отправляем команду на реле
msg.payload = currentState;
return msg;
}
// Если msg.payload не 1, игнорируем (например, отпускание кнопки)
return null;
- Критерии оценки:
* 1 балл за использование узла `Function` для реализации логики переключения (toggle).
* 1 балл за корректное использование узла `rpi gpio out` для управления реле.
* 1 балл за общую логическую связность и читаемость схемы.
* Снижение баллов: За отсутствие узла `Function` (если логика реализована только через `Switch`, что менее эффективно для toggle), неверные типы узлов, отсутствие указания входов/выходов.