Проект универсального прибора 2 в 1 - термостат и термометр с звуковым оповещением.
Используется Ардуино, дисплей 1602 (I2C), три кнопки, 1 реле, пьезо динамик(пассивный) либо обычный и 2 датчика DS18B20
Можно как совместно термостат и термометр, можно по отдельности.
В моём случае термостат используется для приготовления йогурта (кефира, сметаны), а термометр для контроля процесса горячего копчения.
Основные настройки делаются через меню (подробнее ниже)
Термостат:
Тут все просто - В меню задаете температуру и значение гистерезиса, например 37гр нагрев вкл, 39гр нагрев выкл. Управляет реле которое включает нагревательный элемент (я использую пленку для теплого пола)
Термометр:
Ничем не управляет, а просто информирует. Логика такая: В меню устанавливается значения мин_темп и макс_темп. При достижении этих уставок играет мелодия. Еще в меню задается значение температуры при котором выше его мин_темп будет работать.
То есть пока не нагрел коптилку до 80гр мин_темп не сработает и не будет пиликать.
В меню можно включить или выключить термостат или термометр.
Так же в меню задается пауза между серией звукового сигнала в секундах.( только для термометра) Можно включить или отключить звук.
Меню на русском - работает на дисплее без русификации.
Вход в меню - длинное нажатие кнопки "меню" , листать по пунктам - коротким нажатием, изменять значение двумя другими кнопками.
Выход из меню так же при длинном нажатии, при этом значения сохраняются в EEPROM.
На главном экране отображается статус термостата, температра обоих если подключены датчики, или НЕТ
Теперь о программе. Куда что подключать надеюсь разберетесь.
Блок проигрывания мелодий (Спасибо Андрею - Drundel) имеет описание, но в моем проекте он чуток переделанный, длительность ноты указывать в миллисекундах, а длительность цикла плюс 1 - 2 МС. Список нот найдете. Важно указать количество нот. Если нужна пауза после проигрывания - то пишем 0, длительность(МС). Всё через запятую, пауза тоже считается нотой.
У блока есть вход - сколько раз проиграть мелодию.
В блоке Dallas1 указываем пин куда подключен датчик, а перед ним генератор где время паузы - слишком часто лучше не ставить, 3-5 секунд само то! И в программе есть проверка подключен ли датчик или обрыв - на дисплее отображается - НЕТ. Адреса датчиков определяются автоматически. То есть можно подключить любой и он будет работать (по трёх проводному подключению с подтяжкой к +5в резистором 4.7 Ком)
Немного сумбурно описал, может что то упустил, Спрашивайте!
Ну и сам проект