Jumat, 16 September 2016

Oke bro, selamat datang bagi semua pengunjung yang sedang mampir di blog ini.
Berjumpa kembali di awal Bulan September 2016 yang semoga lebih menjadi penuh semangat :)
Intermezzo : MPU6050 adalah sensor sudut dan percepatan atau biasa disebut gyrometer. Sama seperti kebanyakan sensor lain, MPU6050 perlu dikalibrasi sebelum digunakan. Kinerja gyrometer ini sangat terpengaruh terhadap suhu, jadi pastikan suhu stabil terlebih dahulu sebelum melakukan proses kalibrasi. Beri jarak waktu antara 3 sampai dengan 5 menit setelah power on agar suhu stabil. 

Atau bila kalian ingin kenal lebih jauh tentang MPU6050, silahkan klik Datasheet MPU6050
Dengan MPU6050, kita dapat membuat banyak project. Contohnya: Self Balancing Robot, Kontrol Motor DC CW/CCW, dan lain lain sesuai dengan kreatiifitas dan kebutuhan ente.
Dan pada Tutorial Arduino kali ini, kita akan mencoba MPU6050 untuk mengontrol derajat putar motor servo dengan arduino dan memanfaatkan Y axis yang ada pada Modul MPU6050.

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Servo
  • 1x MPU6050 
  • Kabel jumper secukupnya
  • Breadboard (Project Board)
  • Library I2Cdev dan MPU6050, silahkan klik DOWNLOAD

 Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Pin 3,3V pada arduino dihubungkan ke VCC pada MPU6050
  • Pin GND pada arduino dihubungkan ke GND pada MPU6050
  • Pin A4 pada arduino dihubungkan ke SDA pada MPU6050
  • Pin A5 pada arduino dihubungkan ke SCL pada MPU6050
  • Pin 9 pada arduino dihubungkan ke Kabel Kuning Motor Servo
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Servo.h"

MPU6050 mpu;

int16_t ax, ay, az;
int16_t gx, gy, gz;

Servo myservo;

int val;
int prevVal;

void setup()
{
    Wire.begin();
    Serial.begin(38400);

    Serial.println("Initialize MPU");
    mpu.initialize();
    Serial.println(mpu.testConnection() ? "Connected" : "Connection failed");
    myservo.attach(9);
}

void loop()
{
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

    val = map(ay, -17000, 17000, 0, 179);
    if (val != prevVal)
    {
        myservo.write(val);
        prevVal = val;
    }

    delay(50);
}

NOTE : Perhatikan sketch pada baris berikut ini
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    val = map(ay, -17000, 17000, 0, 179);
Seperti yang kita tahu, sketch tersebut menggunakan Knob. Yang menggunakan nilai dari Y Axis yaitu hasil dari MPU6050 yang berskala -17000 sampai 17000 dan diubah jadi 0° sampai 180°.
val = map(ay, -17000, 17000, 0, 179)
Karena MPU6050 mempunyai 6 Axis, maka ente dapat menyesuaikan dan menggunakan yang ente butuhkan. ax, ay, az, gx, gy, atau gz dengan merubah text merah pada baris sketch diatas.

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Mengontrol Putaran Servo dengan GY-521 (MPU-6050)

Rabu, 31 Agustus 2016

Halo bro, berjumpa lagi dengan saya di gubuk tempat kita berkumpul, sharing dan belajar ini.
Apa kabar kalian semua? semoga masih dalam keadaan baik dan semoga berbahagia.

Artikel yang saya tulis kali ini, adalah artikel lanjutan dan sekaligus artikel terakhir di Bulan Agustus 2016 ini yang masuk dalam kategori Teleduino series. Karena di bulan ini, ane sudah menyiapkan 5 buah artikel dasar untuk mencoba menghubungkan arduino dan teleduino. Untuk tingkatan yang lebih lanjut, ane harapkan ente semua yang sudah mencoba tutorial ini dapat mengembangkannya sehingga menjadi lebih kompleks dan rumit, serta dapat bermanfaat untuk digunakan atau di realisasikan dalam kehidupan sehari hari. Dan semoga masa depan Internet Of  Thing (IoT) akan menjadi lebih baik.

Di artikel Teleduino Series sebelumnya, kita sudah mencoba untuk Mengontrol Pin Digital Output Arduino via Internet, Mengontrol Pin Analog Output (PWM) Arduino via Internet, Memonitoring Pin Digital Input Arduino via Internet dan juga Memonitoring Pin Analog Input Arduino via Internet. Nah, sekarang sekarang kita akan mencoba untuk Mengontrol servo melalui internet. Tentunya dengan mengontrol servo melalui internet ini, dapat sangat bermanfaat bila dikembangkan untuk memudahkan pekerjaan yang akan kita lakukan / kerjakan.

Karena servo adalah penggerak mekanik, anda dapat memanfaatkannya sesuai kebutuhan dan keinginan anda. Contoh project yang bisa dilakukan adalah misalnya : Alat pemberi makan hewan yang dapat di kontrol melalui internet, Kunci pintu yang di kontrol melalui internet, dan lainnya sesuai dengan kreativitas dan imajinasi ente. Oke langsung disimak aja gan :)

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x Motor Servo
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

 Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini
Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin 5V Arduino ke Kabel Merah pada Servo
  • Hubungkan GND Arduino ke Kabel Hitam pada Servo
  • Hubungkan Pin 6 Arduino ke Kabel Kuning pada Servo
2.) Setelah itu ikuti video dibawah ini, dimulai dari awal sampai menit dan detik ke 6:33

3.) Jika sudah mengikuti tutorial hingga posisi video 6:33, lanjut untuk membuat aplikasi android.


Membuat Aplikasi Android Servo Teleduino:
1.) Pertama, DOWNLOAD terlebih dulu layout yang sudah saya buat (Atau bikin sendiri).
2.) Buka website App Inventor 2, lalu klik project dan Import project (.aia) dan pilih file tadi.


3.) Bila sudah, susunlah blok pemograman yang sudah saya buat, seperti gambar dibawah ini


Klik LIHAT DONG untuk melihat penjelasan program
Penjelasan Blok Pemograman Aplikasi Servo Teleduino :

1.)  Diawal program, kita buat 2 buah variable untuk hasil slider dan diawali dengan 0 (Nol)
2.) Saat screen 1 terbuka, set label hasil slider 1 dan 2 sesuai dari nilai variable hasil slider
3.) Bila button 6 ditekan, maka get url dari text Teleduino dan Textbox untuk defineServo
4.) Bila slider berubah posisi, set variable dan text hasil slider jadi nilai bulat posisi slider.
5.) Button Pos1 dan Pos2 untuk memutar servo sesuai dari nilai terakhir variable hasil slider.


Setelah semua selesai, maka akan seperti video dibawah ini

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Kontrol Servo melalui Internet dengan Arduino & Teleduino

Jumat, 26 Agustus 2016

Halo bro, berjumpa lagi dengan saya di gubuk tempat kita berkumpul, sharing dan belajar ini.
Apa kabar kalian semua? semoga masih dalam keadaan baik dan semoga berbahagia.

Artikel yang saya tulis kali ini, adalah artikel lanjutan dan sekaligus artikel ke-empat di Bulan Agustus 2016 ini yang masuk dalam kategori Teleduino series. Karena di bulan ini, ane sudah menyiapkan 5 buah artikel dasar untuk mencoba menghubungkan arduino dan teleduino. Untuk tingkatan yang lebih lanjut, ane harapkan ente semua yang sudah mencoba tutorial ini dapat mengembangkannya sehingga menjadi lebih kompleks dan rumit, serta dapat bermanfaat untuk digunakan atau di realisasikan dalam kehidupan sehari hari. Dan semoga masa depan Internet Of  Thing (IoT) akan menjadi lebih baik.

Di artikel Teleduino Series sebelumnya, kita sudah mencoba untuk Mengontrol Pin Digital Output Arduino via Internet, Mengontrol Pin Analog Output (PWM) Arduino via Internet dan juga Memonitoring Pin Digital Input Arduino via Internet. Nah, sekarang sekarang kita akan mencoba untuk Memonitoring Pin Analog Input Arduino (ADC) via Internet. Tentunya dengan memonitoring pin input arduino melalui internet ini, dapat sangat bermanfaat untuk kehidupan.

Contoh umumnya saja: Kita sedang pergi keluar kota atau keluar negeri, kita dapat memonitoring suhu ruangan, kadar gas dalam ruangan, kadar asap, kelembapan tanah, pendeteksi kebakaran, dan lain lainnya yang ada dirumah kita melalui Internet! Tentu saja kita tidak perlu repot untuk mengetahui hasil semua sensor tersebut, kita hanya perlu terhubung ke internet dan membuat aplikasi androidnya untuk memonitoring semua hasil sensor yang sudah kita pasangkan di area rumah kita tersebut dan dimanapun posisi kita berada (selama masih ada internet) kita bisa mengetahui semua informasi hasil sensor di rumah kita. Keren bukan? Oke daripada bertele-tele, mari langsung saja kita simak dan praktikkan tutorial dibawah ini gan :)


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x Potensiometer 10K
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini

Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin 5V Arduino pada salah satu kaki potensio
  • Hubungkan Pin GND Arduino pada salah satu kaki potensio
  • Hubungkan Pin A0 Arduino pada kaki tengah potensio
2.) Setelah itu ikuti video dibawah ini, dimulai dari awal sampai menit dan detik ke 6:33

3.) Jika sudah mengikuti tutorial hingga posisi video 6:33, lanjut untuk membuat aplikasi android.


Membuat Aplikasi Android di App Inventor 2:
1.) Pertama, DOWNLOAD terlebih dulu layout yang sudah saya buat (Atau bikin sendiri).
2.) Buka website App Inventor 2, lalu klik project dan Import project (.aia) dan pilih file tadi.


3.) Bila sudah, susunlah blok pemograman yang sudah saya buat, seperti gambar dibawah ini

Penjelasan Blok Pemrograman Aplikasi Android :

Klik LIHAT DONG untuk melihat penjelasan program
Penjelasan Blok Program Android :

1.) Pertama kita buat terlebih dahulu variable analoginput dan juga membuat list kosong.
2.) Apabila aplikasi dibuka / screen1 terbuka, set Clock1 false (Tidak aktif menghitung).
3.) Button untuk enable atau disable Clock1 untuk pergantian data di label hasilInput.
4.) Bagian untuk get Request URL Teleduino tiap waktu yang telah ditentukan pada Clock1
5.) Menampilkan hasil decode JsonText dari responContent dan ambil value pada pin A0

Setelah semua selesai, maka akan seperti dibawah ini

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Baca Analog Input Pin Arduino melalui Internet (Teleduino)

Sabtu, 20 Agustus 2016

Halo sobat BoArduino, berjumpa kembali di kesempatan yang semoga berbahagia ini.
Sekarang, saat saya menulis ini adalah hari Sabtu Malam di Bulan Agustus pada Tahun 2016.
Belum lama, beberapa hari kemarin kita merayakan Hari Ulang Tahun Rebublik Indonesia yang ke 71. Banyak cara yang dapat dikerjakan untuk memperingati hari tersebut, yaitu dengan Lomba, Cerdas cermat, dan lainnya. Dan khusunya untuk yang masih berjiwa muda, tetaplah kobarkan api semangat di dalam dada. Semangat belajar dan semangat dalam hal hal yang positif, untuk menghargai jasa para Pahlawan yang sudah me-merdeka kan kita semua sehingga dapat belajar dengan tenang tanpa ada gangguan dari manapun! Selamat Ulang Tahun Indonesia, semoga semakin jaya!

Langsung saja ya gan, artikel yang ane tulis kali ini masih ada sangkut pautnya dengan 2 artikel yang di publikasikan pada Bulan Agustus 2016 ini, yaitu Arduino Ethernet Shield dan Teleduino. Dan bagi kalian yang sudah membaca artikel sebelumnya, kita telah mencoba mengontrol output digital dan pwm arduino melalui internet. Nah, sekarang kita akan mencoba untuk memonitoring pin input arduino melalui internet. Pin input yang yang kali ini akan kita coba untuk di monitoring adalah pin digital input dari arduino, kita dapat melihat status terakhir pin input tersebut apakah berlogika LOW/HIGH. Untuk pengembagan lebih lanjut, dapat diaplikasikan untuk memonitoring banyak sensor digital melalui internet. Sedangkan untuk memonitoring analog pin input dari arduino, akan di posting next time ya gan, setelah artikel ini.

Misalkan : Memonitoring sensor PIR, untuk mendeteksi pergerakan yang ada di dalam rumah. Dan nantinya kita dapat mengetahui kalau ada pergerakan tersebut, walaupun kita sedang tidak ada dirumah, misalkan diluar kota. Selanjutnya, bebas kita akan melakukan apa untuk merespon hasil input dari sensor tersebut, contohnya kita bisa saja menambahkan button untuk menyalakan alarm yang ada dirumah kita dari jarak jauh, agar orang yang tidak kita kehendaki tersebut menjauh dari area rumah kita.! Yuk lah langsung saja disimak biar gak penasaran, hehe


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x Tacticle Switch (Button)
  • 1x Resistor 10K Ohm
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin 5V Arduino pada salah satu kaki Button
  • Hubungkan Pin GND Arduino pada salah satu kaki Button
  • Hubungkan Pin 3 Arduino pada salah satu kaki Button
2.) Setelah itu ikuti video dibawah ini, dimulai dari awal sampai menit dan detik ke 6:33

3.) Jika sudah mengikuti tutorial hingga posisi video 6:33, lanjut untuk membuat aplikasi android.


Membuat Aplikasi Android di App Inventor 2 :
1.) Pertama, DOWNLOAD terlebih dulu layout yang sudah saya buat (Atau bikin sendiri).
2.) Buka website App Inventor 2, lalu klik project dan Import project (.aia) dan pilih file tadi.


3.) Bila sudah, susunlah blok pemograman yang sudah saya buat, seperti gambar dibawah ini


Klik LIHAT DONG untuk melihat penjelasan program 
Penjelasan Blok Pemograman Aplikasi Android :

1.) Diawal program, kita buat dahulu variable statusButton dan membuat list kosong.
2.) Saat Screen1 terbuka, maka kita awali Clock1 dengan False agar tidak langsung aktif.
3.) Kita buat 2 button untuk Start dan Stop Clock1 yang digunakan untuk pergantian data.
4.) Bagian untuk getAllinputs dari teleduino setiap waktu yang "ditentukan" pada Clock1
5.) Jika responCode 200 (OK), maka decode value Json Text dari getAllinputs Pin 3 Uno.
Jika value = 1 maka jadikan background Screen 1 merah, jika value = 0 jadi Warna Putih.

Setelah semua selesai, maka akan seperti video dibawah ini

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Baca Digital Input Pin Arduino melalui Internet (Teleduino)

Sabtu, 13 Agustus 2016

Halo bro, gan dan sis, berjumpa lagi kita pada hari minggu yang semoga berbahagia ini, Amiin.
Selamat weekend ya sob, terus semangat untuk menjalani rutinitas kehidupan sampai akhir.

Pada artikel kali ini, kita masih bermain dengan Arduino dan Ethernet shield untuk mengontrol Arduino melalui internet. Karena kebetulan juga sekarang Internet Of Things (IoT) sedang berkembang di tanah air dan disebut-sebut juga Internet Of Things (IoT) meresap hampir di setiap aspek kehidupan masyarakat luas, mulai dari kesehatan, transportasi, hingga keperluan rumah tangga. Banyak yang memprediksi bahwa pengaruh Internet Of Things (IoT) akan menjadi konsep yang sangat berpengaruh dan sulit dipisahkan dari kehidupan sehari-hari, sebab konsep Internet Of Things (IoT) menawarkan banyak potensi yang bisa memberi keuntungan pada berbagai jenis industri.

Contoh sederhana manfaat dan implementasi dari Internet Of Things (IoT) adalah transportasi umum yang dapat dilacak keberadaannya oleh pengguna melalui ponsel. Sementara itu, contoh sederhana di dunia industri adalah pemberitahuan via SMS, website ataupun email mengenai stok barang apa saja yang jumlah persediaannya sudah menipis dan perlu ditambah.

Karena pada artikel sebelumnya kita sudah pernah mencoba mengontrol pin Digital output arduino, maka sekarang kita akan mencoba mengimplementasikan Internet Of Thing (IoT) dengan Arduino dan Ethernet shield untuk mengontrol pin PWM (Pulse Width Modulation) arduino melalui internet. Dan artikel selanjutnya di blog ini, kita juga akan mencoba untuk memonitoring sensor sensor melalui internet dengan Arduino Ethernet Shield dan Teleduino!


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x LED (Warna bebas)
  • 1x Resistor 220 Ohm
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin GND Arduino pada Resistor yang terhubung ke Katoda LED
  • Hubungkan Pin 9 Arduino pada Anoda LED
2.) Setelah itu ikuti video dibawah ini, dimulai dari awal sampai menit dan detik ke 6:33


3.) Jika sudah mengikuti tutorial hingga posisi video 6:33, lanjut untuk membuat aplikasi android.


Membuat Aplikasi Android di App Inventor 2:
1.) Pertama, DOWNLOAD terlebih dulu layout yang sudah saya buat (Atau bikin sendiri).
2.) Buka website App Inventor 2, lalu klik project dan Import project (.aia) dan pilih file tadi.


3.) Bila sudah, susunlah blok pemograman yang sudah saya buat, seperti gambar dibawah ini


Klik LIHAT DONG untuk melihat penjelasan program
Penjelasan Blok Pemograman Aplikasi Android :

1.) Pertama, buat terlebih dahulu variable hasilSlider dan awali nilai dengan 0 (Nol).
2.) Bila Screen1 terbuka, set label hasilSlider sesuai dengan nilai variable hasilSlider.
3.) Button pin9 berfungsi untuk mendifinisikan Pin 9 Arduino sebagai mode Output
4.) Jika posisi slider berubah, set nilai variable hasilSlider dan label = posisi terakhir slider.
5.) Bila button kirim di klik, get Request URL untuk setPwmOutput Teleduino

Setelah semua selesai, maka akan seperti video dibawah ini.

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Mengontrol Pin PWM Arduino melalui Internet (Teleduino)

Minggu, 31 Juli 2016

Halo bro dan sis, kita bertemu kembali di blog boarduino pada awal Bulan Agustus 2016 :)
Apa kabarnya nih gan? masih menikmati liburan atau sudah kembali beraktifitas normal?

Pada kesempatan hari ini, akhirnya ane bisa menyempatkan diri untuk sejenak membuka blogger dan mempublish artikel ini, karena sebelumnya mulai dari awal Bulan Juli 2016 kebetulan ane cukup banyak aktifitas yang mengharuskan ane diluar rumah, entah itu untuk mengerjakan tugas project kelompok, mudik lebaran 2016, dan urusan duniawi lainnya. 
Mohon maaf untuk agan & sista, yang sudah mengirimkan email, whatsapp, dan lainnya apabila belum direspon, karena ane juga hanya manusia biasa dan juga admin blog boarduino hanya ane sendiri, semua artikel dan konten di blog ini ane kerjakan sendirian. Mohon dimaklumi :)

Oke sudah dulu curhatnya, sekarang kita langsung menuju ke topik pembahasan saja. Di artikel kali ini, kita akan mencoba mengontrol relay melalui internet dengan arduino dan ethernet shield + teleduino. Mungkin ente sudah pernah melihat artikel tentang mengontrol relay dengan arduino dan ethernet shield via webserver di blog ini. Pada artikel itu, akses kita sangat terbatas. Mengapa? karena kita hanya bisa mengontrol apabila masih berada di area sekitar jaringan tersebut, dan kita tidak dapat kontrol dari jarak jauh darimana pun dan kapan pun kita berada.

Nah, maka dari itu sekarang kita akan menggunakan Teleduino sebagai jembatan untuk mengontrol arduino melalui internet, dimana pun dan kapan pun kita berada selama masih dapat mengakses internet maka kita dapat mengontrol arduino jarak jauh. sesuai dengan namanya, Teleduino (Tele artinya jauh, dan Duino artinya arduino). Langsung simak aja :)


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x Relay Modul
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

 Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin 5V Arduino ke VCC pada Relay Modul
  • Hubungkan GND Arduino ke GND pada Relay Modul
  • Hubungkan Pin 2 Arduino ke IN1 pada Relay Modul
  • Hubungkan Pin 3 Arduino ke IN2 pada Relay Modul
  • Hubungkan Pin 4 Arduino ke IN3 pada Relay Modul
  • Hubungkan Pin 5 Arduino ke IN4 pada Relay Modul
2.) Langkah kedua, silahkan tonton video dibawah ini sampai selesai dan coba pahami.


Apabila sudah mengikuti tutorialnya hingga selesai, maka akan seperti video dibawah ini

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Kontrol Relay melalui Internet dengan Arduino + Teleduino

Sabtu, 25 Juni 2016

Halo lagi nih bro, berjumpa lagi nih dengan ane di kesempatan yang semoga bahagia ini ya :) 
Gimana nih kabar? semoga tetap diberikan nikmat sehat ya gan, biar bisa terus semangat. 
Di hari ini, kita masih bermain - main dengan arduino dan ethernet shield nih. Setelah sebelumnya kita telah mencoba memulai dengan ethernet shield untuk menampilkan Input analog ataupun digital arduino pada web browser. Nah, kalau sekarang tidak jauh berbeda gan, kita sekarang akan mengontrol pin output dari arduino melalui web browser ente gan!


Di tutorial lainnya yang sudah ane publish di blog ini, mungkin sudah cukup banyak ya gan artikel tentang mengontrol relay dengan Arduino.  Ada yang via bluetooth dan lainnya. Nah kalau di artikel kali ini, kita juga akan mencoba menggunakan Ethernet shield untuk mengontrol relay yang terhubung pada pin output arduino melalui web server. Simak aja langsung deh :) 


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Ethernet Shield
  • 1x Relay Modul
  • Koneksi Internet
  • Kabel jumper secukupnya
  • Breadboard (Project Board)

 Langkah - Langkahnya :
1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Tancapkan Ethernet Shield pada Board Arduino
  • Hubungkan Pin 5V Arduino ke VCC pada Relay Modul
  • Hubungkan GND Arduino ke GND pada Relay Modul
  • Hubungkan Pin 2 Arduino ke IN1 pada Relay Modul
  • Hubungkan Pin 3 Arduino ke IN2 pada Relay Modul
  • Hubungkan Pin 4 Arduino ke IN3 pada Relay Modul
  • Hubungkan Pin 5 Arduino ke IN4 pada Relay Modul
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan klik upload.

Klik LIHAT DONG untuk melihat sketch Active HIGH
#include <SPI.h>
#include <Ethernet.h>
int relay1 = 2;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;

boolean statusR1, statusR2, statusR3, statusR4 = false;

String readString;
char c;
byte mac[] = {0xDA, 0xAD, 0xBE, 0xEB, 0xFE, 0xFB};
IPAddress ip(192, 168, 0, 182);
EthernetServer server(80);

void setup() {
 pinMode(relay1, OUTPUT);
 pinMode(relay2, OUTPUT);
 pinMode(relay3, OUTPUT);
 pinMode(relay4, OUTPUT);
 
 Serial.begin(9600);
 while (!Serial) { ; }
 Ethernet.begin(mac, ip);
 server.begin();
}

void loop() {
 EthernetClient client = server.available();
 if (client) {
   while (client.connected()) {   
     if (client.available()) {
       c = client.read();
       if (readString.length() < 100) {
         readString += c;
       }
 if (c == '\n') {
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println();     
 client.println("<HTML>");
 client.println("<HEAD>");
 client.println("<meta http-equiv=\"Refresh\" content=\"4; url=/wakwaw\" />");
 client.println("<meta http-equiv=\"Content-Type\" content=\"application/vnd.wap.xhtml+xml; charset=utf-8\" />");
 client.println("<link type=\"text/css\" rel=\"stylesheet\" href=\"http://haidao.mw.lt/js_css/css_pages.css\" />");
 client.println("<TITLE>Room Automation</TITLE>");
 client.println("</HEAD>");
 client.println("<BODY align=\"center\">");
 client.println("<h1>Penel Kontrol Ruang Kerja Andy182 </h1>");
 client.println("<hr />");
 client.println("<br />");
 client.println("<br />");
 client.println("<table align=\"center\"><tr>");
 client.println("<th width=\"10%\">Nama Perangkat</th>");
 client.println("<th width=\"10%\">Status Perangkat</th>");
 client.println("<th width=\"10%\">Saklar ON/OFF</th></tr>");
 client.println("<tr class=\"trh1\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 1");
 client.println("</td><td align=\"center\">");
 if (statusR1 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR1 == false) {
   client.println("<a href=\"/1on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/1off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh2\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 2");
 client.println("</td><td align=\"center\">");
 if (statusR2 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR2 == false) {
   client.println("<a href=\"/2on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/2off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh1\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 3");
 client.println("</td><td align=\"center\">");
 if (statusR3 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR3 == false) {
   client.println("<a href=\"/3on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/3off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh2\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 4");
 client.println("</td><td align=\"center\">");
 if (statusR4 == false) {
    client.println("<b>MATI</b>");
 } else {
    client.println("<b>HIDUP</b>");
 }
 client.println("</td><td align=\"center\">");
 if (statusR4 == false) {
    client.println("<a href=\"/4on\" />HIDUP</a>");
 } else {
    client.println("<a href=\"/4off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("</BODY>");  
 delay(1);
 client.stop();
          
 if (readString.indexOf("1on") >0){
   digitalWrite(relay1, HIGH);
   statusR1 = true;
 }
 if (readString.indexOf("1off") >0){
   digitalWrite(relay1, LOW);
   statusR1 = false;
 }
 if (readString.indexOf("2on") >0){
   digitalWrite(relay2, HIGH);
   statusR2 = true;
 }
 if (readString.indexOf("2off") >0){
   digitalWrite(relay2, LOW);
   statusR2 = false;
 }
 if (readString.indexOf("3on") >0){
   digitalWrite(relay3, HIGH);
   statusR3 = true;
 }
 if (readString.indexOf("3off") >0){
   digitalWrite(relay3, LOW);
   statusR3 = false;
 }
 if (readString.indexOf("4on") >0){
   digitalWrite(relay4, HIGH);
   statusR4 = true;
 }
 if (readString.indexOf("4off") >0){
   digitalWrite(relay4, LOW);
   statusR4 = false;
 }
 readString=""; } } } } }

Klik LIHAT BRAY untuk melihat sketch Active LOW
#include <SPI.h>
#include <Ethernet.h>
int relay1 = 2;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;

boolean statusR1, statusR2, statusR3, statusR4 = false;

String readString;
char c;
byte mac[] = {0xDA, 0xAD, 0xBE, 0xEB, 0xFE, 0xFB};
IPAddress ip(192, 168, 0, 182);
EthernetServer server(80);

void setup() {
 pinMode(relay1, OUTPUT);
 pinMode(relay2, OUTPUT);
 pinMode(relay3, OUTPUT);
 pinMode(relay4, OUTPUT);
 digitalWrite(relay1, HIGH);
 digitalWrite(relay2, HIGH);
 digitalWrite(relay3, HIGH);
 digitalWrite(relay4, HIGH);
 
 Serial.begin(9600);
 while (!Serial) { ; }
 Ethernet.begin(mac, ip);
 server.begin();
}

void loop() {
 EthernetClient client = server.available();
 if (client) {
   while (client.connected()) {   
     if (client.available()) {
       c = client.read();
       if (readString.length() < 100) {
         readString += c;
       }
 if (c == '\n') {
 client.println("HTTP/1.1 200 OK");
 client.println("Content-Type: text/html");
 client.println();     
 client.println("<HTML>");
 client.println("<HEAD>");
 client.println("<meta http-equiv=\"Refresh\" content=\"4; url=/wakwaw\" />");
 client.println("<meta http-equiv=\"Content-Type\" content=\"application/vnd.wap.xhtml+xml; charset=utf-8\" />");
 client.println("<link type=\"text/css\" rel=\"stylesheet\" href=\"http://haidao.mw.lt/js_css/css_pages.css\" />");
 client.println("<TITLE>Room Automation</TITLE>");
 client.println("</HEAD>");
 client.println("<BODY align=\"center\">");
 client.println("<h1>Penel Kontrol Ruang Kerja Andy182 </h1>");
 client.println("<hr />");
 client.println("<br />");
 client.println("<br />");
 client.println("<table align=\"center\"><tr>");
 client.println("<th width=\"10%\">Nama Perangkat</th>");
 client.println("<th width=\"10%\">Status Perangkat</th>");
 client.println("<th width=\"10%\">Saklar ON/OFF</th></tr>");
 client.println("<tr class=\"trh1\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 1");
 client.println("</td><td align=\"center\">");
 if (statusR1 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR1 == false) {
   client.println("<a href=\"/1on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/1off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh2\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 2");
 client.println("</td><td align=\"center\">");
 if (statusR2 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR2 == false) {
   client.println("<a href=\"/2on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/2off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh1\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 3");
 client.println("</td><td align=\"center\">");
 if (statusR3 == false) {
   client.println("<b>MATI</b>");
 } else {
   client.println("<b>HIDUP</b>");
 }
   client.println("</td><td align=\"center\">");
 if (statusR3 == false) {
   client.println("<a href=\"/3on\" />HIDUP</a>");
 } else {
   client.println("<a href=\"/3off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("<tr class=\"trh2\"><td align=\"left\">");
 client.println(" ");
 client.println(" ");
 client.println("Relay 4");
 client.println("</td><td align=\"center\">");
 if (statusR4 == false) {
    client.println("<b>MATI</b>");
 } else {
    client.println("<b>HIDUP</b>");
 }
 client.println("</td><td align=\"center\">");
 if (statusR4 == false) {
    client.println("<a href=\"/4on\" />HIDUP</a>");
 } else {
    client.println("<a href=\"/4off\" />MATI</a>");
 }
 client.println("</td></tr>");
 client.println();
 client.println("</BODY>");  
 delay(1);
 client.stop();
          
 if (readString.indexOf("1on") >0){
   digitalWrite(relay1, LOW);
   statusR1 = true;
 }
 if (readString.indexOf("1off") >0){
   digitalWrite(relay1, HIGH);
   statusR1 = false;
 }
 if (readString.indexOf("2on") >0){
   digitalWrite(relay2, LOW);
   statusR2 = true;
 }
 if (readString.indexOf("2off") >0){
   digitalWrite(relay2, HIGH);
   statusR2 = false;
 }
 if (readString.indexOf("3on") >0){
   digitalWrite(relay3, LOW);
   statusR3 = true;
 }
 if (readString.indexOf("3off") >0){
   digitalWrite(relay3, HIGH);
   statusR3 = false;
 }
 if (readString.indexOf("4on") >0){
   digitalWrite(relay4, LOW);
   statusR4 = true;
 }
 if (readString.indexOf("4off") >0){
   digitalWrite(relay4, HIGH);
   statusR4 = false;
 }
 readString=""; } } } } }

NOTE : Ubah 192.168.0.182 dan sesuaikan IP Adress pada sketch.


Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Kontrol Relay dengan Arduino dan Ethernet Shield