Jenis IC (Integrated Circuit) yang sering dignakan pada rangkaian elektronika

7:38 AM Comment

 

Jenis IC (Integrated Circuit) yang sering dignakan pada rangkaian elektronika

Berikut adalah beberapa jenis IC yang sering digunakan dalam rangkaian elektronika dan aplikasinya:

IC Timer (Contoh: IC 555)

Fungsi:

  • Digunakan sebagai penghasil pulsa, osilator, dan pengatur waktu.
  • Dapat bekerja dalam mode monostabil, astabil, dan bistabil.

Aplikasi:

  • Membuat lampu berkedip (blinking LED).
  • Membuat sinyal PWM (Pulse Width Modulation).
  • Timer sederhana.

IC Op-Amp (Operational Amplifier)

Contoh: LM741, LM358.

Fungsi:

  • Penguat sinyal (amplifier).
  • Komparator tegangan.
  • Integrator dan diferensiator dalam rangkaian analog.

Aplikasi:

  • Preamplifier audio.
  • Detektor level tegangan.
  • Filter aktif.

IC Regulator Tegangan

Contoh: 7805, 7812 (regulator tegangan positif), 7905 (regulator tegangan negatif).

Fungsi:

  • Menstabilkan tegangan output untuk catu daya.

Aplikasi:

  • Power supply untuk perangkat elektronik.
  • Proteksi rangkaian dari fluktuasi tegangan.

IC Logika TTL dan CMOS

Contoh:

  • Seri TTL: 7400 (NAND), 7404 (NOT), 74192 (Counter).
  • Seri CMOS: 4001 (NAND), 4011 (AND).

Fungsi:

  • Melakukan operasi logika dasar (AND, OR, NOT, dll).
  • Sebagai bagian dari rangkaian digital seperti flip-flop, counter, dan shift register.

Aplikasi:

  • Sistem kontrol digital.
  • Penghitung dan pembagi frekuensi.

IC ADC dan DAC

Contoh: ADC0804 (Analog-to-Digital Converter), DAC0808 (Digital-to-Analog Converter).

Fungsi:

  • ADC: Mengubah sinyal analog menjadi sinyal digital.
  • DAC: Mengubah sinyal digital menjadi sinyal analog.

Aplikasi:

  • Sistem akuisisi data.
  • Perangkat audio dan video.

IC Sensor

Contoh:

  • LM35 (sensor suhu).
  • TCS3200 (sensor warna).
  • MPU6050 (sensor akselerometer dan giroskop).

Fungsi:

  • Mendeteksi perubahan fisik seperti suhu, cahaya, atau gerakan.

Aplikasi:

  • Sistem otomasi rumah.
  • Perangkat IoT.

IC Memori

Contoh: EEPROM (24C02), Flash Memory.

Fungsi:

  • Menyimpan data sementara (RAM) atau permanen (EEPROM, Flash).

Aplikasi:

  • Mikrokontroler dan komputer.
  • Sistem penyimpanan data pada perangkat elektronik.

IC Mikrocontroller dan Mikroprosesor

Contoh:

  • Mikrocontroller: ATmega328 (Arduino), ESP8266, ESP32.
  • Mikroprosesor: Intel 8086, ARM Cortex.

Fungsi:

  • Mikrocontroller: Mengontrol perangkat elektronik dengan logika terprogram.
  • Mikroprosesor: "Otak" perangkat elektronik.

Aplikasi:

  • Sistem embedded seperti robot, smart home.
  • Komputer dan smartphone.

IC Driver Motor

Contoh: L293D, ULN2003.

Fungsi:

  • Mengontrol motor DC, motor stepper, atau relay.

Aplikasi:

  • Sistem robotik.
  • Kendali aktuator dalam otomasi.

Jenis IC ini sering digunakan dalam berbagai proyek dan perangkat elektronik, baik untuk tujuan pembelajaran maupun aplikasi praktis. Mulailah dari IC sederhana seperti 555 Timer atau Op-Amp untuk memahami konsep dasarnya!

Komponen Elektronika yang wajib diketahui saat belajar elektronika

7:17 AM Comment
Komponen Elektronika yang wajib diketahui saat belajar elektronika


 Bagi pemula yang ingin belajar tentang komponen elektronika, berikut adalah daftar komponen dasar yang perlu dipahami:

Resistor (Tahanan)

  • Fungsi: Mengatur atau membatasi arus listrik.
  • Simbol: R.
  • Satuan: Ohm (Ω).
  • Poin Belajar: Kode warna resistor untuk menentukan nilainya.

Kapasitor

  • Fungsi: Menyimpan dan melepaskan energi listrik sementara.
  • Simbol: C.
  • Satuan: Farad (F).
  • Jenis: Kapasitor elektrolit (polar) dan non-polar.

Dioda

  • Fungsi: Mengalirkan arus hanya dalam satu arah.
  • Jenis: Dioda biasa, LED (Light Emitting Diode), dan dioda Zener.
  • Simbol: Panah dengan garis melintang di ujungnya.

Transistor

  • Fungsi: Penguat sinyal atau saklar elektronik.
  • Jenis: BJT (Bipolar Junction Transistor) dan MOSFET.
  • Simbol: Tergantung jenisnya (NPN atau PNP).

IC (Integrated Circuit)

  • Fungsi: Sirkuit elektronik terintegrasi untuk fungsi tertentu (contoh: timer IC 555, IC mikroprosesor).
  • Simbol: Bentuk persegi panjang atau segi empat dengan kaki-kaki pin.

Saklar dan Tombol

  • Fungsi: Menghubungkan atau memutus aliran listrik.
  • Jenis: Push button, toggle switch, rotary switch.

Potensiometer

  • Fungsi: Resistor variabel untuk mengatur level sinyal.
  • Simbol: Resistor dengan panah diagonal.

Relay

  • Fungsi: Saklar elektromekanis yang dioperasikan dengan arus listrik.
  • Simbol: Beragam tergantung tipe.

Baterai dan Sumber Daya Listrik

  • Fungsi: Menyediakan daya untuk rangkaian elektronik.
  • Simbol: Garis panjang dan pendek (untuk baterai).

Breadboard dan Kabel Jumper

  • Fungsi: Media untuk merakit rangkaian tanpa solder.

Tips untuk Pemula

  • Pelajari simbol-simbol komponen pada diagram skematik.
  • Gunakan multimeter untuk mengukur nilai komponen seperti resistor, tegangan, atau arus.
  • Mulailah dengan proyek sederhana seperti menyalakan LED dengan resistor.
  • Pahami konsep dasar arus, tegangan, dan resistansi (Hukum Ohm).

Semakin sering berlatih dan mencoba, semakin mudah memahami fungsi setiap komponen!

Membuat counter dengan seven segment dan3 fungsi tombol menggunakan Arduino Uno

7:02 AM Comment

 

Membuat counter dengan seven segment dan3 fungsi tombol menggunakan Arduino Uno

Membuat counter dengan seven segment dan tombol menggunakan Arduino Uno adalah proyek sederhana. Seven segment akan digunakan untuk menampilkan angka, dan tombol digunakan untuk menaikkan, menurunkan, atau mereset angka.

Komponen yang Diperlukan:

  • Arduino Uno
  • Modul seven segment (TM1637 atau manual 4-digit 7-segment)
  • Tombol push-button (3 buah)
  • Resistor 10kΩ (3 buah untuk pull-down)
  • Kabel jumper
  • Breadboard

Skema Rangkaian:

TM1637:
  • CLK → Pin 2 (Arduino)
  • DIO → Pin 3 (Arduino)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Tombol Push-button:
  • Tombol 1 (Count Up) → Pin 4 (Arduino) dengan resistor pull-down 10kΩ
  • Tombol 2 (Count Down) → Pin 5 (Arduino) dengan resistor pull-down 10kΩ
  • Tombol 3 (Reset) → Pin 6 (Arduino) dengan resistor pull-down 10kΩ
Program
#include <TM1637Display.h>

// Pin TM1637
#define CLK 2
#define DIO 3

// Tombol
#define BUTTON_UP 4
#define BUTTON_DOWN 5
#define BUTTON_RESET 6

// Inisialisasi TM1637
TM1637Display display(CLK, DIO);

// Variabel counter
int counter = 0;

void setup() {
  // Inisialisasi tombol sebagai input
  pinMode(BUTTON_UP, INPUT_PULLUP);
  pinMode(BUTTON_DOWN, INPUT_PULLUP);
  pinMode(BUTTON_RESET, INPUT_PULLUP);

  // Inisialisasi display
  display.setBrightness(0x0F);
  display.showNumberDec(counter);
}

void loop() {
  // Tombol Count Up
  if (digitalRead(BUTTON_UP) == LOW) {
    delay(200); // Debounce
    counter++;
    if (counter > 9999) counter = 0; // Batas angka maksimal
    display.showNumberDec(counter);
  }

  // Tombol Count Down
  if (digitalRead(BUTTON_DOWN) == LOW) {
    delay(200); // Debounce
    counter--;
    if (counter < 0) counter = 9999; // Batas angka minimal
    display.showNumberDec(counter);
  }

  // Tombol Reset
  if (digitalRead(BUTTON_RESET) == LOW) {
    delay(200); // Debounce
    counter = 0;
    display.showNumberDec(counter);
  }
}

Cara kerjanya yaitu ada 3 buah fungsi tombol. pertama untuk menambah angka dan kedua untuk mengurangi angka, dan ketiga untuk merestart angka yang telah ada

Cara Membuat jam digital menggunakan modul TM1637 dan RTC dengan arduino uno

7:48 AM Comment
Jam digital menggunakan modul TM1637 dan RTC

Jam digital menggunakan modul TM1637 dan RTC (Real-Time Clock) seperti DS3231 atau DS1307 pada Arduino Uno adalah proyek yang cukup sederhana. Modul TM1637 digunakan untuk menampilkan waktu pada display 7-segment, sedangkan modul RTC berfungsi untuk menyimpan dan menjaga waktu agar tetap akurat meskipun Arduino dimatikan.

Berikut adalah langkah-langkah untuk membuat jam digital menggunakan TM1637 dan RTC:

Komponen yang Diperlukan:

  • Arduino Uno
  • Modul RTC (DS3231 atau DS1307)
  • Modul TM1637 (4-digit 7-segment display)
  • Kabel jumper
  • Breadboard

Rangkaian
Hubungkan Modul TM1637 ke Arduino:
  • CLK (TM1637) → Pin digital 2 (Arduino)
  • DIO (TM1637) → Pin digital 3 (Arduino)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Hubungkan Modul RTC ke Arduino:
  • SCL (RTC) → Pin A5 (Arduino Uno)
  • SDA (RTC) → Pin A4 (Arduino Uno)
  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
Library yang Dibutuhkan
Kedua library ini bisa diunduh dan diinstal melalui Library Manager di Arduino IDE.

Program
#include <Wire.h>
#include <RTClib.h>
#include <TM1637Display.h>

// Pin TM1637
#define CLK 2
#define DIO 3

// Inisialisasi modul RTC dan TM1637
RTC_DS3231 rtc;
TM1637Display display(CLK, DIO);

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

  // Inisialisasi modul TM1637
  display.setBrightness(0x0F);

  // Inisialisasi modul RTC
  if (!rtc.begin()) {
    Serial.println("RTC tidak terdeteksi!");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC kehilangan daya, set waktu sekarang!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Set waktu sesuai dengan waktu saat kompilasi
  }
}

void loop() {
  DateTime now = rtc.now(); // Ambil waktu dari RTC

  // Format waktu ke 24 jam
  int displayTime = now.hour() * 100 + now.minute();

  // Tampilkan waktu pada TM1637
  display.showNumberDecEx(displayTime, 0b01000000, true); // Tampilkan dengan titik di tengah (:)

  delay(1000); // Update setiap detik
}

Membuat jam digital sendiri menggunakan modul 7 segment

7:00 AM Comment
Membuat jam digital sendiri menggunakan modul 7 segment

 Untuk membuat jam digital menggunakan modul 7-segment dengan Arduino, kita bisa menggunakan modul 7-segment display 4 digit yang biasanya memiliki IC driver TM1637. Modul ini mempermudah pengendalian karena hanya membutuhkan 2 pin Arduino.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • Modul 7-Segment 4-Digit TM1637.
  • Kabel jumper.
  • Breadboard.
  • RTC Module DS3231 (opsional, untuk waktu yang lebih akurat).
Koneksi Modul TM1637 ke Arduino

TM1637 Arduino
VCC 5V
GND GND
CLK Pin 3
DIO  Pin 4

Langkah Pembuatan
  • Install Library TM1637
  • Buka Arduino IDE.
  • Pergi ke Sketch → Include Library → Manage Libraries.
  • Cari dan install TM1637Display.
Program Jam Digital

#include 

// Pin untuk TM1637
#define CLK 3    // Pin CLK dihubungkan ke Pin 3 Arduino
#define DIO 4    // Pin DIO dihubungkan ke Pin 4 Arduino

// Inisialisasi display TM1637
TM1637Display display(CLK, DIO);

// Variabel waktu (jam dan menit)
int jam = 0;    // Atur jam awal (0-23)
int menit = 0;  // Atur menit awal (0-59)

void setup() {
  display.setBrightness(7); // Atur kecerahan display (0-7)
}

void loop() {
  // Menampilkan waktu (format jam:menit)
  int waktu = (jam * 100) + menit; // Menggabungkan jam dan menit
  display.showNumberDecEx(waktu, 0b01000000, true); // Tampilkan dengan titik tengah ":"

  delay(60000); // Delay 1 menit (60000 ms)

  // Logika increment waktu
  menit++;
  if (menit >= 60) { // Jika menit mencapai 60, reset ke 0 dan tambah jam
    menit = 0;
    jam++;
  }
  if (jam >= 24) { // Jika jam mencapai 24, reset ke 0
    jam = 0;
  }
}


Penjelasan Kode
  • Library TM1637Display digunakan untuk mempermudah komunikasi dengan modul TM1637.
  • showNumberDecEx() menampilkan angka dengan format jam:menit.
  • 0b01000000 menyalakan titik tengah ":" sebagai pemisah jam dan menit.
  • Waktu dihitung dengan increment menit setiap 60 detik.
  • Jika menit = 60, maka reset ke 0 dan jam bertambah 1.
  • Jika jam = 24, maka reset ke 0.

Program counter menggunakan 7-segment 1 Digit

7:00 AM Comment
Program counter menggunakan 7-segment 1 Digit


Berikut adalah program counter menggunakan 7-segment display dengan Arduino. Program ini akan menampilkan angka dari 0 hingga 9 secara berurutan dan ditampilkan pada 7-segment display common cathode.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • 7-segment display (common cathode).
  • Resistor 220 Ohm (7 buah, untuk melindungi LED pada 7-segment).
  • Kabel jumper.
  • Breadboard.

Sebelum memulai, pahami 7-segment display. Setiap segmen dihubungkan ke pin Arduino untuk menyalakan LED:
seven segment pinout

Biasanya, pin segmen dihubungkan ke Arduino seperti ini:

  • a → Pin 2
  • b → Pin 3
  • c → Pin 4
  • d → Pin 5
  • e → Pin 6
  • f → Pin 7
  • g → Pin 8
  • Common Cathode (CC) → GND

  1. Sambungkan segmen a-g ke pin digital Arduino (2-8).
  2. Hubungkan resistor 220 Ohm ke setiap pin segmen.
  3. Hubungkan pin common cathode (CC) ke GND Arduino.
Program Arduino 

  // Definisi pin untuk setiap segmen (a-g) pada 7-segment
int segA = 2;
int segB = 3;
int segC = 4;
int segD = 5;
int segE = 6;
int segF = 7;
int segG = 8;

// Array untuk menyimpan pola angka 0-9 (LOW berarti segmen menyala)
byte angka[10][7] = {
  {LOW, LOW, LOW, LOW, LOW, LOW, HIGH}, // 0
  {HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 1
  {LOW, LOW, HIGH, LOW, LOW, HIGH, LOW}, // 2
  {LOW, LOW, LOW, LOW, HIGH, HIGH, LOW}, // 3
  {HIGH, LOW, LOW, HIGH, HIGH, LOW, LOW}, // 4
  {LOW, HIGH, LOW, LOW, HIGH, LOW, LOW}, // 5
  {LOW, HIGH, LOW, LOW, LOW, LOW, LOW}, // 6
  {LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 7
  {LOW, LOW, LOW, LOW, LOW, LOW, LOW}, // 8
  {LOW, LOW, LOW, LOW, HIGH, LOW, LOW}  // 9
};

// Fungsi untuk menampilkan angka di 7-segment
void tampilkanAngka(int num) {
  digitalWrite(segA, angka[num][0]);
  digitalWrite(segB, angka[num][1]);
  digitalWrite(segC, angka[num][2]);
  digitalWrite(segD, angka[num][3]);
  digitalWrite(segE, angka[num][4]);
  digitalWrite(segF, angka[num][5]);
  digitalWrite(segG, angka[num][6]);
}

void setup() {
  // Atur pin segmen sebagai output
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
}

void loop() {
  // Loop angka 0-9
  for (int i = 0; i <= 9; i++) {
    tampilkanAngka(i); // Tampilkan angka pada 7-segment
    delay(1000);       // Tunda 1 detik sebelum ke angka berikutnya
  }
}

  

Penjelasan Kode
  • Array angka menyimpan pola segmen untuk angka 0–9.
  • Setiap angka diwakili oleh 7 nilai (LOW/HIGH) untuk segmen a-g.
  • LOW berarti segmen menyala pada 7-segment common cathode.
  • Fungsi tampilkanAngka() menyalakan segmen sesuai pola angka.
  • Loop for digunakan untuk menghitung dari 0 sampai 9, dengan jeda 1 detik antar angka.
Cara Kerja Alat
  • Upload kode program ke Arduino menggunakan Arduino IDE.
  • LED pada 7-segment akan menampilkan angka dari 0 hingga 9 secara berurutan.
  • Angka akan berubah setiap 1 detik.


Cara mudah mengetahui kutub positif dan negatif led

11:00 AM Comment
membedakan anoda katoda led


Melihat Panjang Kaki LED

  • Kaki panjang → Anoda (positif)
  • Kaki pendek → Katoda (negatif)

Ini adalah cara paling umum jika LED masih baru dan belum dipotong kakinya. Namun, jika kaki LED sudah dipotong, gunakan metode lain.

Melihat Bagian Dalam LED (Bentuk Anvil)

  • Perhatikan bagian dalam LED (dari sisi transparan):
  • Bagian besar/tebal (seperti sendok) → Katoda (negatif)
  • Bagian kecil/tipis → Anoda (positif)

Ciri ini bisa dilihat dengan mudah pada LED bening atau LED dengan badan transparan.

Alat deteksi ketinggian air menggunakan Arduino

11:16 AM Comment

 Untuk membuat alat deteksi ketinggian air menggunakan Arduino, kita bisa memanfaatkan sensor ultrasonik (HC-SR04) atau sensor level air seperti water level sensor atau rangkaian pelampung.

Berikut adalah panduan membuat alat deteksi ketinggian air menggunakan sensor ultrasonik HC-SR04 karena mudah digunakan dan tidak memerlukan kontak langsung dengan air.

Komponen yang Dibutuhkan

  • Arduino Uno (atau jenis lainnya).
  • Sensor Ultrasonik HC-SR04 – untuk mengukur jarak permukaan air.
  • Buzzer – untuk alarm jika ketinggian air melewati batas tertentu.
  • LED (opsional) – sebagai indikator tambahan.
  • Resistor 220 Ohm – untuk LED.
  • Kabel jumper – untuk koneksi antar komponen.
  • Breadboard – sebagai papan koneksi sementara.
  • Adaptor atau kabel USB – sebagai catu daya Arduino.

Prinsip Kerja
  • Sensor ultrasonik HC-SR04 mengukur jarak antara sensor dan permukaan air.
  • Jika jarak air mendekati sensor (ketinggian air naik), Arduino akan memicu buzzer atau LED sebagai alarm.
  • Logika sederhana: Semakin tinggi air, semakin kecil jarak yang terbaca oleh sensor.
Alat deteksi ketinggian air menggunakan Arduino


Skema Rangkaian
Koneksi Sensor HC-SR04 ke Arduino:
  • VCC → 5V Arduino
  • GND → GND Arduino
  • TRIG → Pin 7 Arduino
  • ECHO → Pin 6 Arduino
Koneksi Buzzer dan LED:
  • Buzzer positif → Pin 10 Arduino
  • LED positif → Pin 13 Arduino (melalui resistor 220 Ohm).
  • Buzzer negatif dan LED negatif → GND Arduino.
Program Arduino

#define trigPin 7    // Pin Trig sensor ultrasonik
#define echoPin 6   // Pin Echo sensor ultrasonik
#define buzzer 10     // Pin buzzer
#define led 13        // Pin LED

float jarak;         // Variabel untuk menyimpan jarak
float tinggi_air;    // Variabel untuk menyimpan ketinggian air
float tinggi_tangki = 30.0; // Tinggi tangki air dalam cm (sesuaikan)

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(led, OUTPUT);
  Serial.begin(9600); // Inisialisasi komunikasi serial
}

void loop() {
  // Mengirimkan pulsa ultrasonik
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Membaca waktu pantulan (dalam mikrodetik)
  long durasi = pulseIn(echoPin, HIGH);
  
  // Menghitung jarak (dalam cm)
  jarak = durasi * 0.034 / 2; 
  
  // Menghitung ketinggian air
  tinggi_air = tinggi_tangki - jarak;

  // Menampilkan data di Serial Monitor
  Serial.print("Jarak permukaan air: ");
  Serial.print(jarak);
  Serial.print(" cm | Ketinggian air: ");
  Serial.print(tinggi_air);
  Serial.println(" cm");

  // Logika alarm jika ketinggian air melebihi batas
  if (tinggi_air > 25) { // Sesuaikan batas tinggi air
    digitalWrite(buzzer, HIGH); // Buzzer menyala
    digitalWrite(led, HIGH);    // LED menyala
    Serial.println("Peringatan: Air mendekati batas maksimum!");
  } else {
    digitalWrite(buzzer, LOW); // Buzzer mati
    digitalWrite(led, LOW);    // LED mati
  }
  
  delay(1000); // Delay 1 detik sebelum pengukuran berikutnya
}

  
 
Cara Kerja Alat
  • Pasang sensor ultrasonik di bagian atas tangki atau wadah air.
  • Jalankan program dan buka Serial Monitor untuk melihat data jarak dan ketinggian air.
  • Jika air mendekati batas atas, buzzer dan LED akan aktif sebagai peringatan.
Pengembangan Lanjutan
  • Tambahkan layar LCD untuk menampilkan ketinggian air secara langsung.
  • Gunakan modul relay untuk mengontrol pompa air otomatis saat ketinggian air mencapai batas tertentu.
  • Integrasikan dengan modul Wi-Fi (ESP8266/ESP32) untuk mengirim notifikasi ke smartphone.
  • Tambahkan fitur logging data menggunakan SD card untuk mencatat perubahan ketinggian air.

Alat Kontrol Suhu Ruangan dengan Esp32

10:42 AM Comment

 Untuk mendeteksi suhu menggunakan ESP32 dengan sensor DHT (DHT11/DHT22) dan mengontrol kipas angin berdasarkan suhu, Anda dapat mengikuti langkah berikut:


deteksi suhu ruangan dengan esp32
Alat yang di butuhkan :

  • ESP32.
  • Sensor DHT (DHT11/DHT22).
  • Kipas angin (DC fan) 12v.
  • Modul relay
  • Kabel Jumper
  • Power Suplay 12v

Diagram Rangkaian :
DHT Sensor:
  • Pin VCC → 3.3V atau 5V di ESP32.
  • Pin GND → GND di ESP32.
  • Pin DATA → D8 ESP32.
  • Resistor pull-up 10kΩ antara pin DATA dan VCC.
Modul Relay (untuk kipas angin):
  • VCC → 5V dari Modul StepDown.
  • GND → GND dari ESP32.
  • IN → D6 ESP32.
Sambungkan kipas ke relay seperti berikut:
Salah satu kabel kipas ke NO (Normally Open).
Kabel kipas lainnya ke C (Common).
bisa dilihat pada gambar diaatas

Program :


#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

// Konfigurasi sensor DHT
#define DHTPIN 8       // Pin data DHT
#define DHTTYPE DHT22  // Ubah ke DHT11 jika menggunakan DHT11
DHT dht(DHTPIN, DHTTYPE);

// Pin relay untuk kipas
#define RELAYPIN 6

// Ambang suhu untuk kipas
#define TEMPERATURE_THRESHOLD 30.0 // Suhu dalam °C

void setup() {
  Serial.begin(115200);
  Serial.println(F("DHT with Fan Control"));

  // Memulai DHT
  dht.begin();

  // Mengatur pin relay sebagai output
  pinMode(RELAYPIN, OUTPUT);
  digitalWrite(RELAYPIN, LOW); // Kipas mati saat awal
}

void loop() {
  // Tunggu 2 detik antar pembacaan
  delay(2000);

  // Membaca suhu dan kelembapan
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  // Periksa apakah pembacaan berhasil
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // Menampilkan hasil ke Serial Monitor
  Serial.print(F("Temperature: "));
  Serial.print(temperature);
  Serial.print(F("°C  Humidity: "));
  Serial.print(humidity);
  Serial.println(F("%"));

  // Mengontrol kipas berdasarkan suhu
  if (temperature > TEMPERATURE_THRESHOLD) {
    digitalWrite(RELAYPIN, HIGH); // Nyalakan kipas
    Serial.println(F("Fan ON"));
  } else {
    digitalWrite(RELAYPIN, LOW); // Matikan kipas
    Serial.println(F("Fan OFF"));
  }
}