Intel Developer Zone

Tutorial Cara Membuat Alarm Pintar dengan Intel IoT

[gambar ilustrasi]

* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.

Tutorial cara membuat aplikasi alarm pintar ini adalah bagian dari latihan contoh kodingan How-To Intel IoT Technology menggunakan Intel IoT Developer Kit, papan Intel Edison, platform cloud, API, dan teknologi lainnya.

Dari latihan ini, developer akan dapat belajar cara:

  • Mengkoneksikan papan Intel Edison, yang mana adalah platform komputasi yang didesain untuk membuat prototipe dan membuat produk IoT serta wearable.
  • Berinteraksi dengan I/O papan Intel Edison dan repositori sensor menggunakan MRAA dan UPM dari Intel IoT Developer Kit, yang mana adalah solusi hardware dan software lengkap untuk membantu developer dalam mengeksplorasi IoT dan mengimplementasikan proyek inovatif.
  • Menjalankan contoh kodingan ini di Intel System Studio IoT Edition (Eclipse IDE untuk pengembangan C/C++ dan Java) untuk membuat aplikasi yang berinteraksi dengan sensor dan aktuator, membuatmu dapat berjalan cepat untuk mengembangkan software untuk papan Intel Edison atau Intel Galileo.
  • Mengeset server aplikasi web dan menyimpan data menggunakan Azure Redis Cache dari Microsoft, Redis Store dari IBM Bluemix, atau ElastiCache menggunakan Redis dari Amazon Web Services (AWS), layanan cloud berbeda untuk mengkoneksikan solusi IoT termasuk analisa data, machine learning, dan berbagai peralatan produktifitas untuk menyederhanakan proses mengkoneksikan sensormu ke cloud dan menjadikan proyek IoT-mu berjalan dengan cepat.
  • Memanggil beberapa layanan API Weather Underground untuk mengakses data cuaca.

Penjelasan Proyek

Menggunakan papan Intel Edison, proyek ini membuatmu dapat membuat jam alarm pintar yang:

  • dapat diakses menggunakan ponsel kamu melalui antarmuka web untuk mengeset waktu alarm
  • menampilkan data cuaca terkini di layar LCD
  • mencatat berapa lama yang diperlukan untuk kamu bangun tidur tiap paginya menggunakan penyimpanan data berbasis cloud

Cara kerja

Jam alarm pintar ini memiliki beberapa fitur penting. Penyetelan alarm dapat dilakukan di ponsel kamu menggunakan halaman web yang disajikan langsung dari papan Intel Edison. Ketika alarmnya diaktifkan, suara akan dikeluarkan dan layar LCD akan mengindikasikan saatnya untuk bangun tidur. Ada juga rotary dial dapat digunakan untuk mengatur tingkat pencahayaan layar.

Sebagai tambahan, jam alarm pintar dapat mengkases data cuaca harian melalui API Weather Underground dan menggunakannya untuk mengganti warna layar LCD. Sebagai tambahan, semua data dapat disimpan menggunakan Intel IoT Examples Datastore yang berjalan di akun Microsoft Azure, IBM Bluemix, atau AWS kamu.

Hardware yang diperlukan

Grove Starter Kit Plus yang berisi:

  1. Papan Intel Edison dengan papan breakout Arduino
  2. Grove Base Shield V2
  3. Grove Rotary Analog Sensor
  4. Grove Buzzer
  5. Grove Button
  6. Grove RGB LCD

Software yang diperlukan

  1. Intel System Studio IoT Edition (Eclipse IDE untuk C/C++ dan Java)
  2. Akun Microsoft Azure, IBM Bluemix, atau AWS
  3. Key API Weather Underground

Persiapan

Untuk memulai, klon repositori contoh kode How-To Intel IoT Technology dengan Git dari komputer kamu dengan cara berikut ini:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

Jika ingin mengunduh file zip-nya, di browser kamu masuk ke halaman https://github.com/intel-iot-devkit/how-to-code-samples dan klik tombol Download ZIP di bagian kanan bawah. Setelah file zip terunduh, buka file zip-nya, dan gunakan file-file yang ada dalam direktorinya untuk contoh di artikel ini.

Menambahkan program ke dalam Eclipse

Di Eclipse, pilih Import Wizard untuk mengimpor proyek yang sudah ada ke dalam workspace seperti di bawah ini:

  1. Dari menu utama, pilih File > Import
  2. Boks dialog Import Wizard akan muncul. Pilih General > Existing Project into Workspace dan klik Next.
  3. Klik Select root directory dan lalu tombol Browse untuk mencari direktori yang berisi file proyek.
  4. Di bawah Projects, pilih direktori dengan file proyek yang ingin kamu impor dan klik OK dan lalu Finish untuk mengimpor file ke dalam Eclipse.
  5. Program .cpp utama kamu sekarang ditampilkan di workspace kamu di bawah folder src.

Mengkoneksikan sensor Grove

Kamu memerlukan Grove Base Shield V2 terkoneksi ke sebuah papan breakout yang kompatibel dengan Arduino untuk menyambungkan semua perangkat Grove ke Grove Base Shield V2. Pastikan kamu mengeset saklar VCC pada Grove Base Shield V2 ke 5V.

  1. Sambungkan salah satu ujung kabel Grove ke Grove Rotary Analog Sensor dan sambungkan ujung lainnya ke port A0 pada Grove Base Shield V2.
  2. Sambungkan salah satu ujung kabel Grove ke Grove Button dan sambungkan ujung lainnya ke port D4 pada Grove Base Shield V2.
  3. Sambungkan salah satu ujung kabel Grove ke Grove Buzzer dan sambungkan ujung lainnya ke port D5 pada Grove Base Shield V2.
  4. Sambungkan salah satu ujung kabel Grove ke Grove RGB LCD dan sambungkan ujung lainnya ke port I2C manapun pada Grove Base Shield V2.

Menyetel papan Intel Edison

Contoh ini menggunakan library restclient-cpp untuk melakukan panggilan REST ke server data jarak jauh. Kodingannya dapat dilihat di direktori thelib. Library restclient-cpp memerlukan paket libcurl yang mana sudah terinstal di papan Intel Edison secara bawaan.

Contoh ini juga menggunakan micro-framework web Crow untuk menyediakan server web yang mudah digunakan namun kuat. Library Crow memerlukan paket libboost terinstal di papan Intel Edison dan juga menambahkan file-file include dan lib yang diperlukan ke dalam Eclipse Cross G++ Compiler dan Cross G++ Linker.

  1. Perbaharui feed basis opgk agar kamu dapat menginstal keperluan yang diperlukan. Buat koneksi SSH ke papan Intel Edison board dan jalankan perintah berikut ini:
    vi /etc/opkg/base-feeds.conf
  2. Ubah file-nya agar memiliki teks seperti di bawah ini:
    src/gz all http://repo.opkg.net/edison/repo/all
    src/gz edison http://repo.opkg.net/edison/repo/edison
    src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
  3. Simpan file-nya dengan memencet Esc, lalu :, dan q, dan terakhir Enter.

Ini hanya perlu dilakukan sekali untuk setiap papan Intel Edison. Jadi jika kamu sudah pernah melakukannya, kamu dapat langsung lanjut ke tahap berikutnya.

Intal library boost ke dalam papan Intel Edison menggunakan perintah berikut ini:

opkg update
opkg install boost-dev

Kopi library

Kamu perlu mengkopi file library dan include dari papan Intel Edison ke komputer kamu yang mana kamu gunakan untuk menjalankan Eclipse agar Cross G++ Compiler dan Cross G++ Linker dapat menemukan file tersebut. Cara paling mudah untuk melakukan ini adalah dengan menjalankan perintah scp dari komputer kamu (BUKAN dari papan Intel Edison) seperti berikut ini:

scp -r USERNAME@xxx.xxx.x.xxx:/usr/include/boost ~/Downloads/iotdk-ide-linux/devkit-x86/sysroots/i586-poky-linux/usr/include
scp USERNAME@xxx.xxx.x.xxx:/usr/lib/libboost* ~/Downloads/iotdk-ide-linux/devkit-x86/sysroots/i586-poky-linux/usr/lib

Ubah bagian USERNAME@xxx.xxx.x.xxx untuk disamakan dengan username dan alamat IP yang kamu set di papan Intel Edison.

Ubah ~/Downloads/iotdk-ide-linux untuk disamakan dengan lokasi instalasi Intel IoT Developer Kit di komputer kamu

Kopi library ke Windows

Ada tautan yang bermanfaat untuk melakukan hal ini, yaitu:

using-winscp.md

Catatan: kamu perlu mengaktifkan SSH dengan menjalankan perintah configure_edison –password pada papan. Setelah kamu mengeset password, pastikan kamu mencatatnya. Kamu hanya perlu melakukan ini sekali saja dan ini akan diset ketika kamu merestart papan Intel Edison.

Penyetelah tambahan

Akan lebiih baik jika kamu mengeset zona waktu saat ini agar sama dengan zona waktu di mana kamu sedang bereda. Lakukan ini dengan cara menggunakan program timedatectl pada papan. Contohnya seperti berikut:

timedatectl set-timezone America/Los_Angeles

Key Weather Underground API

Untuk mendapatkan data cuaca terkini, kamu perlu untuk mendapatkan key API dari situs web Weather Underground:

http://www.wunderground.com/weather/api

Kamu tidak akan dapat mengambil kondisi cuaca tanpa mendapatkan key API Weather Underground terlebih dahulu. Kamu tetap dapat menjalankan contoh di artikel ini namun tanpa data cuaca.

Sampaikan key API Weather Underground ke contoh program dengan memodifikasi key WEATHER_API_KEY di file config.json seperti berikut ini:

  1. Dari menu Run, piih Run Configurations. Boks dialog Run Configurations akan ditampilkan.
  2. Di bawah C/C++ Remote Application, klik alarm-clock. Ini akan menampilkan informasi untuk aplikasi kamu.
  3. Pada isian Commands to execute before application, tambahkan variabel environment agar terlihat seperti berikut ini (kecuali set key API seperti dengan yang kamu miliki):
    chmod 755 /tmp/alarm-clock; export API_KEY="YOURKEY"
  4. Klik Apply untuk menyimpan variabel environment.

Sekarang ketika kamu menjalankan program kamu menggunakan tombol Run, programnya akan bisa mendapatkan data cuaca terkini dari papan Intel Edison.

Penyetelan server datastore

Sebagai tambahan, kamu dapat menyimpan data yang dihasilkan oleh contoh program ini di backend database menggunakan Microsoft Azure, IBM Bluemix, atau AWS sejalan dengan data store Node.js dan Redis.

Untuk informasi tentang bagaimana caranya menyetel server data cloud kamu sendiri, kunjungi:

https://github.com/intel-iot-devkit/intel-iot-examples-datastore

Koneksikan papan Intel Edison-mu ke Eclipse

  1. Di bagian kiri bawah, klik kanan di mana saja di tab Target SSH Connections dan pilih New > Connection.
  2. Tampilan Intel IoT Target Connection akan muncul. Di masukan Filter, ketikkan nama dari papan kamu.
  3. Pada daftar Select one of the found connections, pilih nama perangkat kamu dan klik OK.
  4. Pada tab Target SSH Connections, klik kanan pada perangkat kamu dan pilih Connect.

Jika diminta username dan password, username masukkan root dan password masukkan password yang telah kamu set ketika mengkonfigurasi papan Intel Edison.

Menjalankan contoh dengan server cloud

Untuk menjalankan contoh ini dengan backend data store opsional, kamu perlu mengeset variabel environment SERVER dan AUTH_TOKEN. Kamu dapat melakukannya di Eclipse dengan cara seperti berikut ini:

  1. Dari menu Run, pilih Run Configurations. Boks dialog Run Configurations akan ditampilkan.
  2. Di bawah C/C++ Remote Application, klik doorbell. Ini akan menampilkan informasi dari aplikasinya.
  3. Pada masukan Commands to execute before application, tambahkan variabel environment seperti terlihat di bawah ini (kecuali menggunakan token server and otentikasi yang cocok dengan setelan kamu):
    chmod 755 /tmp/alarm-clock;export API_KEY="YOURKEY"; export SERVER="http://intel-examples.azurewebsites.net/logger/alarm-clock"; export AUTH_TOKEN="YOURTOKEN"
  4. Klik Apply untuk menyiman variabel environment baru kamu.

Sekarang, jalankan program kamu menggunakan tombol Run. Program kamu akan dapat memanggil server untuk menyimpan data langsung dari papan Intel Edison.

Menjalankan kodingan pada papaan Intel Edison

Setelah kamu siap untuk menjalankan contoh ini, klik Run pada menu di bagian atas Eclipse

Ini akan meng-compile program menggunakan Cross G++ Compiler, mengaitkannya menggunakan Cross G++ Linker, mentransfer binary ke papan Intel Edison, dan lalu mengeksekusinya pada papan itu sendiri.

Setelah menjalankan programnya, kamu seharusnya akan melihat keluaran seperti di bawah ini.

Ketika programmnya diunggah ke papan Intel Edison, RGB LCD kamu akan menampilkan waktu saat ini.

Membuat ulang HTML dan CSS

Jika kamu melakukan perubaha di file index.html atau styles.css, kamu perlu membuat ulang file .hex yang digunakan untuk menyajikan aset melalui server web Crow bawaan. Ada tutorial bermanfaat yang mengajarkan cara menggunakan skrip shell di sini:

how-to-run-the-shellscript.md

Menyetel Alarm

Alarm diset menggunakan sebuah halaman antar muka web yang disajikan langsung dari papan Intel Edison ketika contoh program sedang berjalan.

 

Server web berjalan pada port 3000, jadi jika papan Intel Edison terkoneksi ke Wi-Fi pada 192.168.1.13, alamat yang digunakan untuk berselancar jika kamu berada pada satu jaringan yang sama adalah http://192.168.1.13:3000.

Untuk daftar lengkap 18 contoh kodingan How-To Intel IoT Technology di C++, kunjungi artikel Intel Developer Zone berjudul 18 How-To Intel IoT Technology Code Samples Now Available in C++.

Untuk daftar lengkap 18 contoh kodingan How-To Intel IoT Technology di JavaScript, kunjungi artikel Intel Developer Zone berjudul Announcing 18 New How-To Intel® IoT Technology Code Samples.

Untuk lebih jelasnya tentang contoh kodingan ini, kunjungi GitHub.

* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.

Share
Published by
Intel Developer Zone

Recent Posts

Cisco Peringkatkan Kerentanan Kritis Dalam Cisco Data Center Network Manager

Cisco mengungkapkan tiga kerentanan dalam layanannya. Ini dia penanganannya!

January 7, 2020

Optimal idM Meluncurkan OptimalCloud Partner Platform

Ini ulasan mengenai keuntungan OptimalCloud Partner Platform, platform baru milik Optimal idM!

January 6, 2020

Google Siapkan Coral Accelerator Module dan Coral Dev Board Mini untuk Tahun 2020

Google kenalkan dua koleksi baru dari Coral. Dua koleksi baru ini bakal menambah kemampuan pengembangan…

January 3, 2020

Google Kembangkan Model Kecerdasan Buatan Untuk Deteksi Kanker Payudara

Raksasa Google baru saja mengembangkan sistem pemindaian kanker payudara berbasis kecerdasan buatan. Bagaimana hasilnya, berikut…

January 3, 2020

Google Dorong Fitur Bubbles Notifications Ke Versi Stabil

Meski dikenalkan bersamaan dengan Android 10 Beta, sampai kini Bubbles Notifications masih dalam tahap pengembangan.…

December 31, 2019

Samsung Siapkan Lima Proyek dan Empat Startup C-Lab Untuk CES 2020

Samsung akan kembali memamerkan hasil program C-Lab ke ajang CES 2020. Ini dia proyek dan…

December 30, 2019