7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Android Things

Android Things: дверной звонок с облачным подключением

Scroll to top
Read Time: 7 mins
This post is part of a series called Android Things.
Android Things and Machine Learning

Russian (Pусский) translation by Yuri Yuriev (you can also view the original English article)

Android Things позволяет создавать удивительные устройства IoT с простым кодом. В этом посте я покажу вам, как собрать и построить более сложный проект!

Это не будет пособием от-и-до. Вам останется много возможностей для настройки и развития вашего устройства и приложения. Моя цель - развлечься во время работы с этой платформой и показать вам, что возможности Android Things шире мигающих LEDs.

Что мы будем строить?

Половину удовольствия от интернет-проекта Things доставляет "thing". Для этой статьи я создам облачный дверной звонок, который сделает снимок пришельца, загрузит это изображение в Firebase и произведёт действие. Перед началом нашему проекту потребуются несколько компонентов:

  • Raspberry Pi 3B с Android Things на SIM карте
  • Raspberry Pi камера
  • Детектор движения (component: HCSR501)

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

Skeleton Android Things deviceSkeleton Android Things deviceSkeleton Android Things device

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

Schematics for a simple customized smart doorbellSchematics for a simple customized smart doorbellSchematics for a simple customized smart doorbell

Вы можете запустить этот проект по своей схеме. Обязательно обратите внимание на крепление детектора движения и  дополнительных периферийных устройств, например, подключение модуля камеры к гнезду камеры на Raspberry Pi. Ваш конечный продукт будет немного отличаться и вы можете поделиться своим собственным проектом IoT в разделе комментариев для этой статьи. Информация о подключении схемы в моём уроке creating your first project.

Детектор движения

У проекта два главных компонента: камера и детектор движения. Мы начнем с детектора движения. Потребуется новый класс, который обрабатывает цифровые сигналы с нашего вывода GPIO. Когда движение обнаружено, идёт обратный сигнал, который мы можем прослушать в нашей MainActivity. Дополнительная информация о GPIO в моей статье о Android Things peripherals.

Если вы знакомы с серией Android Things на Envato Tuts +, можете попробовать написать полный класс детектора движения самостоятельно, так как это простой компонент цифрового ввода. Если нет, весь компонент вы найдёте в проекте для этого учебника.

В своём Activity создайте экземпляр HCSR501 и свяжите с новым HCSR501.OnMotionDetectedEventListener.

Как только ваш детектор движения заработал, можно сделать снимок с камеры Raspberry Pi

Съёмка

Один из лучших способов быстро изучить новый инструмент или платформу - это пройти образец кода от создателей. Поэтому мы будем использовать класс, созданный Google для съёмки с использованием Camera2 API. Если вы хотите узнать больше о Camera2 API, можете ознакомиться с нашим полным видеокурсом на Envato Tuts +.

Весь исходный код для класса камеры в примере этого проекта, хотя основным методом, который вам будет интересен, является takePicture (). Этот метод примет изображение и вернёт его в приложение.

Когда этот класс добавлен проект, вам нужно будет добавить интерфейс ImageReader.OnImageAvailableListener в свою Activity, инициализировать камеру из onCreate() и прослушать любые возвращённые результаты. Когда ваши результаты вернутся в onImageAvailable(), вам нужно будет преобразовать их в byte массив для загрузки в Firebase.

Загрузка изображения

Теперь, когда у вас есть данные изображения, надо загрузить их в Firebase. Настройку приложения Firebase можете сделать по this tutorial to get up and running. В Firebase Storage мы будем хранить свои изображения, хотя с его помощью можно настроить дополнительные задачи, такие как хранение данных в Firebase для использования с союзным приложением, которое уведомляет, если кто-то подойдёт к двери. Обновите метод onPictureTaken() для загрузки изображений.

После загрузки вы увидите свои снимки в Firebase Storage.

Images stored in Firebase StorageImages stored in Firebase StorageImages stored in Firebase Storage

Настройка

Теперь, когда у имеется комплект дверного звонка, пришло время сделать этот проект вашим. Я упоминал о своих настройках, о том, что сделал череп с движущейся челюстью и преобразованием текста в речь. Серво можно настроить импортом servo library from Google и включением кода в ваш MainActivity для его запуска.

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

Удивительно, но текст речи немного прямолинейный. Придётся запустить механизм преобразования текста в речь, например:

Поиграйте с настройками, чтобы голос соответствовал вашему приложению. В приведённом выше примере я поставил голос на низкий, несколько роботизированный диапазон и английский акцент. Когда захотите что-то услышать, можете вызвать speak() на движке «текст-речь».

Если вы используете сервомотор на Raspberry Pi, динамик должен быть подключен через USB-порт, поскольку аналоговое дополнительное соединение нельзя использовать, когда PWM-сигнал также создаётся вашим устройством.

Очень рекомендую посмотреть Google's sample drivers, чтобы узнать, какое оборудование можно добавить, отнеситесь к своему проекту творчески. Большинство функций, доступных для Android, поддерживаются в Android Things, включая поддержку Google Play Services и TensorFlow machine learning. Видео завершённого проекта:

Заключение

В этой статье я представил несколько новых инструментов для создания более сложных приложений IoT.

Это финал серии на Android Things, надеюсь, что вы узнали о платформе достаточно для создания потрясающих проектов. Создание приложений - это одно, но возможность влиять на окружающий мир со своими приложениями ещё более увлекательна. Будьте изобретательны, создавайте прекрасные вещи и, прежде всего, получайте удовольствие!

Помните, что Envato Tuts + заполнена информацией о разработках Android, вы можете найти много идей для следующего приложения или проекта IoT.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.