Реклама ⓘ
Главная » Автоматика в быту
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Метеостанция, часы, будильник, календарь, таймер и ночник

Встала задача собрать устройство, которое бы выполняло функции комнатной метеостанции и будильника. Основные функции,  которое может выполнять устройство:

  • Измерение температуры в помещении с помощью датчика BMP180 c дискретностью 0.1 градус – только положительные значения;
  • Измерение температуры на улице  помощью датчика DS18B20 c дискретностью 0.1 градус в диапазоне от -55 до 125 градусов;
  • Отображение максимальной и минимальной температура в течение суток;
  • Измерение относительной влажности;
  • Измерение давления в мм ртутного столба (с предсказанием погоды по изменению давления);
  • Часы (простые и с большими цифрамиJ);
  • Автоматическая корректировка времени до +/- 20 сек в сутки;
  • Автоматический переход на летнее и зимнее время ;
  • Два будильника :
    • Возможностью выставить будильник на определенный день/дни недели;
    • Возможность при срабатывании включать звуковой сигнал либо сигнализировать подсветкой;
  • Вычисление дня недели по дате (с учетом високосного года);
  • Лунный календарь;
  • Обратный таймер от 1й до 99 минут;
  • Ночник;
  • Связь с ПК по интерфейсу RS-485 для дальнейшей интеграции в систему “Умный дом”;
  • Напоминалка событий на 3 события с выводом текстового сообщения длиной до 40 символов (настраивается только с ПК);
  • Автоматическое управление подсветкой экрана с возможностью:
    • Включать или отключать подсветку по расписанию;
    • Включать или отключать подсветку в зависимости от освещенности.

Схема

Устройство построено на микроконтроллере Atmega328р U1 в корпусе TQFP-32 т.к. в устройстве задействованы вывода ADC6  и ADC7   которые отсутствуют в DIP  корпусе.
В качестве обвеса контроллера идут конденсаторы С2-С4, фильтры L1 и L2 (если вы уверенны в вашем источнике питания) можно исключить. Резистор R4 подтягивает RESET  к +5В. Кварцевый резонатор ХТ1 на 16МГц. В качестве датчика влажности Р3 применен  Ардуиновский модуль датчика влажности и температуры DHT11, из-за чего в схеме не используется подтягивающий резистор, т.к. он уже установлен в модуле.  В качестве датчика давления Р1 применен модуль BMP180 со встроенным преобразователем напряжения 5<->3.3 вольта, поэтому данный модуль был запитан напряжением в 5В. В модуле уже установлены подтягивающие резисторы номиналом 4.7кОм на шине I2C к +3.3В. 

Часы RTC, реализованные на  микросхемы реального времени DS1307,  подключены к шине I2C без подтягивающих резисторов. Если вместо микросхемы DS1307 применяется  готовый модуль, на подобии Tiny RTC I2C, я бы порекомендовал, перед подключением модуля, выпаять из модуля подтягивающие резисторы. Иначе возможен выход  из строя микросхемы BMP180. Батарейка на 3 вольта, для поддержания хода часов в момент отсутствия напряжения питания. Часовой резонатор ХТ2 на 32768 Гц,  согласно мануалу, необходимо выбрать емкостью 12,5pF, от его качества зависит точность хода часов. В случае, если часы идут и погрешностью более 5 сек в сутки, можно на кварц ХТ2 навесить дополнительные конденсаторы емкостью 5-22pF.
Фоторезистор подключен к разъёму P2.

Выносной датчик температуры DS18B20 подключается к разъёму Р3, где первая клемма это +5В, клемма 2 – GDN, а к 3й клемме подключена шина данных 1-wire датчика. Резистор R13 номиналом 0 Ом выполняет роль предохранителя- можно заменить перемычкой.

Для вывод информации можно применить дисплей WH2004 (я использую WH2004L - люблю все большое или аналог – 4х строковый по 20 символов. Наличие кириллицы обязательно, ибо вместо русских надписей вы увидите китайские иероглифы. Яркость подсветки LCD дисплея подбирается резистором R17  согласно мануалу на Ваш дисплей.
Ночник реализован на резисторах R11, R12, R15, транзисторе Q2 , и светодиодах D1-D2.

Так как ночник может включаться в зависимости от освещенности либо по расписанию, то его можно заменить узлом управления нагрузкой.
Связь с ПК построена на микросхеме ST485  интерфейса  RS 485

Этот модуль свободно может быть заменен на любой другой интерфейс, например RS232 (COM- порт) на микросхеме МАХ232

При использовании данного варианта порт РС1 (вывод 24) на микроконтроллере остается свободным, тк. он отвечает за управление приемо/передатчиком  микросхемы ST485.


Управление «девайсом» происходит с помощью 4х кнопок S1-S4, где S1 подключена на прерывание INT0 (порт PD2) контроллера, а  кнопки S2-S4 через резистивный делитель R23,R27,R30,R31 на вход АЦП ADC7. По назначению кнопок – немного ниже.
Питание осуществляется от стабилизированного источника питания +5В, мощность которого зависит от используемого LCD дисплея и ночника.

Диод D4 в цепи питания выполняет роль защиты от переплюсовки. Если источник питания выдает ровно 5-5.2 В то лучше ставить диод Шоттки . Если, как у меня, «качественный» китаец выдает 5.6В то я применил обычный диод с падением напряжения 0.7 Вольта.

Возможно упрощения устройства:

Если не требуется общение с ПК, можно не устанавливать элементы DD1, R20-R22, R24-R26, R28,R29, C12, P8. L1 и L2 можно заменить перемычками. Исключить автоматическую подсветку не устанавливая фоторезистор Р2, резисторы R2 и R7. Если не нужен ночник, то исключаются из схемы резисторы R11, R12, R15, диоды D1, D2, и транзистор Q2.

Сборка:

Устройство собрано на односторонней печатной плате из фольгированного стеклотекстолита

Печатная плата разрабатывалась под LCD  дисплей WH2004L (146х63 мм). На плате также предусмотрены крепёжные отверстия и под дисплей габаритами 96х60 мм, например, как на рисунке

Плата изготовлена с помощью ЛУТ технологии

Запаиваем все элементы на плату.

Не устанавливая LCD  дисплей, подключаем фоторезистор, и подаем питание на схему. Резистором R2,  при ярком освещении, выставляем напряжение на ножке 1 разъёма P2 равным ~ 2.5 Вольта. Далее производим программирование контроллера через разъём Р6.

Установка FUSE-битов в программе CodeVisionAVR:

  • Ставим тактирование от высокочастотного кварцевого резонатора, Start-up time: 16K CK + 4.1 ms [CKSEL3...0 = 1111 SUT1...0 =10];
  • отключаем внутренний делитель на 8 [CKDIV8=1] (в 328 меге он включен по умолчанию);
  • CKOUT = 1 — Output Clock on CKOUT запрещаем;

Можно запретить стирание EEPROM при программировании кристалла (полезно при обновлении микропрограммы контроллера- чтобы после обновления заново не выставлять настройки) EESAVE = 0.

После программирования- отключаем питание, подключаем дисплей, включаем питание.

Работа прибора.

Прибор имеет основное «окно»:

На котором отображается вся информация с датчиков: температура, барометрическое давление, влажность. На 3й строке экрана выводятся лунный календарь и  прогноз погоды. Информационные надписи меняются циклически. Прогноз погоды выводится только через час после включения прибора. Два последних символа в строке отображают состояние будильников: прочерк- будильник отключен , колокольчик – будильник включен. На 4я строке отображаются   время, дата и день недели.

Дополнительное «окно»:

 Окно на котором отображаются часы большими цифрами. На 4й строке циклически выводятся информация с датчиков и дата. Переключение между окнами происходит по нажатию кнопки S1 «Смена экрана»

«Окно» состояния будильников: вызывается по нажатию кнопки S2 «будильник». И отображается в течении 20 секунд. Если в этот момент нажать на кнопку S1 произойдет переход в меню настроек.

«Oкно» температуры:

Данное окно отображается по нажатию кнопки S4 «температура», и отображает максимальную и минимальную температуры зарегистрированные в течении суток на улице и в доме. Окно отображается в течении 30 секунд. Можно в любое время вернутся к главному окну по нажатию кнопки S1. 

Обратный таймер:

Вызывается нажатием кнопки S3 «таймер»

Таймер производит обратный отчет времени. Диапазон устанавливаемого времени от 1й до 99 минут. По окончанию счета  - таймер подает звуковой сигнал в течении 1 минуты, с отсчетом времени сколько минут назад произошло событие. Если в течении 10 минут не была нажата ни одна кнопка происходит возврат в главное окно. Звуковой сигнал можно прервать по нажатию любой из кнопок.
В данном режиме управление происходит с помощью кнопок:

  • S2- запуск/ пауза, и при удержании кнопки более 3х секунд происходит сброс к установленному времени
  • S3 – плюс 1 минута
  • S4 – минус 1 минута
  • S1 - возврат в главное окно

Меню:

Для того чтобы зайти в меню настроек необходимо одновременно нажать  клавиши будильник + смена экрана (S2+S1) или в  окне состояния будильников нажать на кнопку S1. 
Навигация по меню происходит с помощью кнопок

  • S3 – вверх/плюс
  • S4 – вниз / минус
  • S2 – выбор / сдвинуть курсор в право
  • S1 - возврат

 В меню есть интересный пункт: калибровка датчиков, где можно выставить чувствительность фото датчика от 0 до 255. Чем выше устанавливаемое значение, тем чувствительней к свету датчик. Там же калибруем температуру датчиков так чтобы датчик DS18B20 и BMP180  отображали одинаковую температуру находясь рядом друг с другом. За более точный датчик лучше принимать DS18B20

Тестовую программу для конфигурирования часов можно найти в архиве.

  

После подключения устройства к ПК, запускаем файл «Тест.exe» из архива.

  1.  Выбираем нужный порт. Все остальные параметры на вкладке оставляем по умолчанию. И жмем кнопку «применить». 
  2.  Переходим на вкладку «часы», и нажимаем кнопку обновить. Пру правильных настройках и монтаже, устройство вернет дату, время, давление, температуру и влажность. Контролировать состояние связи можно по журналу связи.

На вкладке настройки можно сконфигурировать устройство.

  

На следующей вкладке можно «залить» сообщение длинной 40 символов (2 строки по 20), и дату/ время когда данное событие будет отображено. Событие отображается только 10 минут в начале установленного часа, и сопровождается звуковым сигналом.

Результат:

Программа "тест.ехе"  и прошивка будет обновляться по мере нахождения ошибок и , возможного, внесения дополнительного функционала.

P.S. Устройство можно собрать и на  Arduino Pro Mini 328. 

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega328P
1 Поиск в магазине ОтронВ блокнот
U2 Часы реального времени (RTC)
DS1307
1 Поиск в магазине ОтронВ блокнот
DD1 ИС RS-422/RS-485 интерфейсов
ST485
1 Поиск в магазине ОтронВ блокнот
R3 Резистор
100 кОм
1 Поиск в магазине ОтронВ блокнот
R4, R5, R8, R23, R31 Резистор
10 кОм
5 Поиск в магазине ОтронВ блокнот
R2 R10 R16 Подстроечный резистор10K3 Поиск в магазине ОтронВ блокнот
R1, R14, R27 R28 R30 Резистор
4.7 кОм
3 Поиск в магазине ОтронВ блокнот
R22, R29 Резистор
1.5 кОм
2 Поиск в магазине ОтронВ блокнот
R7, R11, R12 R15 R19-R21 Резистор
1 кОм
3 Поиск в магазине ОтронВ блокнот
R9 Резистор2001 Поиск в магазине ОтронВ блокнот
R25 Резистор1101 Поиск в магазине ОтронВ блокнот
R17 Резистор1001 Поиск в магазине ОтронВ блокнот
R24, R26 Резистор272 Поиск в магазине ОтронВ блокнот
R13 Резистор01 Поиск в магазине ОтронВ блокнот
P2 РезисторФоторезистор GL55371 Поиск в магазине ОтронВ блокнот
C11 Конденсатор16x470uF1 Поиск в магазине ОтронВ блокнот
C6 Конденсатор16x10uF1 Поиск в магазине ОтронВ блокнот
C2, C5 Конденсатор4.7 мкФ2 Поиск в магазине ОтронВ блокнот
C3, C4, C12, C14 Конденсатор0.1 мкФ4 Поиск в магазине ОтронВ блокнот
C9, C10 Конденсатор22 пФ2 Поиск в магазине ОтронВ блокнот
D1, D2, D5 Светодиод3 Поиск в магазине ОтронВ блокнот
Q1, Q2 ТранзисторN-P-N2 любой маломощныйПоиск в магазине ОтронВ блокнот
L1, L2 Катушка индуктивностиФерритовый фильтр BLM21BD222SN1L2 Поиск в магазине ОтронВ блокнот
P5 LCD-дисплейWH2004L1 или аналог с кирилицейПоиск в магазине ОтронВ блокнот
D4 Выпрямительный диод
1N4007
1 Поиск в магазине ОтронВ блокнот
P4 Датчик температуры
DS18B20
1 Поиск в магазине ОтронВ блокнот
P1 Модуль BMP1801 Поиск в магазине ОтронВ блокнот
P3 Модуль DHT111 Поиск в магазине ОтронВ блокнот
ХТ1 Кварцевий резонатор16 мГц1 Поиск в магазине ОтронВ блокнот
XT2 Кварцевий резонатор32768 Гц1 емкость 12.5pFПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 16.05.2017 0 6
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (40) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
RuGOST #
А есть возможность подключения дисплея с Китая у которого нету поддержки кириллицы?
Ответить
+1

[Автор]
Penumbra #
На днях выложу прошивку без кириллицы
Ответить
0
ionsxem #
Уважаемый автор, подскажите что за файл "час6.pdf" прикреплен? Он открывается белым листом. О чем он? И еще вопрос, будет ли прошивка для LCD на латинице? Есть желание повторить вашу конструкцию, но слишком дорогие у нас в стране мониторы на кирилице. А Китай предлагает только на латинице.
Отредактирован 04.06.2017 09:15
Ответить
0

[Автор]
Penumbra #
час6.pdf - 3D модель платы, можно покрутить, повертеть, посмотреть что получится, открывать с помощью Adobe Reader( перед открытием сохранить на диск), браузер откроет чистый лист
Прошивка на латинице
Прикрепленный файл: METEO1.zip
Ответить
0
221273 #
Собрал данную схему. Почему-то не запустилась. Использовал китайский дисплей. Датчики не впаивал. Может поэтому и не работает.
Ответить
0
сергей #
Подскажите что за динамик вы применили?
Ответить
0

[Автор]
Penumbra #
Китайский с детской игрушки. 0.5Вт примерно
Ответить
0
Ivan #
Уважаемый автор, на ПП у Вас первый вывод индикатора это минус, второй-контрастность, третий-плюс питания, но во всех характеристиках индикаторов что я отыскал, второй плюс, а третий контрастность(Vo) или может есть и такие индикаторы?
Ответить
0

[Автор]
Penumbra #
да, ошибочка...
Ответить
0
221273 #
Можно добавить функцию, чтобы было несколько уровней яркости подсветки дисплея? Чтобы при включении освещения в помещении подсветка не полностью тухла, а до определенного уровня, заданного программно. Например 75, 50 и 25 процентов яркости.
Ответить
0

[Автор]
Penumbra #
надо подумать, там 99% занято во FLASH (32742 байт) если что-то удалить...
Ответить
0
Ivan #
А если отказаться от связи с ПК, можно добавить функцию, чтобы было несколько уровней яркости подсветки дисплея?
Ответить
0
ionsxem #
Собрал часики, очень хорошие, спасибо автору. Всем рекомендую их собрать, не пожалеете. При сборке обратите внимание на некоторые огрехи, их на форуме уже описали.
Присоединяюсь к просьбе от Ivan. С ПК связь совсем не нужна, а вот хотя-бы 2-х уровневая подсветка нужна. Ночью нужна большая, а днем слабая. Нет необходимости и в бегущей строке с пожеланиями. Я использую индикатор Китайский с черными буквами на синем фоне. Днем при отключенной подсветке совсем ничего не видно, надо чтобы небольшой фон присутствовал.
Отредактирован 20.10.2017 11:09
Ответить
0
Andrnet #
Дай ссыль на индикатор, а то у меня только в этом загвозка
Ответить
0

[Автор]
Penumbra #
В ближайшее время переделаю прошивку, жду ваши пожелания и предложения по прошивке
Ответить
0
Ivan #
По подсветке: ввести в меню пункт "яркость дисплея",подпункты: ручная регул-ка (здесь яркость выставляется от 100% до 0) второй подпункт авт. регул-ка(от датчика освещенности, здесь можно выставить яркость максимальную и минимальную в процентах ,для дня и ночи). Извините конечно, я так вижу решение вопроса.
Ответить
0
ionsxem #
Меня бы такой алгоритм устроил.
Ответить
0
сергей #
Можно ли вместо динамика использовать пьезоизлучатель?
Ответить
0

[Автор]
Penumbra #
Честно, не знаю. С пьезоизлучателем не работал
Ответить
+1

[Автор]
Penumbra #
Новая прошивка на форуме
Ответить
0
ionsxem #
Попробовал новую прошивку на латинице, очень понравилось. Спасибо автору. Ребята, делайте эти часики, не пожалеете.
Ответить
0
ionsxem #
Penumbra подскажите, по каким критериям у вас осуществлен прогноз погоды?
Ответить
0

[Автор]
Penumbra #
https://www.nxp.com/docs/en/application-note/AN3914.pdf

вот расчет
Ответить
0
ionsxem #
Вы делали по простому расчету, по изменению давления на 0,25 кПа? А какое основное значение давления вы ставили, от которого будет строиться прогноз? Ведь у каждой местности свое давление будет, исходя от высоты над уровнем моря.
И какие значения прибор должен писать? Пока я увидел 2 варианта: стабильная погода и стабильная хорошая погода.
Ответить
0
ionsxem #
Еще один момент. За температуру за окном отвечает датчик DS18B20, за температуру внутри помещения отвечает совмещенный датчик температуры и влажности DHT11. В меню прибора, в калибровке температур датчиков, указан датчик давления BMP180, который к этому не имеет никакаго отношения. Это ошибка?
По корректировке температур значения моего датчика DHT11 отличается от показаний DS18B20 на 3 град. Регулировать возможно только до 1,0. Можно увеличить это значение корректировки до 5,0 в обе стороны?
Ответить
0

[Автор]
Penumbra #
Извиняюсь за задержку, за температуру внутри помещения отвечает совмещенный датчик температуры и давления BMP180 так как он более точный чем DHT11. С DHT11 берется только влажность. В ближайшее время увеличу корректировки до 5,0 в обе стороны
Ответить
0
Иван #
Вопрос по прошивке из статьи.V 1.1.151.В меню настройки есть пункт Дельта-коррекция +/-20 сек-при установке любого значения -при пропадании питания происходит сброс на минус 10,это только у меня или кто-то видел это.А может Автор откликнется Спасибо. А прошивка хороша-для светло-зеленой подсветки.
Ответить
0

[Автор]
Penumbra #
Да, это глюк прошивки. Данный параметр не сохраняется в ПЗУ. Скачайте на форуме прошивку 1.2.13 там этот глюк исправлен. Но она немного отличается от 1.1.151 функционалом
Ответить
0
Иван #
Из-за функционала я и выбрал прошивку 1.1.151, для индикатора со светло-зеленой подсветкой, на мой взгляд нет необходимости регулировать подсветку в процентах,можно просто отключать ее (от....и до...), и именно в этой прошивке(1.1.151) есть эта функция. А глюк нельзя исправить?
Ответить
0

[Автор]
Penumbra #
вот 1.1.172 версия, по функционалу вроде не отличается от 151, но дельта уже сохраняется
Прикрепленный файл: МЕТЕО_1_1_172.zip
Ответить
0
Иван #
Спасибо. 1.1.172 версия оправдала мои надежды,дельта (в часах) сохраняется.
Вопрос по лунному календарю: (+/-2 дня) Эта "поправка" останется или будет доработка? И по поводу "прокрутки, " также происходит сброс при пропадании питания,или это так задумано?
Ответить
0
GrinAV1954 #
Добрый день! Вопрос к автору. Не всегда срабатывают будильники, думал из-за отсутствия датчиков давления и влажности, однако, вчера получил датчики из Китая, установил - результат тот же. Причём, звук при нажатии на кнопки всегда есть. Прошивка "METEO" от 10.05.2017. Попробую сегодня прошивку МЕТЕО_1_1_172
Ответить
0
Сергей #
Какая прошивка последняя? В 172 нет шин подсветки. И ещё проблема, не работает dht 11 нет влажности. Кстати звук с пьезоизлучателем зп-19 нормальный.
Ответить
0
GrinAV1954 #
Добрый день! Давно не читал, лето..... Да, звук нормальный, но не всегда срабатывает будильник. И хотелось бы, что бы работал датчик влажности.
Ответить
0
Дмитрий #
Сергей, решили ли проблему с DHT11? Если да , то как? У меня тоже самое
Ответить
0
Bionas #
Ребята а какие фьюзы в PonyProg?
Ответить
0
Pentium #
Собрал сие устройство, всё хорошо только влажность показывает либо 3% либо 3%% либо крайне редко нормальную влажность, на ардуине датчик работает чётко
Ответить
0
O5-14 #
Начал вести подготовку к сборке. По поводу датчиков - это они ? https://aliexpress.ru/item/1821004301.html
https://aliexpress.ru/item/632542662.html
Ответить
0
pin1000 #
Поделитесь, пожалуйста файлом платы в .lay из под SL6 Для смд деталей. Не хочется возвращаться к проводным деталям, после удовольствия от работы с смд.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
AVR-программатор USB ASP Катушка Тесла
вверх