ЦИФРОВОЙ ТЕРМОМЕТР 🌡️
БАЗОВАЯ РЕАЛИЗАЦИЯ
Логика работы:
Читаем температуру с DHT11 каждые 2 секунды
Выводим на дисплей: "Temp: 23.5°C"
Если температура > 30°C → мигаем светодиодом
Если температура < 10°C → выводим "COLD!"
Компоненты:
- ✅ Датчик DHT11 (или DHT22 для большей точности)
- ✅ LCD дисплей 16x2 (I2C)
- ✅ Светодиод красный
- ✅ Резистор 220 Ом
- ✅ Arduino Uno + макетка + провода
Схема подключения:
DHT11:
VCC → 5V
GND → GND
DATA → pin 2
LCD 16x2 (I2C):
VCC → 5V
GND → GND
SDA → A4
SCL → A5
Светодиод:
+ → pin 3 → резистор 220Ом → GND
ЛОГИКА РАБОТЫ 🔄
Псевдокод для обсуждения:
// ИНИЦИАЛИЗАЦИЯ:
подключаем библиотеки DHT и LiquidCrystal_I2C
инициализируем датчик и дисплей
устанавливаем пороги: ХОЛОДНО = 10, ЖАРКО = 30
// ОСНОВНОЙ ЦИКЛ:
если (прошло > 2 секунды с последнего измерения):
читаем температуру с DHT11
очищаем дисплей
выводим "Temp: X.X°C" с одним знаком после запятой
если (температура > ЖАРКО):
включаем мигание светодиода
выводим на второй строке "HOT!"
иначе если (температура < ХОЛОДНО):
выводим на второй строке "COLD!"
иначе:
выводим на второй строке "NORMAL"
выключаем светодиод
УСЛОЖНЕНИЯ И ВАРИАЦИИ 🎛️
1. История измерений:
Добавляем кнопку для просмотра статистики:
- Мин/макс температура за сутки
- Средняя температура
- График изменения (символьный)
2. Влажность и комфорт:
DHT11 также измеряет влажность!
Выводим: "Temp: 23.5°C Hum: 45%"
Рассчитываем "точку росы" или "индекс комфорта"
3. Удаленный мониторинг:
Добавляем Bluetooth/WiFi модуль
Отправляем данные на телефон/компьютер
Ведем лог измерений в файл
ОЛИМПИАДНАЯ СВЯЗЬ 🏆
Прямые параллели с заданиями:
- Система контроля стаканов - вывод статистики на дисплей
- Визуализатор битовых операций - отображение двоичных чисел
- Любое задание с дисплеем - форматирование текста и чисел
Критерии успеха в олимпиаде:
- ✅ Четкий вывод информации - понятно даже без объяснений
- ✅ Стабильная работа с периферией - нет “зависаний” дисплея
- ✅ Обработка ошибок - что делать, если датчик не отвечает?
- ✅ Оптимальное обновление - не слишком часто/редко
Типичные ошибки новичков:
- ❌ Слишком частое обновление - дисплей мерцает, датчик не успевает
- ❌ Нет обработки ошибок - программа падает, если датчик отключился
- ❌ Кривой вывод - числа “прыгают”, текст не выравнен
- ❌ Забывают инициализацию - дисплей не работает без setup()
МЕТОДИЧЕСКИЕ СОВЕТЫ 👨🏫
Поэтапное изучение:
// ЭТАП 1: Только датчик + Serial
Serial.print("Temperature: ");
Serial.println(t);
// ЭТАП 2: Только дисплей (статичный текст)
lcd.print("Hello World!");
// ЭТАП 3: Датчик + дисплей
lcd.print("Temp: ");
lcd.print(t);
// ЭТАП 4: Красивое форматирование
lcd.print("Temp: ");
lcd.print(t, 1); // один знак после запятой
lcd.print("C");
Визуализация для понимания:
🌡️ Датчик: DHT11 → Цифровой сигнал → Arduino
📟 Arduino → I2C протокол → LCD дисплей
👀 Пользователь видит: "Temp: 23.5°C"
Практические упражнения:
Упражнение 1: “Диагностика связи”
- Что делать, если дисплей не включается?
- Как проверить, работает ли датчик?
- Где искать ошибки в подключении?
Упражнение 2: “Форматирование мастер”
- Вывести температуру с ровным выравниванием
- Создать “прогресс-бар” из символов для температуры
- Чередовать показ температуры и влажности
Упражнение 3: “Система оповещений”
- Добавить звуковую сигнализацию при критичных значениях
- Сделать “ночной режим” с отключением дисплея
- Реализовать историю измерений с кнопкой просмотра
Диагностика проблем:
- Дисплей не работает → проверьте адрес I2C (обычно 0x27 или 0x3F)
- Датчик выдает NaN → проверьте питание и подключение данных
- Мерцание дисплея → уменьшите частоту обновления
- Неверные показания → дайте датчику время на стабилизацию
Критерии оценки проекта:
- 4 балла - стабильно показывает температуру и влажность
- +2 балла - красивое форматирование вывода
- +2 балла - система оповещений о критичных значениях
- +2 балла - дополнительная функция (история/график)
РЕАЛЬНОЕ ПРИМЕНЕНИЕ 🏠
Где это используется:
- Метеостанции - мониторинг температуры и влажности
- Умные дома - климат-контроль
- Теплицы - автоматическое управление микроклиматом
- Медицина - хранение лекарств при определенной температуре
Протоколы в реальном мире:
- I2C - используется в большинстве датчиков и дисплеев
- SPI - для высокоскоростных устройств (SD карты, дисплеи)
- 1-Wire - для простых датчиков (DHT11, DS18B20)