MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI...

Post on 02-Mar-2019

235 views 0 download

Transcript of MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI...

MODUL

SISTEM KENDALI JARAK

JAUH

Dr. Eng. Mokh. Sholihul Hadi

Universitas Negeri Malang

2017

Modul 1

2

Monitoring suhu dengan smarthone android via Arduino dan Bluetooth

HC-05

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x IC LM35 (Sensor Suhu)

• 1x Modul Bluetooth HC-05 / HC-06

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi android Arduino Bluetooth

Langkah - Langkahnya :

1.) Pertama, Susunlah rangkaian untuk bluetooth ini pada breadboard

Keterangan Konfigurasi Kabel Rangkaian Bluetooth :

3

• Pin 5V pada Arduino dihubungkan ke VCC

• Pin GND pada Arduino dihubungkan ke GND

• Pin RX pada Arduino dihubungkan ke TXD Bluetooth modul

• Pin TX pada Arduino dihubungkan ke RXD Bluetooth modul

2.) Lalu, setelah itu susunlah rangkaian seperti gambar berikut ini.

Keterangan Konfigurasi Kabel :

• Pin VCC pada IC LM35 dihubungkan ke Pin 5V pada Arduino

• Pin OUT pada IC LM35 dihubungkan ke Pin A0 pada Arduino

• Pin GND pada IC LM35 dihubungkan ke Pin GND pada Arduino

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"

4

7.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda

)

8.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

float temp; //Membuat hasil suhu dengan bilangan desimal

int temperaturePin = 0; //Mendefinisikan Output dari IC LM35 ke Analog input

void setup() {

Serial.begin(38400); //Sesuaikan dengan Baudrate Modul Bluetooth anda!

}

void loop() {

temp = analogRead(temperaturePin);

temp = temp * 0.48828125; //Hasil LM35 dikali 0.48828125 (Dari Datasheet)

Serial.print(temp); //Tampilkan hasil suhu sebenarnya

delay(1000); //Pergantian hasil suhu setiap 1 detik

}

mit app inventor

5

Modul 2

6

Mengontrol nyala mati

lampu dengan perintah

suara

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x Bluetooth modul HC-06 / HC -05

• 4x Resistor 330 Ohm

• 4x LED ( Warna Bebas )

• 1x Projectboard ( Breadboard )

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi android Boarduino.

Langkah - Langkahnya :

1.) Susunlah rangkaian berikut ini.

7

Keterangan Konfigurasi Kabel :

• Pin VCC pada Arduino dihubungkan ke Pin VCC pada HC-06 / HC-05

• Pin GND pada Arduino dihubungkan ke Pin GND pada HC-06 / HC-05

• Pin 10 pada Arduino dihubungkan ke Pin TX pada HC-06 / HC-05

• Pin 11 pada Arduino dihubungkan ke Pin RX pada HC-06 / HC-05

• Pin 2 pada Arduino dihubungkan ke Anoda LED 1

• Pin 3 pada Arduino dihubungkan ke Anoda LED 2

• Pin 4 pada Arduino dihubungkan ke Anoda LED 3

• Pin 5 pada Arduino dihubungkan ke Anoda LED 4

• Hubungkan semua katoda LED1 sampai LED4, lalu di jumper ke GND

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

8

)

7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

#include <SoftwareSerial.h>

SoftwareSerial BT(10, 11);

String perintah;

void setup() {

BT.begin(9600);

Serial.begin(9600);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

}

void loop() {

while (BT.available()) {

delay(10);

char c = BT.read();

perintah += c;

}

if(perintah.length() > 0) {

Serial.println(perintah);

// perintah dibawah ini dapat anda sesuaikan dengan perintah anda gan :v

if (perintah == "hidupkan lampu kamar tidur")

{ digitalWrite(2, HIGH); }

else if(perintah == "matikan lampu kamar tidur")

{ digitalWrite(2, LOW); }

9

else if(perintah == "hidupkan lampu kamar mandi")

{ digitalWrite(3, HIGH); }

else if(perintah == "matikan lampu kamar mandi")

{ digitalWrite(3, LOW); }

else if(perintah == "hidupkan kipas angin")

{ digitalWrite(4, HIGH); }

else if(perintah == "matikan kipas angin")

{ digitalWrite(4, LOW); }

else if(perintah == "hidupkan komputer")

{ digitalWrite(5, HIGH); }

else if(perintah == "matikan komputer")

{ digitalWrite(5, LOW); }

else if(perintah == "hidupkan semua")

{ digitalWrite(2, HIGH);

digitalWrite(3, HIGH);

digitalWrite(4, HIGH);

digitalWrite(5, HIGH); }

else if(perintah == "matikan semua")

{ digitalWrite(2, LOW);

digitalWrite(3, LOW);

digitalWrite(4, LOW);

digitalWrite(5, LOW); }

perintah="";}}

10

Mengontrol servo dengan

android

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x Bluetooth modul ( HC-05 atau HC-06 juga boleh)

• 1x Motor servo

• 1x Project board ( Breadboard )

• Smartphone Android

• Aplikasi android Boarduino. Silahkan Download di Playstore DOWNLOAD

• Kabel jumper secukupnya

Langkah - Langkahnya :

1.) Susunlah rangkaian berikut pada breadboard

11

Keterangan Konfigurasi Kabel :

• Pin 5V pada arduino dihubungkan ke VCC modul bluetooth

• Pin GND pada arduino dihubungkan ke GND pada modul bluetooth

• Pin 10 pada arduino dihubungkan ke TX pada modul bluetooth

• Pin 11 pada arduino dihubungkan ke RX pada modul bluetooth

• Pin 9 pada arduino dihubungkan ke kabel kuning Servo

• Kabel merah pada servo di jumper ke 5V ( Tegangan positif )

• Kabel hitam pada servo di jumper ke GND ( Tengangan negatif )

12

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. #include <SoftwareSerial.h>

#include <Servo.h>

Servo myservo;

int bluetoothTx = 10;

int bluetoothRx = 11;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup() {

myservo.attach(9);

Serial.begin(9600);

bluetooth.begin(9600);

}

void loop() {

if(bluetooth.available()> 0 )

{

int servopos = bluetooth.read();

Serial.println(servopos);

myservo.write(servopos);

}

}

13

Modul 4

14

Mengendalikan mobil RC

dengan android

Tutorial Arduino kali ini adalah Mengontrol Motor DC dengan Arduino dan Android,

dan yang kita kontrol adalah 2 buah Motor DC. Tutorial ini juga bisa anda jadikan

project Mobil Remot Android / Remot control yang bisa anda kendalikan melalu

bluetooth dan smartphone Android.

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x Bluetooth modul HC-06 / HC-05

• 1x IC L293D (Silahkan lihat datasheet L293D)

• 2x Motor DC / Motor Gearbox

• 2x Roda (Bila diperlukan)

• Project board / Breadboard

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi android Boarduino. Silahkan Download di Playstore DOWNLOAD

Langkah - Langkahnya :

1.) Susunlah konfigurasi kabel seperti dibawah ini.

15

Keterangan Konfigurasi Kabel :

• Pin 5V pada Arduino dihubungkan ke pin VCC modul bluetooth HC05/HC06

• Pin GND pada Arduino dihubungkan ke pin GND modul bluetooth

HC05/HC06

• Pin RX pada Arduino dihubungkan ke pin TXD modul bluetooth HC05/HC06

• Pin TX pada Arduino dihubungkan ke pin RXD modul bluetooth HC05/HC06

16

• Pin 3 pada Arduino dihubungkan ke kaki 2 pada IC L293D

• Pin 4 pada Arduino dihubungkan ke kaki 7 pada IC L293D

• Pin 6 pada Arduino dihubungkan ke kaki 1 pada IC L293D

• Pin 8 pada Arduino dihubungkan ke kaki 10 pada IC L293D

• Pin 9 pada Arduino dihubungkan ke kaki 15 pada IC L293D

• Pin 11 pada Arduino dihubungkan ke kaki 9 pada IC L293D

• Kaki 4 dan 5 pada IC L293D di jumper ke GND

• Kaki 12 dan 13 pada IC L293D di jumper ke GND

• Kaki 8 dan 16 pada IC L293D di jumper ke VCC

• Kaki 3 dan 6 pada IC L293D dihubungkan ke Motor DC Kiri

• Kaki 11 dan 14 pada IC L293D dihubungkan ke Motor DC Kanan

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.

Klik LIHAT DONG untuk melihat sketch

/*

* Mengontrol 2 Motor DC dengan Android

* Tutorial Arduino ~ http://www.boarduino.blogspot.com

*/

int motor1Pin1 = 3;

int motor1Pin2 = 4;

int enable1Pin = 6;

17

int motor2Pin1 = 8;

int motor2Pin2 = 9;

int enable2Pin = 11;

int state;

int flag=0;

int stateStop=0;

void setup() {

// Set Motor DC sebagai output:

pinMode(motor1Pin1, OUTPUT);

pinMode(motor1Pin2, OUTPUT);

pinMode(enable1Pin, OUTPUT);

pinMode(motor2Pin1, OUTPUT);

pinMode(motor2Pin2, OUTPUT);

pinMode(enable2Pin, OUTPUT);

// Set Enable pada 2 buah Motor DC

digitalWrite(enable1Pin, HIGH);

digitalWrite(enable2Pin, HIGH);

// inisialisasi komunikasi serial

Serial.begin(9600);

}

void loop() {

// Jika data diterima, maka dimasukkan ke variabel state

if(Serial.available() > 0){

state = Serial.read();

flag=0;

}

// Jika state = F, maka Motor DC bergerak maju

if (state == 'F') {

digitalWrite(motor1Pin1, HIGH);

18

digitalWrite(motor1Pin2, LOW);

digitalWrite(motor2Pin1, LOW);

digitalWrite(motor2Pin2, HIGH);

if(flag == 0){

Serial.println("MAJU TAK GENTAR!");

flag=1;

}

}

// Jika state = L, maka Motor DC berbelok ke kiri

else if (state == 'L') {

digitalWrite(motor1Pin1, HIGH);

digitalWrite(motor1Pin2, LOW);

digitalWrite(motor2Pin1, LOW);

digitalWrite(motor2Pin2, LOW);

if(flag == 0){

Serial.println("BELOK KIRI GAN!");

flag=1;

}

delay(1500);

state=3;

stateStop=1;

}

// Jika state = S, maka Motor DC akan berhenti

else if (state == 'S' || stateStop == 1) {

digitalWrite(motor1Pin1, LOW);

digitalWrite(motor1Pin2, LOW);

digitalWrite(motor2Pin1, LOW);

digitalWrite(motor2Pin2, LOW);

if(flag == 0){

19

Serial.println("BERHENTI DULU");

flag=1;

}

stateStop=0;

}

// Jika state = R, maka Motor DC berbelok ke kanan

else if (state == 'R') {

digitalWrite(motor1Pin1, LOW);

digitalWrite(motor1Pin2, LOW);

digitalWrite(motor2Pin1, LOW);

digitalWrite(motor2Pin2, HIGH);

if(flag == 0){

Serial.println("BELOK KANAN GAN!");

flag=1;

}

delay(1500);

state=3;

stateStop=1;

}

// Jika state = B, maka Motor DC bergerak mundur

else if (state == 'B') {

digitalWrite(motor1Pin1, LOW);

digitalWrite(motor1Pin2, HIGH);

digitalWrite(motor2Pin1, HIGH);

digitalWrite(motor2Pin2, LOW);

if(flag == 0){

Serial.println("MUNDUR BUKAN BERARTI KEKALAHAN");

flag=1;

}

20

}

}

Konfigurasi Aplikasi Android Mobiduino :

Sketch diatas harus disesuaikan dengan Aplikasi Mobiduino, lihat keterangan pada

gambar.

Perhatikan pada sketch, ada baris code yang seperti berikut ini

if (state == 'F') // Maju

if (state == 'B') // Mundur

if (state == 'R') // Kanan

if (state == 'L') // Kiri

if (state == 'S') // Stop

21

Anda juga bisa memodifikasi dengan menambahkan Headlight (Lampu Depan) dan

juga dapat menambahkan Tail Lights (Lampu Belakang) pada Mobil remot anda,

dengan menyesuaikan tombol dari aplikasi Mobiduino dengan keterangan pada

gambar diatas.

MODUL 6

22

GSM SECURITY SYSTEM DENGAN ANDROID

GSM Security adalah sebuah aplikasi Android yang saya buat dan temasuk dalam

salah satu fitur yang ada di aplikasi Boarduino Total Control. Aplikasi GSM Security

ini ditujukan untuk Home Security System dengan Smartphone Android, aplikasi ini

dapat melakukan Panggilan Telepon atau mengirimkan SMS ke nomor tujuan tanpa

membutuhkan GSM Modul atau GSM Shield.

Next time akan saya posting juga Tutorial Home Security system dengan Arduino

dan Twitter bro, Prinsip kerjanya sama saja seperti GSM Security tetapi hanya jadi

lebih "Eksis" bro.

Oke langsung saja disimak dan di praktekkan gan Tutorialnya :)

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x PIR Sensor HC-SR501

• 1x Modul Bluetooth HC-05 / HC-06

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi android Boarduino. Silahkan Download di Playstore DOWNLOAD

Langkah - Langkahnya :

1.) Pertama, Susunlah rangkaian untuk bluetooth ini pada breadboard

23

Keterangan Konfigurasi Kabel Rangkaian Bluetooth :

• Pin 5V pada Arduino dihubungkan ke VCC

• Pin GND pada Arduino dihubungkan ke GND

• Pin RX pada Arduino dihubungkan ke TXD Bluetooth modul

• Pin TX pada Arduino dihubungkan ke RXD Bluetooth modul

2.) Lalu, setelah itu susunlah rangkaian seperti gambar berikut ini.

24

Keterangan Konfigurasi Kabel :

• Pin VCC pada PIR sensor dihubungkan ke Pin 5V pada Arduino

• Pin OUT pada PIR sensor dihubungkan ke Pin 2 pada Arduino

• Pin GND pada PIR sensor dihubungkan ke Pin GND pada Arduino

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

25

)

8.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

/*Arduino GSM Security ~ www.boarduino.blogspot.com */

const int pirSensorPin = 2; // Pir Sensor hubungkan ke Pin 2

int pirSensorState = 0; // Status saat pertama mulai = 0

void setup() {

Serial.begin(9600);

pinMode(pirSensorPin, INPUT); // Definisikan PIR sebagai input

}

void loop() {

pirSensorState = digitalRead(pirSensorPin);

if (pirSensorState == HIGH) { // Jika ada object didepan sensor = HIGH

Serial.println("1"); // Tampilkan angka 1 di serial monitor (Terdeteksi Object)

delay(3000); // Tunda 3 detik untuk mendeteksi object selanjutnya

}

}

26

MODUL 7

AUTOMATIC DOOR LOCK DENGAN QR CODE

ANDROID

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 2x LED (Merah dan Hijau)

• 2x Resistor 330 Ohm

• 1x LCD 16x2

• 1x Potensiometer 10K

• 1x Modul Bluetooth HC-05 / HC-06

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi Android QRduino DoorLock

Langkah - Langkahnya :

1.) Susunlah rangkaian seperti gambar berikut ini.

27

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 <LiquidCrystal.h>

/*

- lcd rs pin ke digital pin 12

- lcd enable pin ke digital pin 11

- lcd d4 pin ke digital pin 5

- lcd d5 pin ke digital pin 4

28

- lcd d6 pin ke digital pin 3

- lcd d7 pin ke digital pin 2

*/

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int indikatorLED = 6; // Indikator LED di pin 6

int relayDoorlock = 7; // Relay doorlock di pin 7

int statusRelay = 0; // Status relay di awali dengan 0

String readString;

void setup() {

Serial.begin(9600);

lcd.begin(16,2);

pinMode(relayDoorlock, OUTPUT); // Set Relay sebagai output

pinMode(indikatorLED, OUTPUT); // Set Indikator sebagai output

lcd.setCursor(2,0);

lcd.print("Pintu Sedang");

lcd.setCursor(4,1);

lcd.print("Terkunci");

digitalWrite(indikatorLED, HIGH); // Aktifkan Indikator Terkunci

}

void loop() {

statusRelay = digitalRead(relayDoorlock);

while (Serial.available()) {

delay(3);

char c = Serial.read();

readString += c;

}

if (readString.length() >0) {

29

Serial.println(readString);

if (readString == "6vevqreytodthh1p1isg") // Ubah dengan Random string ente

{

digitalWrite(relayDoorlock, HIGH); // Aktifkan relay selama 30 detik

digitalWrite(indikatorLED, LOW); // Aktifkan indikator Terbuka

lcd.setCursor(2,0);

lcd.print("Pintu Sedang");

lcd.setCursor(4,1);

lcd.print("Terbuka!");

delay(30000);

digitalWrite(relayDoorlock, LOW); // Setelah 30 detik, matikan relay

digitalWrite(indikatorLED, HIGH); // Aktifkan indikator Terkunci

lcd.setCursor(2,0);

lcd.print("Pintu Sedang");

lcd.setCursor(4,1);

lcd.print("Terkunci");

readString="";

}

}

}

Setelah selesai pada hardware, mari kita menuju ke software. Berikut ini adalah

langkah-langkah untuk membuat aplikasi android untuk Arduino, yang aplikasinya

saya beri nama QRduino.

MIT APP INVENTOR

30

31

MODUL 8

MENGONTROL NYALA LAMPU DENGAN

ANDROID VIA BLUE TOOTH

Alat dan Bahan yang dibutuhkan :

• 1x Arduino UNO

• 1x Bluetooth modul HC-06 / HC -05

• 4x Resistor 330 Ohm

• 4x LED ( Warna Bebas )

• 1x Projectboard ( Breadboard )

• Kabel jumper secukupnya

• Smartphone Android

• Aplikasi android Boarduino. Silahkan Download di Playstore DOWNLOAD

Langkah - Langkahnya :

1.) Susunlah rangkaian berikut ini pada breadboard.

32

Keterangan Konfigurasi Kabel :

• Pin VCC pada Arduino dihubungkan ke Pin VCC pada HC-06 / HC-05

• Pin GND pada Arduino dihubungkan ke Pin GND pada HC-06 / HC-05

• Pin RXD pada Arduino dihubungkan ke Pin TX pada HC-06 / HC-05

• Pin TXD pada Arduino dihubungkan ke Pin RX pada HC-06 / HC-05

• Pin 2 pada Arduino dihubungkan ke Anoda LED 1

• Pin 3 pada Arduino dihubungkan ke Anoda LED 2

• Pin 4 pada Arduino dihubungkan ke Anoda LED 3

• Pin 5 pada Arduino dihubungkan ke Anoda LED 4

• Hubungkan semua katoda LED1 sampai LED4, lalu di jumper ke GND

Apabila ente ingin mengganti LED dengan Relay Modul 5Volt, maka susunlah

seperti ini

33

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

char val;

void setup() {

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

Serial.begin(9600);

}

34

void loop() {

if( Serial.available() >0 ) {

val = Serial.read();

Serial.println(val);

}

if( val == '1' ) {

digitalWrite(2,HIGH); }

else if( val == '2' ) {

digitalWrite(3,HIGH); }

else if( val == '3' ) {

digitalWrite(4,HIGH); }

else if( val == '4' ) {

digitalWrite(5,HIGH); }

else if( val == '5' ) {

digitalWrite(2,HIGH);

digitalWrite(3,HIGH);

digitalWrite(4,HIGH);

digitalWrite(5,HIGH);

}

else if( val == 'A' ) {

digitalWrite(2,LOW); }

else if( val == 'B' ) {

digitalWrite(3,LOW); }

else if( val == 'C' ) {

digitalWrite(4,LOW); }

else if( val == 'D' ) {

digitalWrite(5,LOW); }

else if( val == 'E' ) {

digitalWrite(2,LOW);

digitalWrite(3,LOW);

35

digitalWrite(4,LOW);

digitalWrite(5,LOW);

}

}

36

MODUL 9 SMARTHOME SYSTEM DENGAN KONEKSI

INTERNET VIA ESP8266 DAN ANDROID

ALAT DAN BAHAN YANG DIBUTUHKAN :

• 1x Arduino UNO (Compatible) • 1x Modul ESP8266 • 1x Relay Modul • Breadboard / Projectboard • Kabel jumper secukupnya • Smartphone Android • Aplikasi Android Relay Control Internet di Playstore, silahkan klik DOWNLOAD

LANGKAH - LANGKAHYA : 1.) Download terlebih dahulu Flash Download Tools dan Firmware

2.) Setelah proses download selesai, upload lah terlebih dahulu sketch Arduino di bawah ini.

int ch_pd = 3;

int io0 = 2;

void setup() {

pinMode(ch_pd, OUTPUT);

pinMode(io0, OUTPUT);

digitalWrite(io0,LOW);

digitalWrite(ch_pd, LOW);

delay(1000);

digitalWrite(ch_pd, HIGH);

}

void loop() {

//Biarkan Kosong saja

}

3.) Langkah selanjutnya adalah, susunlah rangkaian seperti gambar dibawah ini.

37

KETERANGAN KONFIGURASI KABEL ARDUINO KE ESP8266 :

• Pin 3.3V pada Arduino dihubungkan ke VCC di ESP8266 • Pin GND pada Arduino dihubungkan ke GND di ESP8266 • Pin 2 pada Arduino dihubungkan ke GPIO0 di ESP8266 • Pin 3 pada Arduino dihubungkan ke CH_PD di ESP8266 • Pin RX pada Arduino dihubungkan ke RX di ESP8266 • Pin TX pada Arduino dihubungkan ke TX di ESP8266

4.) Setelah selesai merangkai, tancapkan Arduino pada port USB Komputer ente. 5.) Setelah itu, extract file yang telah anda download tadi 6.) Nah sekarang firmware telah diperbarui, sekarang ubah wiring diagram menjadi seperti ini.

38

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

7.) Setelah step nomor 6 selesai, maka susunlah konfigurasi seperti dibawah ini

KETERANGAN KONFIGURASI KABEL ARDUINO KE RELAY MODULE :

• Pin 5V pada Arduino dihubungkan ke VCC Relay modul

39

• 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

8.) Bila wiring untuk mengontrol Relay sudah selesai di rangkai, mari ke langkah selanjutnya. 9.) Kita buat channel di Web ThingSpeak.com untuk mendapatkan API Key dan Channel ID.

10.) Apabila channel sudah dibuat, anda copy paste Channel ID dan API Key anda ke Notepad. 11.) Setelah itu kita tambahkan library espduino, Buka Software Arduino lalu klik

Sketch > Include Library > Add .ZIP Library...

12.) Lalu pilih file espduino.zip dari folder yang ente download tadi, dan klik Open.

13.) Maka library espduino sudah berhasil ditambahkan pada software Arduino IDE ente.

14.) Setelah itu silahkan copy sketch dibawah ini dan pastekan pada Arduino IDE.

Klik LIHAT GAN untuk melihat sketch untuk Relay ACTIVE LOW

#include <SoftwareSerial.h>

#include <espduino.h>

40

#include <rest.h>

SoftwareSerial espPort(10, 11);

ESP esp(&espPort, &Serial, 9);

REST rest(&esp);

boolean wifiConnected = false;

const int relay1 = 2;

const int relay2 = 3;

const int relay3 = 4;

const int relay4 = 5;

boolean data1 = false;

boolean data2 = false;

boolean data3 = false;

boolean data4 = false;

int loop_count = 0;

char response[266];

char buff[64];

String strId,strData,strCode;

String strData_Last1,strData_Last2,strData_Last3,strData_Last4;

void(* resetFunc) (void) = 0;

void clearBuffer(void) {

for (int i = 0;i<266;i++ ) {

response[i]=0;

}

}

void wifiCb(void* response)

{

41

uint32_t status;

RESPONSE res(response);

if(res.getArgc() == 1) {

res.popArgs((uint8_t*)&status, 4);

if(status == STATION_GOT_IP) {

Serial.println("TERHUBUNG KE WIFI");

wifiConnected = true;

} else {

wifiConnected = false;

}

}

}

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);

espPort.begin(19200);

esp.enable();

delay(500);

esp.reset();

42

delay(500);

while(!esp.ready());

Serial.println("ARDUINO: Setup client");

if(!rest.begin("api.thingspeak.com")) {

Serial.println("ARDUINO: Gagal Setup client");

while(1);

}

Serial.println("ARDUINO: Menghubungkan dengan Wifi");

esp.wifiCb.attach(&wifiCb);

esp.wifiConnect("Andy182 Network","waipigratis");

Serial.println("ARDUINO: System sudah siap!");

}

void loop() {

loop_start:

esp.process();

if(wifiConnected) {

char str_field1[6] , str_field2[6] , str_field3[6] , str_field4[6];

sprintf(buff, "/channels/58419/fields/1/last");

Serial.println(buff);

rest.get((const char*)buff);

if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

strId = "";

strData = "";

strCode = "";

43

getData();

if (strData == "1" || strData == "1.0" || strData == "1.00" ){

digitalWrite(relay1,LOW);

data1 = true;

}

if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

digitalWrite(relay1,HIGH);

data1 = false;

}

}

else{

hardReset();

resetFunc();

}

delay(10000);

sprintf(buff, "/channels/58419/fields/2/last");

Serial.println(buff);

rest.get((const char*)buff);

if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

strId = ""; strData = ""; strCode = "";

getData();

if (strData == "1" || strData == "1.0" || strData == "1.00"){

digitalWrite(relay2,LOW);

data2 = true;

}

44

if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

digitalWrite(relay2,HIGH);

data2 = false;

}

}

else{

hardReset();

resetFunc();

clearBuffer();

goto loop_start;

}

delay(10000);

sprintf(buff, "/channels/58419/fields/3/last");

Serial.println(buff);

rest.get((const char*)buff);

if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

strId = ""; strData = ""; strCode = "";

getData(); // GET DATA

if (strData == "1" || strData == "1.0" || strData == "1.00"){

digitalWrite(relay3,LOW);

data3 = true;

}

if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

digitalWrite(relay3,HIGH);

data3 = false;

}

45

}

else{

hardReset();

resetFunc();

clearBuffer();

goto loop_start;

}

delay(10000);

sprintf(buff, "/channels/58419/fields/4/last"); // field x last Data

Serial.println(buff);

rest.get((const char*)buff);

if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

strId = ""; strData = ""; strCode = "";

getData(); // GET DATA

if (strData == "1" || strData == "1.0" || strData == "1.00"){

digitalWrite(relay4,LOW);

data4 = true;

}

if (strData == "0" || strData == "-1" || strData == "0.1" || strData == "0.10"){

digitalWrite(relay4,HIGH);

data4 = false;

}

}

else{

hardReset();

resetFunc();

46

clearBuffer();

goto loop_start;

}

delay(10000);

loop_count++;

Serial.println("LOOP : ");

Serial.println(loop_count);

if(loop_count == 6 ){

loop_count = 0;

if(data1) {

dtostrf(1, 1, 1, str_field1);

}else{

dtostrf(0.1, 2, 1, str_field1);

}

if(data2) {

dtostrf(1, 1, 1, str_field2);

}else{

dtostrf(0.1, 2, 1, str_field2);

}

if(data3) {

dtostrf(1, 1, 1, str_field3);

}else{

dtostrf(0.1, 2, 1, str_field3);

}

if(data4) {

dtostrf(1, 1, 1, str_field4);

}else{

dtostrf(0.1, 2, 1, str_field4);

}

47

sprintf(buff,

"//update?key=65OKK4T6SKM96AVO&field1=%s&field2=%s&field3=%s&field4=%s",str_field1,str_fi

eld2,str_field3,str_field4);

Serial.println(buff);

rest.get((const char*)buff);

Serial.println("ARDUINO: Mengirim data terbaru");

if(rest.getResponse(response, 266) == HTTP_STATUS_OK){

Serial.println("ARDUINO: Berhasil GET Data");

strId = ""; strData = ""; strCode = "";

getData();

}

delay(5000);

}

}

else{

}

}

void getData(){

int i=0,j=0,k=0;

for (i = 0; i < 10; i++){

if((response[i] == '\r') || (response[i] == '\n')) {

}

else{

strId += response[i];

}

48

if (response[i] == '\n'){

i++;

break;

}

}

Serial.println("");

Serial.print("ID : ");

Serial.print(strId);

for (j = i; j < (i+20); j++){

if((response[j] == '\r') || (response[j] == '\n')) {

}

else{

strData += response[j];

}

if (response[j] == '\n'){

j++;

break;

}

}

Serial.println("");

Serial.print("Data : ");

Serial.print(strData);

for (k = j; k < (j+10); k++){

if((response[k] == '\r') || (response[k] == '\n')) {

}

else{

49

strCode += response[k];

}

if (response[k] == '\n'){

break;

}

}

Serial.println("");

Serial.print("Code : ");

Serial.print(strCode);

Serial.println("");

}

boolean hardReset() {

String tmpData;

}

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

esp.wifiConnect("Andy182 Network","waipigratis");

Ubah sketch pada setiap semua di baris berikut ini sesuai dengan Channel ID thingspeak anda

sprintf(buff, "/channels/58419/fields/1/last"); // untuk field 1

sprintf(buff, "/channels/58419/fields/2/last"); // untuk field 2

sprintf(buff, "/channels/58419/fields/3/last"); // untuk field 3

sprintf(buff, "/channels/58419/fields/4/last"); // untuk field 4

Sketch pada baris ini, ubah dan sesuaikan dengan API Key dari Channel Thingspeak anda

sprintf(buff,

"//update?key=65OKK4T6SKM96AVO&field1=%s&field2=%s&field3=%s&field4=%s",str_field1,str_fi

eld2,str_field3,str_field4);

TAMBAHAN : ALUR PROGRAM APLIKASI ANDROID Bagi kalian yang ingin membuat sendiri aplikasi Android seperti Reconnet, silahkan di buat Blok Pemogramannya dengan App inventor 2, Ikuti saja Flow Chart Reconnet yang saya buat.

Silahkan klik gambar Download dibawah ini, lalu buka file tersebut dengan browser ente.

50

51

MODUL 10

Kendali peralatan listrik jarak jauh dengan

esp8266 dan android

Alat dan bahan:

• Wemos D1 Mini Board ini adalah board wifi kecil berbasis ESP8266.

ESP8266 dikenal sebagai modul WiFi yang handal, ekonomis dan

komunitas yang besar. ESP8266 inilah yang akan menghubungkan

perangkat kita dengan internet via WiFi. Ada banyak varian prototype

board berbasis ESP8266, seperti NodeMCU, Adafruit HUZZAH

ESP8266, ESPDuino, SparkFun ESP8266 Thing, dan Wemos. Kita

sebenarnya bisa langsung memprogram ESP8266 langsung tanpa

menggunakan yang breakout board. Tapi kali ini saya menggunakan

Wemos D1 Mini karena board ini adalah yang paling murah dan mudah

didapatkan dibanding board sejenisnya. Selain itu board

ini sudah dilengkapi dengan onboard microUSB dan Serial driver

sehingga tidak perlu lagi USB to TTL atau FTDI adapter. Cocok

untuk belajar.

• Relay module Modul ini berfungsi sebagai sakelar digital untuk lampu

yang on-offnya akan kita kendalikan menggunakan ESP8266 board.

• Breadboard

• Kabel jumper

52

• Set lampu Rangkaian lampu lengkap dengan dudukan lampu, kabel

dan stekernya. Perhatikan bahwa bagian tengah dari salah

satu line kabelnya kita putus untuk nantinya dihubungkan ke

relay.Selain perangkat-perangkat di atas, Kamu akan

memerlukan Wifi Access Point yang terhubung ke internet. Access Point

ini yang nantinya akan digunakan oleh ESP8266 untuk terkoneksi ke

internet. Kamu bisa menggunakan jaringan Wifi rumah kalo punya,

sekolah, kantor atau melalui tethering

hotspot dari smartphone atau wireless router. Selain itu, Kamu juga bakal

memerlukan beberapa alat seperti obeng dan gunting.

Install Hardware Package ESP8266

ESP8266 dapat diprogram dengan Arduino IDE. Untuk itu kita akan menginstal

terlebih dahulu hardware package untuk ESP8266 pada Arduino IDE. Ada dua

jalan untuk itu, yakni melalui board manager pada Arduino IDE, atau

mengunduh source code atau git clone dari repo Github. Saya asumsikan Kamu

sudah menginstal Arduino IDE di komputermu. Dan untuk menggunakan

ESP8266 disarankan untuk menggunakan Arduino IDE v1.6.7 ke atas. Kalo

Kamu belum menginstal Arduino IDE, unduh terlebih dahulu installernya

di sini lalu jalankan untuk menginstal di komputermu. Setelah itu ikuti salah

satu langkah di bawah ini untuk menginstal hardware package untuk ESP8266.

53

Via Board Manager

• Jalankan Arduino IDE

• Pilih menu File > Preferences

• Pada kolom "Additional Boards Manager URLs", isikan tautan

berikut:http://arduino.esp8266.com/stable/package_esp8266com_i

ndex.json Kalo kolom Boards Manager sudah ada isinya sebelumnya,

pisahkan dengan koma.

• Pilih menu Tools > Board: > Boards Manager..., akan muncul jendela

Boards Manager. Pilih "esp8266 by ESP8266 Community" lalu klik

tombol install di sebelah kanan bawahnya.

Via Git

• Masuk ke folder Sketchbook location untuk Arduino IDE. Lokasi

Sketchbook location dapat dilihat pada menu File > Preferences, pada

jendela Preferences bagian atas.

• Buat folder hardware/esp8266com/ lalu masuk ke dalam folder tersebut.

• Di dalam folder hardware/esp8266com/ clone repository ESP8266 dengan

perintah berikut: git clone --depth=1

https://github.com/esp8266/Arduino.git esp8266

• Unduh binary tools untuk ESP8266. (Untuk tahap ini kita akan

menjalankan script python, maka komputermu harus terisntall python 2.7

ke atas). Masuk ke folder esp8266/tools/ lalu jalankan perintah

berikut: python get.py

54

• Restart Arduino IDE

Merangkai Alat

Rangkai semua perangkat menjadi seperti bagan berikut:Perhatian: karena kita

bermain dengan listrik AC bertegangan tinggi, maka pastikan Kamu memasang

kabel ke steker dan dudukan lampu dengan rapi, dan masukkan kedua ujung

kabel ke relay dengan rapi agar tidak tersentuh saat arus tertutup.Pada umumnya

ada 3 port pada relay, yang diberi simbol C, NC dan NO. C singkatan

dari Common Connection, NC singkatan dari Normally Closed dan NO

singkatan dari Normally Opened. Jadi bila kita menghubungkan kedua ujung

kabel ke C dan NC, maka rangkaian listrik akan tertutup pada awalnya, dan bila

dihubungkan ke C dan NO, maka rangkaian listrik akan terbuka. Kita akan

gunakan C dan NO agar lampu tidak menyala saat pertama kali listrik

dihubungkan.

Membuat Project di AgnosThings

Sebenarnya ESP8266 dapat berlaku sebagai Access Point, sehingga perangkat

lain seperti komputer dan smartphone dapat terhubung langsung ke ESP8266

dan mengirimkan sinyal perintah tertentu. Namun bila skenarionya demikian,

maka kita hanya bisa mengontrol ESP8266 dalam jarak yang terbatas. Pada

tutorial kali ini kita akan memanfaatkan salahsatu platform IoT

yakni AgnosThings yang akan kita gunakan untuk menyimpan nilai untuk

55

mengindikasikan lampu menyala dan mati. Nantinya perangkat Wemos kita

akan kita hubungkan ke internet dan mengambil nilai dari server AgnosThings

untuk menentukan apakah lampu harus menyala atau mati.

Pertama-tama mauk terlebih dahulu ke website AgnosThings

di http://agnosthings.com kemudian registrasi. Setelah proses registrasi

selesai, login dengan akun yang sudah Kamu buat melalui halaman login. Kamu

akan diarahkan ke halaman dashboard AgnosThings.

Sekarang kita akan membuat project di AgnosThings. Project yang kita

buat akan menyimpan data yang kita simpan untuk kebutuhan proyek IoT kita.

Pilih menu untuk membuat Project/Channel baru. Kamu akan diarahkan ke

halaman form untuk membuat project. Isi setiap field form seperti pada gambar

di bawah ini. Bagian paling penting adalah kolom Field(s). Kolom ini berisi

field apa saja yang akan disimpan datanya. Karena tutorial kita hanya

memerlukan pengecekan satu nilai saja --lampu menyala atau mati, maka kita

hanya akan mengisi kolom ini dengan satu field

bernama 'switch'.Daftar project/channel dapat diakses melalui menu Channel

List. Setiap project/channel akan memiliki setidaknya tiga halaman fitur yang

bisa diamati: Info, Raw Data dan Chart. Halaman Info berisi informasi

seputar project kita beserta daftar API yang dapat kita gunakan untuk

menyimpan dan mengambil data dari server. Halaman Raw Data menampilkan

tabel berisi data yang sudah tersimpan di server. Halaman Chart menampilkan

grafik data yang sudah tersimpan di server dari mulai data pertama hingga data

terakhir yang masuk.

56

Setiap project memiliki ID dan GUID yang akan digunakan pada API.Coba

masuk ke halaman Info dan perhatikan bagian Channel API. Salin URL API

yang berlabel 'Sending data to channel' dan panggil pada browser lain. Atau

Kamu dapat menggunakan aplikasi seperti Postman untuk memanggil API

tersebut. Kamu dapat mengganti tag {value} pada URL API dengan nilai yang

ingin disimpan. Karena kita hanya akan menyalakan dan mematikan lampu,

maka kita hanya perlu menyimpan nilai 0 dan 1.Kamu dapat mengecek data

yang sudah masuk pada halaman Raw Data dan Chart.

Kamu juga dapat memanggil data yang sudah tersimpan dengan menggunakan

URL API yang ada di bawah label 'Getting data back from channel' pada

halaman Info. Kamu dapat mencoba berbagai API yang tersedia dan melihat

hasilnya.

57

Menuliskan Kode

Kita sudah mendapatkan API untuk mengambil data dari server AgnosThings.

Sekarang kita akan gunakan pada program ESP8266.

Buka Arduino IDE dan hubungkan board Wemos D1 Mini ke komputer

menggunakan kabel MicroUSB.

Pada menu Tools > Board:, pilih WeMos D1 R2 & mini. Set CPU

Frequency ke 80MHz. Pilih Flash Size ke 4M (1M SPIFFS). Pilih Upload

Speed ke 115200. Terakhir set Port ke port USB dimana WeMos terhubung.

Setelah itu tuliskan kode program berikut:

#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

ESP8266WiFiMulti WiFiMulti;

void setup()

{

Serial.begin(115200);

58

// set Wifi SSID dan passwordnya

WiFiMulti.addAP("SSID", "Password");

}

void loop()

{

// tunggu koneksi Wifi

if((WiFiMulti.run() == WL_CONNECTED))

{

HTTPClient http;

// ganti dengan URL API Last Feed punyamu sendiri

http.begin("http://agnosthings.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/field/last/feed/xx/switch");

// mulai koneksi dan ambil HTTP Header

int httpCode = http.GET();

59

// httpCode akan bernilai negatif bila error

if(httpCode > 0)

{

// cetak httpCode ke Serial

Serial.printf("[HTTP] GET... code: %d\n", httpCode);

// bila nilai dari server diterima

if(httpCode == HTTP_CODE_OK)

{

// cetak string json dari server

String json = http.getString();

Serial.println(json);

}

} else {

Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());

}

60

// tutup koneksi HTTP

http.end();

}

delay(5000);

}

Penjelasan program:

Kita menggunakan dua library milik ESP8266,

yakni ESP8266WiFiMulti untuk terkoneksi dengan jaringan WiFi,

dan ESP8266HTTPClient untuk mengakses halaman HTTP. Pada fungi

setup(), set parameter addApp() dengan SSID dan password jaringan WiFi

yang ingin digunakan untuk terhubung ke Internet. Pada fungsi loop(), set

parameter fungsi http.begin() dengan URL API project AgnosThings Kamu.

API yang digunakan adalah API untuk mengambil data terakhir (last feed).

Apabila koneksi berhasil dan server mengirimkan respon, respon server akan

kita ambil dengan fungsi http.getString(). Value dari respon ini adalah string

json dari value terakhir. Di akhir program, kita memanggil

fungsi delay(5000) agar program mengulang memanggil API setelah jeda 5

detik. Kamu dapat mengeset waktu tunggu ini lebih cepat atau lebih lambat

tergantung kebutuhan nantinya.

61

Upload kode program Kamu kemudian setelah proses upload selesai, buka

jendela Serial Monitor melalui menu Tools > Serial Monitor. Bila programmu

benar, mestinya WeMos akan mencetak data seperti pada gambar berikut:

Sembari program jalan dan terus mengecek API setiap 5 detik, coba Kamu

perbaharui valuenya menggunakan API untuk mengirim data. Ubah value

switch dari 1 menjadi 0, kemudian update lagi menjadi 1, dan mestinya

data terakhir yang diterima oleh program kita pun berubah sesuai dengan data

terakhir yang sudah kita update ke server.

Menyalakan dan Mematikan Lampu

62

Kita sudah bisa memanggil data switch kita dari server AgnosThings. Sampai

sini kita masih belum bisa menyalakan dan mematikan lampu. Kita hanya perlu

menambahkan pengecekan value jsonnya. Bila

valuenya {"value":"1","code":200} maka kita nyalakan lampu dan bila

valuenya {"value":"0","code":200} kita matikan lampu.

#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

ESP8266WiFiMulti WiFiMulti;

// set variabel pin untuk lampu

int lamp = LED_BUILTIN;

void setup()

{

Serial.begin(115200);

// set Wifi SSID dan passwordnya

63

WiFiMulti.addAP("SSID", "Password");

// set pin mode ke output

pinMode(lamp, OUTPUT);

}

void loop()

{

// tunggu koneksi Wifi

if((WiFiMulti.run() == WL_CONNECTED))

{

HTTPClient http;

// ganti dengan URL API Last Feed punyamu sendiri

http.begin("http://agnosthings.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/field/last/feed/xx/switch");

// mulai koneksi dan ambil HTTP Header

64

int httpCode = http.GET();

// httpCode akan bernilai negatif bila error

if(httpCode > 0)

{

// cetak httpCode ke Serial

Serial.printf("[HTTP] GET... code: %d\n", httpCode);

// bila nilai dari server diterima

if(httpCode == HTTP_CODE_OK)

{

// cetak string json dari server

String json = http.getString();

Serial.println(json);

// cek value json

if(json == "{\"value\":\"1\",\"code\":200}"){

65

// set ke LOW untuk menyalakan

digitalWrite(lamp, LOW);

} else {

// set ke HIGH untuk mematikan

digitalWrite(lamp, HIGH);

}

}

} else {

Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());

}

// tutup koneksi HTTP

http.end();

}

delay(5000);

}

66

Penjelasan program:

Sebelum fungsi setup(), kita deklarasikan variable ingeger lamp untuk

menyimpan nomor pin yang akan kita gunakan untuk menyalakan dan

mematikan lampu. Saya set variabel ini dengan LED_BUILTIN yakni nomor pin

LED yang ada pada onboard ESP8266 agar kita mudah dalam proses

pengecekan. Bila program sudah berfungsi dengan baik, maka kita bisa

kemudian mengubah nilai variabel ini menjadi D1 seperti pada bagan rangkaian

pada step 4. Pada fungsi setup() kita set pin mode untuk variabel lamp ke

mode OUTPUT. dan pada fungsi loop(), setelah kode Serial.println(json);,

kita menambahkan kode untuk mengecek nilai json yang nantinya digunakan

untuk mengeset nilai digital pin lamp.

Upload program dan tes dengan mengupdate nilai switch menggunakan API

update value. Bila Kamu set value ke 1 dan LED menyala, begitu juga bila

value diset ke 0 dan LED mati, berarti program Kamu selesaaaai! :D

Langkah Terakhir

Pastikan rangkaian lampu sudah terhubung dengan relay dan pin D1 pada

WeMos terhubung ke pin input signal relay. Kemudian update baris kode int

lamp = LED_BUILTIN; menjadi int lamp = D1;. Kemudian Upload lagi

programmmu. Apakah lampu besarmu menyala dan mati sesuai harapan??