Pada tutorial kali ini akan dijelaskan cara menghubungkan intel galileo dengan Geeknesia.

Siapkan Alat dan bahan yang diperlukan.

  1. Intel Galileo.
  2. Arduino IDE.
  3. Kabel Usb (Uploader).
  4. Kabel Jumper.


Gambar di bawah ini adalah 2 type Intel Galileo:



Intel Galileo                                                                                        Intel Galileo Gen 2

Tahap 1

Sebelum masuk ke tahap pembuatan aplikasi pastikan anda telah mempunyai akun geeknesia.com, Jika telah memiliki akun, LOG IN kemudian Create ProjectCreate Gateway, dan Create Device.


Tahap 2
Install Arduino IDE versi 1.6.5, Klik disini untuk download Arduino IDE versi 1.6.5.
Jika sudah terinstall buka Arduino IDE pilih Tool=>Board=>Board Manager


Jika sudah ter-install , untuk settingan board pilih lah Intel Galileo atau Intel Galileo Gen 2 sesuai hardware yang anda gunakan.


Tahap 3


Masukan code di bawah ini:

   

#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

// Update these with values suitable for your network.
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 88 };

const int buttonPin = 4;
int buttonState=1;
int flag=0;
int counter=0;
int prev =0;
int sendMQTT = 0;
bool conn_ok;
char message_buff[200];

EthernetClient ethClient;
PubSubClient client("geeknesia.com", 1883, callback, ethClient);  //Address geeknesia
void callback(char* topic, byte* payload, unsigned int length) {
}

void setup()
{
  system("ifup eth0");
  delay(10000); //wait for accessing sensor
  Serial.begin(9600);
   pinMode(4, INPUT);
    if (Ethernet.begin(mac) != 1) {
    Ethernet.begin(mac,ip);
  }
   delay(1000);
  Serial.println("connecting...");
  while (client.connect("device-6d9284456b3925220fe630fc2a4xxxxx","iot/will",0,0,"device-6d9284456b3925220fe630fc2a4xxxxx") != 1) 
  {
    Serial.println("Error connecting to MQTT1");
    delay(2000);
  }
  //Serial.println("Setup complete");
  counter=counter-1;
}
void senddata(char* topic,char* credential, char *var1, int nilai1 ){
  String pubString = "{\"code\":\"";
  pubString += credential;
  pubString +="\",";
  pubString +="\"attributes\":{\"";
  pubString +=String(var1)+"\":\""+nilai1+"\"";
  pubString +="}}";
  char message_buff[pubString.length()+1];
  pubString.toCharArray(message_buff, pubString.length()+1);
  Serial.println(message_buff);
  client.publish("iot/data",message_buff);
}
void loop()
{
if (!client.connected()){
     client.connect("device-4bc078183078e67b2d7e8d77452xxxxx",NULL,NULL,"iot/will",2,64,"device-4bc078183078e67b2d7e8d77452xxxxx");
  }
 buttonState = digitalRead(buttonPin);
  if (buttonState!=prev){
    prev = buttonState;
    if (buttonState==0){ 
      if (flag == 0){
        counter=counter+1;
        Serial.println(counter);
        senddata("device-4bc078183078e67b2d7e8d77452xxxxx","603161d27af11206824adb7a6xxxxx:0166f36a8e804849d3024d8e4xxxxxxx","Count",counter);
        flag=1;
          if(sendMQTT == 1){
              conn_ok = client.connected();
          }
          if (conn_ok == 0){            //no connection, reconnect
              client.disconnect();
          }
      }
      else{
        flag=0;
      }
  }
  }
} 

   

Tahap 4

Rangkailah Intel Galileo seperti gambar di bawah ini:

  1. Masukan SD Card jika ada.
  2. Masukan kabel power.
  3. Kemudian kabel USB.


Kemudian upload yang telah dibuat, dan jika sukses buatlah rangkaian seperti gambar di bawah ini, pada intel galileo yang telah di isi program.



Tahap 5

Buka kembali geeknesia.com, dan LOG IN akun anda kemudian buka Project yang telah dibuatkan Gateway dan Device yang dibuat sebelumnya.


Tes aplikasi,Klik button yang telah dihubungkan ke Digital Input Intel Galileo, jika berhasil nilai yang terdisplay pada Geeknesia halaman IoT Management akan bertambah setiap klik button.