Термостат-годинник з двома часовими зонами та розподіленням навантаження на електромережу

Шановні постійні читачі! Перепрошую за дуже довге мовчання та відсутність нових проєктів. Що тут казати… Немає натхнення – немає статей (хоча і деякі проєкти були). Війна і все таке… Але ж людина пристосовується до всього.

Цього разу обійдемося без передмови. Відразу до суті. Хоча ні. Висловлюся стосовно годинника. Скажіть, чи це тільки мене дратує годинник у мікрохвильовці та іншої побутової техніки? Трохи моргнуло світло – і все – наша пісня гарна, нова, починаємо її знову? Потрібно знову все налагоджувати. У минулому сторіччі у деяких відеомагнітофонах хоча б іоністор ставили. А зараз…. RTC (Real Time Clock) мікросхема коштує менше 0.5$, працює на стандартній I2C шині. Авжеж знайдуться ті, хто скажуть що нічого робити елементу живлення у мікрохвильовці (пічці і т.д.), що домогосподарка не в змозі замінити та таке інше. Але ж, шановні, підійдіть до цього з іншого боку – строк роботи такого елементу живлення (CR2032, наприклад) – 3…5 років, інколи навіть більше – це більше ніж будь-яка гарантія на електронний пристрій. Також це привід для позагарантійного сервісного обслуговування техніки, авжеж за бажанням та за гроші власника. Але ж не роблять… Тож ми хоч і не Samsung або LG, але у своїх виробах можемо це змінити. Використовуючи, наприклад ду-у-уже популярну DS1307.

Тож є ціль. Маємо, наприклад бойлер (із вбудованим термостатом або без нього, про це пізніше), також в цілях економії хочемо, щоб він грів воду не 24/7, а декілька годин зранку, та декілька годин ввечері. Це невеличка, але економія. Також маємо будинок у приватному секторі, де потужність проводки не дуже велика, тож маємо обирати або водонагрівач, або, наприклад електропіч. Авжеж це все можливо автоматизувати, але у магазині готового рішення не знайти. Термостат – будь ласка, але точно без годинника та часових зон. Якийсь годинник з відключенням чогось по зонах – можливо, але точно без термостата. І точно вже не буде пристрою автоматичного відключення навантаження коли включається інший пристрій. Тож це поле для діяльності саме домашнього майстра та мене як інженера. Схема:

Маємо в арсеналі:
1. Дешевий, але потужний мікроконтролер STM8S003 у QFP32 корпусі.
2. Світлодіодний чотирьохсимвольний індикатор. Будь-якого цвіту, але зі спільним анодом.
3. Та сама RTC із I2C інтерфейсом – DS1307.
4. Температурний датчик DS18B20. Як то кажуть – класика жанру.
5. Токовий датчик-трансформатор. Будь-який на струм 5А, цього достатньо. Наприклад цій.
6. Виконавчий вузол на BTA16 +MOC3063. Чому так – тому, що не хотілося морочити себе голову із перетинанням нуля та додаванням перешкод в електромережу. А також розвантажити МК. Це дає можливість використати як джерело живлення повноцінний БЖ із гальванічним розв`язанням, якщо це комусь буде потрібно.
7. Джерело живлення. Безтрансформаторне. Не дуже безпечно, але у моєму випадку – мене це влаштовувало.

Функціонально пристрій виявився дуже гнучким. Наприклад – ніхто вам не заважає не використовувати функцію відключення навантаження із струмовим датчиком. Для цього достатньо з`єднати PB0 із землею та не використовувати ОП взагалі. Або якщо ви не плануєте використовувати саме термостат (а мені він і не був потрібен, це я додав так, для розширення функціонала) а вам потрібні часові зони та струмове відключення – нема питань, функція термостата вимикається у налаштуваннях приладу. Як бонус окрім годинника маєте кімнатний термометр. Або чого це я все про бойлер, та про бойлер. Діапазон роботи термостата дає можливість використовувати, наприклад електрообігрівач. Або взагалі можна викинути всі зайві силові ланцюжки та використовувати пристрій як годинник-термометр. А чому ні? Досить просте та бюджетне рішення.

При вмиканні живлення першого разу – автоматично налаштовуються в EEPROM МК усі стандартні температури та інші значення. Також майте на увазі, що годинник починає працювати лише після того, як ви встановили час у налаштуваннях пристрою. Але це лише один раз на заміну елементу живлення, тобто раз у три роки. Приблизно. При нормальній роботі – пристрій циклічно відображає час—>температура—>час….


Термін відображення кожного елементу – десь приблизно 4с. Між часом та температурою навмисно зроблена коротка пауза, десь 0.5с із порожнім екраном – це, на мій погляд, суттєво покращує сприйняття інформації. Температура відображається в залежності від того – де знаходиться датчик. Якщо у налаштуваннях дозволений термостат – то у разі натискання на кнопку “SET” – на екрані з`являється xxC, де xx температура від 5 до 99С.

Авжеж кнопками + та – це значення можна відрегулювати. Через декілька секунд після останнього натискання – пристрій повернеться до звичного режиму відображення. Якщо у цей час натиснути “+” – ви побачите цифру 30 – ще раз – 60 – ще раз – 90 – і так по колу.

Це так званий режим override. 30 – 60 – 90 – це мінути, на які вмикається бойлер навіть коли пристрій поза зоною потрібного часу. Авжеж до уваги також беруться налаштування термостата та струмового датчика. Це може стати у пригоді коли треба, наприклад, підігріти воду прямо зараз не чекаючи умовного часу та не переналаштовуючи пристрій. До речі ще є двоколірний світлодіод. Він зелений коли пристрій знаходиться у часовій зоні із вимкненим термостатом або якщо увімкнено термостат, то зелений відображає реальну роботу нагрівача. Якщо нагрівач не працює та / або пристрій поза часовою зоною – світлодіод не світиться взагалі. Якщо є сигнал з токового датчика (увімкнений паралельний потужний пристрій із токовим датчиком на тому дроті) – світлодіод буде червоний.  Також ще є кнопка “-“. У разі активованого таймера override – натискання на неї – анулює цей таймер. На індикаторі ви побачите – “CAnC” – тобто “cancel” – “скасування по нашому.

Далі щодо налаштувань. Авжеж одразу після збірки та монтування потрібно буде налаштувати пристрій. Це потребує деяких пояснень. Отже, у налаштування можна дістатися утримуючи кнопку “set” десь приблизно три секунди. По перше налаштовуємо годинник. Тут все просто – блимають години – використовуємо +/-, натискаємо set – налаштовуємо хвилини. Далі налаштування часових зон. По перше з`явиться “1 on” – це старт першої зони.

Цей та наступні три надписи з`являються десь на 3-4 секунди, далі після кожного пристрій переходить до очікування введення. Доступні до редагування лише години, тобто часова зона може бути лише кратна однієї годині. Наприклад 18.00 – 22.00.


Як я сподіваюся зрозуміло із малюнків – це часові дані що вам потрібно буде ввести для формування зон. Авжеж є нюанси. Наприклад якщо до “1 on” та “1 off” або “2 on” та “2 off” ввести однакові цифри – то часова зона буди вимкнена. Тобто якщо вам потрібна лише одна або жодної зони – лише введіть однакові цифри до непотрібної зони. Будь-які. Всі налаштування що стосуються часу в даному пристрої використовують 24-часову систему.

Наступне налаштування – термостат. А точніше його увімкнення / вимкнення.

Обираємо потрібне on або off кнопками +/-. Як я вже писав раніше – від цього буде залежати поведінка пристрою стосовно температури. Якщо термостат вимкнений – то датчик DS18B20 буде працювати лише як термометр не маючи ні на що впливу. А електрика буде вмикатися лише згідно з часовими зонами та інколи вимикатися коли є інший великий споживач. Також буде заблоковано доступ до налаштування температури термостата, тобто кнопка “set” не працюватиме. Якщо ж термостат увімкнений – на управління електрикою ще впливатиме й термодатчик. І нарешті останнє налаштування – гістерезис.
Вже не буду пояснювати що то таке – це вже було. Якщо не впевнені – поставте “5”. Регулюється він від 3 до 10 градусів Цельсію.

Та наприкінці стосовно налаштування насамперед “заліза”. Тут все дуже просто. Вам потрібно впевнитися, що операційний підсилювач OP1 має достатній коефіцієнт підсилювання. Тобто при підключенні мінімально потрібного вам  навантаження до тієї магістралі до якої підключений струмовий датчик – напруга на виході ОП має дорівнювати 2.5в або більше. Підсилювання можна регулювати резистором R19. Чим більше його опір – тим більше коефіцієнт підсилювання.

Фотодокази того, що цей девайс був не віртуальним.


Щодо конструкції. В мене все зібрано у пластиковому саморобному корпусі, та висить на стіні поряд із силовим кабелем, що прямує із силового щита, що у гаражі до кухні. Пристрій працює вже більш ніж три місяці та зарекомендував себе дуже добре. Симистор встановлений на невеличкий радіатор, обрізок від блоку живлення ATX, комутує 1.5квт потужності, гріється досить істотно, але жодних проблем не було. На тактових кнопках застосовано пластикові ковпачки, корпус також весь із пластику – тобто ніяких проблем із безтрансформаторним джерелом живлення не передбачається.
Також про всяк випадок хочу нагадати, що для правильного підключення струмового датчика через його “віконце” повинен бути проведений лише ОДИН провід з двох, які прямують до навантаження, включення якого ви плануєте відстежувати.

Файли до проєкту:

1. Прошивка
2. Схема, плата

14 коментарів до “Термостат-годинник з двома часовими зонами та розподіленням навантаження на електромережу

  1. Доброго дня! Радий новій статті. Повторював Ваші пристрої на атмелівських контроллерах. Прийдеться тепер мати справу з STM 🙂

  2. Здравствуйте, возможно купить прошитий Вами контроллер под етот проект?

  3. Подскажите каким пользуетесь фоторезистом? Прикатываете или ламинатором? В нете статей куча, а марки фоторезиста нет. Заказал себе DuPont, хочу попробовать. Утюжным против QFP32 не попрёшь. Статьи у Вас отменные, просто удовольствие, жаль что без PICов, STM далёкое будущее.

    • Здравствуйте, Константин! Марку не подскажу, покупал сто лет назад рулончик один в Днепре, второй в Харькове. Один фиолетовый, второй зеленовато-синий. Из нюансов, а точнее хитростей: прикатываю утюгом через платочек, жму не сильно, больше 70 градусов стараюсь не нагревать – плывет. По моим наблюдениям весь пленочный фоторезист, что у нас продается – имеет примерно одну и ту же чувствительность. Я пришел к времени засветки 110с двумя 9-ваттными энергосберегайками Delux c расстояния 10 см. Проявляю кальцинированной содой из магазина с моющими средствами. Пару чайных ложек на пол-литра примерно. Пробуйте, все не так сложно как кажется. Самое сложное – качественный фотошаблон.

      • Доброго дня Генадій , хотілось би дещо детальніше прочитати як Ви виготовляєте друковані плати , сподобалась якість Ваших проектів . Не плануєте продавати в магазині вже готові набори?

  4. Добрий вечір. Зібрав схему Вашого проекту ,та не можу до толку розібратись з роботою схеми.Працює на 90% ,тобто усі налаштування працюють ,та немає управління симістором,як термостатом так і по часовим зонам . При вмиканні режиму override все працює (світлодіод-вкл зелений, на вхід оптосимістра єсть 1) не перевіряв правда часу вкл стану. На зміну температури датчика реагує тільки як термометр. Не знаю чи не правильно прошиваю (з STM раніш не працював) чи демо прошивка.При прошивці з верифікацією флешер матюкається по якомусь адресу, а без перевірки все норма ,невже горбата STM? Прошу допомоги ,як доведу до толку виложу плату під корпус на DIN рейку.Дякую.

    • Доброго вечора, Анатолію. Вибачте за довгу відповідь – я не часто тут з’являюся. Там є невеличкий нюанс з перемиканням часових зон. Тобто якщо Ви поставили старт зони на 14.00 а на годиннику вже 14.01 – вже нічого нікуди не перемкнеться, лише наступних 14.00. Поставте наприклад 14.00 у 13.55 та перевірте чи запрацює, впевнений що так. Я не думаю що причина у МК. Якщо все запрацює – потім вже перевіряйте термостат.

      • Добрий вечір. Дякую за відповідь та чудовий досить фунціональний конструктор для ,,розумної хати,,Розібрався з логікою роботи. Ви мали рацію
        заблукав в часових зонах.Запустив один пробний на теплу підлогу без токового датчика .Зараз роблю з оптронним ключом по PB0 . Дякую.

  5. Подскажите пожалуйста можно как-то дизассемблировать вашу прошивку s19, хотел бы посмотреть исходный код. Нужен исходный код для дипломного проекта, чтобы понять что происходит.

Залишити коментар до Никита Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *