Мой умный дом 2020: камера, голос, экранчики, кофеварка, сигарета с WiFi, умная банка

10.01.2021, 09:30 - 15 мин читать

Дом, поделенный на зоны

Оглавление:

    Что было год назад - Мой умный дом 2019: Sonoff, ESP8266, MQTT, Node-red, Алиса

    Способы управления

    • Автоматика - идеальный вариант, когда делается само
    • Голос - доступно в любом месте квартиры, без рук
    • Выключатели - приклеиваются на скотч или просто кладутся в подходящих местах
    • Радиопульты - пульт 4х3 см удобно положить в карман домашней одежды
    • Приложение - доступно на ПК и на телефоне
    • Telegram - можно писать Алисе через Telegram, она передаст умному дому
    • HTTP, MQTT - низкоуровневые протоколы управления

    Примеры автоматики

    Что произошлоЧто сделал дом
    Я включил тёплый пол за компом и ушёл на кухнюТёплый пол выключается
    Я сказал: “Начинай медитацию”Свет выключается, включается таймер на 20 минут. Можно спрашивать: “Сколько осталось?”
    Я сказал: “Засеки время”Включится отсчёт времени. Вывод на экранчик в каждой комнате. Можно справшивать: “Сколько прошло?”
    Я включил дома вечером телефон на зарядкуТелефон уточнит, ложусь ли я спать, выключит свет, включит будильник и поставит таймер на 15 минут
    Камера видит больше одного человекаВключается режим гостей
    Я пошёл вечером на балконСвет в комнате выключается
    Я выключил будильникВключается свет, через 2 минуты начинается зарядка

    Компьютерное зрение

    Я поставил камеру и научил её распознавать местоположение людей на кадре.

    Камера видит почти всю квартиру: комнату, кухню и часть коридора. Выглядит это так: Камера видит комнату, кухню и часть коридора

    У камеры есть знание о 5 зонах в квартире: Камера видит комнату, кухню и часть коридора

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

    Камера видит меня за компом

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

    Ночное зрение

    Камера имеет инфракрасную подсветку, с ней она может видеть комнату в темноте.

    На фото видно, как камера распознаёт меня в коридоре, в полной темноте: Ночное видение комнаты

    До кухни ИК-подсветка не добивала, поставил на кухню инфракрасных диодов, для камеры это как освещение люстры, а глазу не видно.

    На этом фото по-прежнему в квартире выключен свет, но кухня хорошо видна: Ночное видение кухни

    Нейросеть vs Кошка

    Весной кошка начала ссать в коридоре, я сначала ведро ставил в том месте, пару месяцев помогало, потом перестало помогать.

    Написал распознавалку кошки, поставил вторую камеру с видом на коридор.

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

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

    Кошка detected

    Технически распознавание работает на дообученной модели SSD MobileNet v1 COCO. На датасете из 500 фоток начала работать хорошо. Несколько раз дообучал.

    Помидор

    popstas/mongoose-mqtt-ssd1306

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

    В видео показано 3 способа управления таймером: голос, команды по сети и панель умного дома:

    Помидор можно ставить на любое количество минут и использовать как таймер.

    Экранчики с цифрами

    После проекта с помидором у меня появился маленький экранчик перед глазами.

    Позже он научился показывать:

    • Время с таймеров (я что-то засёк или принтер печатает)
    • Непрочитанные в Планфиксе
    • Курс доллара
    • Котировки акций
    • Температуру в квартире

    Сделал второй такой же экранчик, поставил на кухне. Вывод на экран дублируется.

    Экран в комнате крупным планом (размер около 25х20 мм): Экран в комнате

    Экран на кухне, издалека: Экран на кухне

    Освещение

    Светодиодная лента

    Раньше лента висела как попало: Раньше лента висела как попало

    Напечатал крепления на 3D принтере: Теперь лента висит аккуратно

    Светильник “Затмение”

    Увидел на Youtube красивый светильник:

    Через 2 часа у меня появился похожий: Светильник Затмение

    Прошивка - Tasmota.

    Светильник работает в паре с лентой на противоположной стене.

    Другие фото и видео светильника

    Яркость люстры

    Осенью слетела прошивка на люстре (теперь и такое бывает). Купил на замену не просто реле, а диммер с регулировкой яркости.

    Оставил диоды основным светом (включается автоматом когда надо), а люстру можно включить только голосом. Но если менять яркость через Алису (“Яркость на 100%"), меняется сразу весь свет.

    Видео процесса тестирования диммера Sonoff D1

    Умный дом говорит через Алису

    AlexxIT/YandexStation

    Проект AlexxIT помог настроить озвучку событий (TTS) в умном доме через колонки, голосом Алисы.

    Озвучка через ближайшее устройство

    Если умный дом знает, что я в комнате или на кухне, он произнесёт текст только соответствующей колонкой.

    В телефоне озвучка происходит всегда (на Android настроил TTS через вебхуки MacroDroid).

    Озвучка входящих

    Сделал озвучку того, кто звонит на телефон.

    Сделал озвучку сообщений из мессенджеров. Если сообщение короче 100 символов, то Алиса зачитает, из какого приложения, кто и что написал.

    Иногда это удобно, иногда не очень, в панели управления умным домом есть переключатель подробности озвучки. Когда гости приходят, озвучка сообщений отключается.

    3D принтер

    Сценарий:

    1. Говорю “Алиса, включи принтер”
    2. Принтер включается, ставится на прогрев
    3. Когда нагреется, Алиса напоминает, что можно начинать печатать
    4. После этого нажимаю “Печать” в программе
    5. При завершении печати Алиса напомнит ещё раз

    Теперь принтер подключен к сети, что это даёт:

    • Можно включить принтер и отправить модель на печать из другой комнаты
    • Умный дом говорит, когда принтер готов печатать. Принтеру надо около 5 минут на прогрев, за которые про него легко забыть
    • Информация о времени печати (можно спросить: “Сколько осталось печатать”, за минуту до конца печати напоминание)

    Принтером управляет Octoprint, он добавил новых фич:

    • Связь с умным домом по MQTT
    • Автонагрев при вклчении принтера
    • Автоотключение
    • Более точное время печати
    • Картинка с вебкамеры с процессом печати
    • Просмотр 3D модели будущей 3D модели
    • Более удобное выравнивание столика

    Я купил USB микроскоп, он идеально подошёл как камера для принтера: ручной фокус, штатив, подсветка вокруг камеры. Я напечатал крепление и прицепил камеру прямо на столик, теперь можно идеально выставить фокус и смотреть на неподвижную модель:

    Микроскоп крепится на столик принтера

    Альбом 3D принтера и напечатанных моделей

    Связка устройств с Алисой (по MQTT)

    popstas/yandex-dialogs-smarthome-mqtt

    Новые фичи:

    После этого стал добавлять устройства:

    Управление компьютером

    Комп подключил к MQTT через IOT Link, настроил несколько команд:

    • Вкл/выкл (спящий режим и WakeOnLAN)
    • Управление громкостью
    • Переключение звука (колонки/наушники)
    • Включение музыки (сценарий запускает Яндекс.Музыку и через 5 секунд нажимает пробел)

    Управление компьютером 2.0

    popstas/windows-mqtt

    Этот проект вырос из mqtt2tts, для управления компом (громкость, клавиатура, озвучка сообщений).

    IOT Link написан на C#, он глючный, я не знаю язык и не могу дописывать. Проще было написать на NodeJS свою версию и добавить регуляцию громкости.

    Телевизор

    hobbyquaker/lgtv2mqtt

    Телевизор LG на WebOS подключил к MQTT, к Алисе (вкл/выкл, громкость, пауза).

    Mi Box TV

    Купил приставку с одной целью: смотреть ютуб за обедом на скорости 1.5. Нашёл больше плюсов:

    1. Видео по запросу включить очень просто - видео

    2. Смотришь видос на 2 часа, решил другим заняться, нажал одну кнопку “выкл”, ушёл. Возвращаешься, нажимаешь “вкл”, плей и видос продолжается

    3. Он запоминает скорость ютуба, я по умолчанию на 1.5 смотрю и задолбался на телефоне каждый раз переключать. Теперь, через мибокс, узнал про альтернативный ютуб клиент, который умеет запоминать - SmartTubeNext

    4. Скорость. По сравнению со встроенным SmartTV можно в 3 раза быстрее включить что-то на Кинопоиске и в 5 раз быстрее на Youtube.

    Умная кофеварка

    popstas/mongoose-redmond-rcm-1512-mqtt

    Купил новую кофеварку Redmond RCM-1512, заметил, что у неё управление электронное, значит можно управлять.

    Сделал модуль, который умеет принимать команды от умного дома и нажимать на кнопки “вкл” и “кофе”.

    Теперь кофе можно наливать через Алису:

    Но наливать кофе голосом не очень удобно. Основной сценарий, ради которого всё затевалось:

    1. Я ставлю рожок с кофе и кружку, нажимаю одну кнопку
    2. Кофеварка включается и кипятит воду
    3. Автомат нажимает кнопку “кофе”, наливается полкружки
    4. Автомат ещё раз нажимает кнопку “кофе”, наливается остальное
    5. Через 5 минут кофеварка выключается

    Если бы мне сказали, сколько времени у меня уйдёт на этот проект, я бы не стал делать :)

    Фото и видео процесса

    Умная электронная сигарета

    Захотел посчитать, сколько затяжек в день я делаю. Для этого использовал такую платку, размер 18х20 мм: ESP-M3

    Удивительное время: можно за 200 рублей купить микрокомпьютер с WiFi и засунуть в сигарету.

    Умная банка

    Захотел сделать автоматическую наливалку питьевой воды. Зачем это может быть нужно:

    • Поставить наливать и уйти
    • Пополнять кофеварку без снимания бака
    • Наливать воду, когда мойка занята посудой (некуда поставить чайник)

    Банка включается голосом (“Алиса, налей чайник” - сработает), либо кнопкой (каждое нажатие +500 мл).

    Технически банка состоит из USB насоса, реле Sonoff TH16 (подойдёт любое реле), блока питания и трёхлитровки. Поставил прошивку Tasmota, логику дописал в Node-RED.

    Насадка на конце шланга нужна, чтобы крепить шланг на край ёмкости, гайка - чтобы напор не выбил шланг.

    Альбом умной банки

    Умная банка

    Вывод данных умного дома на график

    • Перемещения по квартире
    • Где когда горел свет
    • Когда был сон, зарядка, обед, медитация, работа, игра на гитаре
    • Изменения температуры
    • Изменения освещённости
    • Потребление электричества (для пары устройств)
    • Потребление никотина
    • График появления и решения личных задач

    График сна за неделю: График сна за неделю

    График задач, видно, что полоска постоянно растёт (новые задачи добавляются), а закрашенная часть под контролем (активные задачи): График задач

    Технически MQTT передаётся в InfluxDB через Telegraf и выводится на Grafana.

    Прочее

    Датчик освещения

    popstas/mongoose-button

    Поменял датчик освещения с простого фоторезистора на спец. датчик MAX44009 (GY-49), он показывает освещение конкретно в люксах.

    Зачем: чтобы умный дом лучше понимал, когда стемнело.

    Чувствительность на 1-2 порядка выше, чем у фоторезистора. Раньше показания были 0-100%, где 100% - свечу фонариком в резистор.

    Теперь при искусственном свете показывает 3-4, на рассвете 10, солнечным утром (10 утра 30 марта) - 100, в 11:40 уже 400, в 12:40 был пик, 640 люмен. Если светить фонариком, различает даже среднюю и высокую яркость мощной велофары, на максимуме показывает 180000!

    Фоторезистор выполнял свою функцию, но для него солнечный свет и свет люстры были примерно одинаковыми, а для люксометра искусственный свет - почти ноль, это больше совпадает с восприятием.

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

    Бесконтактный термометр

    popstas/mongoose-mlx90614

    Давно хотел термометр, чтобы можно было измерить температуру плиты, паяльника.

    Купил по акции датчик MLX90614 (GY-906), пришлось опускаться до чтения документации от датчика и написания низкоуровневого кода: обращение к регистрам памяти датчика по шине I2C. Эти 3 строчки я писал несколько часов.

    Датчик показывает +-5 градусов, если поднести почти вплотную, меня устроило.

    Мелкие интеграции с Алисой через приватный навык

    Написал свой приватный навык, практически копия Кузи, но на js и без умного дома, берёт команды из yml, типа такого:

    - match: [засеки время, засечь время]
      type: mqtt
      topic: actions/timer/start
      answer: [ок, засекла, ладно]
    
    - match: сколько прошло
      type: node-red
      path: timer/get
    

    Приватному навыку можно дать любой голос и фразы активации. Я назвал просто “дом, сервер, центр”, теперь буду сам себе фразы хостить, без Домовёнка Кузи.

    Что умеет:

    • Сделай кофе
    • Добавь событие в Планфикс
    • Сколько градусов на кухне
    • Добавь задачу на сегодня

    Интеграция Strava и MQTT: вывод тренировок на график

    strava-mqtt

    Программа не имеет интерфейса, просто раз в час проверяет новые тренировки на strava и отправляет эти данные в MQTT.

    Home Assistant

    Поставил Home Assistant, наконец нашёл причину: под него есть плагин, который позволяет рулить колонками. Это позволило:

    • Настроить автоматическое изменение громкости колонки в течение дня, до этого часто менял голосом по несколько раз в день
    • Настроить TTS через колонки, то есть мой умный дом теперь может включить любую из колонок и произнести любую фразу

    Прибрался в MQTT

    MQTT Explorer помог найти ненужные данные.

    Устройства по комнатам

    Коридор

    Датчик движения и датчик открытия входной двери: в паре они определяют, когда я пришёл/ушёл из дома.

    Туалет и ванная

    Тут без изменений, стоят датчики за 200 рублей, которые включают свет на 1 минуту при любом движении. С системой умного дома не связаны.

    Кухня

    • Кофеварка
    • Экранчик
    • Датчик освещения
    • Датчик температуры на плите
    • Умная банка
    • Колонка с Алисой
    • 3D принтер
    • Телевизор
    • Mi Box
    • ИК-подсветка
    • Ручной пылесос (его альбом)

    Комната

    • 2 светильника: настенные диоды и верхний свет
    • Датчики температуры, влажности, CO2, освещения
    • Тёплый пол
    • Компьютер
    • Экранчик
    • Колонка с Алисой

    Цены

    • Камера - 1800 руб
    • Мозги для кофеварки - 400 руб
    • Мозги для электронной сигареты - 200 руб
    • 2 экранчика с мозгами - 600 руб
    • Xiaomi Mi Box TV - 4400 руб
    • Умная банка: насос 560 руб, остальное было
    • Бесконтактный термометр MLX90614 - 530 руб
    • Диммер Sonoff D1, для регуляции яркости люстры - 800 руб
    • Ручной пылесос - 1600 руб
    • ИК-подсветка кухни - 200 руб
    • Датчики освещения - 200 руб
    • Блоки питания - около 500 руб

    Итого около 12 000 рублей. Что-то куплено на потом и здесь не учтено.

    Фотоальбом умного дома 2020