Skip to content

Работа 1. Мониторинг класса

Место в курсе. В 5–7 классе вы измеряли руками и записывали в тетрадь. Это работает один день. Но чтобы сказать «в кабинете душно всегда, а не только в тот вторник», нужна неделя данных — а сидеть с блокнотом неделю никто не будет. Значит, записывать должна машина.

1. Задача

В прошлом году (или в параллели помладше) выяснили: к шестому уроку CO₂ в классе выходит за норму. Но это были данные за один день, снятые дежурными вручную, с пропусками.

Возражение, которое вам предъявят взрослые, звучит так: «Может, это был особенный день. Может, вы неправильно мерили. Может, вообще случайность».

И это честное возражение. Ответить на него можно только одним способом: данными за длительный срок, снятыми одинаково, без человеческого фактора.

Ваша задача: построить узел, который неделю измеряет параметры кабинета и сам записывает результаты. А потом превратить эти данные в отчёт, который поймёт человек, не разбирающийся в электронике.


2. Что строим

    flowchart LR
    S["Датчики<br/>CO₂ · температура · влажность"] --> E["ESP32<br/>читает раз в минуту"]
    E --> M["Память<br/>SD-карта / файл"]
    E --> W["Wi-Fi<br/>страница с текущими данными"]
    M --> A["Анализ<br/>график, выводы"]
    A --> R["Отчёт<br/>для администрации"]
  

Ключевое отличие от 5–7 класса: между измерением и выводом появляется программа. Она решает, когда мерить, что записывать и что показывать.


3. Три задачи, которые надо решить

Задача 1. Опрос датчика

Датчик не отдаёт данные сам — его нужно спросить. У большинства датчиков есть библиотека, но понимать, что происходит, всё равно надо: датчику нужно время на прогрев, он может вернуть ошибку, и это надо обработать.

if (!sensor.read()) {
    Serial.println("Датчик не ответил");
    return;              // не пишем мусор в файл
}
float co2 = sensor.getCO2();
Главная ошибка новичка — записывать всё, что вернул датчик, не проверяя. Один сбой связи, и в данных появляется ноль или 65535, который потом испортит весь график. Проверка кода возврата — не формальность, а условие того, что данным можно верить.

Задача 2. Как часто мерить

Раз в секунду — 604 800 записей за неделю, и файл, с которым невозможно работать. Раз в час — 168 записей, но пропустишь всю динамику урока.

Разумно: раз в минуту. За неделю ~10 000 строк — читается, влезает в таблицу, динамику видно.

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

Задача 3. Куда писать

СпособПлюсМинус
SD-картапросто, надёжно, не нужен интернетнадо вынимать карту
Wi-Fi на серверданные видно сразунужен работающий Wi-Fi и сервер
Память ESP32ничего не надомало места, стирается при перепрошивке

Для школы обычно проще всего SD-карта + страничка в Wi-Fi для текущих значений.


4. Формат данных

Пиши в CSV — это обычный текст, который открывается и Excel, и Python, и блокнотом:

timestamp,co2,temp,humidity
2026-09-15T08:30:00,520,21.5,42
2026-09-15T08:31:00,535,21.5,42
Правило, которое спасёт вам неделю работы. Записывай время вместе с каждым значением. Данные без времени — мусор: по ним нельзя построить график, нельзя понять, был ли это урок или перемена. Если часов реального времени нет, пиши хотя бы миллисекунды с момента запуска и отметь, когда запустил.

5. Практика

Оборудование кабинета. ESP32, датчики, SD-модуль — дорогое, домой не уносится. Работаем аккуратно: питание только 3,3 В на логику (ESP32 не терпит 5 В на выводах), проверяем полярность до подачи питания.

Этап 1. Датчик отвечает (2 урока)

Цель: прочитать одно значение и вывести в монитор порта.

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

Готово, когда: в мониторе идут правдоподобные числа, а на улице датчик показывает ~400 ppm.

Этап 2. Запись в файл (2 урока)

Цель: те же данные, но в файл на SD, с временем, в CSV.

Готово, когда: вынули карту, открыли файл на компьютере — там таблица, которую можно построить графиком.

Этап 3. Неделя автономной работы (фоном)

Узел ставится в кабинете и работает. Ваша задача на это время — не трогать его. Раз в день проверяйте, что он жив.

Здесь вас ждёт настоящий инженерный опыт. Что-то пойдёт не так: пропадёт питание, кончится место, зависнет программа, кто-то выдернет провод. Это нормально и это часть работы. Записывайте, что случилось — в отчёт это тоже пойдёт.

Этап 4. Анализ и отчёт (3 урока)

Цель: превратить 10 000 строк в один понятный лист.

  1. Открыть CSV в таблице, построить график «время → CO₂».
  2. Найти закономерности: когда пики? совпадают ли с расписанием? отличаются ли дни недели?
  3. Посчитать: сколько процентов учебного времени воздух был выше нормы?
  4. Сформулировать вывод и предложение.

Что должно получиться: один лист, где график, три цифры и одно предложение, понятные завучу.


6. Работа с данными: что искать

ВопросКак ответить по данным
Всегда ли душно или в конкретные дни?сравнить кривые разных дней
С какого урока начинается превышение?найти момент пересечения линии 1000 ppm
Помогают ли перемены?посмотреть, падает ли график в перерывах и насколько
Есть ли разница понедельник/пятница?наложить кривые друг на друга
Сколько времени воздух за нормой?посчитать долю точек выше 1000 ppm
О честности анализа. Может выясниться, что всё нормально и проблемы нет. Это полноценный результат, и его нельзя прятать. Подгонка данных под ожидаемый вывод — не ошибка новичка, а научный подлог, и в инженерии за это платят авариями.

7. Что сдаём

1. Работающий узел — измеряет, пишет, не падает за неделю.

2. Файл данных — CSV с неделей измерений.

3. Отчёт на одном листе:

  • что измеряли, чем, как часто, с какой погрешностью;
  • график за неделю с отмеченной нормой;
  • три ключевые цифры (например: пик 1850 ppm, превышение нормы 38% учебного времени, восстановление после проветривания 12 минут);
  • вывод и конкретное предложение;
  • честный раздел «что могло исказить результат».

4. Защита (5 минут) — рассказать это человеку, который не разбирается в электронике.


8. Критерии оценки

КритерийНа что смотрим
Узел работаетнеделя без вмешательства, данные без дыр и мусора
Данные корректныесть время, проверена ошибка датчика, есть проверка по эталону (улица ~400 ppm)
Анализграфик построен, закономерности найдены и названы
Выводопирается на данные, а не на «всем известно»; сформулирован конкретно
Честностьназваны ограничения метода, неудобные результаты не спрятаны
Защитапонятно человеку без технического образования

9. Куда это ведёт

Вы построили то, что в промышленности называется системой мониторинга: датчик → сбор → хранение → анализ → решение. Точно так же устроены системы на производствах, в теплицах, в дата-центрах и в умных домах — отличается масштаб, а не принцип.

Если хочется глубже. Как устроены такие системы «по-взрослому» — шины, резервирование, питание, мониторинг — разобрано в разделе «Архитектура робототехнических систем». Почему датчик «врёт» и что с этим делать — в «Сигналы и данные». Готовые драйверы датчиков с документацией — в разделе «Датчики».