Mengontrol Arduino Uno dengan Rantonesia Padlock

thumb-ArduinoRantonesia

Rantonesia Padlock (RPadLock)  tidak lebih dari sebuah aplikasi android remote control sederhana. Perbedaannya  RPadLock dapat mengontrol device (thing) asalkan device tersebut terhubung dengan Geeknesia. Dengan kata lain RPadLock merupakan aplikasi android yang universal dan dedicated untuk Geeknesia.

Pada kali ini kita akan mencoba untuk mengontrol Arduino Uno dengan RPadlock.

Untuk dapat mengontrol perangkat Arduino anda yang harus dipersiapkan adalah hal-hal berikut :

  1. Aplikasi Rantonesia Padlock yang dapat diunduh di : http://www.rantonic.com/page/9/Rantonesia
  2. Arduino Uno development board 1pc.
  3. Arduino Ethernet Shield 1 pc.
  4. LED 1 pc.
  5. Resistor bernilai 470 ohm 1 pc.
  6. Router yang telah terkoneksi dengan internet.
  7. Kabel ethernet (UTP CAT5).
  8. Kabel USB untuk download program Arduino dan sumber Power supply 5VDC.

ArduinonesiaShieldCloud

Langkah-langkah yang harus dikerjakan adalah :

  1. Pasang Arduino Ethernet Shield pada board Arduino anda dan lakukan wiring dengan rangkaian berikut ini :AduinonesiaWiring
  2. Buka Arduino IDE dan copy-kan sketch berikut :File .ino dapat di unduh di :  http://www.rantonic.com/page/10/ardunesia
    #include <SPI.h>
    #include <Ethernet.h>
     
    // Setting network(IP Address).
    byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED }; //Sesuaikan...
    byte ip[]     = { 192, 168, 0, 2 }; //Sesuaikan dengan IP address anda
    byte gateway[]  = { 192, 168, 0, 1 };//Sesuaikan dengan IP address gateway anda
    char server[] = "api.geeknesia.com";
    unsigned long counter=0L;
    unsigned int charcount=0, index=0, curlcount=0;
    char parsing[] = {0, 0, 0, 0};
    int intdb;
    int LedPin=3;
    EthernetClient ethClient;
    
    void setup() {
        Serial.begin(9600);
        Ethernet.begin(mac, ip, gateway);
        Serial.print("My IP address: ");
        Serial.println(Ethernet.localIP());
        pinMode(LedPin,OUTPUT); //Set sebagai output
        digitalWrite(LedPin,HIGH); //Kondisi off
      }
    
    void loop() {
    
        if (ethClient.available())
        {
          char c = ethClient.read();  
          Serial.print(c);
          if ((charcount>=29) && (c!='}'))
          {
             parsing[index]=c;
             index++;
             
          }
          
          charcount++;
          
          if (c=='}')
           {
             curlcount++; 
              if (curlcount>=3)
              {
                //Serial.println(); 
                //Serial.print(parsing);
                intdb=atoi(parsing); 
               
                Serial.println(); 
                Serial.print(intdb);
                
                intdb = intdb & 0x08; // Nilai integer di AND-kan dengan 00000100
                
                //Serial.println(); 
                //Serial.print(intdb)
                
                if (intdb==8) digitalWrite(LedPin,LOW);  
                else digitalWrite(LedPin,HIGH);  
                
                curlcount=0;
                index=0;
                charcount=0;
                
                parsing[0]=0;  //Bersih2 memori...
                parsing[1]=0;  //Bersih2 memori...
                parsing[2]=0;  //Bersih2 memori...
                parsing[3]=0;  //Bersih2 memori...
    
              } 
            } 
    
        }
    
        counter++;
       if (counter==65535L)
       {
         counter=0L;
         Serial.print("\nhttpRequest...");
         httpRequest();
       }
    
    }
     
    /////////////////////////////////////////////////////////////////
    
    void httpRequest() 
    {
      ethClient.stop();
      ethClient.connect(server,80);
      Serial.println("connecting");
      delay(1000);
      if (ethClient.connected()) 
       {     
         Serial.println("connected");
         ethClient.println("GET http://api.geeknesia.com/api/attribute/RN?api_key=Geeknesia_API_key_anda");
         ethClient.println(" HTTP/1.1");
         ethClient.println("Host: api.geeknesia.com");
         ethClient.println("X-Auth-Token: My Token");
         ethClient.println("Connection: close");
         ethClient.println(); 
       }
       
       else
       {
         Serial.println("connection failed");
       }
    }

    Perhatikan bahwa attribute name harus tetap RN. Pada contoh sketch di atas pengujian nilai bit adalah dengan melakukan operasi logika AND dengan 0x08 heksadesimal karena pada hardware Arduino dihubungkan dengan digital output nomor 3. Anda dapat mengaktifkan kontrol seluruh digital output Arduino sebanyak 10 bit yang berkorelasi dengan RPadlock dengan melakukan teknik yang sama untuk masing-masing bit. Operasikan data yang diperoleh dengan 0x01 heksadesimal untuk menguji bit 0, 0x02 heksadesimal untuk menguji bit 1, 0x04 desimal untuk menguji bit 2 dan seterusnya sampai bit ke-9.

  3.  Compile dan Upload sketch di atas ke hardware Arduino anda.Install  aplikasi Rantonesia Padlock (RPadlock) pada smartphone anda.

    DISCLAIMER

    Baca disclaimer Rantonesia Padlock pada artikel Rantonesia  PadLock | (Android Apps) Universal IoT based Remote Control

  4. Buka aplikasi RPadlock isi Geeknesia api key anda sesuai dengan api key yang anda peroleh dari Geeknesia (pada saat pertama di-install aplikasi akan otomatis meminta anda untuk mengisi Geeknesia API key. Untuk selanjutnya anda harus meng-klik tombol SET pada keypad RPadlock. Anda dapat memperbaharui atau mengubah Geeknesia API key anda kapan saja). Tekan tombol SAVE maka aplikasi akan kembali ke keypad utama.
  5. Coba nyalakan LED pada arduino anda dengan menekan tombol 3 pada keypad RPadlock.
  6. Tadaaaa…! …..dunia dalam genggaman anda….LED akan menyala dan keypad akan berubah menjadi warna kuning.Untuk mematikan LED tekan kembali tombol 3 pada keypad RPadlock maka LED akan mati dan keypad akan berubah kembali menjadi warna merah.
  7.  Apabila koneksi internet kurang baik dapat ditambahkan perintah delay secukupnya pada potongan program berikut :
    counter++;
       if (counter==65535L)
       {
         counter=0L;
         Serial.print("\nhttpRequest...");
         httpRequest(); 
         delay(2000);
       }

    Video : https://www.youtube.com/watch?v=tkqfh8sx_CY

    Selamat berkreasi…!


Artikel di atas dapat dilihat pula di www.geeknesia.com

Leave a Reply

Your email address will not be published. Required fields are marked *