Часы-будильник-термометр-гигрометр

с графическим ЖК индикатором, имитацией рассвета и ночником на PIC18F2520

Девайс измеряет время, температуру и влажность в помещении (можно и на улице, но заточен именно под помещение). Имеет будильник с имитацией рассвета, монитор температуры и влажности, дневной и ночной режимы, несколько разных "шкурок" для основных экранов, уйму настроек и прочие полезные мелочи.

Характеристики
1Диапазон измеряемой температуры -40° … +80°C
2Диапазон измеряемой влажности 0 … 100%
3Точность измерения температуры ±1°
4Точность измерения влажности ±1…2%
5Индикация графический ЖК индикатор
6Разрешение индикатора 128х64 пикселя
Фото.1Фото.2Фото.3
ВИДЕО-ОБЗОР

ОПИСАНИЕ ПРОЕКТА

Часы реализованы на известной микросхеме DS1307, которая имеет резервное питание от литиевой батарейки, по этому ход времени продолжается даже при отключении основного питания. Контроллер считывает время из микросхемы часов, а температуру и влажность с датчика HTU21D. И датчик и микросхема часов общаются с контроллером через шину I2C. Так же микроконтролер получается данные о уровне освещенности фоторезистора и на основе этих данных управляет яркостью подсветки ЖК дисплея, и управляет ночником.

Коротким нажатием основной кнопки управления - переключаются "шукрки" часов на основном экране. В режиме настройки будильника - этой кнопкой можно его включить или выключить (при этом будильник включен - светиться подсветка кнопки, если выключен - подсветка тоже выключена), а в режиме мониторов - кнопка переключает график влажности или температуры.

Кнопками +1 или -1 переключаются режимы: основной - будильник - монитор - основной и так по кругу.

Основное меню:
Главное меню настроек

Длинное нажатие на кнопку управления в основном режиме - активирует главное меню настроек. В этом меню производится 99% всех настроек устройства. Кнопками +1 и -1 выбирается пункт меню или изменение мигающего параметра. Выход из меню либо длинным нажатием на кнопку управления, либо выбором пукта выход.

Пункты меню перечислены ниже, слева-направо. Выбранный пукт меню мигает характерной рамкой

Обратите внимание, если выполнялась установка времени - будильник будет отключен. Яркость дисплея в режиме меню не зависит от режима день/ночь и будет всегда максимальной, за исключеним режима установки яркости.

1. Установка даты, времени и дня недели

2. Яркость дисплея. Здесь выбираются режим статика или динамика и настраиваются уровни яркости для дня и ночи. В динамическом режиме яркость будет напрямую зависить от уровня освещенности датчика в заданном диапазоне яркостей дня и ночи, в статическом - будет выбрана заданная в настройках яркость для дня или ночи.

3. Подменю системные настройки

3.1. выход из подменю

3.2. визуальные настройки: показ секундной стрелки, автопереключение "шкурок" каждую минуту и показ смайлика режима "комфорт"

3.3. Калибровка фотодатчика: Настройка порогов срабатывания и гистерезиса режимов дня и ночи

3.4. Коррекция точности хода часов (+/- секунд в сутки) и датчика температуры. А так же настройка работы управляющего сигнала будильника, либо постоянный для управления внешним звуковым генератором, либо частота 8 гц для управления пищалкой типа BUZZER

4. Информация о версии прошивки, номере сборки и авторе

5. Выход из основного меню

Будильник:
Будильник

Будильник имеет установку времени срабатывания, времени повторного срабатывания и длительности "рассвета". Так же можно установить дни недели, по которым должен срабатывать будильник, а рассвет и повторное срабатывание отключить.

Длинное нажатие кнопки управления в режиме будильника - активирует меню настроек будильника и режима "рассвет".

Логика работы будильника такая: Перед срабатыванием будильника за установленное время начинает плавно разгораться подсветка имитации рассвета. Когда время дойдет до срабатывания, будильник сработает, яркость рассвета будет максимальной, подсветка кнопки управления будет мигать. Сработавший будильник можно отключить нажав на кнопку управления. Если отключения будильника не было, то дисплей будет отображать время до повтора (заданное в настройках), и по истечение этого времени произойдет повторное срабатывание. После повторного срабатывания срабатываний не будет до следующего дня установки будильника.

Когда будильник выключен - котик спит и внизу соответствующая надпись, подсветка кнопки не горит, а когда включен - кот просыпается, внизу отображается оставшееся время до срабатывания, подсветка кнопки горит.

Подробнее о имитации рассвета:

Если установлено время рассвета, допустим 30 минут, то за 30 минут до срабатывания будильника начинает плавно разгораться подсветка, как бы создавая в комнате восход солнца, это лучше влияет на пробуждение человека, чем срабатывание будильника в полной темноте. Чем ближе время к времени срабатывания, тем яркость выше, причем здесь яркость меняется нелинейно, а по определенной формуле, что еще лучше сказывается на эффекте рассвета. Рассвет работает только если сейчас режим ночь, в дневном режиме рассвет не происходит, т.к. и так уже светло и смысла в нем нет. Отключение сработавшего рассвета происходит при переключение в режим день, либо выключением будильника (именно будильника, а не сигнала), либо автоматически, через примерно 5 минут. Если режим день/ночь переключился во время рассвета - рассвет будет выключен или выключен немедленно. Но если будильник в режиме сигнала, реакции на событие день/ночь не будет, до снятия сигнала будильника.

Монитор:
Монитор

В режиме монитора на дисплее отображается текущая влажность, температура и график влажности или температуры с заданным шагом. Для примера на картинке показан график влажности с шагом 15 минут (указан в верхнем правом углу, под часами).

Временные метки можно изменить от 1 до 99 минут с шагом 1 минута. Для входа в режим установки шага нужно нажать и удерживать кнопку управления.

Монитор собирает данные все время, не зависимо от выбранного режима идикации.

Коротким нажатием на кнопку управления можно переключить режим индикации влажности или температуры. Выбранный режим индицируется соответствующей надписью и видом шкалы справа от графика.

Диапазон температур несколько сужен и не совсем пригоден для индикации уличной температуры, но для помещения, более, чем достаточно. Прибор собственно и разрабатывался для измерения температуры и влажности в комнате.

Прочие мелочи:

Некоторые экраны имеет различные виды, при, например низкой температуре, высокой влажности, режима дня и ночи. В основном это просто анимационные эффекты. Например, экран где море - днем летают чайки, а ночью светит луна.

Режим комфорт показывает довольный или наоборот не довольный смайлик в зависимости от температуры и влажности в помещении, согласно санитарных норм. Причем для холодного и теплого времени года санитарные нормы разные, что учитывается в программе. Но есть здесь и одно но, для разных климатических зон эти нормы тоже отличаются. В данных часах использованы средние климатические нормы по температуре для умеренных зон, а по влажности - умеренных и субтропических зон. Среднее положение рта у смайлика говорит о том, что показания температуры или влажности находятся на границе допустимых значений комфорта.

СХЕМА УСТРОЙСТВА
СХЕМА УСТРОЙСТВА

ОБРАТИТЕ ВНИМАНИЕ

Перемычка ALR LIGHT SEL - служит для выбора работы подсветки на кнопке управления: постоянная яркость, либо управляемая (такая же как у дисплея). На плате так же имеется еще одна перемычка и место под установку подстроечного резистора регулирующего контрастность индикатора. В большинстве индикаторов эти элементы уже установлены на самом индикаторе и устанавливать их не требуется, в случае же, если у индикатора нет подстроечника - то нужно установить перемычку и подстроечный резистор на 10К. Перемычка так же выбирает источник опорного напряжения для контрастности (масса или специальный вывод на ЖК, к сожалению бывают индикаторы, где и это по разному)

АРХИВ С ФАЙЛАМИ

Содержимое архива:
ФайлОписаниеПримечание
clock_12864.hexПрошивка микроконтроллера
clock_12864.layРисунок печатной платыФормат: SprintLayout
clock_12864.spl7Схема устройстваФормат: sPlan
Обновлен: 25 февраля 2020
Скачать clock_12864.zip [1,02 MБ]
ДЕТАЛИ И КОМПОНЕНТЫ
Рассвет
Рассвет

Использованы белые светодиоды, установленные по периметру за корпусом

Ночник
Ночник

Использованы пластиковые свечи с светодиодом имитирующем пламя

Датчик HTU21D
Датчик HTU21D

SMD перемычка на плате датчика должна быть разорвана, обычно так и есть

Фотодатчик
Фотодатчик

Любой фоторезистор (здесь применен неизвестный, китайский)

ЖК индикатор
ЖК индикатор

128х64 точки на базе контроллера ST7920 (ЖК с контроллером KS0108 не подойдет)

Резистор R2
Резистор R2

Должен иметь мощность не менее 0,5Ватт, он может незначительно нагреваться

Кварц часов на 32768Гц
Кварц часов на 32768Гц

Желательно выпаять с неисправной материнской платы. В последнее время попадаются некачественные кварцы, на которых микросхема часов не работает

Батарейка резервного питания
Батарейка резервного питания

Обычная литиевая батарея на 3 Вольта, от материнской платы копьютера

НАЛАЖИВАНИЕ

Подстроечными резисторами настроить оптимальную контрастность индикатора и чувствительность фоторезистора

Иногда, из-за плохого кварца на 32768Гц в часах, устройство может не запускаться, лечиться только заменой кварца. Вообще, от этого кварца зависит точность хода часов, по этому желательно выбирать качественные кварцы и тщательно отмывать плату от флюсов. А иногда, из-за совсем плохого кварца, микросхема часов может даже "зависнуть" и не запускаться даже после замены кварца. Для перезапуска микросхемы нужно вынуть и вновь установить батарейку резервного питания.

946 / 1
25.02.2020 г.