Anda di halaman 1dari 12

Smart Door Bell

ESP8266 Menggunakan Arduino IDE


(MQTT Publish Data ke Geeknesia Platform)
Part 1. Alat dan Bahan yang diperlukan.

ESP8266-12

FTDI

Kabel

Perlengkapan Solder

Resistor 220

Push Button

LED

Bread Board

Part 2. Registrasi Device di Geeknesia


Sebelum memulai ada beberapa yang perlu diperhatikan baik dari software maupun hardware
diantaranya:

Pastikan sudah memiliki akun Geeknesia, Jika belum, ikuti cara registrasi seperti dibawah ini:
Step 1
Buka Link www.Geeknesia.com kemudian buatlah akun baru, isilah kolom Your First Name,
Your Last Name dan Your Email, kemudian klik Sign Up for Geeknesia, tunggu sampai
mendapatkan konfirmasi registrasi ke email anda.

Gambar Registrasi Step 1 Main Screen Geeknesia.


Step 2
Jika sudah mendapatkan konfirmasi, lakukan Sign In dengan cara klik icon Sign In pada pojok
kanan atas halaman, maka akan muncul tampilan seperti di bawah ini.

Gambar Registrasi Step 2 Login to Geeknesia.

Masukan email dan password yang telah anda terima di email kemudian klik LOGIN , jika
berhasil login berarti akun anda sudah bisa dipakai.

Tahap berikutnya, lakukan proses Create Device , untuk menginput data device ke program
yang akan dibuat seperti username,password dan lain-lain, dengan mengikuti step di bawah
ini:
Step 1
Untuk membuat device baru, klik +Add New Device

Gambar Create Device Step 1 Add New Device.


Step 2
Kemudian lengkapi kolom seperti Name, Description, Device Type, Icon (sesuai keinginan),
dan penempatan device anda di Map.

Gambar Create Device Step 2 Add New Device.


Isi Address klik get location atau klik posisi pada Map, untuk menentukan letak penempatan
device anda, Isilah Is Public dengan nilai True untuk ditampilkan di publik.
Step 3
Setelah membuat device baru maka akan tertampil seperti gambar di bawah ini ,

Informasi yang tertampil merupakan kredensial dari device anda yang terdiri dari : Device
ID, Username, Password, APIKey, dan Published Topic, yang nantinya akan dibutuhkan saat
membuat program .
Catatan!! Rahasiakan ID Device anda untuk mencegah terjadinya pemakaian id device
oleh developer lain yang bisa menyebabkan error-nya data pada device anda.

Gambar Create Device Step 3 Details of Device.

Pada daftar device anda akan muncul device baru yang telah dibuat dan siap digunakan, klik
Details untuk melihat kembali Id Device anda , klik Edit untuk edit device dan Delete untuk
menghapus device anda.

Gambar Create Device Step 3 Status of Device.

Part 3. Persiapan Hardware Programming

Lakukan download software di link di bawah ini (ada 5 files):


https://www.dropbox.com/sh/58sfaxxpbhnnt5m/AACeO0HKRGLuYmMZG7Y3z_eda?dl=0
o Arduino-1.6.5-r2-windows.exe
o pubsubclient-master.zip
o ESP8266 Menggunakan Arduino IDE.pdf
o BUTTON_PUBLISH.ino
o Wiring.jpg
Taruhlah ketiga files ini di folder C:/GE , jikalau folder belum ada, lakukanlah create folder GE
terlebih dahulu.
Lakukan Installasi Software Arduino IDE Vesi 1.6.5
Bukalah file Arduino-1.6.5-r2-windows.exe
Jika sudah terInstalll buka program Arduino IDE
Lalu klik => File => Preference

Gambar 1 Klik Preference.

Kemudian tambahkan link dibawah ini pada kolom Additional Board Manager URLs :
http://arduino.esp8266.com/staging/package_esp8266com_index.json

Gambar 2 Input Package ESP8255.

Lalu buka Tools => Board => Board Manager


Kemudian pilihlah ESP8266 by ESP8266 Community, lalu klik Installl.

Gambar 3 Install ESP tool.

Setelah selesai melakukan proses Installl ESP tool dan sebelum meneruskan ke tahap
programming, kita membutuhkan library pendukung, yakni pubsubclient-master.zip yang
sudah kita download terlebih dahulu
Buka Sketch => Include Library => Add ZIP Library

Gambar 4 Add Library

Kemudian pilih library berbentuk format Zip yang sudah anda download di C:/GE

Gambar 5 Select File MQtt Library format Zip .

Wiring Hardware (ESP8266 to FTDI)


Buatlah rangkaian seperti gambar dibawah ini untuk mlakukan upload program. Settingan
jumper di FTDI harus di 5V. Apabila FTDI driver belum terinstall, bisa dipatkan di
http://www.ftdichip.com/FTDrivers.htm

Gambar 6 Wiring ESP8266 ke FTDI Mode Upload.

Part 4. Hardware Programming


Source code di bawah adalah code yang dibuat untuk mematikan dan menyalakan lampu
(LED) yang terhubung dengan Digital Output 02 menggunakan sebuah press button yang
juga terhubung dengan Digital Input 12. Status lampu tersebut akan dikirimkan ke Cloud
Platform Geeknesia : www.Geeknesia.com.
Untuk melakukan upload Jangan lupa!! Lakukan Tools -> Board, lalu pilihlah NodeMCU
0.9(ESP-12 Module) untuk jenis modul ESP yang dipakai pada percobaan kali ini.

Gambar 7 Setting Konfigurasi Board.

Upload source code di bawah ini ke ESP8266 yang telah di wiring. Atau bukalah file
Button_Publish.ino yang telah didownload sebelumnya terletak di folder C:/GE

// Inisialisasi dan Deklarasi


#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char *ssid = "SSID"; //SSID Wifi
const char *pass = "KEY"; //Pass Wifi
int buttonState = 0;
String flag;
// Device
Device details (Ganti detail device di bawah dengan detail device yang anda punya)
char deviceId[] = "device-8d7dc14bf6cf010d1d06a98f6712xxxx";
char deviceUsername[] = "cc9b84861eff1bed4a599a4e94a7xxxx";
char devicePassword[] = "e72dc6860e6a6de16ceaac0fbc92xxxx";
String deviceCredential = String(deviceUsername) + ":" + String(devicePassword);
// IP address Geeknesia
IPAddress server(54, 179, 149, 183);
WiFiClient wclient;
PubSubClient client(wclient, server);
// Pada code bagian ini adalah untuk men-setup code yang akan dieksekusi adapun set
// baud rate dan menetukan pin untuk dijadikan input ataupun output
void setup () {
Serial.begin(115200);
pinMode(2, OUTPUT);

pinMode(12, INPUT_PULLUP);
}
// Fungsi mengirim data terdapat pada bagian ini (Publish)
void senddata(char topic[],String credential, String var1, String 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);
client.publish("iot/data",pubString);
}
// Pada bagian ini dibuat agar code terus berjalan(running/looping)
void loop() {
// Jika Wifi disconnect maka akan ter-print (.) pada serial print Arduino IDE
if (WiFi.status() != WL_CONNECTED) {
Serial.print("Connecting to ");
Serial.print(ssid);
Serial.println("...");
WiFi.begin(ssid, pass);
// Dan jika wifi disconnect maka code akan looping di bagian cek wifi ini,
// dan sebaliknya jika connect maka code akan melanjutkan
if (WiFi.waitForConnectResult() != WL_CONNECTED)
return;
Serial.println("WiFi connected");
}
if (WiFi.status() == WL_CONNECTED) {
if (!client.connected()) {
if (client.connect(deviceId, "iot/will",0,0,deviceId)) {
}
}
if (client.connected())
client.loop();
}
// Program Button
buttonState = digitalRead(12);
if (buttonState == 1) {
digitalWrite(2, LOW);
flag="OFF";
}
else {
// turn LED off:
digitalWrite(2,HIGH);
flag="ON";
}
senddata(deviceId,deviceCredential,"Lamp", flag);

delay(5000);
}
Isilah SSID dan Key sesuai dengan Wifi Network anda :
const char *ssid = "SSID"; //SSID Wifi
const char *pass = "KEY"; //Pass Wifi
Lalu isilah deviceId, deviceUsername, devicePassword sesuai dengan kredential device
yang anda dapatkan ketika melakukan Add Device di Geeknesia :
char *deviceId = "device-8d7dc14bf6cf010d1d06a98f6712xxxx";
char *deviceUsername = "cc9b84861eff1bed4a599a4e94a7xxxx";
char *devicePassword = "e72dc6860e6a6de16ceaac0fbc92xxxx";

Setelah itu, lakukan UPLOAD Program ke module ESP ini. Apabila sukses, maka
akan Done Upload.

Setelah proses Upload tersebut berhasil, Cabutlah module FTDI dari module ESP. lalu
rangkaikanlah sesuai diagram di bawah ini. Catatan Penting!! Setelah Upload program
berhasil, lepaslah jumper hitam yang terletak di samping (di PCB tertulis PROG, yakni
GPIO 0 ke Ground).

Gambar 8 Wiring ESP8266 ke Led dan Button


Tips : Jika pada saat pengetes-an ESP-12 tidak menyala dengan normal (not connected)
wiring power terlebih dahulu tanpa beban (led & button) , jika Esp sudah ON sambungkan ke
beban (led & button).

Part 5. Function Test


Setelah step di atas sudah dilakukan coba buka www.Geeknesia.com kemudian pilih City Space
pada menu bar dan klik icon device anda.

Gambar 8 Device Posisi OFF.

Gambar 9 Device posisi ON.

Terlihat di gambar connected menyatakan bahwa device telah connect ke Geeknesia dan
status Lamp: ON dan Lamp: OFF menandakan bahwa status device di hardware ON atau
OFF, untuk lebih meyakinkan cobalah klik button yang tersambung dengan ESP-12 jika status
hardware dan Geeknesia sama maka percobaan berhasil.

Anda mungkin juga menyukai