Anda di halaman 1dari 12

LAPORAN

Mikrokontroler
Dosen pengampu : Helmi Wibowo, M.T

Oleh :

A’tiatul Islam Mariananda


(21031004)
D-III TO/A

POLITEKNIK KESELAMATAN TRANSPORTASI JALAN TEGAL


TAHUN AKADEMIK 2022/2023

A. TUJUAN
Membuat simulasi pendeteksi kelembaban dan suhu pada LCD dengan sensor DHT22

B. MATERI
a. Arduino UNO

Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin
input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6
pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol
reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-
ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin digital pada arduino uno dapat
digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalwrite(), dan
digitalRead(). Fungsi fungsi tersebut beroperasi di tegangan 5 volt, Setiap pin dapat memberikan
atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus
secara default) 20-50 kOhm.
Arduino Uno dapat mendeteksi lingkungan dari input. Di sini inputnya adalah berbagai macam
sensor dan ini dapat mempengaruhi sekitarnya melalui pengontrolan motor, lampu, aktuator lain,
dll. Mikrokontroler ATmega328 pada papan Arduino dapat diprogram dengan bantuan bahasa
pemrograman Arduino dan IDE (Integrated Development Environment ). Proyek Arduino dapat
berkomunikasi dengan perangkat lunak saat berjalan di PC.
b. DHT22

DHT22 merupakan sensor yang dapat mengukur suhu dan juga kelembaban, sensor
berikut ini mempunyai keluaran berwujud sinyal digital. Sensor DHT22 ini mempunyai
pengaturan yang sangat akurat dengan bayaran suhu ruang pengaturan dengan nilai yang
tersimpan yang ada di dalam memori OTP terpadu. Dan juga sensor DHT22 memiliki
jangkauan pembacaan suhu dan kelembaban yang lumayan amat luas, Setidaknya sensor
DHT22 juga mampu mendistribusikan sinyal keluaran via kabel dengan panjang hingga
mencapai 20 meter sehingga sesuai dan dapat untuk ditempatkan walau berada jauh di
sana. Contoh yang sering di gunakan sensor ini untuk membaca suhu dan kelembapan
ruangan seperti kandang, kamar di rumah, gudang, dan lain-lain. Selain dapat membaca
suhu dan kelembapan ruangan sensor ini juga dapat mengukur suhu dan kelembapan udara
di luar ruangan. memiliki 3 pin yang harus Anda gunakan: GND, Vcc dan Data.
c. LCD I2C

I2C LCD adalah modul LCD yang dikendalikan secara serial sinkron dengan protokol
I2C/IIC (Inter Integrated Circuit) atau TWI (Two Wire Interface). Normalnya, modul
LCD dikendalikan secara parallel baik untuk jalur data maupun kontrolnya. Namun, jalur
parallel akan memakan banyak pin di sisi kontroller (misal Arduino, Android, komputer,
dll). Setidaknya Anda akan membutuhkan 6 atau 7 pin untuk mengendalikan sebuah
modul LCD. Dengan demikian untuk sebuah kontroller yang ‘sibuk’ dan harus
mengendalikan banyak I/O, menggunakan jalur parallel adalah solusi yang kurang tepat.
Arduino sendiri sudah mendukung protokol I2C/IIC. Di papan Arduino Uno, port I2C
terletak pada pin A4 untuk jalur SDA (Serial Data) dan pin A5 untuk jalur SCL (Serial
Clock). Jangan lupa untuk menghubungkan jalur kabel Ground antara Arduino dengan
perangkat I2C client. Untuk sisi software, Arduino sudah cukup membantu kita bekerja
dengan protokol ini melalui library ‘Wire.h’. Berikutnya, library ini akan dimanfaatkan
untuk mengkonversi jalur parallel LCD menjadi jalur serial I2C.
d. Buzzer

Buzzer Elektronika adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara
berupa gelombang bunyi. Buzzer elektronika akan menghasilkan getaran suara ketika diberikan
sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer
elektronika itu sendiri. Pada umumnya, buzzer elektronika ini sering digunakan sebagai alarm karena
penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka buzzer elektronika
akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar manusia.

Pada dasarnya, setiap buzzer elektronika memerlukan input berupa tegangan listrik yang kemudian
diubah menjadi getaran suara atau gelombang bunyi yang memiliki frekuensi berkisar antara 1 - 5
KHz. Jenis buzzer elektronika yang sering digunakan dan ditemukan dalam rangkaian adalah buzzer
yang berjenis Piezoelectric (Piezoelectric Buzzer). Hal itu karena Piezoelectric Buzzer memiliki
berbagai kelebihan diantaranya yaitu lebih murah, relatif lebih ringan dan lebih mudah
penggunaannya ketika diaplikasikan dalam rangkaian elektronika.

C. ALAT DAN BAHAN


a. ESP 32
b. LED
c. DHT 22
d. Relay
e. VCC Dan Ground
f. Kabel Jumper

D. RANGKAIAN
a. Simulasi pemrograman dengan kontrol relay

b. Simulasi pemrograman LED kontrol dengan DHT22

E. PROGRAM
a. Simulasi pemrograman dengan kontrol relay
#define BLYNK_TEMPLATE_ID "TMPL6HFe0ZU9Z"
#define BLYNK_TEMPLATE_NAME "kontrol relay"
#define BLYNK_AUTH_TOKEN "cvrj0bFZvZiKKV3XTMz571WerSUT3t5n"

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = "cvrj0bFZvZiKKV3XTMz571WerSUT3t5n";


char ssid[] = "Wokwi-GUEST";
char pass[] = "";

BlynkTimer timer;
#define relay 2
int SW_relay = 0;

BLYNK_WRITE(V0)
{
SW_relay = param.asInt();
if (SW_relay ==1){
digitalWrite(relay, HIGH);
Serial.println("Relay terbuka");
Blynk.virtualWrite(V0, HIGH);
}else{
digitalWrite(relay, LOW);
Serial.println("Relay tertutup");
Blynk.virtualWrite(V0, LOW);
}
}

b. Simulasi pemrograman dengan sensor DHT22


#define BLYNK_TEMPLATE_ID "TMPL65c2sR8vK"
#define BLYNK_TEMPLATE_NAME "LED CONTROL"
#define BLYNK_AUTH_TOKEN "D8DmJ0FpL5DH8hmnSDKrYxmAxqISbNa2"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Library untuk DHT

char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token

char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan


char pass[] = ""; //password hotspot yang digunakan

const int DHT_PIN = 15;

int value0, value1, value2, value3, value6;

byte LED_R = 26;


byte LED_Y = 27;
byte LED_G = 14;
byte LED_B = 12;

DHTesp dht;

BlynkTimer timer;

//function untuk pengiriman sensor


void sendSensor()
{
TempAndHumidity data = dht.getTempAndHumidity();

//menampilkan temperature pada Serial monitor


Serial.print("% Temperature: ");
Serial.print(data.temperature);
Serial.println("C ");
Serial.print("% Kelembaban: ");
Serial.print(data.humidity);
Serial.println("% ");

Blynk.virtualWrite(V4, data.temperature); //mengirimkan data temperatur


ke Virtual pin VO di Blynk Cloud
Blynk.virtualWrite(V5, data.humidity); //mengirimkan data kelemaban ke
Virtual pin V1 di Blynk Cloud
}

BLYNK_WRITE(V0)
{
value0 = param.asInt();
digitalWrite(LED_R, value0);
Blynk.virtualWrite(V7, value0);
cekAllLed();
}

BLYNK_WRITE(V1)
{
value1 = param.asInt();
digitalWrite(LED_Y, value1);
Blynk.virtualWrite(V8, value1);
cekAllLed();
}

BLYNK_WRITE(V2)
{
value2 = param.asInt();
digitalWrite(LED_G, value2);
Blynk.virtualWrite(V9, value2);
cekAllLed();
}

BLYNK_WRITE(V3)
{
value3 = param.asInt();
digitalWrite(LED_B, value3);
Blynk.virtualWrite(V10, value3);
cekAllLed();
}

BLYNK_WRITE(V6)
{
value6 = param.asInt();

digitalWrite(LED_R, value6);
Blynk.virtualWrite(V7, value6);
Blynk.virtualWrite(V0, value6);

digitalWrite(LED_Y, value6);
Blynk.virtualWrite(V8, value6);
Blynk.virtualWrite(V1, value6);

digitalWrite(LED_G, value6);
Blynk.virtualWrite(V9, value6);
Blynk.virtualWrite(V2, value6);
digitalWrite(LED_B, value6);
Blynk.virtualWrite(V10, value6);
Blynk.virtualWrite(V3, value6);
}

void cekAllLed(){
if(value0 == 1 && value1 == 1 && value2 == 1 && value3 == 1){
Blynk.virtualWrite(V6, 1);
}
else{
Blynk.virtualWrite(V6, 0);
}
// if(value0 == 0 && value1 == 0 && value2 == 0 && value3 == 0){
// Blynk.virtualWrite(V6, 0);
// }
}

void setup()
{
// Debug console
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, sendSensor); //Mengaktifkan timer untuk
pengiriman data 1000ms
}

void loop()
{

Blynk.run(); //menjalankan blynk


timer.run(); //menjalankan timer
}

F. FLOWCHART
a. Simulasi pemrograman dengan kontrol relay
Mulai

Inisialisasi
Input/Output dan
Variabel

Simulasi
dijalankan

LED Menyala

Selesai

b. Simulasi pemrograman dengan sensor DHT22

Mulai
Inisialisasi
Input/Output dan
Variabel

Simulasi
dijalankan

LED Merah LED Kuning LED Hijau LED Biru


Menyala Menyala Menyala Menyala

Selesai

G. CARA KERJA

a. Simulasi pemrograman dengan kontrol relay


Semua komponen dipasang sesuai dengan susunan, kemudian membuat codingan lalu
ESP 32 mengirimkan data yang telah diproses dari program kemudian data tersebut
dikiramkan ke relay sehingga LED menyala melalui relay, yaitu dengan cara
menghubungkan program rangkaian dengan blynk. Dengan menambahkan link pada
blynk ke program wokwi untuk mengontrol LED.

b. Simulasi pemrograman dengan LED Kontrol


Semua komponen dipasang sesuai dengan susunan, kemudian membuat codingan lalu
ESP 32 mengirimkan data yang telah diprose dari program dan kemudia data tersebut
dikirimkan ke DHT 22 untuk menyalakan LED. LED dinyalakan melalui program
yang berada pada web blynk dan selanjutnya programnya disambungkan dengan
coding yang berada pada rangkaian, sehingga rangkaian LED bisa diatur secara
automatis lewat web blynk.

Anda mungkin juga menyukai