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

66
MODUL SISTEM KENDALI JARAK JAUH Dr. Eng. Mokh. Sholihul Hadi Universitas Negeri Malang 2017 Modul 1

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

Page 1: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

MODUL

SISTEM KENDALI JARAK

JAUH

Dr. Eng. Mokh. Sholihul Hadi

Universitas Negeri Malang

2017

Modul 1

Page 2: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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 :

Page 3: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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"

Page 4: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 5: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

5

Modul 2

Page 6: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 7: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 8: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 9: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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="";}}

Page 10: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 11: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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 )

Page 12: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

}

Page 13: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

13

Modul 4

Page 14: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 15: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 16: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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;

Page 17: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 18: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 19: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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;

}

Page 20: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 21: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 22: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 23: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 24: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 25: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

}

Page 26: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 27: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 28: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 29: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 30: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

30

Page 31: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 32: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 33: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

Page 34: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 35: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

35

digitalWrite(4,LOW);

digitalWrite(5,LOW);

}

}

Page 36: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 37: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 38: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 39: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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>

Page 40: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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)

{

Page 41: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 42: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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 = "";

Page 43: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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;

}

Page 44: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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;

}

Page 45: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 46: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

Page 47: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

Page 48: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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{

Page 49: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 50: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

50

Page 51: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 52: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 53: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 54: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 55: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 56: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 57: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 58: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 59: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

Page 60: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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.

Page 61: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 62: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 63: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

Page 64: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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}"){

Page 65: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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

}

Page 66: MODULelektro.um.ac.id/.../Sistem-Kendali-Jarak-Jauh-Modul-Keseluruhan.pdf · MODUL SISTEM KENDALI JARAK JAUH ... /*Arduino GSM Security ~ */ const int pirSensorPin = 2; // Pir Sensor

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??