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

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

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

Теги:

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

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

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

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

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

Радиореле 220В
Радиореле 220В
Квадрокоптер Syma X11 Набор 4WD Kit Bluetooth
вверх