Sebelumnya: Tutorial Intel Galileo – Bagian 1: Membuat Tempat Duduk Sehat
Perakitan
Komponen-komponen yang digunakan pada perakitan proyek HealthySeat ini adalah papan Intel Galileo dan beberapa komponen yang ada pada Grove Starter Kit Plus yaitu adalah sebagai berikut:
- Button
- LCD RGB Backlight
- LED
- Light Sensor
- Relay
- Shield
Untuk memulai perakitan, langkah pertama adalah memasang komponsen Shield ke papan Intel Galileo (hati-hati dengan pinnya karena mudah bengkok).
Selanjutnya kita hubungkan komponen Button ke pin D4 dan komponen LED ke pin D8 di Shield yang sudah dipasang.
Kemudian hubungkan komponen LCD ke pin I2C dan komponen Light Sensor ke pin A0
Lalu hubungkan komponen Smart Relay ke pin D7. Relay juga terhubung dengan baterai dan lampu sebagai alat penerangan otomatis.
Setup Koneksi Galileo ke PC
Setelah selesai proses perakitan komponennya, sekarang saatnya kita melakukan sedikit koding. Pertama-tama kita harus mengatur Galileo agar dapat terkoneksi dengan PC / laptop Windows yang digunakan.
Ada 2 file utama yang dibutuhkan agar Galileo dapat terhubung dengan komputer Windows yaitu:
- Arduino IDE yang dapat diunduh di link ini
- Windows Developer Program for IoT – Microsoft Installer, untuk dapat mengunduh harus mendaftar terlebih dahulu di connect.microsoft.com/windowsembeddedIoT kemudian bergabung dengan Windows Developer Program for IoT dan selesaikan surveinya. Nanti pada tab download akan tampil sebagai berikut:
Setelah semua siap, pasang kabel Power ke Galileo dan hubungkan juga Galileo ke komputer dengan menggunakan kabel mini-USB to USB (selalu hubungkan Power terlebih dahulu baru yang lain).
Buka Device Manager dan pada control panel akan terdapat seperti berikut ini:
Hal ini menandakan driver belum tersedia. Solusinya adalah klik kanan pada Gadget Serial v2.4 lalu pilih Update Driver Software, lalu pilih “Browse my computer from driver software” dan navigasikan ke lokasi Arduino IDE yang telah diekstrak. Jika sukses maka akan muncul Galileo (COM#) pada bagian Ports (COM & LPT).
Coding
Jalankan Arduino IDE dan selalu konfigurasikan agar sesuai untuk Intel Galileo yang terhubung seperti yang terlihat di gambar di bawah ini:
Setelah semua siap maka dapat menuliskan skrip koding berikut:
//Memasukkan library #include <Wire.h> #include "rgb_lcd.h" //Mendeklarasikan variabel rgb_lcd lcd; const int pinButton = 4; const int pinRelay = 7; const int pinLED = 8; const int sensorLight = 0; const int timeLimit = 15; int timeLast; int timeMillis; int timeNow; void setup() { //Memberikan nilai pinMode(sensorLight, INPUT); pinMode(pinButton, INPUT); pinMode(pinRelay, OUTPUT); pinMode(pinLED, OUTPUT); //Menjalankan LCD dan mencetak string lcd.begin(16, 2); lcd.clear(); lcd.setCursor(2,0); lcd.print("Healthy Seat"); lcd.setRGB(255, 255, 255); delay(3000); } void loop() { //Membaca masukkan sensor int buttonState = digitalRead(pinButton); int lightVal = analogRead(sensorLight)+210; //Saat button dalam posisi HIGH if (buttonState == HIGH){ //Menjalankan penghitung waktu timeNow = timeMillis - timeLast; timeMillis = millis()/1000; //Jika waktu masih di bawah batas if (timeNow <= timeLimit){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Ambient Light is"); //Ketika Light Sensor mendapatkan nilai kurang dari if (lightVal < 500){ lcd.setCursor(0,1); lcd.print("Too Dark"); digitalWrite(pinRelay, HIGH); digitalWrite(pinLED, HIGH); delay(1000); digitalWrite(pinLED, LOW); } //Ketika Light Sensor mendapatkan nilai lebih dari else if (lightVal > 950){ lcd.setCursor(0,1); lcd.print("Bright Enough"); digitalWrite(pinRelay, LOW); delay(150); } else { lcd.setCursor(0,1); lcd.print("Bright Enough"); digitalWrite(pinLED, LOW); delay(150); } } //Saat waktu lebih dari batas. LCD menjadi kedip if (timeNow > timeLimit){ lcd.setCursor(0,0); lcd.print("You sit too long"); lcd.setCursor(0,1); lcd.print("Go have a break"); lcd.setRGB(255, 0, 0); delay(500); lcd.setRGB(255, 255, 255); delay(500); } } //Jika button dalam posisi LOW else if (buttonState == LOW){ //Mematikan Relay dan mencetak string digitalWrite(pinRelay, LOW); lcd.clear(); lcd.setCursor(1,0); lcd.print("Being Healthy"); lcd.setCursor(4,1); lcd.print("is Good"); timeLast = millis()/1000; delay(500); } }
Uji Coba
Compile terlebih dahulu untuk melakukan pengecekan kesalahan, jika semua sudah benar baru bisa melakukan proses upload.
Skrip akan langsung aktif dan LCD pada Intel Galileo akan menyala dan menampilkan teks sebagai kondisi normal.
Untuk menguji lebih lanjut tekan komponen Button secara terus menerus yang menyebabkan teks pada LCD berubah menandakan skrip sedang berjalan.
Untuk menguji sensor cahaya, tutup sensor cahanya sehingga mendapatkan sedikit pencahayaan yang menyebabkan komponen Relay berubah kondisi mengaktifkan lampu. LED juga akan menyala sebagai pengganti jika tidak menyediakan lampu otomatis.
Saat batas waktu telah lewat maka LCD akan berkedip merah-putih untuk menghentikannya lepas komponen Button yang akan menyebabkan Galileo kembali ke kondisi normal dan seluruh lampu akan ikut mati.
Sebelumnya: Tutorial Intel Galileo – Bagian 1: Membuat Tempat Duduk Sehat
Selanjutnya: Tutorial Intel Galileo – Bagian 3: Membuat Casing