ARDUINO Термометр для бани

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Всем привет.
Заколебали меня спиртовые термометры для бани. Решил сделать электронный. Получилось то, что получилось.

Основной функционал:

Это просто приборчик, который показывает:
1. Текущее время;
2. Температуру в парилке;
3. Температуру и влажность в моечном отделении.

Алгоритм работы прост:
При включении опрашиваются датчики и измеренные значения выводятся на графический дисплей.
Верхние цифры соответственно часы, стрелочный индикатор показывает температуру в парилке, а нижние две строчки температуру и влажность в моечном отделении соответственно.​

В качестве часов используется DS3231, датчик температуры в парилке DS18B20 (чёрный хвост на фотке) устанавливается через отверстие в стене парилки, датчик влажности и температуры DHT-11.​

TFT дисплей 1.8“ 120х160 RGB с I2C шиной и некоторыми дополнительными сигналами.

IMG_1526.JPGIMG_1527.JPG

Схема очень простая.
Схема.png
Бипер, который там стоит, не задействован. Енкодер нужен только один раз, что бы выставить время, но при доработке программы может использоваться для вызова из спячки, установки будильника и т. д. При отключении питания, часы продолжают идти. Об этом заботится батарейка рядом с микросхемой. В качестве «пламенного мотора» используется Arduino Nano.​

Плата разведена с минимальным количеством переходных отверстий. В них придётся запаять перемычки. Сама ардуина стоит так, что перекрывает площадки для пайки. Но, если, вставить её не до конца, можно запаять. Чертежи платы даны в формате PCAD и в pdf файлах. Верхний слой уже отзеркален. Все необходимые файлы будут даны в конце статьи.​

Конструктив:

IMG_1528.JPGIMG_1529.JPG
На фотографии видна надстройка над ардуинкой. Это микросхема часов. Это временное решение из за ошибки трассировки. В готовом проекте ошибка исправлена и огород городить не придётся.​

Программная часть проста. Используются стандартные библиотеки, которые свалены в каталог Lib. Основной код в каталоге Src. Сама программа проста до безобразия. В начале инициализируется вся периферия. В цикле производится опрос енкодера. Если он молчит, читаются датчики и выводятся на монитор. Моргание двоеточия сделано по прерыванию от микросхемы часов. Тест на обрыв и отказ датчиков не производится.​

Батареек с этим дисплеем хватает на 20 — 25 часов непрерывной работы. Я обхожу это неудобство очень просто. Затапливаю баню. Когда чувствую, что температура в бане приближается к норме, подаю питание. После заседания в бане, отключаю питание. Хватает на пару месяцев. Дальнейшую модернизацию я вижу в следующем. Нужно уменьшить потребление отключением узлов контроллера, которые не учавствуют в работе. Перевод в «спящий» режим узлов которые учавствуют и будить их по прерыванию от микросхемы часов. Гасить экран, когда он не нужен. Включать его можно поворотом енкодера и при достижении определённой температуры в парилке. Так же можно ввести функцию будильника. Биппер для этого есть.​

Замечание по библиотекам. Все библиотеки из стандартных репозиториев кроме uRTCLib. Изначально в ней содержались ошибки в функциях для работы с будильниками и прерыванием. Автор на мои письма не среагировал, поэтому пришлось поправить самому. Идея стрелочного индикатора не моя. Она мною только немного доработана. Найду автора, скажу спасибо.​

Файлик со схемой платами и внешним видом : SCH.zip​
Файлик с прошивкой и исходниками : Termo.zip

Можно скачать по ссылке : https://yadi.sk/d/NHSFaVPcqtLhNA
 

Вложения

  • 134.9 KB Просмотры: 96
Изменено:

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
@Эдуард Анисимов, не думаю что в этом есть какая-то проблема. Надо просто приложить коротенькую инструкцию как залить хекс, не морочась с компиляцией и пр. А кто захочет разбирать код, тот будет разбирать код :)
В данном случае устройство сделано на ардуине под PlatformIO. Те кто с ней разобрался смогут и залить. У меня PlatformIO заработало на раз.
Остальные проекты сделаны на PIC контроллерах, а это выходит за рамки тематики сайта.
Сейчас занялся STM32,
 

ZaychenkoDA

✩✩✩✩✩✩✩
23 Ноя 2020
1
0
Если поставить другой датчик, который выдержит нужный температурный диапазон, то без проблем.
Вот вопрос с подходящим датчиком. На днях хочу проверить bme280 при 130*С , надеюсь не деградирует, а просто погрешность большая будет, что попробую учесть в коде...
 

next09

✩✩✩✩✩✩✩
26 Янв 2019
6
0
С новым годом ! Где скетч скачать ? Прошел по ссылке там нет
 

next09

✩✩✩✩✩✩✩
26 Янв 2019
6
0
Разбираюсь . Я только паять умею . С программами туго.
 

Andy117

✩✩✩✩✩✩✩
20 Мар 2023
7
1
@ZaychenkoDA,
Датчик ATH21 (температура, влажность) в принципе тоже, что и AHT20, но диапазон измерения температур -40 … +120
Стоит копейки. Правда больше опасения вызывает не сам датчик, а обвязка на плате, не поплохеет ли ей от большой температуры и влажности.
Летом на даче в бане буду пробовать.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,799
579
44
Правда больше опасения вызывает не сам датчик, а обвязка на плате, не поплохеет ли ей от большой температуры и влажности.
А зачем плату помещать в агрессивную среду? Конечно поплохеет.
 

Sana956

★✩✩✩✩✩✩
5 Мар 2022
39
15
Библиотеку для экрана сам писал? Или есть готовая ? Красиво получилось.