Tutorial Intel Galileo – Bagian 2: Perakitan & Koding


Intel Galileo - head

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).

01 - Memasang Shield ke Galileo

Selanjutnya kita hubungkan komponen Button ke pin D4 dan komponen LED ke pin D8 di Shield yang sudah dipasang.

02 - Menhubungkan Button dan LED

Kemudian hubungkan komponen LCD ke pin I2C dan komponen Light Sensor ke pin A0

03 - Menghubungkan LCD dan Light Sensor

Lalu hubungkan komponen Smart Relay ke pin D7. Relay juga terhubung dengan baterai dan lampu sebagai alat penerangan otomatis.

04 - Menghubungkan Smart Relay

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:

File yang Dibutuhkan untuk Menghubungkan Galileo ke Windows

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).

Pasang Galileo ke Komputer

Buka Device Manager dan pada control panel akan terdapat seperti berikut ini:

Device Manager

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:

Coding - 01

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.

Coding - 02

Skrip akan langsung aktif dan LCD pada Intel Galileo akan menyala dan menampilkan teks sebagai kondisi normal.

Uji Coba - 01

Untuk menguji lebih lanjut tekan komponen Button secara terus menerus yang menyebabkan teks pada LCD berubah menandakan skrip sedang berjalan.

Uji Coba - 02

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.

Uji Coba - 03

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