Esp8266 проекты умного дома

Esp8266 проекты умного дома

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Читайте также:  Проект одноэтажного дома 6х6 с отличной планировкой

Алгоритм настройки:

  1. Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

    После чего мы увидим все настройки принтера.
  2. Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  3. Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  4. Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  5. Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.
  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

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

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

    Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
    1 Способ:
    Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

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

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

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

    02.12.2019, 02:00 — 9 мин читать

    В начале года начал делать так называемый умный дом, ниже описание того, что получилось и немного деталей.

    (Кадр из психоделического советского мультика на тему, “Будет ласковый дождь»).

    Простая часть

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

    Через пару месяцев ванная и туалет оказались с автономными датчиками (не подключены к сети, просто реагируют на движение и включают свет на несколько минут).

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

    • Светло или темно
    • Дома я или нет
    • Сплю я или нет
    • Есть ли дома гости

    Эти основные состояния становятся условиями в сценариях управления.

    Как сделать свет управляемым по WiFi?

    Между лампочкой и выключателем ставится умное реле. Ум его заключается в том, что оно умеет принимать сигналы на переключение по WiFi в центр управления. Монтируется за 10-20 минут.

    Датчики

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

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

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

    Датчик освещения даже не буду рассказывать что даёт.

    Выключатели

    Накупил радиовыключателей, настроил их, чтобы дублировали обычные.

    Есть пульт на 4 кнопки, с которого можно включать весь свет и тёплый пол.

    Плюс радиокнопок в том, что с ними можно переключать в обе стороны. Если выключить обычным выключателем, то включить можно тоже только с него, а если через радио, то включить можно любым способом (см. ниже). Ещё их легко монтировать: просто положить или приклеить к стене на скотч.

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

    1. Автоматика. Лучший вариант, когда она сработала и сделала то, что ты хотел.

    2. Радиовыключатель, он всегда где-то неподалёку.

    3. Голос, позволяет включить свет, когда понял, что его мало, завязывая ботинки или перемывая посуду.

    4. Приложение на телефоне. Это неудобно, нужно несколько секунд, чтобы его открыть.

    5. Обычные выключатели. Они никуда не делись, при аварийном режиме весь свет работает так, как будто ничего нет.

    Пылесос

    Пылесос идёт отдельной графой, он дороже, чем всё остальное вместе взятое ) Про него есть отдельный обзор.

    Его я никак не интегрировал, просто поставил на смартфон официальную приложуху и настроил ежедневную уборку. Работает, жалоб нет, все, что есть — в комментах к Youtube обзору.

    Голос

    Голос у дома то появлялся, то исчезал, в конце года сделал проектик mqtt2tts, который решил эту проблему.

    У меня в обеих комнатах стоят компы на Windows, которые почти всегда включены. Поэтому я написал программку, которая:

    • Принимает строку на озвучку через MQTT
    • Если её ещё не озвучивали, запрашивает mp3 у Google
    • Воспроизводит на колонки

    Работает неплохо, особенно для повторяющихся строк, компы произносят почти всегда синхронно.

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

    Что произошло Что сделал дом
    Я пришёл домой Датчик двери передал сигнал. Дом проверил, нет ли меня дома, если не было, значит я пришёл (меняет состояние “Дома”). Если при этом темно, включает свет.
    Кастрюля поставлена на газ Через минуту, когда воздух нагреется, включится вытяжка.
    Я был в коридоре, а стал в комнате Включится свет в комнате, если темно и если я не сплю.
    Я открыл входную дверь, хотя я дома Включится свет в коридоре на 5 минут, т.к. пришли гости.
    Я открыл входную дверь и ушёл Выключается режим “Дом”: свет, вытяжка, тёплый пол отключаются.
    Я ставлю телефон на зарядку, находясь дома, вечером Телефон отправит сигнал на переключение режима “Сон” (весь свет выключается, датчики движения перестают включать свет).
    Стемнело Если я дома, свет начинает включаться в комнате или кухне, когда я туда захожу. Если я долго нахожусь на кухне, свет в комнате выключится.
    Включен прибор, который обычно не нужен надолго Свет в коридоре, вытяжка и тёплый пол включаются на определённое время (5-15 минут), независимо от способа включения.

    Надёжность

    Работает это всё нестабильно:

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

    Подробности про внутреннее устройство и фото

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

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

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

    Датчик в туалете хорошо ловит электрическую зубную щётку и включается на неё )

    Это самая надёжная часть умного дома, т.к. самая тупая, поэтому она не отключается.

    Кухня

    На входе датчик движения Sonoff PIR2.

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

    На столе радиовыключатель от кухни.

    В районе плиты стоит колонка Irbis A1 с Алисой, через которую можно управлять светом.

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

    Датчик температуры-влажности собран на ESP8266 + BME280 + фоторезистора на делителе, воткнутого в аналоговый вход. Вмонтирован в вытяжку, питается по USB длинным удлинителем от USB зарядки. Кстати, открыл для себя Mongoose OS, прошивку для ESP чипов, позволяющую писать на JS, мне так больше нравится, чем на Lua или C.

    В районе компа есть управляемая розетка с измерением мощности на Sonoff POW, в неё включается мини-комп или 3д-принтер.

    Здесь же лежит мост Sonoff Bridge, который умеет принимать сигналы от радио кнопок и датчиков, транслируя его в MQTT.

    Коридор

    Sonoff Basic в светильнике, тройной выключатель от всего света на стене, датчик движения.

    На входной двери датчик открытия.

    Комната

    Внутри светильника Sonoff Basic. Датчик движения. Пульт от дома обычно где-то здесь.

    Под компом расстелен тёплый пол (в осеннее-весеннее время он переезжает на балкон) на Sonoff POW.

    В середине комнаты стоит колонка Станция Мини, слышит тихий разговор из любого угла.

    Пылесос живёт здесь:

    Прошивка

    Все устройства Sonoff я перепрошивал (датчики движения и открытия слишком тупы, чтобы в них была прошивка). Прошивка Tasmota решила мою задачу: отказаться от китайских официальных приложух, которые работают на облаке Amazon AWS и иногда лежат, вместо этого управлять всем по MQTT.

    Node-red

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

    Вся система работает по локалке (MQTT и Node-red), поэтому перебои с инетом ей не страшны.

    Node-red — один из центров управления умным домом, придуман в IBM, написан на NodeJS. Отличается тем, что позволяет через блок-схемы и плагины делать большинство нужных задач. Если не хватает готовых блоков, можно наполнять пустой блок JS кодом. Если заморочиться, можно оформить свой блок в виде плагина (я так не делал).

    Он принимает все MQTT сигналы, можно делать с ними что хочешь: связать данные с датчика температуры и вытяжки:

    Также он даёт возможность собирать простой GUI, который можно запускать на смартфоне или на десктопе, это PWA:

    Не буду много про него рассказывать, в общем мне нравится, пока не заблудился в этих блоках, хотя выглядит уже устрашающе (это примерно 25% от всех блоков):

    Интеграция с Алисой

    В конце мая, Яндекс запустил управление умным домом через Алису. Через пару дней все мои установленные переключатели научились переключаться голосом. Штука довольно бесполезная для меня, т.к. план был в том, чтобы всё работало без действий человека. Делал через проект yandex-dialogs-smarthome-mqtt, по ссылке подробности настройки (кодить вам не надо, только конфиг написать).

    В начале ноября купил вторую колонку с Алисой, Станцию Мини, поставил в комнате. Теперь я могу из любой части квартиры переключать свет.

    Технически тут заморочено: пишется навык для Алисы, который должен понимать специальное API на команды включения-выключения и передавать их по MQTT в шину, откуда Node-red их прочитает и сделает как надо.

    Скажу так: надо много желания, чтобы повторить это у себя, желающие находились, но вряд ли это вы )

    Для тех, кто хочет недорогих розеток от Sonoff с интеграцией с Алисой: подождите, Яндекс с Sonoff уже начали обсуждать официальную интеграцию (о чём официально заявили в канале Telegram “Около Яндекс Станции”).

    • Пылесос ILife A9s, не взаимодействует с другими, но сам по себе автоматизирует — 17000 рублей
    • Колонка Irbis A1, на кухню — 3000 рублей
    • Колонка Яндекс.Станция мини, в комнату — 4000 рублей
    • Sonoff POW (WiFi розетки с измерением мощности), тёплый пол, розетка для разных целей — 2 x 650 рублей = 1300 рублей
    • Sonoff Basic, свет в комнате и коридоре — 2 x 350 рублей = 700 рублей
    • Sonoff Slampher, свет на кухне — 780 рублей
    • Sonoff S26, ставится между вилкой и розеткой вытяжки — 700 рублей
    • Sonoff Bridge, комплект из моста, датчика движения, открытия двери — 1400 рублей
    • Выключатель 1-кнопочный, для вытяжки — 380 рублей
    • Выключатель 1-кнопочный, для кухни — 470 рублей
    • Выключатель 3-кнопочный, комната-корридор-кухня — 420 рублей
    • Радиопульт 4-кнопочный — 110 рублей
    • Датчики движения Sonoff PIR2 — 2 x 570 рублей = 1140 рублей
    • Тёплый пол 100×80см — 500 рублей
    • Датчики движения, не подключенные к системе (тупые, но автономные), для туалета и ванной — 2 x 130 рублей = 260 рублей
    • Датчик CO2, он ни на что не влияет, просто есть — 1000 рублей (не помню точно)
    • Соединительные клеммы типа Wago — 10 x 10 рублей = 100 рублей

    Итого 33300 рублей. Если вычесть пылесос и колонки, получаются уже скромные 9100 рублей.

    Кроме того, есть ещё косвенные траты, не входящие в итоговую версию:

    • Автономная лампочка с датчиком движения (с неё всё началось) — 250 рублей
    • 2 радиопульта потерялись при доставке — 180 рублей
    • Bluetooth-маячок (хотел на себя повесить, чтобы дом знал, где я, не доделал) — 650 рублей
    • Микрофон с умом, который прямо wav вещает по I2C (не знаю даже, что с ним сделать) — 230 рублей
    • Микрофон без ума (хотел заменить встроенный микрофон в Irbis, не дошли руки) — 120 рублей
    • Куча разных датчиков (жесты, температура, влажность, освещение, звук, расстояние)

    1500 рублей

  • Россыпь из ESP8266, версия WeMos D1 Mini — 5 x 200 рублей = 1000 рублей
  • Датчик пыли PMS7003 — 950 рублей
  • Итого 4900 рублей. Того, что можно было не покупать.

    Это всё я купил примерно за 2 года.

    Выводы

    Не скажу, что это всё изменило мою жизнь, конечно, по большому счёту это баловство, очередной домашний проект (домашнее некуда) с большой тратой времени и небольшой пользой. Но я ни о чём не жалею, прикольно же )

    Оцените статью