Skip to main content

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

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

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

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

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

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

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

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

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

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

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

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

1🥛 Стакан №1: Температура 23.1°C, Влажность 45%
2🥛 Стакан №2: Температура 23.1°C, Влажность 67%
3
4❓ Загадка: Почему температура одинаковая, а влажность разная?
5Разгадка: В одном стакане обычная вода, в другом - горячая!

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

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

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

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

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

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

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

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

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

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

 1📊 ЭВОЛЮЦИЯ ПЕРЕДАЧИ ДАННЫХ:
 2
 3🔤 АНАЛОГОВАЯ ПЕРЕДАЧА (старый способ):
 4📏 Сопротивление: 0-10кОм → Температура 0-100°C
 5⚡ Напряжение: 0-3.3В → Влажность 0-100%
 6❌ Проблемы: помехи, неточность, калибровка
 7
 8💻 ЦИФРОВАЯ ПЕРЕДАЧА (современный способ):
 9📨 Пакеты данных: "temp=23.5, humidity=67.2"
10🔢 Точные числа вместо напряжений
11✅ Преимущества: точность, помехоустойчивость, самокалибровка

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

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

 1🔌 ONEWIRE - МИНИМАЛИЗМ В ДЕЙСТВИИ:
 2
 3🎯 ПРИНЦИП:
 4- 1 провод для данных (+ питание и земля)
 5- Множество устройств на одной линии
 6- Каждое устройство имеет уникальный ID
 7
 8📞 АНАЛОГИЯ С КОНФЕРЕНЦ-СВЯЗЬЮ:
 9- Один телефонный провод
10- Много участников разговора
11- Каждый говорит по очереди
12- У каждого свое имя (ID)
13
14🌡️ ПРИМЕР С ДАТЧИКАМИ ТЕМПЕРАТУРЫ:
15ESP32 → OneWire → Датчик1 → Датчик2 → Датчик3
1617"Привет всем! Кто здесь?"
18"Я Датчик1 (ID: 28FF123456)"
19"Я Датчик2 (ID: 28FF789ABC)" 
20"Я Датчик3 (ID: 28FFDEF012)"

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

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

 1🏢 I2C = ОФИСНАЯ ИЕРАРХИЯ:
 2
 3👨‍💼 МАСТЕР (ESP32):
 4- Отдает команды
 5- Решает, кто говорит
 6- Контролирует время
 7
 8👥 РАБЫ (датчики):
 9- Слушают команды
10- Отвечают только когда спрашивают
11- У каждого свой адрес
12
13📡 ДВА ПРОВОДА:
14SDA (Serial Data): Передача данных
15SCL (Serial Clock): Синхронизация времени
16
17💬 ПРИМЕР РАЗГОВОРА:
18ESP32: "Внимание! Датчик с адресом 0x40!"
19DHT22: "Слушаю, начальник!"
20ESP32: "Дай температуру!"
21DHT22: "23.5 градуса, сэр!"
22ESP32: "Принято. Свободен!"

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

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

 1📊 СРАВНЕНИЕ ЦИФРОВЫХ ПРОТОКОЛОВ:
 2
 3┌─────────────┬──────────┬─────────┬──────────┐
 4│ Параметр    │ OneWire  │ I2C     │ SPI      │
 5├─────────────┼──────────┼─────────┼──────────┤
 6│ Провода     │ 1 + пит. │ 2 + пит.│ 4 + пит. │
 7│ Скорость    │ Низкая   │ Средняя │ Высокая  │
 8│ Устройств   │ Много    │ До 127  │ Много    │
 9│ Сложность   │ Простая  │ Средняя │ Сложная  │
10│ Применение  │ Темп-ра  │ Разное  │ Дисплеи  │
11└─────────────┴──────────┴─────────┴──────────┘
12
13🎯 КОГДА ЧТО ИСПОЛЬЗОВАТЬ:
14OneWire: Температурные датчики DS18B20
15I2C: DHT22, дисплеи, многие датчики
16SPI: Быстрые дисплеи, SD карты

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

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

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

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

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

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

 1📖 СКАЗКА О DHT22 И НАПРЯЖЕНИИ:
 2
 3Жил-был датчик DHT22. Он был очень точным, но капризным.
 4"Дайте мне ровно 3.3-5.5 Вольт!" - просил он.
 5
 6Однажды неопытный Arduino дал ему 12В:
 7💥 "Ой!" - вскрикнул датчик и сломался.
 8
 9В другой раз ESP32 дал только 2В:
10😴 "Не могу работать..." - прошептал датчик и уснул.
11
12Но когда получил правильные 3.3В:
13🎉 "Ура! Температура 23.5°C, влажность 67.2%!" - радостно сообщил он.
14
15МОРАЛЬ: Всегда проверяй напряжение питания датчика!

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

Изучаем datasheet DHT22:

 1📋 ТЕХНИЧЕСКИЙ ПАСПОРТ DHT22:
 2
 3⚡ ПИТАНИЕ:
 4- Напряжение: 3.3-5.5В DC
 5- Ток потребления: 1-1.5мА (измерение)
 6- Ток покоя: 40-50мкА (сон)
 7- ✅ Совместим с ESP32 (3.3В)
 8
 9📊 ХАРАКТЕРИСТИКИ:
10- Диапазон температуры: -40°C до +80°C
11- Точность температуры: ±0.5°C
12- Диапазон влажности: 0-100% RH
13- Точность влажности: ±2-5% RH
14
15⏱️ ВРЕМЕННЫЕ ПАРАМЕТРЫ:
16- Время отклика: 2 секунды
17- Минимальный интервал: 2 секунды
18- Время прогрева: 1 секунда
19
20🔌 РАСПИНОВКА:
21Пин 1: VCC (питание 3.3-5.5В)
22Пин 2: DATA (данные)
23Пин 3: Не используется
24Пин 4: GND (земля)

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

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

 1🔗 СХЕМА ПОДКЛЮЧЕНИЯ DHT22 К ESP32:
 2
 3DHT22          ESP32
 4┌─────────┐    ┌─────────┐
 5│ VCC (1) │────│ 3.3V    │  ✅ Питание
 6│ DATA(2) │────│ GPIO 4  │  📡 Данные  
 7│  NC (3) │    │         │  ❌ Не подключаем
 8│ GND (4) │────│ GND     │  ⚡ Земля
 9└─────────┘    └─────────┘
10
11🔧 ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ:
12- Подтягивающий резистор 10кОм между DATA и VCC
13- Конденсатор 100нФ между VCC и GND (для стабилизации)
14
15⚠️ ВАЖНЫЕ ПРАВИЛА:
161. Проверить полярность питания
172. Не перепутать пины DATA и VCC
183. Обязательно подключить подтягивающий резистор
194. Не подавать больше 5.5В!

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

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

 1🧪 ЛАБОРАТОРНАЯ РАБОТА "ПРОВЕРКА ПИТАНИЯ":
 2
 3Задание 1: Измерение напряжения питания
 4- Подключаем мультиметр к пинам VCC и GND DHT22
 5- Включаем ESP32
 6- Измеряем: _____ В
 7- ✅ Норма: 3.2-3.4В
 8
 9Задание 2: Проверка уровней сигнала DATA
10- Измеряем напряжение на пине DATA
11- Без подтягивающего резистора: _____ В
12- С подтягивающим резистором: _____ В
13- ✅ Норма: ~3.3В в покое
14
15Задание 3: Измерение тока потребления
16- Включаем амперметр в цепь питания
17- Измеряем ток в покое: _____ мА
18- Измеряем ток при работе: _____ мА
19- ✅ Норма: покой <0.1мА, работа 1-1.5мА

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

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

 1🚨 МУЗЕЙ ОШИБОК ПОДКЛЮЧЕНИЯ:
 2
 3❌ Ошибка №1: Перепутали VCC и GND
 4Последствие: Датчик не отвечает или повреждается
 5Признаки: Нет ответа, сильный нагрев
 6
 7❌ Ошибка №2: Забыли подтягивающий резистор
 8Последствие: Нестабильная работа, ошибки чтения
 9Признаки: Случайные сбои, "плавающие" значения
10
11❌ Ошибка №3: Подали 5В на ESP32 версию
12Последствие: Возможно повреждение GPIO
13Признаки: Датчик работает, но ESP32 глючит
14
15❌ Ошибка №4: Слишком частые запросы
16Последствие: Датчик не успевает измерить
17Признаки: Старые данные, ошибки чтения
18
19🛠️ ДИАГНОСТИКА:
201. Проверить напряжения мультиметром
212. Проверить правильность подключения
223. Проверить код на частоту запросов
234. Проверить качество соединений

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

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

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

 1🛠️ СБОРКА ИЗМЕРИТЕЛЬНОЙ СТАНЦИИ:
 2
 3Шаг 1: Подготовка компонентов
 4□ ESP32 DevKit
 5□ DHT22 датчик
 6□ Резистор 10кОм (подтягивающий)
 7□ Макетная плата
 8□ Провода (красный, черный, желтый)
 9
10Шаг 2: Размещение на макетке
11- DHT22 в центр макетной платы
12- ESP32 рядом или отдельно
13- Резистор рядом с датчиком
14
15Шаг 3: Соединения питания
16🔴 Красный провод: DHT22 VCC → ESP32 3.3V
17⚫ Черный провод: DHT22 GND → ESP32 GND
18
19Шаг 4: Соединение данных
20🟡 Желтый провод: DHT22 DATA → ESP32 GPIO 4
21🔧 Резистор 10кОм: между DATA и VCC
22
23Шаг 5: Проверка соединений
24□ Все провода надежно подключены
25□ Нет коротких замыканий
26□ Правильная полярность
27□ Резистор на месте

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

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

 1📋 ЭЛЕКТРИЧЕСКАЯ СХЕМА:
 2
 3      ESP32                    DHT22
 4   ┌─────────┐              ┌─────────┐
 5   │  3.3V   │──────────────│ VCC (1) │
 6   │         │    ┌─────────│ DATA(2) │
 7   │ GPIO 4  │────┤         │  NC (3) │
 8   │         │    │ 10kΩ    │ GND (4) │
 9   │   GND   │─────┼────────│         │
10   └─────────┘     │        └─────────┘
1112              ┌────┴────┐
13              │  3.3V   │
14              └─────────┘
15
16📝 УСЛОВНЫЕ ОБОЗНАЧЕНИЯ:
17──── Провод
18┌──┐ Компонент  
19┤ ├  Резистор
20└──┘ Соединение

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

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

 1✅ ЧЕК-ЛИСТ ПРАВИЛЬНОГО ПОДКЛЮЧЕНИЯ:
 2
 3🔧 ВИЗУАЛЬНАЯ ПРОВЕРКА:
 4□ DHT22 не перевернут (пин 1 = VCC)
 5□ Провода подключены к правильным пинам
 6□ Резистор 10кОм между DATA и VCC
 7□ Нет висящих проводов
 8□ Качественные соединения
 9
10⚡ ЭЛЕКТРИЧЕСКАЯ ПРОВЕРКА:
11□ Напряжение на VCC: 3.2-3.4В
12□ Напряжение на DATA в покое: ~3.3В
13□ Сопротивление между DATA и VCC: ~10кОм
14□ Нет короткого замыкания VCC-GND
15
16💻 ПРОГРАММНАЯ ПРОВЕРКА:
17□ Правильный номер GPIO в коде
18□ Библиотека DHT установлена
19□ Код компилируется без ошибок
20□ Serial Monitor показывает данные

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

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

 1📋 РАБОЧИЙ ЛИСТ КОМАНДЫ:
 2Команда: _________________ Дата: _________
 3
 4🔧 СБОРКА:
 5Время начала: _______
 6Время окончания: _______
 7Сложности: __________________________
 8
 9🔍 ПРОВЕРКА:
10Напряжение VCC: _____ В
11Напряжение DATA: _____ В  
12Сопротивление подтяжки: _____ кОм
13
14✅ РЕЗУЛЬТАТ:
15□ Схема собрана правильно
16□ Все измерения в норме
17□ Готово к программированию
18
19🤝 КОМАНДНАЯ РАБОТА:
20Кто собирал схему: ___________________
21Кто проверял мультиметром: ___________
22Кто документировал: __________________

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

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

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

 1📦 УСТАНОВКА БИБЛИОТЕКИ DHT:
 2
 3Шаг 1: Открываем Library Manager
 4- Arduino IDE → Tools → Manage Libraries
 5- Или Ctrl+Shift+I
 6
 7Шаг 2: Поиск библиотеки
 8- В поиске вводим: "DHT sensor library"
 9- Автор: Adafruit
10- Выбираем последнюю версию
11
12Шаг 3: Установка зависимостей
13- Также устанавливаем: "Adafruit Unified Sensor"
14- Нажимаем "Install All"
15
16Шаг 4: Проверка установки
17- File → Examples → DHT sensor library
18- Должны появиться примеры кода
19
20✅ ГОТОВО! Библиотека установлена.

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

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

  1// 🌡️ ПРОГРАММА ЧТЕНИЯ DHT22
  2// Урок 12: Температурный датчик и цифровые протоколы
  3
  4#include <DHT.h>           // Подключаем библиотеку DHT
  5
  6// 🔧 Настройки датчика
  7#define DHT_PIN 4          // Пин подключения DATA (GPIO 4)
  8#define DHT_TYPE DHT22     // Тип датчика (DHT22/AM2302)
  9
 10// 📊 Создаем объект датчика
 11DHT dht(DHT_PIN, DHT_TYPE);
 12
 13// ⏱️ Переменные для контроля времени
 14unsigned long lastReading = 0;
 15const unsigned long readInterval = 2000;  // 2 секунды между измерениями
 16
 17void setup() {
 18  Serial.begin(9600);
 19  Serial.println("🌡️ Инициализация DHT22 датчика");
 20  
 21  // 🚀 Запускаем датчик
 22  dht.begin();
 23  
 24  Serial.println("✅ Датчик готов к работе!");
 25  Serial.println("📊 Формат: Температура°C | Влажность% | Индекс тепла°C");
 26  Serial.println("─────────────────────────────────────────────────");
 27}
 28
 29void loop() {
 30  // ⏰ Проверяем, пора ли снимать показания
 31  if (millis() - lastReading >= readInterval) {
 32    
 33    // 📖 Читаем данные с датчика
 34    readSensorData();
 35    
 36    lastReading = millis();
 37  }
 38  
 39  // 💤 Небольшая пауза для экономии ресурсов
 40  delay(100);
 41}
 42
 43// 📊 Функция чтения и обработки данных
 44void readSensorData() {
 45  Serial.print("🔄 Измерение... ");
 46  
 47  // 🌡️ Читаем температуру (в Цельсиях)
 48  float temperature = dht.readTemperature();
 49  
 50  // 💧 Читаем влажность (в процентах)
 51  float humidity = dht.readHumidity();
 52  
 53  // ✅ Проверяем, успешно ли прочитали данные
 54  if (isnan(temperature) || isnan(humidity)) {
 55    Serial.println("❌ Ошибка чтения датчика!");
 56    Serial.println("🔧 Проверьте подключение и подождите 2 секунды");
 57    return;
 58  }
 59  
 60  // 🌡️ Вычисляем индекс тепла (как ощущается температура)
 61  float heatIndex = dht.computeHeatIndex(temperature, humidity, false);
 62  
 63  // 📊 Выводим результаты
 64  Serial.println("✅ Успешно!");
 65  Serial.printf("🌡️ Температура: %.1f°C\n", temperature);
 66  Serial.printf("💧 Влажность: %.1f%%\n", humidity);
 67  Serial.printf("🔥 Индекс тепла: %.1f°C\n", heatIndex);
 68  
 69  // 📈 Анализируем комфортность
 70  analyzeComfort(temperature, humidity);
 71  
 72  Serial.println("─────────────────────────────────────────────────");
 73}
 74
 75// 🎯 Функция анализа комфортности условий
 76void analyzeComfort(float temp, float hum) {
 77  Serial.print("🏠 Оценка комфорта: ");
 78  
 79  // 🌡️ Анализ температуры
 80  if (temp < 18) {
 81    Serial.print("❄️ Холодно");
 82  } else if (temp < 22) {
 83    Serial.print("😊 Прохладно");
 84  } else if (temp < 26) {
 85    Serial.print("✅ Комфортно");
 86  } else if (temp < 30) {
 87    Serial.print("🌡️ Тепло");
 88  } else {
 89    Serial.print("🔥 Жарко");
 90  }
 91  
 92  Serial.print(" | ");
 93  
 94  // 💧 Анализ влажности
 95  if (hum < 30) {
 96    Serial.println("🏜️ Сухо");
 97  } else if (hum < 60) {
 98    Serial.println("✅ Нормальная влажность");
 99  } else if (hum < 80) {
100    Serial.println("💧 Влажно");
101  } else {
102    Serial.println("🌊 Очень влажно");
103  }
104}

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

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

 1📚 СПРАВОЧНИК ФУНКЦИЙ DHT БИБЛИОТЕКИ:
 2
 3🏗️ СОЗДАНИЕ ОБЪЕКТА:
 4DHT dht(pin, type);
 5- pin: номер GPIO пина
 6- type: DHT11, DHT22, DHT21
 7
 8🚀 ИНИЦИАЛИЗАЦИЯ:
 9dht.begin();
10- Запускает датчик
11- Вызывается в setup()
12
13📊 ЧТЕНИЕ ДАННЫХ:
14float temp = dht.readTemperature();
15- Возвращает температуру в °C
16- NaN если ошибка
17
18float hum = dht.readHumidity();  
19- Возвращает влажность в %
20- NaN если ошибка
21
22🔥 ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ:
23dht.readTemperature(true);  // В Фаренгейтах
24dht.computeHeatIndex(t, h, false);  // Индекс тепла

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

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

 1🔧 ДИАГНОСТИКА ПРОБЛЕМ DHT22:
 2
 3❌ ОШИБКА: "NaN" в результатах
 4🔍 ПРИЧИНЫ:
 5- Неправильное подключение
 6- Отсутствует подтягивающий резистор
 7- Слишком частые запросы (< 2 сек)
 8- Поврежденный датчик
 9
10✅ РЕШЕНИЯ:
111. Проверить схему подключения
122. Добавить резистор 10кОм
133. Увеличить интервал до 2+ сек
144. Заменить датчик
15
16❌ ОШИБКА: Данные не изменяются
17🔍 ПРИЧИНЫ:
18- Датчик "завис"
19- Проблемы с питанием
20- Неисправность датчика
21
22✅ РЕШЕНИЯ:
231. Перезагрузить ESP32
242. Проверить питание 3.3В
253. Попробовать другой датчик
26
27❌ ОШИБКА: Компиляция не проходит
28🔍 ПРИЧИНЫ:
29- Библиотека не установлена
30- Неправильный тип датчика
31- Ошибки в коде
32
33✅ РЕШЕНИЯ:
341. Переустановить библиотеку DHT
352. Проверить #define DHT_TYPE
363. Сверить код с примером

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

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

 1// 🌟 РАСШИРЕННАЯ ВЕРСИЯ МЕТЕОСТАНЦИИ
 2
 3// 📊 Дополнительные переменные
 4float tempHistory[10];     // История температуры
 5float humHistory[10];      // История влажности
 6int historyIndex = 0;      // Текущий индекс в истории
 7bool historyFull = false;  // Заполнена ли история
 8
 9// 📈 Функция записи в историю
10void recordHistory(float temp, float hum) {
11  tempHistory[historyIndex] = temp;
12  humHistory[historyIndex] = hum;
13  
14  historyIndex++;
15  if (historyIndex >= 10) {
16    historyIndex = 0;
17    historyFull = true;
18  }
19}
20
21// 📊 Функция анализа трендов
22void analyzeTrends() {
23  if (!historyFull && historyIndex < 3) return;
24  
25  int samples = historyFull ? 10 : historyIndex;
26  float tempTrend = tempHistory[samples-1] - tempHistory[0];
27  float humTrend = humHistory[samples-1] - humHistory[0];
28  
29  Serial.print("📈 Тренд за последние измерения: ");
30  
31  if (abs(tempTrend) < 0.5) {
32    Serial.print("🔄 Температура стабильна");
33  } else if (tempTrend > 0) {
34    Serial.printf("⬆️ Температура растет (+%.1f°C)", tempTrend);
35  } else {
36    Serial.printf("⬇️ Температура падает (%.1f°C)", tempTrend);
37  }
38  
39  Serial.print(" | ");
40  
41  if (abs(humTrend) < 2) {
42    Serial.println("🔄 Влажность стабильна");
43  } else if (humTrend > 0) {
44    Serial.printf("⬆️ Влажность растет (+%.1f%%)\n", humTrend);
45  } else {
46    Serial.printf("⬇️ Влажность падает (%.1f%%)\n", humTrend);
47  }
48}
49
50// 🚨 Функция мониторинга критических значений
51void checkAlerts(float temp, float hum) {
52  bool alert = false;
53  
54  Serial.print("🚨 Проверка предупреждений: ");
55  
56  if (temp > 30) {
57    Serial.print("🔥 ВЫСОКАЯ ТЕМПЕРАТУРА! ");
58    alert = true;
59  }
60  
61  if (temp < 15) {
62    Serial.print("❄️ НИЗКАЯ ТЕМПЕРАТУРА! ");
63    alert = true;
64  }
65  
66  if (hum > 80) {
67    Serial.print("💧 ВЫСОКАЯ ВЛАЖНОСТЬ! ");
68    alert = true;
69  }
70  
71  if (hum < 25) {
72    Serial.print("🏜️ НИЗКАЯ ВЛАЖНОСТЬ! ");
73    alert = true;
74  }
75  
76  if (!alert) {
77    Serial.print("✅ Все в норме");
78  }
79  
80  Serial.println();
81}

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

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

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

 1🎯 ПРОЕКТ "МЕТЕОСТАНЦИЯ 5А КЛАССА":
 2
 3Базовые требования:
 4✅ Измерение температуры и влажности каждые 2 секунды
 5✅ Анализ комфортности условий в классе
 6✅ Система предупреждений о критических значениях
 7✅ История измерений и анализ трендов
 8
 9Дополнительные функции (на выбор):
10🌡️ Режим "Калибровка" - сравнение с эталонным термометром
11💾 Режим "Запись" - сохранение данных на SD карту
12📊 Режим "Статистика" - мин/макс/средние значения
13🎵 Режим "Звуковые уведомления" - пищит при превышении нормы
14🌈 Режим "Цветовая индикация" - RGB светодиод по температуре

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

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

 1📄 ПАСПОРТ МЕТЕОСТАНЦИИ
 2Команда: _________________ Дата: _________
 3
 4🎯 НАЗВАНИЕ ПРОЕКТА: "Метео[название_команды]"
 5
 6⚙️ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:
 7- Датчик: DHT22 (AM2302)
 8- Точность температуры: ±0.5°C
 9- Точность влажности: ±2-5%
10- Интервал измерений: _____ секунд
11- Диапазон температуры: -40°C...+80°C
12- Диапазон влажности: 0-100% RH
13
14🔧 СХЕМА ПОДКЛЮЧЕНИЯ:
15[Рисунок схемы с подписанными компонентами]
16- DHT22 VCC → ESP32 3.3V
17- DHT22 DATA → ESP32 GPIO ___
18- DHT22 GND → ESP32 GND  
19- Подтягивающий резистор: ___ кОм
20
21💻 ПРОГРАММНЫЕ ФУНКЦИИ:
22□ Базовое измерение температуры/влажности
23□ Анализ комфортности
24□ Система предупреждений
25□ История измерений  
26□ Анализ трендов
27□ Дополнительная функция: _______________
28
29📊 КАЛИБРОВКА И ТЕСТИРОВАНИЕ:
30Эталонная температура: ____°C
31Показания нашего датчика: ____°C
32Погрешность: ____°C
33
34Эталонная влажность: ____%
35Показания нашего датчика: ____%
36Погрешность: ____%
37
38🌡️ РЕЗУЛЬТАТЫ ИСПЫТАНИЙ:
39Температура в классе: ____°C
40Влажность в классе: ____%
41Оценка комфорта: _________________
42Тренд за 10 минут: _______________
43
44🏆 УНИКАЛЬНЫЕ ОСОБЕННОСТИ:
45Что особенного в нашей метеостанции: ____
46_____________________________________
47
48✅ ПРОВЕРКА РАБОТОСПОСОБНОСТИ:
49□ Датчик отвечает без ошибок NaN
50□ Данные изменяются при воздействии
51□ Правильно определяет тренды
52□ Система предупреждений работает
53□ Код стабилен более 10 минут
54
55⭐ САМООЦЕНКА КОМАНДЫ: ⭐⭐⭐⭐⭐

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

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

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

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

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

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

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

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

 1🎚️ УРОВЕНЬ ВЛАДЕНИЯ ДАТЧИКАМИ:
 2
 3🏆 Сенсор-инженер (100%):
 4"Понимаю протоколы, подключаю любые датчики, анализирую данные"
 5
 6🥇 Датчик-программист (75%):
 7"Программирую DHT22, обрабатываю ошибки, создаю метеостанции"
 8
 9🥈 Сенсор-техник (50%):
10"Подключаю датчики по схеме, читаю базовые данные"
11
12🥉 Датчик-новичок (25%):
13"Понимаю что такое цифровые протоколы и DHT22"
14
15Поднимите руку на уровне вашего мастерства!

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

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

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

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

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

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

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

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

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

 1📔 МОЙ ДНЕВНИК МЕТЕОРОЛОГА - УРОК 12
 2
 3🌡️ ГЛАВНЫЕ ОТКРЫТИЯ:
 4- Цифровые протоколы лучше аналоговых потому что: ____
 5- DHT22 измеряет: ____________________
 6- NaN означает: ______________________
 7
 8🔧 МОЯ МЕТЕОСТАНЦИЯ:
 9Точность температуры: ±____°C
10Точность влажности: ±____% 
11Интервал измерений: ____ секунд
12Самая крутая функция: ________________
13
14📊 ДОМАШНИЕ ИЗМЕРЕНИЯ:
15Кухня: ____°C, ____%
16Спальня: ____°C, ____%
17Ванная: ____°C, ____%
18Самое интересное открытие: ____________
19
20💻 ПРОГРАММИРОВАНИЕ:
21Самая сложная функция: ________________
22Что понял про библиотеки: ____________
23Какую ошибку исправил: _______________
24
25🔮 ПЛАНЫ НА БУДУЩЕЕ:
26Какой датчик хочу изучить следующим: ____
27Где применю знания о DHT22: ___________
28Идея для улучшения метеостанции: ______

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

  • Изучить другие датчики семейства 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 системы

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

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