🔬 Цифровые датчики и протоколы связи
📋 Паспорт спринта
| Параметр | Значение |
|---|---|
| Предмет | Интернет вещей (элективный курс) |
| Класс | 9 класс |
| Спринт № | 10 из 36 |
| Тип занятия | Теоретико-практический - начало модуля 2 |
| Продолжительность | 90 минут |
| Формат | Изучение цифровых протоколов + первые эксперименты с датчиками |
🎯 Цели спринта (Sprint Goals)
Основная цель:
Освоить принципы работы цифровых протоколов связи и подключить первые профессиональные датчики
Конкретные результаты спринта:
- Изучены основы протоколов I2C, SPI и 1-Wire
- Понята разница между аналоговыми и цифровыми датчиками
- Подключен и настроен датчик DHT22 (температура/влажность)
- Реализован сбор данных с логированием
- Создана базовая архитектура для системы мониторинга
- Команды готовы к расширению сенсорной экосистемы
🔄 Sprint Retrospective модуля 1 (0-10 мин)
Анализ перехода от MVP к данным:
1📊 ПЕРЕХОД К МОДУЛЮ 2:
2- "Какие датчики вы уже использовали в умной лампе?"
3- "Какие ограничения заметили у простых датчиков?"
4- "Что хотели бы измерять, но не могли?"
5- "Как думаете, где еще применить сенсорные данные?"
Техническая готовность:
1🔧 ГОТОВНОСТЬ К НОВОМУ УРОВНЮ:
2- "Комфортно ли работаете с GPIO?"
3- "Понимаете ли принципы калибровки датчиков?"
4- "Готовы ли к изучению более сложных протоколов?"
5- "Какие данные хотели бы собирать и анализировать?"
Настройка на модуль данных: “Переходим от создания устройств к пониманию окружающего мира через данные!”
🕐 Sprint Timeline (90 минут)
⚡ SPRINT START (0-15 мин): “From Simple Sensors to Smart Data”
Демонстрация ограничений простых датчиков (8 мин):
-
Проблемы аналоговых датчиков:
- Показать работу фоторезистора - “Значения от 0 до 1023, но что это означает?”
- Демонстрация шума и неточности показаний
- “Как понять, 500 - это темно или светло?”
-
Переход к профессиональным решениям:
- Демо DHT22: “Температура 24.3°C, влажность 65.2%”
- Сравнение точности и информативности
- “Датчик сам говорит, что измеряет!”
Целеполагание модуля 2 (7 мин):
1🎯 ЦЕЛИ МОДУЛЯ 2:
2"К концу модуля ваши IoT системы будут:
3• Точно измерять температуру, влажность, давление
4• Работать с профессиональными протоколами связи
5• Собирать данные и сохранять их для анализа
6• Создавать графики и визуализации
7• Предсказывать изменения на основе трендов
8• Строить полноценную метеостанцию"
9
10📊 MODULE SUCCESS METRICS:
11• Точность измерений до 0.1°C
12• Стабильный сбор данных 24/7
13• Визуализация трендов и паттернов
14• Готовая к использованию метеостанция
📚 DIGITAL PROTOCOLS DEEP DIVE (15-45 мин): Изучение протоколов
Микро-блок 1 (15-25 мин): Аналоговые vs Цифровые датчики
1🔬 ЭВОЛЮЦИЯ ДАТЧИКОВ:
2
3АНАЛОГОВЫЕ ДАТЧИКИ (что мы знаем):
4📊 Принцип: Изменение напряжения/сопротивления
5📊 Сигнал: 0-3.3V → числа 0-1023
6📊 Примеры: Фоторезистор, потенциометр, микрофон
7📊 Проблемы: Шум, неточность, нужна калибровка
8
9ЦИФРОВЫЕ ДАТЧИКИ (новый уровень):
10💻 Принцип: Встроенный микроконтроллер обрабатывает данные
11💻 Сигнал: Готовые значения (температура в °C, влажность в %)
12💻 Примеры: DHT22, BME280, DS18B20
13💻 Преимущества: Точность, калибровка на заводе, множество параметров
14
15СРАВНЕНИЕ ПОДХОДОВ:
Практический эксперимент:
1🧪 СРАВНИТЕЛЬНЫЙ ТЕСТ:
21. Измерить "температуру" термистором (аналоговый)
3 • Получить значение 0-1023
4 • Попытаться вычислить реальную температуру
5
62. Измерить температуру DHT22 (цифровой)
7 • Получить готовое значение 23.4°C
8 • Сравнить точность и удобство
Микро-блок 2 (25-35 мин): Протоколы цифровой связи
1🌐 ПРОТОКОЛЫ СВЯЗИ В IoT:
2
3I2C (Inter-Integrated Circuit):
4🔗 Принцип: 2 провода (SDA, SCL) + общий GND
5🔗 Скорость: До 400 кГц (стандартный режим)
6🔗 Устройства: До 127 на одной шине
7🔗 Применение: BME280, OLED дисплеи, RTC модули
8🔗 Особенности: Адресация устройств, встроенное определение ошибок
9
10SPI (Serial Peripheral Interface):
11⚡ Принцип: 4 провода (MOSI, MISO, SCK, CS)
12⚡ Скорость: До нескольких МГц
13⚡ Устройства: Множество с отдельными CS
14⚡ Применение: SD карты, дисплеи, ADC чипы
15⚡ Особенности: Быстрая передача, полный дуплекс
16
171-Wire:
18📡 Принцип: 1 провод данных + GND
19📡 Скорость: 15.4 кбит/с
20📡 Устройства: До 100+ на одной линии
21📡 Применение: DS18B20 температурные датчики
22📡 Особенности: Питание от линии данных, уникальный ID
Выбор протокола для задач:
1🎯 КОГДА ИСПОЛЬЗОВАТЬ КАКОЙ ПРОТОКОЛ:
2
3I2C - ВЫБИРАЙТЕ КОГДА:
4• Нужно подключить много разных датчиков
5• Важна экономия GPIO пинов
6• Скорость не критична
7• Хотите легко расширять систему
8
9SPI - ВЫБИРАЙТЕ КОГДА:
10• Нужна высокая скорость передачи
11• Работаете с дисплеями или картами памяти
12• Критична надежность связи
13• Подключаете мало устройств
14
151-Wire - ВЫБИРАЙТЕ КОГДА:
16• Измеряете температуру в разных точках
17• Максимально экономите провода
18• Нужна простота подключения
19• Устройства могут быть далеко друг от друга
Микро-блок 3 (35-45 мин): Практика работы с DHT22
1🌡️ DHT22 ТЕМПЕРАТУРНО-ВЛАЖНОСТНЫЙ ДАТЧИК:
2
3ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:
4• Температура: -40°C до +80°C, точность ±0.5°C
5• Влажность: 0-100% RH, точность ±2-5%
6• Протокол: Собственный 1-Wire (не стандартный)
7• Частота опроса: Максимум каждые 2 секунды
8• Питание: 3.3-5V, потребление 1.5мА
9
10ПРИНЦИП РАБОТЫ:
111. Отправка запроса (pull-down на 18мс)
122. Ответ датчика (последовательность импульсов)
133. Декодирование 40 бит данных
144. Проверка контрольной суммы
Схема подключения DHT22:
1🔌 ПОДКЛЮЧЕНИЕ К RASPBERRY PI:
2
3DHT22 → Raspberry Pi
4------ ------------
5VCC → 3.3V (Pin 1)
6DATA → GPIO 4 (Pin 7)
7GND → GND (Pin 6)
8
9ДОПОЛНИТЕЛЬНО:
10• Подтягивающий резистор 10кΩ между DATA и VCC
11• При длинных проводах - конденсатор 100nF между VCC и GND
☕ BREAK (45-50 мин): Техническая пауза
🛠️ ПРАКТИЧЕСКИЙ БЛОК (50-80 мин): Первая цифровая сенсорная система
Этап 1: Планирование сенсорной системы (50-55 мин)
Sprint Planning для датчиков:
1📋 SENSOR SPRINT BACKLOG:
2
3DATA COLLECTION USER STORIES:
41. "Как исследователь, я хочу точно измерять температуру и влажность"
52. "Как аналитик, я хочу сохранять данные для последующего анализа"
63. "Как пользователь, я хочу видеть текущие показания в реальном времени"
74. "Как системный администратор, я хочу мониторить стабильность датчиков"
85. "Как ученый, я хочу экспортировать данные для внешнего анализа"
9
10ТЕХНИЧЕСКИЕ ЗАДАЧИ:
11• Подключить и инициализировать DHT22
12• Реализовать надежное чтение данных
13• Создать систему логирования измерений
14• Добавить обработку ошибок и validation
15• Построить простую визуализацию данных
16• Протестировать стабильность в различных условиях
Этап 2: Подключение и настройка DHT22 (55-65 мин)
Физическое подключение:
1🔧 ПОШАГОВОЕ ПОДКЛЮЧЕНИЕ:
2
31. СХЕМА ПОДКЛЮЧЕНИЯ:
4 • Проверить распиновку DHT22
5 • Подключить питание 3.3V
6 • Подключить DATA к GPIO 4
7 • Установить подтягивающий резистор
8 • Подключить GND
9
102. ПРОВЕРКА ПОДКЛЮЧЕНИЯ:
11 • Мультиметром проверить напряжения
12 • Убедиться в отсутствии коротких замыканий
13 • Проверить надежность соединений
Программная настройка:
1# Установка библиотеки для DHT22
2# pip install adafruit-circuitpython-dht
3
4import board
5import adafruit_dht
6import time
7from datetime import datetime
8
9class TemperatureHumiditySensor:
10 def __init__(self, pin=board.D4):
11 """Инициализация датчика DHT22"""
12 self.dht = adafruit_dht.DHT22(pin)
13 self.last_reading_time = 0
14 self.min_interval = 2.0 # Минимальный интервал между чтениями
15
16 def read_data(self):
17 """Безопасное чтение данных с обработкой ошибок"""
18 current_time = time.time()
19
20 # Проверка минимального интервала
21 if current_time - self.last_reading_time < self.min_interval:
22 time.sleep(self.min_interval - (current_time - self.last_reading_time))
23
24 try:
25 temperature = self.dht.temperature
26 humidity = self.dht.humidity
27
28 # Validation данных
29 if self.validate_reading(temperature, humidity):
30 self.last_reading_time = time.time()
31 return {
32 'timestamp': datetime.now(),
33 'temperature': round(temperature, 1),
34 'humidity': round(humidity, 1),
35 'status': 'success'
36 }
37 else:
38 return {'status': 'invalid_data'}
39
40 except RuntimeError as e:
41 return {'status': 'sensor_error', 'error': str(e)}
42
43 def validate_reading(self, temp, humidity):
44 """Проверка разумности показаний датчика"""
45 if temp is None or humidity is None:
46 return False
47 if temp < -40 or temp > 80: # Диапазон DHT22
48 return False
49 if humidity < 0 or humidity > 100:
50 return False
51 return True
Этап 3: Система сбора и логирования данных (65-75 мин)
Создание системы логирования:
1import csv
2import json
3import os
4from collections import deque
5
6class DataLogger:
7 def __init__(self, log_file="sensor_data.csv"):
8 """Система логирования сенсорных данных"""
9 self.log_file = log_file
10 self.memory_buffer = deque(maxlen=100) # Буфер для последних 100 записей
11 self.create_log_file()
12
13 def create_log_file(self):
14 """Создание файла логов с заголовками"""
15 if not os.path.exists(self.log_file):
16 with open(self.log_file, 'w', newline='') as file:
17 writer = csv.writer(file)
18 writer.writerow(['timestamp', 'temperature', 'humidity', 'status'])
19
20 def log_reading(self, reading):
21 """Запись данных в файл и буфер"""
22 # Добавление в память
23 self.memory_buffer.append(reading)
24
25 # Запись в файл
26 if reading['status'] == 'success':
27 with open(self.log_file, 'a', newline='') as file:
28 writer = csv.writer(file)
29 writer.writerow([
30 reading['timestamp'].strftime('%Y-%m-%d %H:%M:%S'),
31 reading['temperature'],
32 reading['humidity'],
33 reading['status']
34 ])
35
36 def get_recent_data(self, count=10):
37 """Получение последних успешных измерений"""
38 successful_readings = [r for r in self.memory_buffer
39 if r['status'] == 'success']
40 return list(successful_readings)[-count:]
41
42 def get_statistics(self):
43 """Базовая статистика по собранным данным"""
44 recent_data = self.get_recent_data(50)
45 if not recent_data:
46 return None
47
48 temps = [r['temperature'] for r in recent_data]
49 humids = [r['humidity'] for r in recent_data]
50
51 return {
52 'temperature': {
53 'avg': round(sum(temps) / len(temps), 1),
54 'min': min(temps),
55 'max': max(temps)
56 },
57 'humidity': {
58 'avg': round(sum(humids) / len(humids), 1),
59 'min': min(humids),
60 'max': max(humids)
61 },
62 'readings_count': len(recent_data)
63 }
Главная система мониторинга:
1class EnvironmentalMonitor:
2 def __init__(self):
3 """Главная система мониторинга окружающей среды"""
4 self.sensor = TemperatureHumiditySensor()
5 self.logger = DataLogger()
6 self.running = False
7
8 def start_monitoring(self, interval=30):
9 """Запуск непрерывного мониторинга"""
10 print("🌡️ Запуск системы мониторинга окружающей среды")
11 print(f"📊 Интервал измерений: {interval} секунд")
12
13 self.running = True
14
15 try:
16 while self.running:
17 # Чтение данных
18 reading = self.sensor.read_data()
19
20 # Логирование
21 self.logger.log_reading(reading)
22
23 # Вывод текущих данных
24 self.display_reading(reading)
25
26 # Статистика каждые 10 измерений
27 if len(self.logger.memory_buffer) % 10 == 0:
28 self.display_statistics()
29
30 time.sleep(interval)
31
32 except KeyboardInterrupt:
33 print("\n⏹️ Остановка мониторинга по команде пользователя")
34 self.running = False
35
36 def display_reading(self, reading):
37 """Красивый вывод текущих показаний"""
38 if reading['status'] == 'success':
39 print(f"🌡️ {reading['temperature']}°C | 💧 {reading['humidity']}% | "
40 f"⏰ {reading['timestamp'].strftime('%H:%M:%S')}")
41 else:
42 print(f"❌ Ошибка датчика: {reading.get('error', 'Unknown error')}")
43
44 def display_statistics(self):
45 """Вывод статистики"""
46 stats = self.logger.get_statistics()
47 if stats:
48 print("\n📊 СТАТИСТИКА:")
49 print(f"🌡️ Температура: {stats['temperature']['avg']}°C "
50 f"(мин: {stats['temperature']['min']}°C, "
51 f"макс: {stats['temperature']['max']}°C)")
52 print(f"💧 Влажность: {stats['humidity']['avg']}% "
53 f"(мин: {stats['humidity']['min']}%, "
54 f"макс: {stats['humidity']['max']}%)")
55 print(f"📈 Количество измерений: {stats['readings_count']}\n")
56
57# Запуск системы
58if __name__ == "__main__":
59 monitor = EnvironmentalMonitor()
60 monitor.start_monitoring(interval=10) # Измерения каждые 10 секунд
Этап 4: Тестирование и валидация данных (75-80 мин)
Сценарии тестирования датчика:
1🧪 ТЕСТОВЫЕ СЦЕНАРИИ:
2
31. БАЗОВАЯ ФУНКЦИОНАЛЬНОСТЬ:
4 • Проверить корректное чтение температуры и влажности
5 • Убедиться в стабильности показаний
6 • Проверить обработку ошибок
7
82. СТРЕСС-ТЕСТИРОВАНИЕ:
9 • Частые запросы к датчику (проверка лимитов)
10 • Имитация сбоев связи
11 • Проверка восстановления после ошибок
12
133. ВАЛИДАЦИЯ ДАННЫХ:
14 • Сравнение с эталонными термометром и гигрометром
15 • Проверка реакции на изменения (дыхание, тепло рук)
16 • Анализ разумности показаний
17
184. ДОЛГОСРОЧНАЯ СТАБИЛЬНОСТЬ:
19 • Запуск на 30+ минут непрерывной работы
20 • Мониторинг количества ошибок
21 • Проверка стабильности логирования
📊 DATA INSIGHTS DEMO (80-85 мин): Первый анализ данных
Формат: “Что говорят нам данные?”
Простой анализ собранных данных:
1def analyze_collected_data():
2 """Простой анализ собранных данных"""
3 # Чтение данных из CSV
4 import pandas as pd
5
6 try:
7 data = pd.read_csv('sensor_data.csv')
8
9 print("📊 АНАЛИЗ СОБРАННЫХ ДАННЫХ:")
10 print(f"📈 Всего записей: {len(data)}")
11
12 if len(data) > 0:
13 print(f"🌡️ Температура: мин {data['temperature'].min()}°C, "
14 f"макс {data['temperature'].max()}°C, "
15 f"среднее {data['temperature'].mean():.1f}°C")
16
17 print(f"💧 Влажность: мин {data['humidity'].min()}%, "
18 f"макс {data['humidity'].max()}%, "
19 f"среднее {data['humidity'].mean():.1f}%")
20
21 # Поиск трендов
22 if len(data) > 10:
23 temp_trend = "растет" if data['temperature'].iloc[-1] > data['temperature'].iloc[0] else "падает"
24 humid_trend = "растет" if data['humidity'].iloc[-1] > data['humidity'].iloc[0] else "падает"
25
26 print(f"📈 Тренды: температура {temp_trend}, влажность {humid_trend}")
27
28 except FileNotFoundError:
29 print("❌ Файл данных не найден. Запустите сбор данных сначала.")
Демонстрация командами:
- Показ стабильности работы системы
- Демонстрация точности по сравнению с эталонными приборами
- Анализ трендов за время спринта
- Обсуждение практических применений
🔄 SPRINT RETRO (85-90 мин): Анализ перехода к цифровым датчикам
Ретроспектива по цифровым протоколам:
1📊 АНАЛИЗ НОВОГО УРОВНЯ:
2
3ЧТО УЗНАЛИ:
4• [Преимущества цифровых датчиков]
5• [Особенности работы с протоколами]
6• [Важность обработки ошибок]
7
8ТЕХНИЧЕСКИЕ ОТКРЫТИЯ:
9• [Сложности с таймингами DHT22]
10• [Важность валидации данных]
11• [Стабильность vs точность]
12
13ПЛАНЫ НА СПРИНТ #11:
14• [Какие еще датчики хотим подключить]
15• [Идеи по улучшению системы]
16• [Планы по визуализации данных]
Подготовка к спринту #11: “Следующий спринт: добавляем датчик атмосферного давления BME280 и изучаем I2C протокол!”
📝 Sprint Backlog (Домашнее задание)
Углубленное изучение цифровых датчиков
User Story: Как команда IoT разработчиков, мы хотим глубже понять принципы работы цифровых датчиков и подготовиться к созданию комплексной сенсорной системы.
Обязательные задачи для всех команд:
1🔬 ИССЛЕДОВАНИЕ ДАТЧИКОВ:
2
31. ДОЛГОСРОЧНЫЙ МОНИТОРИНГ:
4 • Запустить систему сбора данных на 4+ часа
5 • Записать минимум 100 успешных измерений
6 • Проанализировать стабильность работы датчика
7 • Выявить паттерны изменения температуры и влажности
8
92. КАЛИБРОВКА И ТОЧНОСТЬ:
10 • Сравнить показания DHT22 с бытовыми термометрами
11 • Протестировать в разных условиях (холод, тепло, влажность)
12 • Оценить точность и повторяемость измерений
13 • Документировать особенности поведения датчика
14
153. ОБРАБОТКА ОШИБОК:
16 • Намеренно создать условия для ошибок (отключение питания)
17 • Протестировать восстановление после сбоев
18 • Оптимизировать алгоритмы обработки исключений
19 • Создать robust систему мониторинга
20
214. АНАЛИЗ ДАННЫХ:
22 • Построить простые графики изменений (вручную или в Excel)
23 • Найти корреляции между температурой и влажностью
24 • Выявить суточные и другие циклы
25 • Подготовить отчет о наблюдениях
Ролевые задачи:
1👤 СПЕЦИАЛИЗИРОВАННЫЕ ЗАДАЧИ:
2
3🔧 TECH LEAD:
4• Исследовать протокол I2C для подготовки к BME280
5• Изучить документацию на датчики BME280, BMP180
6• Спроектировать архитектуру для множественных датчиков
7• Подготовить план интеграции различных протоколов
8
9💻 DEVELOPER:
10• Оптимизировать код для работы с DHT22
11• Добавить дополнительные методы анализа данных
12• Создать систему уведомлений о критических изменениях
13• Исследовать возможности многопоточного сбора данных
14
15🎨 UX DESIGNER:
16• Создать mockup интерфейса для отображения данных
17• Исследовать лучшие практики визуализации метеоданных
18• Спроектировать dashboard для мониторинга
19• Подготовить концепт мобильного приложения
20
21🧪 QA ENGINEER:
22• Создать комплексную систему тестирования датчиков
23• Разработать автоматические тесты валидации данных
24• Исследовать методы нагрузочного тестирования IoT
25• Подготовить метрики качества для сенсорных систем
26
27📊 PRODUCT OWNER:
28• Исследовать рынок метеостанций и IoT решений
29• Провести интервью с потенциальными пользователями
30• Определить ключевые требования к продукту
31• Создать roadmap развития сенсорной платформы
Исследовательские задачи (продвинутые):
1🔬 ГЛУБОКИЕ ИССЛЕДОВАНИЯ:
2
31. ПРОТОКОЛЫ СВЯЗИ:
4 • Детальное изучение I2C: адресация, скорости, мультимастер
5 • Сравнение производительности I2C vs SPI vs 1-Wire
6 • Исследование проблем с длинными линиями связи
7 • Изучение методов диагностики протоколов
8
92. ПРОДВИНУТЫЕ ДАТЧИКИ:
10 • Исследование BME280/BME680 (давление, газы)
11 • Изучение цифровых датчиков света (TSL2561, BH1750)
12 • Анализ датчиков качества воздуха (MQ серии)
13 • Сравнение точности различных температурных датчиков
14
153. ОБРАБОТКА ДАННЫХ:
16 • Изучение алгоритмов фильтрации шума
17 • Исследование методов интерполяции пропущенных данных
18 • Анализ статистических методов для IoT
19 • Изучение машинного обучения для предсказаний
20
214. ЭНЕРГОЭФФЕКТИВНОСТЬ:
22 • Измерение потребления различных датчиков
23 • Исследование режимов сна и пробуждения
24 • Оптимизация частоты опроса датчиков
25 • Изучение методов энергосбережения в IoT
Формат отчета команды:
1СПРИНТ #10 ОТЧЕТ: Цифровые датчики и протоколы
2===============================================
3
4🏷️ КОМАНДА: [название команды]
5👥 УЧАСТНИКИ: [список с ролями]
6📅 ДАТА: [дата завершения]
7
8🔬 ОСВОЕННЫЕ ТЕХНОЛОГИИ:
9✅ DHT22 температурно-влажностный датчик
10✅ Система логирования данных
11✅ Обработка ошибок и validation
12✅ Базовый анализ собранных данных
13
14📊 РЕЗУЛЬТАТЫ МОНИТОРИНГА:
15• Общее время работы: ___ часов
16• Успешных измерений: ___
17• Процент ошибок: ___%
18• Средняя температура: ___°C
19• Средняя влажность: ___%
20• Обнаруженные тренды: [описание]
21
22🎯 ТОЧНОСТЬ И КАЛИБРОВКА:
23• Сравнение с эталонным термометром: ±___°C
24• Повторяемость измерений: [оценка]
25• Время отклика на изменения: ___ секунд
26• Стабильность долгосрочная: [оценка]
27
28💻 ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ:
29[Описание архитектуры системы]
30
31🧪 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ:
32• Стресс-тесты: [результаты]
33• Восстановление после сбоев: [время]
34• Граничные условия: [поведение]
35
36📈 АНАЛИЗ ДАННЫХ:
37• Выявленные паттерны: [описание]
38• Корреляции: [температура vs влажность]
39• Суточные циклы: [наблюдения]
40• Аномалии: [если были]
41
42🔬 ИЗУЧЕННЫЕ ПРОТОКОЛЫ:
43• I2C: [уровень понимания]
44• SPI: [уровень понимания]
45• 1-Wire: [практический опыт]
46
47🚀 ГОТОВНОСТЬ К СПРИНТУ #11:
48[Планы по интеграции BME280 и I2C]
49
50💡 ИНСАЙТЫ И ОТКРЫТИЯ:
51[Самые важные технические открытия]
52
53📊 МЕТРИКИ КОДА:
54• Строк кода: ___
55• Функций: ___
56• Классов: ___
57• Покрытие тестами: ___%
📊 Sprint Metrics (Оценивание)
Критерии оценки работы с цифровыми датчиками:
| Критерий | Отлично (5) | Хорошо (4) | Удовлетворительно (3) |
|---|---|---|---|
| Понимание протоколов | Четкое объяснение I2C, SPI, 1-Wire | Понимание основных принципов | Базовые знания о существовании |
| Техническая реализация | Robust система с обработкой ошибок | Стабильная работа с DHT22 | Базовое чтение данных работает |
| Качество данных | Валидация, фильтрация, статистика | Корректный сбор и логирование | Простое сохранение показаний |
| Анализ результатов | Выявление трендов и паттернов | Базовая статистика и графики | Понимание полученных данных |
| Системное мышление | Архитектура для расширения | Модульный код для добавления датчиков | Рабочий код для текущих задач |
| Практическое применение | Реальные сценарии использования | Понимание практической ценности | Техническая реализация |
Модульные метрики прогресса:
- Protocol Understanding: Глубина понимания цифровых протоколов
- Data Quality: Надежность и точность собираемых данных
- System Reliability: Стабильность работы в течение длительного времени
- Analysis Skills: Способность извлекать инсайты из данных
- Code Quality: Структура, читаемость и расширяемость кода
- Error Handling: Качество обработки исключительных ситуаций
Sprint Badges:
- 🔬 Digital Sensor Master - за освоение цифровых датчиков
- 📡 Protocol Expert - за понимание принципов связи
- 📊 Data Quality Guardian - за надежный сбор данных
- 🧪 Validation Specialist - за качественную проверку данных
- 📈 Trend Analyst - за выявление паттернов в данных
- 🔧 Robust Architecture - за качественную техническую реализацию
- ⏱️ Long-term Stability - за стабильную долгосрочную работу
🎒 Sprint Resources
Компоненты для цифровых датчиков:
Основные датчики:
- DHT22 (AM2302) датчики - 1 шт на команду
- Подтягивающие резисторы 10кΩ - 2-3 шт на команду
- Конденсаторы 100nF для стабилизации - 1-2 шт на команду
- Соединительные провода различной длины
Инструменты для тестирования:
- Эталонные термометры для калибровки
- Гигрометры для проверки влажности
- Мультиметры для диагностики
- Осциллограф для анализа сигналов (если доступен)
Программные инструменты:
1📦 PYTHON БИБЛИОТЕКИ:
2✅ adafruit-circuitpython-dht (для DHT22)
3✅ pandas (анализ данных)
4✅ matplotlib (графики, опционально)
5✅ numpy (математические операции)
6✅ datetime (работа с временем)
Справочные материалы:
- Datasheet датчика DHT22
- Схемы подключения различных протоколов
- Примеры кода для работы с датчиками
- Руководство по отладке протоколов связи
🔧 Sprint Facilitation Tips
Работа с цифровыми протоколами:
Объяснение сложных концепций:
1🎯 МЕТОДИКА ОБУЧЕНИЯ:
21. Начать с аналогий (I2C как автобусная система)
32. Показать реальные сигналы на осциллографе
43. Сравнить протоколы через практические примеры
54. Подчеркнуть преимущества для конкретных задач
Отладка подключений:
- Систематическая проверка: питание → земля → сигнальные линии
- Использование мультиметра для диагностики
- Проверка правильности библиотек и их версий
- Анализ сообщений об ошибках как источника информации
Поддержка команд разного уровня:
Для продвинутых команд:
- Задачи по оптимизации производительности
- Исследование продвинутых возможностей датчиков
- Эксперименты с несколькими датчиками одновременно
- Создание собственных протоколов валидации
Для начинающих команд:
- Пошаговые инструкции по подключению
- Готовые примеры кода для модификации
- Больше времени на понимание основных концепций
- Парная работа с более опытными командами
Управление данными:
- Регулярные checkpoint’ы для проверки качества данных
- Помощь в интерпретации результатов измерений
- Обучение простым методам анализа
- Подготовка к визуализации данных в следующих спринтах
🔗 Связь с последующими спринтами
Техническая подготовка к спринту #11:
1🌐 ГОТОВНОСТЬ К BME280:
2• Понимание принципов цифровых датчиков
3• Опыт обработки ошибок и валидации
4• Архитектура для интеграции новых датчиков
5• Навыки анализа качества данных
Эволюция сенсорной платформы:
1📈 РАЗВИТИЕ СИСТЕМЫ:
2Спринт #10: DHT22 → температура и влажность
3Спринт #11: BME280 → добавляем давление и I2C
4Спринт #12: Множественные датчики → комплексная система
5Спринт #13-15: Аналоговые датчики → расширение возможностей
6Спринт #16-18: Анализ данных → превращение в инсайты
Развитие компетенций:
1💪 НАВЫКИ РОСТА:
2• От простых GPIO к сложным протоколам связи
3• От разовых измерений к непрерывному мониторингу
4• От сырых данных к анализу и интерпретации
5• От одного датчика к сенсорным экосистемам
6• От локального сбора к подготовке для сетевой передачи
📈 Sprint Success Metrics
Спринт считается успешным, если:
- ✅ Все команды успешно подключили и настроили DHT22
- ✅ Системы стабильно собирают данные с обработкой ошибок
- ✅ Команды понимают принципы работы цифровых протоколов
- ✅ Создана основа для расширения сенсорной системы
- ✅ Данные корректно логируются и анализируются
Индикаторы технической зрелости:
- Понимание различий между аналоговыми и цифровыми датчиками
- Способность выбрать подходящий протокол для конкретной задачи
- Навыки создания robust систем с обработкой ошибок
- Опыт долгосрочного мониторинга и анализа данных
- Готовность к интеграции более сложных датчиков
Подготовленность к модулю:
- Команды освоили базовые принципы работы с цифровыми датчиками
- Создана архитектурная основа для сенсорной платформы
- Понимание важности качества данных и их валидации
- Готовность к изучению I2C протокола и BME280
- Мотивация к созданию комплексной метеостанции
🔬 После этого спринта команды переходят на новый уровень работы с датчиками - от простых аналоговых сигналов к профессиональным цифровым системам! Основа для создания серьезных IoT решений заложена.
Ключевой результат: “Мы научились получать точные данные от окружающего мира и превращать их в полезную информацию!” 🌡️📊✨