Проект для ESPHome и Home Assistant
Смотреть видео Автокормушка с миской на весах
Смотреть видео Автокормушка с вращающейся миской на весах
Подключаем ESP к кормушке
Используйте платы ESP8266 и ESP32 на свое усмотрение, я использовал ESP32 по той причине, что оно у меня было свободным
Выпаиваем чип WBR2 и подключаем ESP. WBR2 Module Datasheet
Расшифровка протокола для управления кормушкой
Включить меделенную подачу корма
55:AA:00:06:00:05:06:01:00:01:01:13
Выключить меделенную подачу корма
55:AA:00:06:00:05:06:01:00:01:00:12
Включить 24 часа
55:AA:00:06:00:05:66:01:00:01:01:73
Выключить 24 часа
55:AA:00:06:00:05:66:01:00:01:00:72
Подача порции корма
1 порция
55:AA:00:06:00:08:03:02:00:04:00:00:00:01:17
2 порции
55:AA:00:06:00:08:03:02:00:04:00:00:00:02:18
3 порции
55:AA:00:06:00:08:03:02:00:04:00:00:00:03:19
4 порции
55:AA:00:06:00:08:03:02:00:04:00:00:00:04:1A
5 порции
55:AA:00:06:00:08:03:02:00:04:00:00:00:05:1B
6 порции
55:AA:00:06:00:08:03:02:00:04:00:00:00:06:1C
Время воспроизведения голоса
0
55:AA:00:06:00:08:12:02:00:04:00:00:00:00:25
1
55:AA:00:06:00:08:12:02:00:04:00:00:00:01:26
2
55:AA:00:06:00:08:12:02:00:04:00:00:00:02:27
3
55:AA:00:06:00:08:12:02:00:04:00:00:00:03:28
4
55:AA:00:06:00:08:12:02:00:04:00:00:00:04:29
5
55:AA:00:06:00:08:12:02:00:04:00:00:00:05:2A
6
55:AA:00:06:00:08:12:02:00:04:00:00:00:06:2B
Сенсор наличия корма в баке
В контейнере корм имеется
55:AA:03:07:00:05:0E:05:00:01:00:22
В контейнере корм закончился
55:AA:03:07:00:05:0E:05:00:01:01:23
ESPHome
Конфигурации смотреть здесь
Перед тем как использовать весь код, откалибруйте свои весы. Уберите из кода эти строчки и включите журналирование в режиме DEBUG. Так мы будем получать сырые данные. Зафиксируйте вес без груза, скопируйте цифры с логов как есть, потом возъмите груз на 500 грамм и поставьте на весы, зафиксируйте цифры. Все эти цифры запишите в линейный фильтр
Пример фильтра, где -169085
это сырое значение и это значение без груза на весах, поэтому я указал что данное значение имеет вес 0 грамм, а значение -92230
отобразилось в логах после того, как я установил груз весом 500 грамм и после указал, что данное значение имеет вес 500 грамм
filters:
- calibrate_linear:
- -169085 -> 0
- -92230 -> 500
Так выглядит код с журналированием в режиме отладки и без использования фильтра с линейной калибровкой. Это позволит вам получить сырые значения
#Журналирование
logger:
level: DEBUG #Режим отладки
sensor:
# Весы кошачьей миски
- platform: hx711
name: "${node_name} Weight"
icon: mdi:scale
id: idWeight
dout_pin: D7 #DT
clk_pin: D6 #SCK
gain: 64
update_interval: 1s
unit_of_measurement: g
accuracy_decimals: 0
device_class: weight
state_class: measurement
entity_category: diagnostic
internal: False
Если показания нестабильны, часто и сильно скачут, то смените контроллер HX711 на исправный, в противном случае фильтры не помогут. Лично сам с этим столкнулся и много времени потратил впустую на настройку фильтров. При исправном контроллере HX711 показания весов в момент покоя могут чуть-чуть меняться и это нормально, но не скачут сильно и постоянно. В таком случае дополнительный фильтр поможет, например фильтр медиана, который сможет стабилизировать показания весов. Подробнее читаем в документации ESPHome
- median:
window_size: 7
send_every: 4
send_first_at: 3
Что нужно для сборки весов для миски
- Чувствительные тензодатчики с точностью 1 грамм. Найти можно в электронных кухонных весах с круглыми ножками. Берем любые кухонные весы с круглыми ножками, а не с палками. Это легко можно понять, если перевернуть весы. Я брал такие кухонные весы
- ESP8266 Wemos Mini D1
- Контроллер весов HX711
- Распечатать платформу. Скачать можно здесь
Home Assistant
Для работы карточки необходимо установить компоненты
Карточка и шаблоны
3D модель
Платформу спроектировал в программе FreeCAD. Скачать FreeCAD можно здесь. Я вложил 3 файла, два файла STL и один для FreeCAD, где вы сможете отредактировать при необходимости. Я спроектировал так, чтобы тензодатчики держались крепко и сделал клипсы в виде дуги из-за чего тензодатчики с трудом встают на свои места, нужно тоненькой плоской отверткой поддеть, но зато стоят четко и очень трудно их будет демонтировать без повреждения корпуса.
Готовые модели можно скачать здесь
Что нужно для сборки вращающейся миски с весами
- Чувствительные тензодатчики с точностью 1 грамм. Найти можно в электронных кухонных весах с круглыми ножками. Берем любые кухонные весы с круглыми ножками, а не с палками. Это легко можно понять, если перевернуть весы. Я брал такие кухонные весы
- ESP8266 Wemos Mini D1
- Контроллер весов HX711
- Модуль драйвера ULN2003 и шаговый двигатель 28YBJ 48
- Модуль часов реального времени (RTS) DS1307
- Подшипник 6814 2RS (61814) SLZ. Брал здесь
- Внешний диаметр: 90 мм
- Внутренний диаметр: 70 мм
- Высота: 10 мм
- Жидкая резина KUDO COLOR FLEX, Прозрачная. Брал здесь
- Распечатать миску и платформу. Скачать можно здесь
Cхема подключения
Питание берем от самой автокормушки, которое выдает 5V и 1A, чего будет достаточно, чтобы запитать всю кормушку полностью. Для полной работы кормушки требуется сила тока до 800мА
Home Assistant
Для работы карточки необходимо установить компоненты
Карточка и шаблоны
3D модель
Миска состоит из нескольких деталей. Сделано для экономии времени печати и филамента на случай, если деталь сломалась и чтобы не печатать всю миску целиком заново. Про подшипник 6814 2RS (61814) SLZ читаем ниже
Готовые модели можно скачать тут
Оранжевый круг, это подшипник 6814 2RS (61814) SLZ, который вставляется в круглую платформу под стальную миску (на скриншоте синего цвета). Чтобы стальная миска не скользила на верхней части платформы, рекомендую сделать напыление жидкой резиной. Получается отличное сцепление с миской