Удлинитель с термостатом на Ардуино

Что-то в последнее время на DIY потянуло. Знаю не профильно, но в конце будет ссылка на репо с простеньким С++ кодом.

Была старая идея сделать для автоматического обогрева в зимнее время, балкона где я обитаю, нечто чтобы включало тепловую пушку, если температура опускается ниже какой-то отметки. Да балкон утеплённый, но там всё равно холодно если на улице минус, тёплый пол спасает только ноги, остальное мёрзнет. Поэтому в морозы приходилось включать и выключать пушку самому вручную, да там есть встроенный термостат, но он очень примитивный и там невозможно выставить температуру, но самое неудобное что он выключает только тен, а вентилятор продолжает крутить в холостую.

Среди запчастей заказанных недавно из Китая было всё нужное, за исключением индикации.

Ардуинка
Датчик температуры KY-013

У меня был цифровой датчик температуры-влажности KY-015, но я так и не смог заставить его работать (позор джунглям, хотя может девайс неисправный), он выдавал значение только один раз и дальше просто не отвечал. В итоге выбор пал на аналоговый вариант KY-013 зато просто и надёжно как калашников.

Такая прикольная крутилка

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

Также нашлось реле для замыкания цепи 220 в. ток 10А, должно хватить на пушку.

Маленький блок питания на 5 в. чтобы запитать ардуину, эта штука в несколько раз меньше реле.

Так как отображать циферки хотелось ярко и красиво, на местном радиорынке были найдены примерно вот такие семисегментные индикаторы за 70 руб. штука, разных цветов, зелёный будет показывать текущую температуру, красный желаемую. В результате прототипирования была разработана схема и написан код, самое трудоёмкое оказалось это подключить индикаторы. Поначалу схалявил и повесил по одному токоограничивающему резистору на общие выводы (4 резистора), но это привело к тому что из-за разных параметров светодиодов некоторые сегменты светились ярче других, а некоторые так тускло, что сложно было что-то увидеть, пришлось переделывать (на 14 штук). Так как количество выводов у индикаторов которыми нужно управлять в сумме получилось (7 + 2) * 2 = 18, то свободных выходов ардуино нам явно не хватало, поэтому цифры выводятся хитрым образом отдельно подключены общие выводы каждой цифры, а сегменты все вместе итого 4 + 7 = 11 контактов, и сигнал подаётся на каждую цифру по очереди на короткий промежуток времени, но человеческий глаз не замечает этого мерцания.

Итоговая схема

Процесс прототипирования и сборки не был заснят к сожалению. В качестве корпуса использован удлинитель, третья розетка была выпилена, колодка внутри укорочена, при этом всё надёжно собирается обратно с родными 4-мя винтами.

Реле оказалось самой огромной деталью, чудом влезло внутрь
Конечно куда же без термоклея в DIY
Слева выведен разъём для перепрошивки справа чёрная точка — головка датчика
Жарковато 27 градусов

Датчик очень чувствительный к тепловому излучению, буквально если руку рядом поднести он уже чувствует это, поэтому лёжа на тёплом полу показывает много, думаю прикрепить удлинитель на стену.

Знаю выглядит колхозно, но для меня это уже хорошее достижение, довести идею до изделия, не потеряв инициативу на прототипе, с детства с этим были проблемы.

Зима правда в этом году не удалась, так что полноценное тестирование возможно будет через год, в прошивке ещё наверняка есть что улучшить. Исходники здесь https://github.com/holyketzer/arduino/tree/master/thermostat

Метки: