Skip to main content

🌡️ Температурный датчик. Цифровые протоколы

🎯 Цели и планируемые результаты урока

Предметные результаты:

  • Понимание принципов работы цифровых протоколов связи
  • Освоение протоколов OneWire и I2C
  • Знание особенностей питания различных датчиков
  • Навыки подключения и программирования DHT22
  • Умение работать с внешними библиотеками Arduino
  • Практические навыки измерения температуры и влажности

Метапредметные результаты:

  • Развитие понимания цифровой передачи данных
  • Формирование навыков работы с технической документацией
  • Умение анализировать и интерпретировать данные датчиков
  • Развитие навыков систематизации информации

Личностные результаты:

  • Понимание роли точных измерений в науке и технике
  • Развитие наблюдательности и внимания к деталям
  • Формирование интереса к исследовательской деятельности

🚀 Мотивационное начало (8 минут)

“Цифровые детективы окружающей среды”

Учитель демонстрирует два одинаковых стакана воды, но DHT22 показывает разную влажность рядом с ними

🌡️ Загадочная демонстрация:

🥛 Стакан №1: Температура 23.1°C, Влажность 45%
🥛 Стакан №2: Температура 23.1°C, Влажность 67%

❓ Загадка: Почему температура одинаковая, а влажность разная?
Разгадка: В одном стакане обычная вода, в другом - горячая!

🔍 Интерактивная демонстрация “Невидимые изменения”:

🌬️ Дышим на датчик → Влажность растет на глазах!
❄️ Подносим лед → Температура падает за секунды!
💨 Машем рукой → Влажность колеблется!
🔥 Включаем лампу → Температура медленно растет!

🎭 Аналогия “Цифровые органы чувств”:

👃 НОС ЧЕЛОВЕКА          ↔    🌡️ ДАТЧИК DHT22
Чувствует запахи         ↔    Измеряет температуру
Определяет влажность     ↔    Измеряет влажность
Посылает сигналы в мозг  ↔    Отправляет данные в ESP32
Работает автоматически   ↔    Работает по команде

🌟 Интрига урока: “Сегодня мы научим ESP32 чувствовать мир как живое существо - ощущать тепло и влагу в воздухе!”

🎯 Вызов дня: “К концу урока ваш ESP32 станет метеостанцией, которая будет знать о погоде в классе больше, чем мы сами!”

📖 Основная часть урока

Блок 1: “Цифровые протоколы - языки общения устройств” (15 минут)

📡 “От аналогового к цифровому - эволюция связи”

Сравнение способов передачи данных:

📊 ЭВОЛЮЦИЯ ПЕРЕДАЧИ ДАННЫХ:

🔤 АНАЛОГОВАЯ ПЕРЕДАЧА (старый способ):
📏 Сопротивление: 0-10кОм → Температура 0-100°C
⚡ Напряжение: 0-3.3В → Влажность 0-100%
❌ Проблемы: помехи, неточность, калибровка

💻 ЦИФРОВАЯ ПЕРЕДАЧА (современный способ):
📨 Пакеты данных: "temp=23.5, humidity=67.2"
🔢 Точные числа вместо напряжений
✅ Преимущества: точность, помехоустойчивость, самокалибровка

🗣️ “OneWire - протокол одного провода”

Магия одного провода:

🔌 ONEWIRE - МИНИМАЛИЗМ В ДЕЙСТВИИ:

🎯 ПРИНЦИП:
- 1 провод для данных (+ питание и земля)
- Множество устройств на одной линии
- Каждое устройство имеет уникальный ID

📞 АНАЛОГИЯ С КОНФЕРЕНЦ-СВЯЗЬЮ:
- Один телефонный провод
- Много участников разговора
- Каждый говорит по очереди
- У каждого свое имя (ID)

🌡️ ПРИМЕР С ДАТЧИКАМИ ТЕМПЕРАТУРЫ:
ESP32 → OneWire → Датчик1 → Датчик2 → Датчик3
        ↓
"Привет всем! Кто здесь?"
"Я Датчик1 (ID: 28FF123456)"
"Я Датчик2 (ID: 28FF789ABC)" 
"Я Датчик3 (ID: 28FFDEF012)"

🔄 “I2C - протокол умного общения”

Система “начальник и подчиненные”:

🏢 I2C = ОФИСНАЯ ИЕРАРХИЯ:

👨‍💼 МАСТЕР (ESP32):
- Отдает команды
- Решает, кто говорит
- Контролирует время

👥 РАБЫ (датчики):
- Слушают команды
- Отвечают только когда спрашивают
- У каждого свой адрес

📡 ДВА ПРОВОДА:
SDA (Serial Data): Передача данных
SCL (Serial Clock): Синхронизация времени

💬 ПРИМЕР РАЗГОВОРА:
ESP32: "Внимание! Датчик с адресом 0x40!"
DHT22: "Слушаю, начальник!"
ESP32: "Дай температуру!"
DHT22: "23.5 градуса, сэр!"
ESP32: "Принято. Свободен!"

🔬 Практическое сравнение протоколов

Интерактивная таблица:

📊 СРАВНЕНИЕ ЦИФРОВЫХ ПРОТОКОЛОВ:

┌─────────────┬──────────┬─────────┬──────────┐
│ Параметр    │ OneWire  │ I2C     │ SPI      │
├─────────────┼──────────┼─────────┼──────────┤
│ Провода     │ 1 + пит. │ 2 + пит.│ 4 + пит. │
│ Скорость    │ Низкая   │ Средняя │ Высокая  │
│ Устройств   │ Много    │ До 127  │ Много    │
│ Сложность   │ Простая  │ Средняя │ Сложная  │
│ Применение  │ Темп-ра  │ Разное  │ Дисплеи  │
└─────────────┴──────────┴─────────┴──────────┘

🎯 КОГДА ЧТО ИСПОЛЬЗОВАТЬ:
OneWire: Температурные датчики DS18B20
I2C: DHT22, дисплеи, многие датчики
SPI: Быстрые дисплеи, SD карты

🎯 Интерактивное задание “Протокольный театр”

Ученики играют роли:

  • ESP32 (режиссер): “Датчик DHT22, дайте данные!”
  • DHT22 (актер): “Получил команду! Измеряю… Готово!”
  • SDA (почтальон): “Несу данные: температура 23.5°C!”
  • SCL (метроном): “Тик-так, тик-так - задаю ритм!”

Блок 2: “Безопасность питания датчиков - не навреди!” (12 минут)

⚡ “Напряжение питания - критически важный параметр”

История о чувствительном датчике:

📖 СКАЗКА О DHT22 И НАПРЯЖЕНИИ:

Жил-был датчик DHT22. Он был очень точным, но капризным.
"Дайте мне ровно 3.3-5.5 Вольт!" - просил он.

Однажды неопытный Arduino дал ему 12В:
💥 "Ой!" - вскрикнул датчик и сломался.

В другой раз ESP32 дал только 2В:
😴 "Не могу работать..." - прошептал датчик и уснул.

Но когда получил правильные 3.3В:
🎉 "Ура! Температура 23.5°C, влажность 67.2%!" - радостно сообщил он.

МОРАЛЬ: Всегда проверяй напряжение питания датчика!

🔍 “Чтение технической документации - паспорт датчика”

Изучаем datasheet DHT22:

📋 ТЕХНИЧЕСКИЙ ПАСПОРТ DHT22:

⚡ ПИТАНИЕ:
- Напряжение: 3.3-5.5В DC
- Ток потребления: 1-1.5мА (измерение)
- Ток покоя: 40-50мкА (сон)
- ✅ Совместим с ESP32 (3.3В)

📊 ХАРАКТЕРИСТИКИ:
- Диапазон температуры: -40°C до +80°C
- Точность температуры: ±0.5°C
- Диапазон влажности: 0-100% RH
- Точность влажности: ±2-5% RH

⏱️ ВРЕМЕННЫЕ ПАРАМЕТРЫ:
- Время отклика: 2 секунды
- Минимальный интервал: 2 секунды
- Время прогрева: 1 секунда

🔌 РАСПИНОВКА:
Пин 1: VCC (питание 3.3-5.5В)
Пин 2: DATA (данные)
Пин 3: Не используется
Пин 4: GND (земля)

🔧 “Правильное подключение - залог успеха”

Пошаговая схема подключения:

🔗 СХЕМА ПОДКЛЮЧЕНИЯ DHT22 К ESP32:

DHT22          ESP32
┌─────────┐    ┌─────────┐
│ VCC (1) │────│ 3.3V    │  ✅ Питание
│ DATA(2) │────│ GPIO 4  │  📡 Данные  
│  NC (3) │    │         │  ❌ Не подключаем
│ GND (4) │────│ GND     │  ⚡ Земля
└─────────┘    └─────────┘

🔧 ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ:
- Подтягивающий резистор 10кОм между DATA и VCC
- Конденсатор 100нФ между VCC и GND (для стабилизации)

⚠️ ВАЖНЫЕ ПРАВИЛА:
1. Проверить полярность питания
2. Не перепутать пины DATA и VCC
3. Обязательно подключить подтягивающий резистор
4. Не подавать больше 5.5В!

🔬 Практическая проверка “Тестируем питание”

Измерения мультиметром:

🧪 ЛАБОРАТОРНАЯ РАБОТА "ПРОВЕРКА ПИТАНИЯ":

Задание 1: Измерение напряжения питания
- Подключаем мультиметр к пинам VCC и GND DHT22
- Включаем ESP32
- Измеряем: _____ В
- ✅ Норма: 3.2-3.4В

Задание 2: Проверка уровней сигнала DATA
- Измеряем напряжение на пине DATA
- Без подтягивающего резистора: _____ В
- С подтягивающим резистором: _____ В
- ✅ Норма: ~3.3В в покое

Задание 3: Измерение тока потребления
- Включаем амперметр в цепь питания
- Измеряем ток в покое: _____ мА
- Измеряем ток при работе: _____ мА
- ✅ Норма: покой <0.1мА, работа 1-1.5мА

❌ “Типичные ошибки и их последствия”

Галерея ошибок:

🚨 МУЗЕЙ ОШИБОК ПОДКЛЮЧЕНИЯ:

❌ Ошибка №1: Перепутали VCC и GND
Последствие: Датчик не отвечает или повреждается
Признаки: Нет ответа, сильный нагрев

❌ Ошибка №2: Забыли подтягивающий резистор
Последствие: Нестабильная работа, ошибки чтения
Признаки: Случайные сбои, "плавающие" значения

❌ Ошибка №3: Подали 5В на ESP32 версию
Последствие: Возможно повреждение GPIO
Признаки: Датчик работает, но ESP32 глючит

❌ Ошибка №4: Слишком частые запросы
Последствие: Датчик не успевает измерить
Признаки: Старые данные, ошибки чтения

🛠️ ДИАГНОСТИКА:
1. Проверить напряжения мультиметром
2. Проверить правильность подключения
3. Проверить код на частоту запросов
4. Проверить качество соединений

Блок 3: “Подключение DHT22 - собираем метеостанцию” (15 минут)

🔌 “Физическое подключение датчика”

Пошаговая сборка:

🛠️ СБОРКА ИЗМЕРИТЕЛЬНОЙ СТАНЦИИ:

Шаг 1: Подготовка компонентов
□ ESP32 DevKit
□ DHT22 датчик
□ Резистор 10кОм (подтягивающий)
□ Макетная плата
□ Провода (красный, черный, желтый)

Шаг 2: Размещение на макетке
- DHT22 в центр макетной платы
- ESP32 рядом или отдельно
- Резистор рядом с датчиком

Шаг 3: Соединения питания
🔴 Красный провод: DHT22 VCC → ESP32 3.3V
⚫ Черный провод: DHT22 GND → ESP32 GND

Шаг 4: Соединение данных
🟡 Желтый провод: DHT22 DATA → ESP32 GPIO 4
🔧 Резистор 10кОм: между DATA и VCC

Шаг 5: Проверка соединений
□ Все провода надежно подключены
□ Нет коротких замыканий
□ Правильная полярность
□ Резистор на месте

📐 “Схема подключения - технический чертеж”

Создание схемы:

📋 ЭЛЕКТРИЧЕСКАЯ СХЕМА:

      ESP32                    DHT22
   ┌─────────┐              ┌─────────┐
   │  3.3V   │──────────────│ VCC (1) │
   │         │    ┌─────────│ DATA(2) │
   │ GPIO 4  │────┤         │  NC (3) │
   │         │    │ 10kΩ    │ GND (4) │
   │   GND   │─────┼────────│         │
   └─────────┘     │        └─────────┘
                   │
              ┌────┴────┐
              │  3.3V   │
              └─────────┘

📝 УСЛОВНЫЕ ОБОЗНАЧЕНИЯ:
──── Провод
┌──┐ Компонент  
┤ ├  Резистор
└──┘ Соединение

🔍 “Диагностика подключения”

Проверочный протокол:

✅ ЧЕК-ЛИСТ ПРАВИЛЬНОГО ПОДКЛЮЧЕНИЯ:

🔧 ВИЗУАЛЬНАЯ ПРОВЕРКА:
□ DHT22 не перевернут (пин 1 = VCC)
□ Провода подключены к правильным пинам
□ Резистор 10кОм между DATA и VCC
□ Нет висящих проводов
□ Качественные соединения

⚡ ЭЛЕКТРИЧЕСКАЯ ПРОВЕРКА:
□ Напряжение на VCC: 3.2-3.4В
□ Напряжение на DATA в покое: ~3.3В
□ Сопротивление между DATA и VCC: ~10кОм
□ Нет короткого замыкания VCC-GND

💻 ПРОГРАММНАЯ ПРОВЕРКА:
□ Правильный номер GPIO в коде
□ Библиотека DHT установлена
□ Код компилируется без ошибок
□ Serial Monitor показывает данные

🎯 Практическое задание “Первое подключение”

Каждая команда собирает схему:

📋 РАБОЧИЙ ЛИСТ КОМАНДЫ:
Команда: _________________ Дата: _________

🔧 СБОРКА:
Время начала: _______
Время окончания: _______
Сложности: __________________________

🔍 ПРОВЕРКА:
Напряжение VCC: _____ В
Напряжение DATA: _____ В  
Сопротивление подтяжки: _____ кОм

✅ РЕЗУЛЬТАТ:
□ Схема собрана правильно
□ Все измерения в норме
□ Готово к программированию

🤝 КОМАНДНАЯ РАБОТА:
Кто собирал схему: ___________________
Кто проверял мультиметром: ___________
Кто документировал: __________________

Блок 4: “Программирование DHT22 - оживляем датчик” (18 минут)

📚 “Установка библиотеки DHT”

Пошаговая установка:

📦 УСТАНОВКА БИБЛИОТЕКИ DHT:

Шаг 1: Открываем Library Manager
- Arduino IDE → Tools → Manage Libraries
- Или Ctrl+Shift+I

Шаг 2: Поиск библиотеки
- В поиске вводим: "DHT sensor library"
- Автор: Adafruit
- Выбираем последнюю версию

Шаг 3: Установка зависимостей
- Также устанавливаем: "Adafruit Unified Sensor"
- Нажимаем "Install All"

Шаг 4: Проверка установки
- File → Examples → DHT sensor library
- Должны появиться примеры кода

✅ ГОТОВО! Библиотека установлена.

💻 “Первая программа чтения датчика”

Базовый код с подробными комментариями:

// 🌡️ ПРОГРАММА ЧТЕНИЯ DHT22
// Урок 12: Температурный датчик и цифровые протоколы

#include <DHT.h>           // Подключаем библиотеку DHT

// 🔧 Настройки датчика
#define DHT_PIN 4          // Пин подключения DATA (GPIO 4)
#define DHT_TYPE DHT22     // Тип датчика (DHT22/AM2302)

// 📊 Создаем объект датчика
DHT dht(DHT_PIN, DHT_TYPE);

// ⏱️ Переменные для контроля времени
unsigned long lastReading = 0;
const unsigned long readInterval = 2000;  // 2 секунды между измерениями

void setup() {
  Serial.begin(9600);
  Serial.println("🌡️ Инициализация DHT22 датчика");
  
  // 🚀 Запускаем датчик
  dht.begin();
  
  Serial.println("✅ Датчик готов к работе!");
  Serial.println("📊 Формат: Температура°C | Влажность% | Индекс тепла°C");
  Serial.println("─────────────────────────────────────────────────");
}

void loop() {
  // ⏰ Проверяем, пора ли снимать показания
  if (millis() - lastReading >= readInterval) {
    
    // 📖 Читаем данные с датчика
    readSensorData();
    
    lastReading = millis();
  }
  
  // 💤 Небольшая пауза для экономии ресурсов
  delay(100);
}

// 📊 Функция чтения и обработки данных
void readSensorData() {
  Serial.print("🔄 Измерение... ");
  
  // 🌡️ Читаем температуру (в Цельсиях)
  float temperature = dht.readTemperature();
  
  // 💧 Читаем влажность (в процентах)
  float humidity = dht.readHumidity();
  
  // ✅ Проверяем, успешно ли прочитали данные
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("❌ Ошибка чтения датчика!");
    Serial.println("🔧 Проверьте подключение и подождите 2 секунды");
    return;
  }
  
  // 🌡️ Вычисляем индекс тепла (как ощущается температура)
  float heatIndex = dht.computeHeatIndex(temperature, humidity, false);
  
  // 📊 Выводим результаты
  Serial.println("✅ Успешно!");
  Serial.printf("🌡️ Температура: %.1f°C\n", temperature);
  Serial.printf("💧 Влажность: %.1f%%\n", humidity);
  Serial.printf("🔥 Индекс тепла: %.1f°C\n", heatIndex);
  
  // 📈 Анализируем комфортность
  analyzeComfort(temperature, humidity);
  
  Serial.println("─────────────────────────────────────────────────");
}

// 🎯 Функция анализа комфортности условий
void analyzeComfort(float temp, float hum) {
  Serial.print("🏠 Оценка комфорта: ");
  
  // 🌡️ Анализ температуры
  if (temp < 18) {
    Serial.print("❄️ Холодно");
  } else if (temp < 22) {
    Serial.print("😊 Прохладно");
  } else if (temp < 26) {
    Serial.print("✅ Комфортно");
  } else if (temp < 30) {
    Serial.print("🌡️ Тепло");
  } else {
    Serial.print("🔥 Жарко");
  }
  
  Serial.print(" | ");
  
  // 💧 Анализ влажности
  if (hum < 30) {
    Serial.println("🏜️ Сухо");
  } else if (hum < 60) {
    Serial.println("✅ Нормальная влажность");
  } else if (hum < 80) {
    Serial.println("💧 Влажно");
  } else {
    Serial.println("🌊 Очень влажно");
  }
}

🔍 “Понимание библиотеки DHT”

Разбор основных функций:

📚 СПРАВОЧНИК ФУНКЦИЙ DHT БИБЛИОТЕКИ:

🏗️ СОЗДАНИЕ ОБЪЕКТА:
DHT dht(pin, type);
- pin: номер GPIO пина
- type: DHT11, DHT22, DHT21

🚀 ИНИЦИАЛИЗАЦИЯ:
dht.begin();
- Запускает датчик
- Вызывается в setup()

📊 ЧТЕНИЕ ДАННЫХ:
float temp = dht.readTemperature();
- Возвращает температуру в °C
- NaN если ошибка

float hum = dht.readHumidity();  
- Возвращает влажность в %
- NaN если ошибка

🔥 ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ:
dht.readTemperature(true);  // В Фаренгейтах
dht.computeHeatIndex(t, h, false);  // Индекс тепла

🚨 “Обработка ошибок и отладка”

Алгоритм диагностики проблем:

🔧 ДИАГНОСТИКА ПРОБЛЕМ DHT22:

❌ ОШИБКА: "NaN" в результатах
🔍 ПРИЧИНЫ:
- Неправильное подключение
- Отсутствует подтягивающий резистор
- Слишком частые запросы (< 2 сек)
- Поврежденный датчик

✅ РЕШЕНИЯ:
1. Проверить схему подключения
2. Добавить резистор 10кОм
3. Увеличить интервал до 2+ сек
4. Заменить датчик

❌ ОШИБКА: Данные не изменяются
🔍 ПРИЧИНЫ:
- Датчик "завис"
- Проблемы с питанием
- Неисправность датчика

✅ РЕШЕНИЯ:
1. Перезагрузить ESP32
2. Проверить питание 3.3В
3. Попробовать другой датчик

❌ ОШИБКА: Компиляция не проходит
🔍 ПРИЧИНЫ:
- Библиотека не установлена
- Неправильный тип датчика
- Ошибки в коде

✅ РЕШЕНИЯ:
1. Переустановить библиотеку DHT
2. Проверить #define DHT_TYPE
3. Сверить код с примером

📊 “Расширенные возможности программы”

Улучшенная версия с дополнительными функциями:

// 🌟 РАСШИРЕННАЯ ВЕРСИЯ МЕТЕОСТАНЦИИ

// 📊 Дополнительные переменные
float tempHistory[10];     // История температуры
float humHistory[10];      // История влажности
int historyIndex = 0;      // Текущий индекс в истории
bool historyFull = false;  // Заполнена ли история

// 📈 Функция записи в историю
void recordHistory(float temp, float hum) {
  tempHistory[historyIndex] = temp;
  humHistory[historyIndex] = hum;
  
  historyIndex++;
  if (historyIndex >= 10) {
    historyIndex = 0;
    historyFull = true;
  }
}

// 📊 Функция анализа трендов
void analyzeTrends() {
  if (!historyFull && historyIndex < 3) return;
  
  int samples = historyFull ? 10 : historyIndex;
  float tempTrend = tempHistory[samples-1] - tempHistory[0];
  float humTrend = humHistory[samples-1] - humHistory[0];
  
  Serial.print("📈 Тренд за последние измерения: ");
  
  if (abs(tempTrend) < 0.5) {
    Serial.print("🔄 Температура стабильна");
  } else if (tempTrend > 0) {
    Serial.printf("⬆️ Температура растет (+%.1f°C)", tempTrend);
  } else {
    Serial.printf("⬇️ Температура падает (%.1f°C)", tempTrend);
  }
  
  Serial.print(" | ");
  
  if (abs(humTrend) < 2) {
    Serial.println("🔄 Влажность стабильна");
  } else if (humTrend > 0) {
    Serial.printf("⬆️ Влажность растет (+%.1f%%)\n", humTrend);
  } else {
    Serial.printf("⬇️ Влажность падает (%.1f%%)\n", humTrend);
  }
}

// 🚨 Функция мониторинга критических значений
void checkAlerts(float temp, float hum) {
  bool alert = false;
  
  Serial.print("🚨 Проверка предупреждений: ");
  
  if (temp > 30) {
    Serial.print("🔥 ВЫСОКАЯ ТЕМПЕРАТУРА! ");
    alert = true;
  }
  
  if (temp < 15) {
    Serial.print("❄️ НИЗКАЯ ТЕМПЕРАТУРА! ");
    alert = true;
  }
  
  if (hum > 80) {
    Serial.print("💧 ВЫСОКАЯ ВЛАЖНОСТЬ! ");
    alert = true;
  }
  
  if (hum < 25) {
    Serial.print("🏜️ НИЗКАЯ ВЛАЖНОСТЬ! ");
    alert = true;
  }
  
  if (!alert) {
    Serial.print("✅ Все в норме");
  }
  
  Serial.println();
}

🎨 Творческое задание: “Персональная метеостанция” (10 минут)

🏠 “Создание умной метеостанции класса”

Техническое задание для команд:

🎯 ПРОЕКТ "МЕТЕОСТАНЦИЯ 5А КЛАССА":

Базовые требования:
✅ Измерение температуры и влажности каждые 2 секунды
✅ Анализ комфортности условий в классе
✅ Система предупреждений о критических значениях
✅ История измерений и анализ трендов

Дополнительные функции (на выбор):
🌡️ Режим "Калибровка" - сравнение с эталонным термометром
💾 Режим "Запись" - сохранение данных на SD карту
📊 Режим "Статистика" - мин/макс/средние значения
🎵 Режим "Звуковые уведомления" - пищит при превышении нормы
🌈 Режим "Цветовая индикация" - RGB светодиод по температуре

📋 “Техническая документация метеостанции”

Каждая команда создает паспорт устройства:

📄 ПАСПОРТ МЕТЕОСТАНЦИИ
Команда: _________________ Дата: _________

🎯 НАЗВАНИЕ ПРОЕКТА: "Метео[название_команды]"

⚙️ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:
- Датчик: DHT22 (AM2302)
- Точность температуры: ±0.5°C
- Точность влажности: ±2-5%
- Интервал измерений: _____ секунд
- Диапазон температуры: -40°C...+80°C
- Диапазон влажности: 0-100% RH

🔧 СХЕМА ПОДКЛЮЧЕНИЯ:
[Рисунок схемы с подписанными компонентами]
- DHT22 VCC → ESP32 3.3V
- DHT22 DATA → ESP32 GPIO ___
- DHT22 GND → ESP32 GND  
- Подтягивающий резистор: ___ кОм

💻 ПРОГРАММНЫЕ ФУНКЦИИ:
□ Базовое измерение температуры/влажности
□ Анализ комфортности
□ Система предупреждений
□ История измерений  
□ Анализ трендов
□ Дополнительная функция: _______________

📊 КАЛИБРОВКА И ТЕСТИРОВАНИЕ:
Эталонная температура: ____°C
Показания нашего датчика: ____°C
Погрешность: ____°C

Эталонная влажность: ____%
Показания нашего датчика: ____%
Погрешность: ____%

🌡️ РЕЗУЛЬТАТЫ ИСПЫТАНИЙ:
Температура в классе: ____°C
Влажность в классе: ____%
Оценка комфорта: _________________
Тренд за 10 минут: _______________

🏆 УНИКАЛЬНЫЕ ОСОБЕННОСТИ:
Что особенного в нашей метеостанции: ____
_____________________________________

✅ ПРОВЕРКА РАБОТОСПОСОБНОСТИ:
□ Датчик отвечает без ошибок NaN
□ Данные изменяются при воздействии
□ Правильно определяет тренды
□ Система предупреждений работает
□ Код стабилен более 10 минут

⭐ САМООЦЕНКА КОМАНДЫ: ⭐⭐⭐⭐⭐

🎪 “Выставка метеостанций”

Презентация проектов:

  • Каждая команда демонстрирует свою метеостанцию (3 минуты)
  • Показывает реакцию на дыхание, лед, тепло от лампы
  • Объясняет свои уникальные функции
  • Сравнивает показания с другими командами
  • Отвечает на вопросы жюри

📝 Рефлексия и закрепление (5 минут)

🌡️ “Викторина цифровых протоколов”

Быстрые вопросы с практическими ответами:

❓ ПОКАЖИ ЖЕСТАМИ:
1. Сколько проводов нужно для I2C? (показать 2 пальца)
2. Какое напряжение питания DHT22? (показать 3 пальца = 3.3В)
3. Как часто можно читать DHT22? (показать 2 пальца = 2 секунды)
4. Что значит NaN? (покачать головой = ошибка)

📊 “Шкала мастерства датчиков”

🎚️ УРОВЕНЬ ВЛАДЕНИЯ ДАТЧИКАМИ:

🏆 Сенсор-инженер (100%):
"Понимаю протоколы, подключаю любые датчики, анализирую данные"

🥇 Датчик-программист (75%):
"Программирую DHT22, обрабатываю ошибки, создаю метеостанции"

🥈 Сенсор-техник (50%):
"Подключаю датчики по схеме, читаю базовые данные"

🥉 Датчик-новичок (25%):
"Понимаю что такое цифровые протоколы и DHT22"

Поднимите руку на уровне вашего мастерства!

💭 “Одной фразой о датчиках”

Каждый ученик завершает фразу:

  • “Цифровые протоколы это…”
  • “DHT22 удивил меня тем что…”
  • “Самое сложное в датчиках…”
  • “Теперь я могу измерить…”

🏠 Домашнее задание

🌡️ “Домашний метеоролог”

Основное задание:

  1. Домашние измерения

    • Померить температуру и влажность в разных комнатах
    • Сравнить с показаниями домашних термометров
    • Найти самое жаркое и холодное место в доме
  2. Эксперименты с кодом

    • Добавить измерение в Фаренгейтах
    • Создать свою систему оценки комфорта
    • Попробовать изменить интервал измерений
  3. Дневник метеоролога

📔 МОЙ ДНЕВНИК МЕТЕОРОЛОГА - УРОК 12

🌡️ ГЛАВНЫЕ ОТКРЫТИЯ:
- Цифровые протоколы лучше аналоговых потому что: ____
- DHT22 измеряет: ____________________
- NaN означает: ______________________

🔧 МОЯ МЕТЕОСТАНЦИЯ:
Точность температуры: ±____°C
Точность влажности: ±____% 
Интервал измерений: ____ секунд
Самая крутая функция: ________________

📊 ДОМАШНИЕ ИЗМЕРЕНИЯ:
Кухня: ____°C, ____%
Спальня: ____°C, ____%
Ванная: ____°C, ____%
Самое интересное открытие: ____________

💻 ПРОГРАММИРОВАНИЕ:
Самая сложная функция: ________________
Что понял про библиотеки: ____________
Какую ошибку исправил: _______________

🔮 ПЛАНЫ НА БУДУЩЕЕ:
Какой датчик хочу изучить следующим: ____
Где применю знания о DHT22: ___________
Идея для улучшения метеостанции: ______

🔬 Исследовательское задание (для увлеченных):

  • Изучить другие датчики семейства DHT (DHT11, DHT21)
  • Найти информацию о других протоколах (SPI, UART, Bluetooth)
  • Исследовать профессиональные метеостанции

🎨 Творческое задание:

  • Нарисовать схему “умного дома” с множеством датчиков
  • Создать комикс “Путешествие данных от DHT22 до Serial Monitor”

📊 Критерии оценивания

“Отлично” (5):

  • Понимает принципы работы цифровых протоколов OneWire и I2C
  • Правильно подключает DHT22 с учетом требований питания
  • Уверенно программирует чтение данных и обработку ошибок
  • Создает функциональную метеостанцию с дополнительными возможностями
  • Может диагностировать и решать проблемы подключения
  • Демонстрирует творческий подход к анализу данных

“Хорошо” (4):

  • Понимает основы цифровых протоколов и их преимущества
  • Подключает датчик по готовой схеме
  • Программирует базовое чтение температуры и влажности
  • Создает работающую метеостанцию
  • Понимает назначение библиотек и функций

“Удовлетворительно” (3):

  • Имеет общее представление о цифровых датчиках
  • С помощью подключает DHT22
  • Использует готовые примеры кода
  • Участвует в создании групповой метеостанции

🛠️ Материалы и оборудование

Для каждой команды (3-4 человека):

  • ESP32 DevKit плата
  • DHT22 (AM2302) датчик температуры и влажности
  • Резистор 10кОм (подтягивающий)
  • Конденсатор 100нФ (по желанию, для стабилизации питания)
  • Макетная плата
  • Провода для соединений (красный, черный, желтый)
  • Мультиметр для проверки соединений

Для демонстраций учителем:

  • Эталонный термометр для сравнения
  • Источник пара (горячая вода) для тестирования влажности
  • Лед для демонстрации изменения температуры
  • Фен или лампа для нагрева
  • Осциллограф для демонстрации цифровых сигналов

Программное обеспечение:

  • Arduino IDE с установленными библиотеками:
    • DHT sensor library by Adafruit
    • Adafruit Unified Sensor library
  • Примеры кода для различных режимов работы

Дополнительные компоненты (для продвинутых экспериментов):

  • RGB светодиод для цветовой индикации
  • Пьезобузер для звуковых уведомлений
  • Кнопки для переключения режимов
  • LCD дисплей для отображения данных
  • SD карта модуль для записи истории

🔍 Методические заметки для учителя

Подготовка к уроку:

  1. Тестирование датчиков: Проверить все DHT22 на работоспособность
  2. Подготовка схем: Создать крупные схемы подключения для демонстрации
  3. Библиотеки: Убедиться, что все необходимые библиотеки установлены
  4. Эталонные измерения: Подготовить точные термометры для сравнения

Возможные сложности:

Проблема: DHT22 дает нестабильные показания или NaN Решение: Проверить подтягивающий резистор, качество соединений, интервал опроса

Проблема: Путаница в пинах и полярности DHT22
Решение: Создать крупную схему распиновки, использовать цветовое кодирование

Проблема: Сложность понимания цифровых протоколов Решение: Больше аналогий с реальной жизнью, интерактивные демонстрации

Безопасность:

  • Контроль правильности подключения питания
  • Проверка отсутствия коротких замыканий
  • Осторожность при работе с горячей водой для демонстраций
  • Правильное обращение с хрупкими датчиками

Дифференциация обучения:

  • Для продвинутых: изучение других датчиков, создание сложных алгоритмов анализа
  • Для начинающих: готовые схемы подключения, упрощенные программы
  • Для визуалов: схемы, диаграммы протоколов, графики данных
  • Для кинестетиков: физические эксперименты с температурой и влажностью

Связь с реальным миром:

  • Применение в системах климат-контроля
  • Использование в сельском хозяйстве (теплицы)
  • Метеорологические станции
  • Умные дома и IoT системы

Межпредметные связи:

  • География: климат, погода, метеорология
  • Физика: температура, влажность, теплообмен
  • Биология: влияние климата на организмы
  • Математика: анализ данных, статистика, графики