![]() |
![]() |
||||||||||||
Умный термостат для дома
Автор: Atmega8, ma-vova@yandex.ru
Пролог С появлением дома газового котла с электронным управлением, жить, как бы сказать, становится приятнее. Улучшив этот момент простым термостатом с двумя кнопочками и семисегментником, показалось что совсем все хорошо. Но было решено развить эту идею. Однозначно, лидером в области контроля температуры дома является проект NEST. Решение Наше устройство должно уметь: Железо Для большей наглядности решено использовать дисплей LCD TFT на контроллере ILI9320. Этот дисплей выпускается с разными диагоналями(2.2 -3.2 дюйма). Разрешение 240х320. Есть резистивный сенсорный тачскрин. В принципе можно применить практически любой дисплей с таким же разрешением. Потребуется поменять только процедуру инициализации. В прикреплении есть список поддерживаемых контроллеров, для которых есть примеры инициализации, спасибо @Noi. Текст изначально был только 8x8, и для мелких надписей его хватало, так же сделана возможность выводить этот шрифт с удвоенным масштабом. Шрифт генерился программой LCD Font Generator и хранился во flash. Но для больших цифр этого было явно мало. Был создан еще шрифт 128x128 в той же программе. Можно выбрать любой шрифт. Но 10 цифр и 3 символа занимали 200кБ памяти. Мне лень было придумывать формат для сжатия и я добавил внешнюю память eeprom 24c256. В ней хранятся большие цифры и пара пиктограмм.
Попытка уместить все устройство в тесном корпусе привела к двум платам, соединённые проводом МГТФ. Первая плата служит для распаивания достаточно мелкого шага дисплея, на второй разместились Atmega32(код занимает 47% flash, поэтому подойдет Atmega16), EEPROM и линейный стабилизатор на 3.3В. Для того что бы часы продолжали идти в то время пока нет электричества добавлена микросхема часов реального времени DS1307. Так как идея с этой микросхемой пришла после того как был изготовлен прототип, то я добавил ее на отдельной платке, купленной у китайцев за 2$. Первое включение Прототип готов Софт На дисплее есть 5 сенсорных кнопочек, их мы будем использовать для выбора режима. Сверху всегда отображается температура дома и на улице, уставка температуры в данный момент времени, дельта и время. При нажатии на кнопки выбираются соответствующие режимы: Температура дома (Можете заметить много служебной информации, которая выводится на дисплей. Она нужна была для отладки, но уже удалена из прошивки) Температура на улице График температуры за сутки(реализовано авто масштабирование графика) График задания температуры дома Через 10 секунд старый удалится и зеленый перерисуется желтым. Часы. Тут и говорить нечего Настройки, пока минималистично. В верхней части дисплея можно заметить рисунок огонька, нарисован он все в той же программе LFG. С генерацией шрифтов, рисунков и прочих символов нет ни каких проблем. Большие цифры были немного широковаты, когда они выводили время, поэтому они сжимались программно на 75%. Пиктограмки домика и улицы переводились в массив с помощью программы LCD Assistant. Ну вот и все, для кого то может эта статья всподвигнет для создания подобного, а может, поможет создать устройство на похожем дисплее. P.S. Всем котам тепла и уюта=)
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |