Давайте честно: когда я только начинал возиться с умным домом для своей рыбной фермы, то думал, что это будет жутко сложно и дорого. Оказалось, что за 1500 рублей можно собрать такую систему мониторинга температуры, которая работает как часы, и при этом не требует быть инженером-электронщиком. Главное — не спешить и внимательно следовать инструкции. Я покажу, как я это сделал, и вы сможете повторить. Без воды, только факты.
Что нам нужно и сколько это стоит
Сразу скажу: я не гонюсь за дешевизной в ущерб качеству. Лучше один раз купить нормальные детали, чем потом мучиться. Вот мой базовый набор, который обошелся мне примерно в 800-1500 рублей. Если будете делать несколько датчиков, выйдет еще дешевле, потому что многие компоненты покупаются один раз.
Первое — это мозг нашего устройства: плата Wemos D1 Mini на чипе ESP8266. Я брал за 150-200 рублей. Критерии выбора простые: чтобы была антенна, большой радиатор с надписью «wi-fi» и разъем, подходящий к вашему кабелю — type-c или microUSB. Не экономьте на проводе: тонкие и длинные кабели (больше двух метров) — зло, они будут создавать фантомные проблемы, которые вы будете искать часами. Берите нормальный, комплектный.
Второе — датчик температуры DS18B20. Я рекомендую брать герметичную версию в нержавеющем цилиндре за 150-250 рублей. Провода обычно идут от 1 до 3 метров, и их можно нарастить до 30 метров без потери точности, но я бы не советовал. Дешевле и надежнее поставить несколько датчиков: так вы получите дублирование и отказоустойчивость.
Дальше — мелочи: резистор 4.7 кОм (буквально 10 рублей), макетная плата и провода для прототипирования (200 рублей), корпус — распределительная коробка (100-300 рублей), силиконовый герметик (200 рублей), USB-кабель (100 рублей) и блок питания на 5V (400 рублей). Еще понадобится другой компьютер на Windows, который находится в той же сети, что и ваш сервер умного дома. С него я выполняю все манипуляции.
Собираем схему: проще, чем кажется
Сначала я думал, что это будет сложная схема с кучей проводов. На деле все оказалось до безобразия просто. Для одного датчика подключение такое: красный провод (VDD) к пину «3V3» на Wemos, черный (GND) к пину «G», а желтый (DATA) к пину «D6». И обязательно между DATA и 3V3 вешаем наш резистор 4.7 кОм — он подтягивает линию.
Если хотите использовать несколько датчиков на одной шине (до 8 штук), то просто подключаете их параллельно: все красные к 3V3, все черные к G, все желтые к D6. Резистор остается один. Я люблю этот вариант: он экономит место на макетной плате и упрощает монтаж.
Что касается сборки: сначала я собираю все на макетной плате для теста, потом если все работает — пропаиваю соединения, упаковываю в корпус и только после этого погружаю датчик в воду. Никогда не делайте наоборот: проверить проще, когда все на столе.
Прошивка через ESPHome: без танцев с бубном
Когда железо готово, самое время оживить его. Я использую ESPHome — это система, которая позволяет подключать датчики к Home Assistant без написания кода на C++. Но конфиги все-таки придется править.
Первый шаг — секреты с паролями от Wi-Fi. Я открываю ESPHome Builder, захожу в SECRETS и прописываю свою сеть 2.4 ГГц (так как дешевые платы 5G не поддерживают, да и незачем — меньше помех). Сохраняю и выхожу.
Второй шаг — создаю новое устройство. Даю ему осмысленное имя на латинице, например, `zal1-water-temp`, выбираю плату «ESP8266» и нажимаю SKIP — готовый конфиг мне не нужен, я вставлю свой. Система автоматически создает ключ шифрования — копирую его и добавляю в секреты как `api_encryption_key`.
Далее скачиваю драйвер для чипа CH340 (без него компьютер плату не увидит), вставляю готовый код из моего репозитория и нажимаю INSTALL. Первый раз прошивку делаю через компьютер: подключаю плату, жду несколько минут, пока проект соберется, качаю файл и заливаю через ESPHome Web. После этого плата перезагружается, и я вижу в логах, что она ONLINE. Это волнительный момент, скажу я вам.
Калибровка и гидроизоляция: нюансы, о которых молчат
Когда датчик заработал, я сразу же проверяю его показания. Как правило, дешевые датчики за 150 рублей даже не калибруют — погрешность может достигать 0.5 градуса. Есть два способа это исправить.
Первый — простой: замеряю температуру другим, эталонным термометром, вычисляю разницу и добавляю в код строку с калибровкой. Если разница постоянная, этого достаточно. Второй способ — сложнее: нужно сделать два замера при сильно разной температуре, например, при 10 и 60 градусах. Это более точная калибровка, но она нужна только если вы ждете большие перепады, а не привычные для бассейна ±5 градусов.
Теперь о больном: герметичность. Эти датчики хоть и называются герметичными, но внутри у них экономят на всем. У меня несколько штук сгнило, потому что внутрь попала вода. Теперь я всегда делаю так: снимаю термоусадку, удаляю заводской герметик (если он там вообще есть) и заливаю своим, не жалея. Это продлевает жизнь датчику на годы.
После всех манипуляций я собираю окончательный вариант: аккуратно паяю, укладываю в корпус. Для красоты можно дополнительно затянуть в термоусадку, но это уже опционально. Главное — чтобы снизу заходили все провода: тогда влага не будет стекать внутрь коробки.
Выводим на монитор: график и шкала в Home Assistant
Теперь самое интересное — визуализация. Я открываю Home Assistant, захожу в Панели и создаю новую. Добавляю два раздела: один с карточкой «Сенсор» — это будет график температуры за последние часы, второй — «Шкала» для наглядности. Шкалу настраиваю так: синий цвет — слишком холодно, зеленый — норма, желтый — предупреждение, красный — пора бить тревогу.
Настройка интуитивная: указываю минимум и максимум, потом три значения для цветов — зеленый, желтый, красный. Если температура выходит за эти диапазоны, шкала просто становится пустой или полностью залитой, но цифры все равно отображаются корректно.
После сохранения я получаю готовый дашборд, который можно открыть с телефона, планшета или любого компьютера в локальной сети. Теперь я в курсе температуры воды в реальном времени с точностью до 0.1°C. Это дает мне спокойствие: я знаю, что рыба в безопасности.
Вот так, шаг за шагом, я прошел путь от горстки деталей до полноценного мониторинга. В следующей статье я планирую добавить голосовое оповещение — подключу Telegram-бота. Теперь ферма будет сама сообщать мне о проблемах. Но это уже совсем другая история.
