CatOmater V 1.9 - автомат Cat? Может быть. Потолочная/настенная лазерная игрушка для кошек (IoT)
30 января 2024 г., версия 1.9:
Новые примеры скриптов с переменными, диапазонами и случайными значениями.
16. Окт. 2023, версия 1.8:
Меньше деталей и болтов, комбинированные детали на новом основании гнезда.
Добавлены отверстия большего размера для сервокабелей (меньше застревания, больший диапазон движения)
Заменены все остальные отверстия для кабелей на основании розетк��.
Ремикс: https://www.thingiverse.com/thing:1799905
Я спроектировал дополнительные детали, провел небольшое исследование, и вот мы здесь. Лазерная игрушка для кошек, которую легко распечатать, легко программировать, она прочная и имеет дистанционное управление.
Как только моя кошка слышит звук сервоприводов, она бежит в гостиную в поисках красной точки. Для меня это звучит ка�� «кошачья автоматизация» ;)
Мой CatOmater крепится на потолке и активируется с помощью лежащей повсюду кнопки зигби.
Следующий шаг: научить кота нажимать кнопку ;)
Вам понадобятся винты M2 и несколько дополнительных маленьких винтов для оригинальных деталей, поскольку я не менял оригинальные отверстия и вырезы.
Что вам нужно:
2x сервопривода SG90
1x ESP8266 (например, Wemos D1 mini, так как он имеет порт USB со встроенным UART, который также действует как источник питания 5 В)
Домашний помощник + аддон ESPHome
LASERFUCHS 650 нм, 1 мВт, 3-12 В постоянного тока — 70103984 (сертифицированный лазер класса 2)
Вы можете поддержать меня, используя эту партнерскую ссылку: https://amzn.to/3ztJcfg.
Печать:
Файл 3MF предназначен для объединения готовых к пе��ати выровненных частей. Активируйте опоры по мере необходимости.
ESPHome и домашний помощник:
В качестве шаблона я использовал эту инструкцию: https://siytek.com/esphome-servo-example/
Я нашел гораздо лучший способ использовать службу ESPHome напрямую и использовать переменные в скриптах. (см. пример сценария ниже)
Пример конфигур��ции ESPHome:
длина_перехода:
Это значение определяет время, необходимое двигателю для выполнения полного движения от 0% до 100%. Более высокое значение снижает скорость движения.
auto_detach_time:
Это значение определяет время, по истечении которого двигатели «освобождаются», чтобы избежать щелчков, когда система включена, но не работает.
эсфоме:
название: кот-лазер
дружелюбное_имя: Кошачий лазер
esp8266:
доска: d1_mini
# Включить ведение журнала
регистратор:
веб_сервер:
# https://esphome.io/comComponents/web_server.html
порт: 80
местный: правда
ota: true # Включить OTA
# Включить API Home Assistant
API:
шифрование:
ключ: "<ВАШ КЛЮЧ>"
услуги:
— сервис: servo_y
переменные:
уровень: плавающий
тогда:
— серво. напишите:
идентификатор: servo_y
уровень: !lambda 'уровень возврата / 100.0;'
— сервис: servo_x
переменные:
уровень: плавающий
тогда:
— серво. напишите:
идентификатор: servo_x
уровень: !lambda 'уровень возврата / 100.0;'
ота:
Wi-Fi:
# https://esphome.io/comComponents/wifi.html
ssid: !secret wifi_ssid
пароль: !secret wifi_password
# Дополнительный ручной IP
ручной_ip:
статический_ip: 192.168.1.40
шлюз: 192.168.1.0
подсеть: 255.255.255.0
ап:
ssid: «Резервная точка доступа Cat Laser»
пароль: "<ВАШ ПАРОЛЬ>"
captive_portal:
вывод:
— платформа: esp8266_pwm
идентификатор: pwm_1
контакт: D5
частота: 50 Гц
— платформа: esp8266_pwm
идентификатор: pwm_2
контакт: D6
частота: 50 Гц
сервопривод:
— идентификатор: servo_y
выход: ШИМ_1
transition_length: «10 с»
auto_detach_time: 1 с
— идентификатор: servo_x
выход: ШИМ_2
transition_length: «10 с»
auto_detach_time: 1 с
# Пример записи конфигурации
переключатель:
— платформа: gpio
контакт: D7
Название: «Лазерная указка»
режим вос��тановления: ВСЕГДА_ВЫКЛ
Примеры скриптов в Homeassistant:
Конечно, вам нужно настроить значения, но это должно дать вам представление о том, как можно автоматизировать шаблоны (теперь с переменными).
Узнайте, как напрямую использовать переменные, диапазоны, случайные значения и сервисы ESPHome.
Перейдите в парковочное положение и выключите лазер.
псевдоним: Cat Laser — Положение парковки
последовательность:
— сервис: switch.turn_off
данные: {}
цель:
entity_id: switch.cat_laser_laser_pointer
— переменные:
парк_х: -25
парк_у: 75
— сервис: eshome.cat_laser_servo_x
данные:
уровень: "{{ park_x }}"
— сервис: esphome.cat_laser_servo_y
данные:
л



