Anda di halaman 1dari 12

Home ▼

Friday, 14 August 2015

Kontrol Relay dengan Arduino dan ESP8266


Web Server
Halo sahabat Boarduino, kita berjumpa lagi di hari Selasa dibulan
Agustus 2015.
Waktu berlalu setiap detik, semoga kita bisa memanfaatkan waktu sebaik
mungkin ya bro. Dengan terus belajar, semoga kedepannya kita dapat
bermanfaat buat orang lain, Amiin.

Dikesempatan kali ini kita akan mengontrol Relay dengan Arduino melalui
Webserver, atau bisa juga disebut Menyalakan lampu melalui Internet,
Tetapi kali ini hanya melalui jaringan lokal saja bukan dari jaringan publik
bro. Tapi jangan khawatir bro, project kita selanjutnya adalah
menyalakan lampu atau mengontrol relay melalui internet dengan
arduino, dan kita dapat mengontrol relay tersebut dari manapun di muka
bumi ini... Wuihhh keren pastinya! coba bayangkan ente lagi berkunjung
ke Negara tetangga, lalu ente mematikan peralatan listrik dirumah anda
dari jarak jauh, Awesome!

Perkembangan teknologi memang cukup pesat ya, dan kita selalu saja
merasa tertinggal, maka dari itu kita harus terus bersemangat
mengejarnya bro, agar kita tak tertinggal semakin jauh.
Okelah, langsung saja bro kalau begitu... mari kita simak dan praktekkan
Tutorial kali ini!

Alat dan Bahan yang dibutuhkan :


1x Arduino Compatible
1x ESP8266 Wifi Module

1x Relay Modul 4 Channel

Kabel jumper secukupnya

Breadboard (Projectboard)

Koneksi Internet (WiFi)

Aplikasi Android yang bernama ESPduino, silahkan anda


DOWNLOAD DISINI

Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar berikut ini

Keterangan Konfigurasi Kabel Arduino ke ESP8266 :


Pin 3.3V pada Arduino dihubungkan ke VCC di ESP8266

Pin 3.3V pada Arduino dihubungkan ke CH_PD di ESP8266

Pin GND pada Arduino dihubungkan ke GND di ESP8266

Pin 10 pada Arduino dihubungkan ke UTXD di ESP8266

Pin 11 pada Arduino dihubungkan ke URXD di ESP8266


2.) Setelah rangkaian diatas selesai, maka susunlah konfigurasi seperti
dibawah ini

Keterangan Konfigurasi Kabel Arduino ke Relay Modul :


Pin 5V pada Arduino dihubungkan ke VCC Relay modul

Pin GND pada Arduino dihubungkan ke GNDRelay modul

Pin 2 pada Arduino dihubungkan ke IN1 Relay modul


Pin 3 pada Arduino dihubungkan ke IN2 Relay modul

Pin 4 pada Arduino dihubungkan ke IN3 Relay modul

Pin 5 pada Arduino dihubungkan ke IN4 Relay modul


3.) Setelah itu sambungkan Arduino pada Laptop/PC dengan
menggunakan kabel serial.
4.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
5.) Setelah terinstall, jalankan program Arduino-nya.
6.) Klik menu "Tools -> Board -> Arduino Uno"
7.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di
komputer anda )
8.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch TUTUP

#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial esp8266(10,11);

void setup()
{
Serial.begin(9600);
esp8266.begin(9600);

pinMode(2,OUTPUT); // Pin 2 sebagai output


digitalWrite(2,LOW);

pinMode(3,OUTPUT); // Pin 3 sebagai output


digitalWrite(3,LOW);

pinMode(4,OUTPUT); // Pin 4 sebagai output


digitalWrite(4,LOW);

pinMode(5,OUTPUT); // Pin 5 sebagai output


digitalWrite(5,LOW);

sendCommand("AT+RST\r\n",2000,DEBUG); //reset
modul
sendCommand("AT+CWMODE=1\r\n",1000,DEBUG);
//Set sebagai akses point
// Ubah SSID "Andy182" dan Password "boarduino"
sesuai Wifi anda
sendCommand("AT+CWJAP=\"Andy182\",\"boarduino
\"\r\n",3000,DEBUG);
delay(10000);
sendCommand("AT+CIFSR\r\n",1000,DEBUG);
//Mendapatkan IP adress
sendCommand("AT+CIPMUX=1\r\n",1000,DEBUG); //Set
untuk beberapa koneksi
sendCommand("AT+CIPSERVER=1,80\r\n",1000,DEBUG);
//Server aktif di port 80
Serial.println("Server sudah siap!");
}

void loop()
{
if(esp8266.available()) // cek jika esp mengirim pesan
{
if(esp8266.find("+IPD,"))
{
delay(1000);
int connectionId = esp8266.read()-48;
esp8266.find("pin=");
int pinNumber = (esp8266.read()-48);
int secondNumber = (esp8266.read()-48);
if(secondNumber>=0 && secondNumber<=9)
{
pinNumber*=10;
pinNumber +=secondNumber;
}
digitalWrite(pinNumber, !digitalRead(pinNumber));
String content;
content = "Pin Arduino Nomor ";
content += pinNumber;
content += " Sedang ";
if(digitalRead(pinNumber))
{
content += "HIDUP";
}
else
{
content += "MATI";
}
sendHTTPResponse(connectionId,content);
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId;
closeCommand+="\r\n";
sendCommand(closeCommand,1000,DEBUG); //tutup
koneksi
}
}
}
String sendData(String command, const int timeout,
boolean debug)
{
String response = "";
int dataSize = command.length();
char data[dataSize];
command.toCharArray(data,dataSize);
esp8266.write(data,dataSize); // send the read character
to the esp8266
if(debug)
{
Serial.println("\r\n====== HTTP Respon Dari Arduino
======");
Serial.write(data,dataSize);
Serial.println("\r
\n=====================================
===");
}
long int time = millis();
while( (time+timeout) > millis())
{
while(esp8266.available())
{
char c = esp8266.read();
response+=c;
}
}
if(debug)
{
Serial.print(response);
}
return response;
}
void sendHTTPResponse(int connectionId, String content)
{
String httpResponse;
String httpHeader;
httpHeader = "HTTP/1.1 200 OK\r\nContent-Type:
text/html; charset=UTF-8\r\n";
httpHeader += "Content-Length: ";
httpHeader += content.length();
httpHeader += "\r\n";
httpHeader +="Connection: close\r\n\r\n";
httpResponse = httpHeader + content + " ";
sendCIPData(connectionId,httpResponse);
}
void sendCIPData(int connectionId, String data)
{
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend +=data.length();
cipSend +="\r\n";
sendCommand(cipSend,1000,DEBUG);
sendData(data,1000,DEBUG);
}
String sendCommand(String command, const int timeout,
boolean debug)
{
String response = "";
esp8266.print(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(esp8266.available())
{
char c = esp8266.read();
response+=c;
}
}
if(debug)
{
Serial.print(response); //Print respond di serial monitor
}
return response;
}

Sketch Pada baris berikut ini, ubah dan sesuaikan dengan SSID dan
Password Wifi anda

sendCommand("AT+CWJAP=\"Andy182\",\"boarduino
\"\r\n",10000);

Apabila menggunakan Aplikasi Android, ente hanya memasukkan IP


Address saja pada textbox yang tersedia dan dapat langsung mengontrol
Relaynya. Lain halnya bila tanpa aplikasi Android.

Berikut ini adalah perintah untuk mengaktifkan/menonaktifkan Relay


tanpa Aplikasi Android:
http://192.168.208.103/?pin=2 (Untuk ON/OFF Relay 1)

http://192.168.208.103/?pin=3 (Untuk ON/OFF Relay 2)

http://192.168.208.103/?pin=4 (Untuk ON/OFF Relay 3)


http://192.168.208.103/?pin=5 (Untuk ON/OFF Relay 4)
Keterangan :
192.168.208.103 (Ubah sesuai dengan IP Adress yang ente dapat
dari AT+CIFSR)

/?pin= (Biarkanlah saja seperti itu, atau bisa juga ente ubah pada
sketch)

2/3/4/5 (Ubah sesuai dengan port Arduino yang terhubung pada


Input Relay)

Arduino ESP8266 ...

Setelah semua selesai, maka akan seperti video simulasi diatas


Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Muhamad Andi Prasetyo at 2:33 p.m.

Share 0

22 comments:
Hafiz Arifin 17 September 2015 at 22:10
Selamat malam om....kalo misal saya ingin menyalakan led dengan
modul esp8266, arduino dengan android tanpa koneksi internet...bisa
tidak?atas penjelasannya terima kasih.... Hafizarifin2202@gmail.com
Reply

Replies

Muhamad Andi Prasetyo 19 September 2015 at 18:38


Salam kenal, sepertinya bisa dengan set ESP8266 sebagai
access point. Tetapi saya belum pernah mencobanya.

Reply

aine shity 18 September 2015 at 16:03


Makasih gan sebelumnya tentang yang menggunakan wifi esp8266. tapi
di artikel atas kurang jelas, tentang AT+CIFSR itu apa, dan bagaimana
pemberian IP untuk wifinya. terus yang dimaksud dengan password dan
SSID itu dari sebuah AP yang terkoneksi internet, atau wifi esp8266
tadi?
Reply

Replies

Muhamad Andi Prasetyo 19 September 2015 at 12:37


Iya sepertinya kurang begitu jelas, terimakasih sudah
mengingatkan ya mbak.
AT+CIFSR itu untuk mendapatkan IP Adress dengan AT
Commands Set, coba baca disini dulu mbak untuk AT
Commandnya dan tentang SSID dan Password http://goo.gl
/UHQjx2

Di link itu, di set dengan CWMODE 3. Kalau di tutorial yang


ente komentarin ini di set dengan CWMODE 2. Perbedaannya?
Cek datasheet ya.

ahmad athoillah 9 October 2015 at 13:12


bukannya CWMODE 1

Muhamad Andi Prasetyo 15 October 2015 at 14:23


Oh iya CWMODE 1 maksudnya, Terimakasih susah
membenarkan gan :)

Reply

Agus Heri Purnomo 21 September 2015 at 17:15


Bang,coba buat tutorial GSM control relay.
makasih.
Reply

Replies

Muhamad Andi Prasetyo 21 September 2015 at 23:28


Mudah kok gan, ya mungkin next time tutorialnya ada di blog
ini...

Reply

Poncos Fikti 27 September 2015 at 20:36


mau nanya gan, ane pake esp8266 12 ko ga bisa ya ? apa ada gpio yang
hrs dicolok ke gnd atau vcc ? atau firmwarenya harus diupdate ke yang
terbaru ? atau arus dari arduino kurang sehingga harus ditambah
sumber arus dari luar ? bingung pake yang seri 12 ga bisa bisa, bisanya
baru kirim pake atcomand doang
Reply

Replies

Muhamad Andi Prasetyo 9 October 2015 at 12:51


Bisa kok gan ESP8266 ESP-12 juga, coba dicari lagi
permasalahannya gan.

Reply

wahid agung 29 September 2015 at 07:57


om..mau nanya nh..kalo nyambungin listrik 220v ke ralaynya apa harus
pake komponen tambahan lagi ya, soalnya ane coba langsung
sambungin gitu aja relayku gak bertahan lama om..cuma beberapa kali
on/off langsung rusak...
Reply

Replies

Muhamad Andi Prasetyo 9 October 2015 at 13:12


Kalau ane sih gak pakai komponen tambahan, Relay aja dan
masih bertahan lama tidak cepat rusak... Mungkin tegangan
dari jala jala PLN ente gak stabil gan dan melebihi maksimal
tegangan relay.

Reply

Rizz-net Cybercafe 1 October 2015 at 13:56


Mas, saya udah ngikutin tutorial.
IP dah dapet, tp wifi nya gk ngerespon,

mohon pencerahannya
Reply

Replies

Muhamad Andi Prasetyo 9 October 2015 at 13:03


Salam kenal, Coba di debug aja... Tambahkan serial print untuk
melihat apakah pertintahnya terkirim atau tidak, atau cek juga
mungkin Kabel RX dan TX terbalik gan.

Reply

miftahur rozak 8 October 2015 at 11:50


menyalakan lampu dg internetnya d tunggu gan hehehe
Reply

Replies

Muhamad Andi Prasetyo 9 October 2015 at 12:13


Oke gan, masih On process di garap nih... Agak lama
selesainya karena kebetulan tugas ane masih numpuk jadi
belum sempat dilanjutkan. Tunggu saja ya gan! :)

Reply
indra ciwulusan 8 October 2015 at 22:46
Mungkin penjelesan pembuatan app android di appinventor bida
dijelaskan juga spy bisa dibuat sesuai dengan kebutuhan masing2.
Terima kasih pak.
Reply

Replies

Muhamad Andi Prasetyo 9 October 2015 at 12:10


insyaAllah kalau ada waktu dibuatkan... Terimakasih sudah
berkunjung dan meninggalkan komentar :)

Reply

indra ciwulusan 9 October 2015 at 14:55


pak mau nanya saat saya cek ip esp8266 AT+CIFSR=

+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"5e:cf:7f:00:54:27"

+CIFSR:STAIP,"192.168.1.2"
+CIFSR:STAMAC,"5c:cf:7f:00:54:27"

yg pertama IP esp dan yg kedua IP wifi. mau pake yg mana pak buat di
app android..
bdw udah coba dua2 masih ga ada respon. kalo at command udah OK
semua.. tolong penjelasannya.
Reply

Replies

Muhamad Andi Prasetyo 15 October 2015 at 14:39


Yang ini buat di aplikasi android

+CIFSR:STAIP,"192.168.1.2"
+CIFSR:STAMAC,"5c:cf:7f:00:54:27"

Kalau tidak ada respon, cek kembali baudratenya atau kabel


RX dan TX mungkin terbalik.

Reply
RIRIN ANJELINA 12 October 2015 at 14:23
Tutorialnya kurang jelas bos..mohon lebih rinci biar pengunjung gak
bingung...
Reply

Replies

Muhamad Andi Prasetyo 15 October 2015 at 14:34


Terimakasih masukannya mbak, nanti insyaAllah saya update
biar lebih jelas lagi :)

Reply

Add comment

Masih Bingung atau Hal Lainnya? Silahkan


Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa
Berkomentar.

Apabila Komentar anda belum muncul, Tunggu


sampai di Moderasi.
Terimakasih atas Perhatiannya.

‹ Home ›
View web version

Powered by Blogger.

Tentang Admin
Muhamad Andi Prasetyo
Follow 0

View my complete profile

Anda mungkin juga menyukai