Главная » Автоматика в быту
Призовой фонд
на ноябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Тестер компонентов LCR-T4
Паяльник
4. 200 руб.
От пользователей

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

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

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

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

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

Теги:

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

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

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

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

Комментарии (26) | Я собрал (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 в обе стороны?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
FM-модуль RDA5807M Квадрокоптер Syma X11
вверх