Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

  • Цена: $108.77
  • Обзор автоматической кормушки для животных Petoneer Nutri Smart Pet Feeder, а так же перепрошивка ESPHome и интеграция в Home Assistant.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Идея приобрести или сделать самому автоматический дозатор порций для питомцев у меня уже давно. Это и удобно для хозяев и необычно для гостей. В сети уже есть примеры самодельных «умных кормушек», например вот такой:

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    https://github.com/335iguy/diy-multisensor-cat-feeder[/caption]

    Так же у меня в закладках на GitHub есть еще парочка:

    https://github.com/rubengargar/diy-cheap-cat-feeder

    https://github.com/lance36/catFeeder

    В плане стоимости и интересного времяпрепровождения, это, несомненно, самый лучший вариант. Особенно когда «оно» будет «живое» и будет кормить вашего кота. Как и в случае всего самодельного, интересен сам процесс)

    У меня же стояла задача сделать так, чтобы все это красиво выглядело, включая спрятанную электронику с проводами. Я уже практически начал сборку своей кормушки, взяв идеи из приведенных выше ссылок, но обстоятельства поменялись. Ну а теперь я стал обладателем кормушки Nutri Smart Pet Feeder от Petoneer.

    Упаковка, внешний вид и комплектация

    Упаковка немного помялась, но все доехало в сохранности. На коробке уже расписаны характеристики кормушки и qr код приложения в AppStore и Google Play.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    В комплектации кормушка, миска и блок питания на 5V 1A с micro usb кабелем длиной 120см

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Размеры кормушки 230x246x352мм, вес 2кг.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    С лицевой стороны расположены светодиоды индикации и две кнопки. Верхняя кнопка механическая, для открытия крышки. Нижняя кнопка запускает подачу порции.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Миска так же выполнена из пластика, что конечно же минус. Хотелось бы что-то более долговечное. Вставляется она довольно легко, нужно просто приподнять кормушку и вставить миску в паз.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Очень удобно. Питомец будет накормлен, даже если отключат электроэнергию.

    Снизу расположен micro usb разъем для основного питания от сети, отверстия для динамика и зуммера. В нише можно спрятать излишек кабеля.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Внутри кормушки установлена емкость объемом 3,7 литра и датчики уровня корма. 

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Датчик лазерный (или, как заметили в комментариях, ИК. Но суть та же). Когда корм есть, луч прерывается. Если же корма нет — луч светит из одной точки и попадает в другую, датчик срабатывает.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Тот же принцип у второго датчика, расположенного под дозатором. Если луч прерывается во время выдачи порции, значит все хорошо. 

    Первый запуск и основные функции

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

    При выдаче порции срабатывает звуковой сигнал. Мотор, крутящий лопасти, довольно тихий. Я всерьез был готов к более громкому звуку. Звуковой сигнал и то громче, чем мотор.

    Теперь добавим кормушку в приложение. Так как у меня это первое устройство от Petoneer, то нужно зарегистрироваться. С этим никаких проблем не возникает.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Далее жмем +, выбираем Nutri и следуем инструкциям на экране

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Называем устройство и можно управлять выдачей корма.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Приложение интуитивно понятное. Все хорошо переведено и ничего не лагает. Пользоваться приятно. Можно выдать корм кнопкой Покормить сейчас или же настроить расписания

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Расписания настраиваются по времени и количеству порций. Максимальное количество — 12. Можно отметить нужные дни недели, но индивидуально дни настроить не получится. Например, в воскресенье сделать только 5 кормежек не выйдет. 

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Теперь разберем кормушку и посмотрим что внутри. 

    Разборка и перепрошивка ESPHome

    Я начал разбирать кормушку с основной управляющей платы. Она находится прямо за кнопками и светодиодами индикации, с внутренней стороны. Откручиваем 5 винтов серой заглушки и вот она:

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Откручиваем еще 4 винта, которые держат плату.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Сразу стало видно, что за wifi отвечает модуль TYWE3S на базе esp8266. Так же к плате подключен боковой сенсор уровня корма и его питание с противоположной стороны красно-черными проводами. Желтыми подключены провода, идущие на двигатель, еще один сенсор и питание в нижней части кормушки.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    В процессе изучения платы я выяснил, что за логику отвечает MCU с маркировкой STM8S005K6T6C. Управление двигателем и индикация состояния — его работа. TYWE3S является лишь промежуточным звеном для контроля по wifi. 

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Опытным путем я так же выяснил, что белый светодиод это gpio4 на модуле TYWE3S, отвечающий за индикацию соединения wifi, а на нажатие кнопки срабатывает gpio5

    Разбираем дальше. В нижней части кормушки, под резиновыми противоскользящими подложками, находятся винты. Откручиваем их и разделяем верхнюю часть корпуса от нижней. 

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Тут у нас находится плата питания и мотор, выдающий корм

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    В части корпуса, по которому высыпается корм, расположен датчик, который мониторит выдачу корма. Если в момент выдачи он срабатывает, то есть корм высыпается, значит все хорошо. Если же нет — будет ошибка выдачи корма.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Теперь о прошивке. Как я уже писал выше, за кнопку выдачи корма на модуле TYWE3S отвечает gpio5, за индикацию wifi отвечает gpio4. Я составил простой конфиг ESPHome и залил его, подпаявшись к нужным контактам esp8266

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Конфиг для ESPHome следующий:

    esphome:
    
    name: petoneer_nutri
    platform: ESP8266
    board: esp01_1m
    wifi:
    ssid: "SSID"
    password: "password"
    captive_portal:
    logger:
    api:
    password: "petoneer_nutri"
    ota:
    password: "petoneer_nutri"
    status_led:
    pin:
    number: 4
    switch:
    - platform: gpio
    pin:
    number: 5
    inverted: true
    id: petoneer_nutri_feed_button
    <br /> - platform: template
    name: "petoneer_nutri_feed"
    icon: "mdi:cat"
    turn_on_action:
    - switch.turn_on: petoneer_nutri_feed_button
    - delay: 150ms
    - switch.turn_off: petoneer_nutri_feed_button

    Заливал прошивку через esptool командой:

    python3 ./esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size 1MB --flash_mode dio 0x00000 petoneer_nutri.bin --erase-all

    Указал настоящий размер в 1мб модуля TYWE3S, хотя esptool распознает 2мб. В процессе изучения платы у меня были из-за этого проблемы по восстановлению бэкапа родной прошивки.

    С этим конфигом работает status_led, то есть индикация подключения wifi, и кнопка для выдачи корма. Пришлось прописать дополнительный template переключатель petoneer_nutri_feed, чтобы сымитировать кратковременное нажатие. 150 мс. вполне похоже на на физическое нажатие кнопки. У первого petoneer_nutri_feed_button я прописал только id без name, чтобы он не отображался в интерфейсе Home Assistant. 

    На этом этапе мы можем управлять выдачей корма, но не знаем ничего о состоянии — выдан ли корм и есть ли он вообще. Можно было пойти путем мониторинга общения esp8266 и STM8S005K6T6C по UART, но я выбрал немного иной и более простой в реализации способ. Я подключил красный светодиод индикации к свободному gpio14 на esp8266. На фото ниже это синий провод.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    binary_sensor:
    
    - platform: gpio
    pin:
    number: 14
    inverted: true
    id: petoneer_nutri_feed_status

    И начал имитировать возможные события, связанные с выдачей или отсутствием корма и отслеживать светодиод. Например, когда происходит выдача корма и емкость с ним полная, светодиод вообще не горит. Если корма меньше уровня, светодиод мигает с периодичностью около 1 секунды. Если же корм не проходит через нижний датчик во время выдачи, светодиод начнет мигать с периодичностью 2-3 секунды, точно не замерял. Или, если при мигании светодиода из-за низкого уровня корма, не сработал датчик в нижней части кормушки, светодиод загорится и будет светить.

    Я создал текстовый датчик для того, чтобы ESPHome записывала все состояния в него.

    text_sensor:
    
    - platform: template
    name: "petoneer_nutri_status"
    id: petoneer_nutri_status

    В итоге, статус низкого уровня корма и ошибку в выдаче я повесил на on_click binary_sensor с разной периодичностью задержки. Так было проще всего. А вот с остальными статусами пришлось искать другие пути. Я создал скрипт, назвал его detection,  и задал в нем состояния при отключенном светодиоде и при работающем светодиоде. Задал период срабатывания для обоих состояний 5 сек. 

    script:
    
    - id: detection
    then:
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_off: petoneer_nutri_feed_status
    then:
    - logger.log: "Статус OK"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "OK"
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_on: petoneer_nutri_feed_status
    then:
    - logger.log: "Корм закончился, ошибка"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Корм закончился, ошибка"

    Если светодиод выключен 5 сек, статус текстового датчика становится OK. Если горит 5 сек, соответственно корма нет. Я не помню что именно произошло во время отслеживания светодиода, но я так же указал для статуса об отсутствии корма еще и ошибку

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

    interval:
    
    - interval: 5s
    then:
    - script.execute: detection

    Но из-за этого лог ESPHome был переполнен, и я прописал выполнение скрипта при любом изменении binary_sensor красного светодиода.

    binary_sensor:
    
    #------------------
    on_state:
    then:
    - delay: 5s
    - script.execute: detection

    И при загрузке прошивки, чтобы знать статус только что запущенного устройства.

    esphome:
    
    #------------------
    on_boot:
    priority: -10
    then:
    - script.execute: detection

    Чтобы при выдаче корма (нажатии switch.petoneer_nutri_feed_button) статус успешного или неуспешного кормления показывал верное состояние, повесил на него при on_turn_on еще один кусок автоматизации:

    on_turn_on:
    
    then:
    - delay: 5s
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_off: petoneer_nutri_feed_status
    then:
    - logger.log: "Успешное кормление"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Успешное кормление"
    - delay: 10s
    - if:
    condition:
    - text_sensor.state:
    id: petoneer_nutri_status
    state: "Низкий уровень корма"
    then:
    - logger.log: "Успешное кормление при низком уровне корма"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Успешное кормление"

    Хотел сделать так, чтобы при ручном нажатии кнопки выдачи корма успешный статус так же обновлялся. Сделал еще один binary_sensor на тот же пин, что и switch — gpio5, и повесить такую же автоматизацию на него, только при on_release, так как выдача происходит в момент отпускания кнопки. Статус отрабатывался, но теперь только при ручном нажатии кнопки. Switch перестал работать из Home Assistant. Удалил этот binary_sensor из кода.

    Дальше я решил настроить управление зуммером. Он срабатывал каждый раз при выдаче корма, а так как у меня дома маленький ребенок, то это не очень полезная опция. Конечно же хорошо, что каждая кормежка сопровождается звуковой индикацией, но будет полезным настроить ручное управление. И возможность создания автоматизаций в Home Assistant, например выключать звук вечером. Для этого я задействовал еще один свободный пин на TYWE3S — gpio16. И вот такой релейный модуль, который у меня лежал без дела:

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

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

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Землю для релейного модуля взял с платы питания, а 3.3в и провод на gpio16 потянул к TYWE3S. 

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Все это без проблем закрывается заглушкой. Места более чем предостаточно.

    Умная Wi-Fi кормушка для животных Petoneer Nutri Smart Pet Feeder

    Итоговый конфиг для ESPHome выглядит следующим образом:

    esphome:
    
    name: petoneer_nutri
    platform: ESP8266
    board: esp01_1m
    on_boot:
    priority: -10
    then:
    - script.execute: detection
    wifi:
    networks:
    - ssid: "ssid"
    password: "password"
    captive_portal:
    logger:
    api:
    password: "petoneer_nutri"
    ota:
    password: "petoneer_nutri"
    status_led:
    pin:
    number: 4
    # Пин выдачи корма
    switch:
    - platform: gpio
    pin:
    number: 5
    inverted: true
    id: petoneer_nutri_feed_button
    # При срабатывании ждем 5 сек, и если в течение 5 секунд gpio14 в выкл. состоянии, то ставим статус "Успешное кормление"
    on_turn_on:
    then:
    - delay: 5s
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_off: petoneer_nutri_feed_status
    then:
    - logger.log: "Успешное кормление"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Успешное кормление"
    # Ждем 10 сек, и если статус "Низкий уровень корма" обновляем статус на "Успешное кормление"
    - delay: 10s
    - if:
    condition:
    - text_sensor.state:
    id: petoneer_nutri_status
    state: "Низкий уровень корма"
    then:
    - logger.log: "Успешное кормление при низком уровне корма"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Успешное кормление"
    # UI кнопка выдачи корма, включает пин gpio5 на 150мс и затем выключает
    - platform: template
    name: "petoneer_nutri_feed"
    icon: "mdi:cat"
    turn_on_action:
    - switch.turn_on: petoneer_nutri_feed_button
    - delay: 150ms
    - switch.turn_off: petoneer_nutri_feed_button
    # Реле зуммера
    - platform: gpio
    pin:
    number: 16
    inverted: true
    id: petoneer_nutri_buzzer
    name: petoneer_nutri_buzzer
    icon: "mdi:volume-high"
    binary_sensor:
    # Отслеживание светодиода индикации для статуса
    - platform: gpio
    pin:
    number: 14
    inverted: true
    id: petoneer_nutri_feed_status
    # При срабатывании в диапазоне 990-1100мс статус "Низкий уровень корма"
    on_click:
    - min_length: 990ms
    max_length: 1100ms
    then:
    - if:
    condition:
    not:
    - text_sensor.state:
    id: petoneer_nutri_status
    state: "Низкий уровень корма"

    then:
    - logger.log: "Низкий уровень корма"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Низкий уровень корма"
    # При срабатывании в диапазоне 1400-3100мс статус "Ошибка выдачи корма"
    - min_length: 1400ms
    max_length: 3100ms
    then:
    - logger.log: "Ошибка выдачи корма"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Ошибка выдачи корма"
    # Выполнение скрипта detection для отслеживания статуса
    on_state:
    then:
    - delay: 5s
    - script.execute: detection
    # Текстовый датчик статуса для UI HA
    text_sensor:
    - platform: template
    name: "petoneer_nutri_status"
    icon: "mdi:information-outline"
    id: petoneer_nutri_status
    # Скрипт отслеживания статуса на основании gpio14
    script:
    - id: detection
    then:
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_off: petoneer_nutri_feed_status
    then:
    - logger.log: "Статус OK"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "OK"
    - if:
    condition:
    for:
    time: 5s
    condition:
    binary_sensor.is_on: petoneer_nutri_feed_status
    then:
    - logger.log: "Корм закончился, ошибка"
    - text_sensor.template.publish:
    id: petoneer_nutri_status
    state: "Корм закончился, ошибка"

    Уверен, что можно сделать автоматизации в конфиге более элегантно, буду рад услышать советы на этот счет.

    Пример управления кормушкой из интерфейса Home Assistant:

    Средствами автоматизаций Home Assistant можно настроить выдачу корма по расписанию и отправку только нужных уведомлений.

    Заключение

    Кормушка очень интересная, как в плане функционала из коробки с родным облачным приложением, так и в плане доработки. Места очень много, встроить можно любые датчики. Двигатель работает тихо, пластик приятный на ощупь, да и выглядит кормушка отлично. Место для пауэрбанка тоже большой плюс. Уникальная работа светодиода индикации позволила отслеживать его для интеграции с альтернативной прошивкой для локального управления. И самое главное — животные довольны, и выпрашивать еду будут уже у вот этого белого контейнера 🙂

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