Android Things значительно упрощает создание IoT-приложений с использованием Android Framework и инструментов, которые вы уже знаете. Давайте рассмотрим, как прошить Android Things на Raspberry Pi 3 и создать наше первое приложение.
В этом руководстве мы будем использовать следующие инструменты:
— Android Studio
— Raspberry Pi 3 без прошитого образа
— Карту памяти micro SD объемом не менее 8 ГБ и адаптер для её прошивки
— Последнюю предварительную версию образа Android Things для Raspberry Pi. Скачайте её здесь
— Установленную программу SD Card Formatter
— Ethernet-кабель, подключенный к вашему роутеру
— Монитор и клавиатуру для подключения к Raspberry Pi
Я выполнил это руководство на Mac, поэтому описанное программное обеспечение, скорее всего, не будет работать на Windows или Linux. Однако вы сможете найти аналогичные инструменты для своей операционной системы.
Извлеките файлы из архива, который вы скачали с сайта Android Things, и у вас должен появиться файл с именем `iot_rpi3.img`. Это образ диска, который мы запишем на карту памяти. Если у вас уже есть этот файл, можете пропустить следующий раздел и сразу перейти к форматированию карты памяти.
При попытке извлечь файл вы можете столкнуться с проблемой, когда вместо нужного файла появится файл `androidthings_rpi3_devpreview_4.zip.cpgz`. При его распаковке создастся ещё один файл с именем `androidthings_rpi3_devpreview_4 1.zip`.
Решить эту проблему можно, распаковав файл с помощью 7zip через терминал. Чтобы установить 7zip и извлечь файл, выполните следующие команды:
После того как вы извлекли образ диска из архива, необходимо отформатировать карту памяти и установить на неё образ. Если на вашей карте памяти уже что-то записано, например, другой образ для Raspberry Pi, вы можете увидеть сообщение:
`Вставленный диск не может быть прочитан этим компьютером.`
Чтобы решить эту проблему, откройте SDFormatter, выберите карту памяти и нажмите `Format`.
После форматирования диска нужно определить, куда мы будем устанавливать образ. В терминале выполните команду `diskutil` и запомните номер диска, назначенный карте памяти.
На моём компьютере карта памяти обозначена как `disk2`.
Теперь, когда мы знаем номер диска, назначенный нашей карте, пришло время размонтировать этот диск, чтобы записать на него образ. В терминале выполните команду:
Чтобы записать образ на диск, выполните следующую команду в той же директории, где был извлечён образ Android Things:
Этот процесс может занять от 5 до 15 минут в зависимости от размера и скорости вашей карты памяти. Выпейте чашечку кофе — мы почти закончили.
Когда процесс завершится, вы увидите всплывающее сообщение:
`Вставленный диск не может быть прочитан этим компьютером.`
Отлично, на этом этапе мы закончили.
Теперь, когда образ установлен на карту памяти, вставьте её в Raspberry Pi 3 и загрузите устройство, чтобы проверить, что всё работает как ожидалось.
Рекомендуется подключить кабель HDMI к Raspberry Pi хотя бы на время настройки. Это избавит вас от необходимости гадать, работает ли всё правильно.
Если вы видите заставку, похожую на ту, что описана выше, значит, всё идёт отлично!
Мы успешно записали образ на карту памяти и использовали её для загрузки Raspberry Pi, но обратите внимание, что на заставке написано «Нет подключения к Wi-Fi» и «Нет подключения к Ethernet». Нам нужно решить эту проблему, подключив Raspberry Pi к сети.
Выключите Raspberry Pi, отсоединив кабель micro-USB, и подключите Ethernet-кабель. Включите устройство снова, и вы увидите, что ему присвоен IP-адрес.
Вернитесь в терминал и выполните следующую команду:
`Android.local` автоматически транслируется Raspberry Pi и должен разрешаться в IP-адрес, назначенный вашему устройству на порту 5555. Если это не сработает по какой-то причине, вы можете использовать IP-адрес Raspberry Pi и порт, например, 192.168.0.23:5555.
Однако подключение через кабель делает наше устройство менее мобильным, поэтому давайте подключим Raspberry Pi к Wi-Fi.
В терминале введите следующую команду:
Замените `
Вы увидите, что Raspberry Pi вскоре получит назначенный IP-адрес. Теперь вы можете отключить Ethernet-кабель, но вам потребуется перезагрузить Raspberry Pi, прежде чем вы сможете снова подключиться к нему.
Наконец, давайте проверим, что Android-приложения могут корректно работать на Raspberry Pi. Для этого мы можем написать и запустить простое приложение. Вы можете написать код самостоятельно или клонировать репозиторий этого приложения здесь.
Откройте Android Studio. Создайте новый проект под названием `Hello Things`. Android Things работает на API 24 и выше, и мы начнём с пустой активности.
В файле `build.gradle` уровня приложения добавьте зависимость для Android Things.
В манифесте приложения добавьте запись для общей библиотеки и измените фильтры интентов.
В файле `hellothings/MainActivity.java` измените метод `onCreate`, чтобы вывести список всех доступных GPIO-портов на Raspberry Pi.
Эта строка кода вернёт список всех доступных портов ввода-вывода общего назначения (GPIO) на вашей Raspberry Pi. Нажмите «Запустить» или используйте сочетание клавиш `CTRL+R`.
На экране вы увидите, что активность под названием `Hello Things` была запущена.
Если у вас, как и у меня, пылится без дела Raspberry Pi, это отличный шанс использовать свои навыки работы с Android для входа в мир IoT. Платформа Android Things огромна, и мы можем создать множество реальных приложений.
Как насчёт того, чтобы обезопасить свой дом и настроить Raspberry Pi на отправку MMS каждый раз, когда кто-то проходит мимо камеры? Или управлять освещением в доме? Мне было бы интересно узнать, что вы придумаете. Свяжитесь со мной в Twitter @marcos_placona или напишите на почту marcos@twilio.com и расскажите об этом.