Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android Things

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

by
Difficulty:BeginnerLength:MediumLanguages:
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 device

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

Schematics 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 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
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.