Проект для ESPHome и Home Assistant
Кошачий туалет Tonepie работает под управлением Tuya, который можно перешить на ESPHome. Мы отвязываем лоток от облачного сервиса Tuya и можем программировать свой лоток так, как считаем нужным
Внимание! Все материалы этого проекта (прошивки, схемы и т.п.) предоставляются "КАК ЕСТЬ". Всё, что вы делаете с вашим оборудованием, вы делаете на свой страх и риск. Автор не несет ответственности за результат и ничего не гарантирует. Перепрошивка кошачьего лотка требует вмешательства, что автоматически лишит вас гарантии.
Важно! Насыпайте наполнитель в выключенный лоток. После подачи питания, автоматический лоток делает автокалибровку и обнуляет вес наполнителя и только после этого лоток будет правильно определять вес питомца. Если же наполнитель насыпать в лоток когда он включен, то лоток будет думать, что внутри находится питомец. В таком случае обесточьте лоток по питанию и снова подайте питание. Подключите например к умной розетке, тогда удобно будет перезагружать лоток по питанию. Таким образом лоток будет запускать автокалибровку и обнулять вес наполнителя
Функции лотка:
- Автоуборка
- Уборка вручную
- Ионизатор
- Защита от детей
- Инфракрасный датчик
- Удаление наполнителя
- Калибровка весов для наполнителя и бака для отходов
- Автокалибровка при включении
- Сенсоры:
- вес питомца
- длительность посещения
- мусорный бак
- питомец в лотке
- уборка
Перепрошиваем на ESPHome
На плате установлен чип WBR3. Подробнее о WBR3 можете ознакомится здесь
Перед тем как выпаять чип WBR3, на всякий случай припаяйте два провода к контактам RXD и TXD и поснимайте логи, посмотрите, будут ли у вас работать сенсоры при добавлении компонента Tuya MCU. Если сенсоры работают то можете продолжать процедуру дальше.
Для справки. Обычно, чтобы снять логи подключив к контактам RXD и TXD, то подключение делается наоборот(скриншот ниже), но на мое удивление подключение было прямым, т.е не RXD>TXD и TXD>RXD, а RXD>RXD и TXD>TXD. Так что проверяйте оба варианта
Чтобы включить режим отладки и выводить в логи пакеты, необходимо добавить в строки следующее. Таким образом можно увидеть пакеты на каждую команду, когда нажимаете на кнопки в приложении Tuya или через панель управления самого лотка
#Включить компонент Tuya MCU
tuya:
uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
stop_bits: 1
data_bits: 8
parity: none
debug:
direction: BOTH
dummy_receiver: false
Вместо WBR3 будет использоваться ESP12-F. Говорят, что WBR3 можно перепрошить, но я не имею опыта и не хочу стирать прошивку в WBR3, так как сам чип может пригодится в будущем, например припаять обратно и поснимать логи. Делайте на свое усмотрение, можете залить прошивку сразу в WBR3 или заменить на ESP12-F.
В ESP12-F залить прошивку можно двумя способом
- Купить программатор для модуля ESP8266
- Подключить ESP12-F к USB-TTL
Для справки! Чтобы залить прошивку, нужно замыкать контакты GPIO0, GPIO15 и GND до подачи питания(до того как вставите USB-TTL в USB разъем компьютера), а не после, тогда ESP12-F перейдет в режим прошивки
Скомпилируйте прошивку в ESPHome используя конфигурацию на выбор. Конфигурации смотреть здесь
- Базовая конфигурация имеет только управление и сенсоры без логики управления
- Расширенная конфигурация имеет логику управления и статусы, а также может иметь расписание уборки. Смотрите комментарии в конфигурации.
Заливал прошивку на ESP12-F через NodeMCU Flasher. Скачать NodeMCU Flasher можно здесь.
После заливки прошивки припаиваем ESP12-F вместо WBR3 и замыкаем контакты резисторами номиналом 10кОм. Припаивать резистор к контактам EN и 3.3v, GPIO15 и GND. Почему я не припаял перемеычку, замкнув GPIO15 и GND? Замерив мультиметров я увидел сопротивление в 326-327 кОм, а так как чип ESP12-F был уже припаян, а свободного не имелось под рукой, то не было возможности проверить контакты GPIO15 и GND на чипе и на плате лотка. Поэтому я не стал рисковать и во избежание короткого замыкания я замкнул GPIO15 и GND резистором.
Home Assistant
Для работы карточки необходимо установить компоненты
Карточка
- Код карточки можно взять здесь
Код обратного таймера. Это нужно для карточки, чтобы видеть оставшееся время работы ионизатора
timer:
cat_toilet_ionizer_timer:
name: "Кошачий лоток. Ионизатор. Таймер"
duration: "00:30:00"
icon: mdi:creation
- sensor:
- name: 'Cat toilet: Ionizer. Remaining Time'
unique_id: cat toilet ionizer remaining time
state: >
{% set f = state_attr('timer.cat_toilet_ionizer_timer', 'finishes_at') %}
{{ '00:00:00' if f == None else (as_datetime(f) - now()).total_seconds() | timestamp_custom('%H:%M:%S', false) }}
icon: mdi:timer
3D модель
Я спроектировал защитный съемный бортик, так как его у меня в комплекте не было, а покупать за безумные деньги у производителя я не захотел. В итоге спроектиорвал и распечатал защитный съемный бортик. Защитный съемный бортик блокирует попадание наполнителя внутрь бака, т.е когда кошки закапывают наполнитель, то наполнитель без бортика попадает под бак. Можно купить у производителя съемный бортик
Скачать модель можно здесь
Защитный съемный бортик для автоматического лотка туалета Tonepie
Защитный съемный бортик распечатанный на 3D принтере