
Может быть сложно оставить питомца дома, когда вы отправляетесь на целый день. Тяжело вашему питомцу, но, возможно, и вам тоже! В конце концов, некоторые дни просто тянутся вперед, и вам нужно увидеть дружелюбное, мохнатое лицо, чтобы поднять настроение. Рич Нельсон пообещал своей жене возможность проведать их очаровательного щенка Гаса, пока она будет на работе. Результатом стал диспенсер для лакомств с дистанционным управлением.
Коробка очень изобретательная. Есть Raspberry Pi B+ для мозгов, Arduino Nano для сервопривода, 5-мегапиксельный модуль камеры Raspberry Pi и набит лакомствами для собак. После дистанционного запуска через текстовое сообщение сервопривод сначала покачивает коробку, затем делает фотографию и выталкивает Гасу угощение.
Хотя Гас, вероятно, думает, что весь этот проект сводится к раздаче угощений из доброжелательной белой коробки, реальная цель состоит в том, чтобы привлечь его внимание на время, достаточное для того, чтобы сделать фотографию. «Если вы хотите, чтобы собака обратила внимание на картинку, нет ничего лучше, чем обещание угощения», - объясняет Нельсон. Диспенсер для лакомств здесь, безусловно, преуспевает. Когда коробка гремит, издавая для Гаса аппетитный звук, маленький щенок прибегает.
“Когда я снимал видео, он подбегал, садился перед ним и вел себя так, как он вел бы себя со мной или моей женой, когда ему хотелось угостить. Вероятно, он любит волшебную белую коробку так же сильно, как и нас», - говорит Нельсон.


Картинки, которые получаются из этого, восхитительны (доказательство смотрите на фотографиях выше), но разработка способа активировать дозатор лакомств и получать фотографии через текстовое сообщение представляла свои проблемы. Нельсон был знаком с методом использования Twilio, службы, предоставляющей программируемые телефонные номера, для фотографирования одним нажатием кнопки, но все же потребовалась определенная работа, чтобы создать эффективный способ управления текстовыми командами для угощения. дозатор:
Самым сложным было выяснить, как мгновенно получить текстовое сообщение и запустить функцию Python. Первый метод, который я использовал, использовал опрос: сценарий постоянно проверял серверы twilio с заданным интервалом на наличие новых сообщений. Но это казалось слишком неэффективным. Допустим, вы проверяете сервер каждые 30 секунд, но перед получением сообщения все равно будет заметная задержка, вы обращаетесь к серверу почти 3000 раз в день, и для этого требуется база данных для записи уже полученных сообщений, поэтому ты больше не действовал в соответствии с ними. Решением было настроить веб-сервер на Pi, чтобы Twilio мог отправлять HTTP POST на сервер в момент получения сообщения. Я использовал фреймворк Python Flask, поскольку он прост, а остальная часть программы написана на Python. Это был мой первый опыт настройки домашнего веб-сервера и использования Flask, поэтому я многому научился.
Twilio дешев, но не бесплатен, поэтому Нельсон говорит, что, если бы он сделал это снова, он мог бы попытаться найти способ удаленного запуска устройства, например, с помощью специального приложения или кнопки на сайт. А пока он и его жена все еще могут наблюдать за этим милым малышом, даже когда они на работе.