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

Android Things: Membuat Penjaga Pintu dengan Cloud Terintegrasi

by
Read Time:9 minsLanguages:
This post is part of a series called Android Things.
Android Things and Machine Learning

Indonesian (Bahasa Indonesia) translation by Febri Ardian Sanjoyo (you can also view the original English article)

Android Things memungkinkan Anda membuat perangkat IO yang menakjubkan dengan kode sederhana. Dalam posting kali ini, saya akan menunjukkan cara untuk mengumpulkan semuanya untuk membangun proyek yang lebih kompleks!

Ini tidak akan menjadi tutorial top-to-bottom yang lengkap. Saya akan memberi Anda banyak ruang untuk memperluas dan menyesuaikan perangkat dan aplikasi Anda-sehingga Anda dapat menjelajahi dan mempelajari lebih lanjut tentang milik Anda sendiri. Tujuan saya adalah bersenang-senang saat bekerja dengan platform pengembangan yang baru ini, dan menunjukkan bahwa ada lebih banyak hal Android daripada hanya LED berkedip.

Apa yang kita bangun?

Setengah kesenangan dari sebuah proyek Internet of Things akan hadir dengan "thing". Untuk artikel ini, saya akan membangun bel pintu yang terhubung dengan awan(cloud), yang akan memotret ketika seseorang mendekat, mengunggah gambar itu ke Firebase, dan memicu sebuah tindakan. Proyek kita akan memerlukan beberapa komponen sebelum kita dapat memulai:

  • Raspberry Pi 3B dengan Android Things pada kartu SIM
  • Kamera Raspberry Pi
  • Motion detector (component: HCSR501) 

Selain itu, Anda dapat menyesuaikan proyek Anda agar sesuai dengan gaya kreatif Anda sendiri dan bersenang-senang dengannya. Untuk proyek saya, saya mengambil hiasan kerangka yang telah diletakkan di teras saya sejak Halloween dan menggunakannya sebagai casing untuk proyek saya, dengan mata dibor untuk menahan kamera dan detektor gerak.

Skeleton Android Things deviceSkeleton Android Things deviceSkeleton Android Things device

Saya juga menambahkan servomotor untuk menggerakkan rahang, yang dipegang tertutup dengan sepotong elastic, dan speaker USB untuk mendukung kemampuan text-to-speech.

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

Anda bisa memulai proyek ini dengan membangun sirkuit Anda. Pastikan untuk mencatat pin apa yang Anda gunakan untuk detektor gerakan dan bagaimana Anda menghubungkan peripheral tambahan. Misalnya, koneksi modul kamera ke slot kamera pada Raspberry Pi Anda. Dengan beberapa penyesuaian, produk akhir semua orang akan sedikit berbeda, dan Anda dapat berbagi proyek IoT yang telah selesai di bagian komentar untuk artikel ini.  Untuk informasi tentang memasang sirkuit, lihat tutorial saya untuk membuat proyek pertama Anda.

Mendeteksi Gerak

Ada dua komponen utama yang akan kita gunakan untuk proyek ini: kamera dan detektor gerakan. Kita akan mulai dengan melihat detektor gerakan. Ini akan membutuhkan kelas baru yang menangani membaca sinyal digital dari pin GPIO kita. Saat gerakan terdeteksi, panggilan balik akan dipicu agar kita dapat mendengarkan pada MainActivity kita. Untuk informasi lebih lanjut tentang GPIO, lihat artikel saya tentang Android Things peripherals.

Jika Anda telah mengikuti seri Android Things di Envato Tuts+, Anda mungkin ingin mencoba menulis kelas detektor gerak lengkap sendiri, karena ini adalah komponen masukan digital sederhana. Jika Anda lebih suka melompatinya, Anda dapat menemukan seluruh komponen yang tertulis dalam proyek untuk tutorial ini.

Dalam Activity Anda, Anda dapat memberi contoh komponen HCSR501 Anda dan mengaitkan HCSR501.OnMotionDetectedEventListener baru dengannya.

Setelah detektor gerak Anda bekerja, saatnya berfoto dengan kamera Raspberry Pi.

Mengambil Foto

Salah satu cara terbaik untuk mempelajari tool atau platform baru dengan cepat adalah melalui contoh kode yang diberikan oleh pembuat konten. Dalam kasus ini, kami akan menggunakan kelas yang dibuat oleh Google untuk mengambil gambar menggunakan API Camera2. Jika Anda ingin mempelajari lebih lanjut tentang API Camera2, Anda dapat melihat kursus video lengkap di Envato Tuts+ kami.

Anda dapat menemukan semua sumber kode untuk camera class dalam sampel proyek ini, walaupun metode utama yang akan Anda minati adalah takePicture(). Metode ini akan mengambil gambar dan mengembalikannya ke callback di aplikasi Anda.

Setelah class ini ditambahkan ke proyek Anda, Anda perlu menambahkan interface ImageReader.OnImageAvailableListener ke Activity Anda, menginisialisasi kamera dari onCreate(), dan mendengarkan hasil yang dikembalikan. Ketika hasil Anda dikembalikan di onImageAvailable(), Anda perlu mengkonversikannya ke byte array untuk diunggah ke Firebase.

Upload Gambar

Sekarang setelah Anda memiliki data gambar Anda, saatnya mengunggahnya ke Firebase. Sementara saya tidak akan membahas detail tentang pemasangan Firebase untuk aplikasi Anda, Anda dapat mengikuti tutorial ini untuk get up and running. Kami akan menggunakan Firebase Storage untuk menyimpan gambar kami, meskipun setelah aplikasi Anda disiapkan untuk menggunakan Firebase, Anda dapat melakukan tugas tambahan seperti menyimpan data di basis data Firebase untuk digunakan dengan aplikasi pendamping yang memberi tahu Anda saat seseorang berada di depan pintu Anda. . Mari update metode onPictureTaken() untuk mengupload gambar kita.

Setelah gambar Anda diupload, Anda harus bisa melihatnya di Firebase Storage.

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

Sesuaikan

Sekarang Anda memiliki apa yang Anda butuhkan untuk membangun fungsionalitas dasar untuk bel pintu Anda, saatnya untuk benar-benar membuat proyek ini menjadi milik Anda. Sebelumnya saya menyebutkan bahwa saya melakukan beberapa penyesuaian dengan menggunakan kerangka dengan rahang yang bergerak dan kemampuan text-to-speech. Servos dapat diimplementasikan dengan mengimpor library servo dari Google dan menyertakan kode berikut di MainActivity Anda untuk mengatur dan menjalankan servo.

Setelah selesai dengan aplikasi Anda, Anda juga perlu memeriksa motor servo.

Herannya, text to speech sedikit lebih mudah. Anda hanya perlu menginisialisasi mesin text-to-speech, seperti:

Anda bisa bermain dengan setting agar suaranya sesuai dengan aplikasi Anda. Dalam contoh di atas, saya telah menyetel suara untuk memiliki nada yang rendah, agak robotic dan aksen bahasa Inggris. Bila Anda siap perangkat Anda dapat mengatakan sesuatu, Anda dapat memanggil speak() pada mesin text-to-speech.

Pada Raspberry Pi, jika Anda menggunakan motor servo, Anda perlu memastikan speaker Anda terhubung melalui port USB, karena koneksi aux analog tidak dapat digunakan saat sinyal PWM juga dibuat oleh perangkat Anda.

Saya sangat menyarankan untuk melihat-lihat Google's sample drivers untuk melihat perangkat keras tambahan yang dapat Anda tambahkan ke proyek Anda, dan berkreasi dengan proyek Anda. Sebagian besar fitur yang tersedia untuk Android juga didukung di Android Things, termasuk dukungan untuk Google Play Services dan TensorFlow machine learning. Untuk sedikit inspirasi, ini adalah video dari proyek yang telah selesai:

Kesimpulan

Pada artikel ini saya telah memperkenalkan beberapa alat baru yang dapat Anda gunakan untuk membangun aplikasi IoT yang lebih kompleks.

Ini adalah akhir dari seri kita di Android Things, jadi saya harap Anda telah belajar banyak tentang platform ini, dan menggunakannya untuk membangun beberapa project yang menakjubkan. Membuat aplikasi adalah satu hal, namun bisa memengaruhi dunia di sekitar Anda dengan aplikasi Anda bahkan lebih menarik. Jadilah kreatif, ciptakan hal-hal yang indah, dan yang terpenting, bersenang-senanglah dengan itu!

Ingat bahwa Envato Tuts+ diisi dengan informasi tentang pengembangan Android, dan Anda dapat menemukan banyak inspirasi di sini untuk aplikasi Anda berikutnya atau proyek IoT.

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.