15 November 2025

K 2: Belajar di Wokwi_Membuat Jam Digital

Arduino Uno, RTC DS1307, dan LCD I2C
Pin Arduino UnoPin RTC DS1307Pin LCD I2CFungsi
GNDGNDGNDGround (Tanah)
5VVCCVCCPower (Daya)
A4 (SDA)SDASDAData I2C
A5 (SCL)SCLSCLClock I2C





B. SKETCH YANG PERLU DIKETIK:

// Sertakan library yang dibutuhkan
#include <Wire.h>
#include <RTClib.h> // Library untuk Real Time Clock (RTC)
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C

// Inisialisasi RTC DS1307
RTC_DS1307 rtc;

// Inisialisasi LCD pada alamat 0x27 untuk layar 16x2.
// Alamat I2C umum untuk LCD adalah 0x27 atau 0x3F. Jika tidak jalan, coba ganti alamatnya.
LiquidCrystal_I2C lcd(0x27, 16, 2); 

void setup() {
  // Inisialisasi komunikasi I2C
  Wire.begin();
  
  // Inisialisasi LCD
  lcd.init();
  lcd.backlight();
  lcd.clear();
  
  // Periksa apakah modul RTC terhubung
  if (! rtc.begin()) {
    lcd.print("RTC tidak ditemukan");
    while (1); // Hentikan program
  }
  
  // Untuk mengatur waktu awal, hapus tanda komentar pada baris di bawah ini 
  // dan unggah *hanya sekali*. Setelah itu, komentar kembali baris tersebut.
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Atur waktu ke waktu kompilasi PC
  
  lcd.print("Jam Digital");
}

void loop() {
  // Ambil waktu saat ini dari RTC
  DateTime now = rtc.now();
  
  // Posisikan kursor di baris kedua, kolom 0 (indeks dimulai dari 0)
  lcd.setCursor(0, 1); 
  
  // Tampilkan waktu dalam format HH:MM:SS
  
  // Jam
  if (now.hour() < 10) lcd.print('0'); // Tambahkan '0' di depan jika jam < 10
  lcd.print(now.hour());
  lcd.print(':');
  
  // Menit
  if (now.minute() < 10) lcd.print('0'); // Tambahkan '0' di depan jika menit < 10
  lcd.print(now.minute());
  lcd.print(':');
  
  // Detik
  if (now.second() < 10) lcd.print('0'); // Tambahkan '0' di depan jika detik < 10
  lcd.print(now.second());
  
  // Tunda selama 1 detik (1000 milidetik) sebelum update berikutnya
  delay(1000);
}

L1. Seri kode blok: kode blok di microbit

Microbit adalah penampil infomasi yang umumnya di pakai di lift biasanya menunjukkan informasi lantai berapa, dan biasanya memberikan informasi lift sedang naik atau turun. 

1. Langkah pertama buka tinkercad, create, circuit, pilih microbit 


2. Klik "Code" pilih jenis kode "Blocks"


3. Sesuaikan codeblocks seperti di gambar!








01 November 2025

DAFTAR ISI

Daftar Semua Postingan Blog Robomadina

Memuat semua postingan...

25 Oktober 2025

KODE UNTUK MENAMBAHKAN SKETCH DI BLOGGER


(Ini adalah kode sisipan untuk membuat postingan di blogger, tujuannya untuk mempermudah menambahkan kode yang akan di jelaskan)

<p><b><i>B. SKETCH YANG PERLU DIKETIK:</i></b></p><div style="border: 2px solid black; height: 300px; overflow-x: hidden; overflow-y: scroll; overflow: hidden scroll; width: 500px;"><div style="height: 250%;"><pre>#include &lt;Wire.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;

LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat 0x27, ukuran LCD 16x2

String teks = "Kebersihan sebagian dari iman. Oleh Eskul Robomadina   "; // tambahkan spasi di akhir agar halus
int posisi = 0;

void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(teks.substring(posisi, posisi + 16)); // tampilkan 16 karakter per langkah
  posisi++;
  if (posisi &gt; teks.length() - 16) {
    posisi = 0; // ulang dari awal
  }
  delay(300); // atur kecepatan scroll (ms)
}
</pre><div><br /></div></div></div>


SKETCH YANG PERLU DIKETIK:

<p><b><i>B. SKETCH YANG PERLU DIKETIK:</i></b></p><div style="border: 2px solid black; height: 300px; overflow-x: hidden; overflow-y: scroll; overflow: hidden scroll; width: 500px;"><div style="height: 250%;"><pre>#include &lt;Wire.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;

LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat 0x27, ukuran LCD 16x2

String teks = "Kebersihan sebagian dari iman. Oleh Eskul Robomadina   "; // tambahkan spasi di akhir agar halus
int posisi = 0;

void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(teks.substring(posisi, posisi + 16)); // tampilkan 16 karakter per langkah
  posisi++;
  if (posisi &gt; teks.length() - 16) {
    posisi = 0; // ulang dari awal
  }
  delay(300); // atur kecepatan scroll (ms)
}
</pre><div><br /></div></div></div>

SKETCH YANG PERLU DIKETIK (DENGAN TOMBOL COPY):

<p><b><i>B. SKETCH YANG PERLU DIKETIK:</i></b></p>

<div class="code-container" style="border: 2px solid black; width: 500px; height: 300px; position: relative; overflow-y: auto; overflow-x: hidden;">

  <button class="copy-btn" aria-label="Salin kode" title="Salin kode">
    <svg viewBox="0 0 24 24" fill="none" width="16" height="16">
      <path d="M16 21H6a2 2 0 0 1-2-2V7" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
      <rect x="8" y="3" width="13" height="13" rx="2" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
    </svg>
    <span>Copy</span>
  </button>

  <pre>#include &lt;Wire.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;

LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat 0x27, ukuran LCD 16x2

String teks = "Kebersihan sebagian dari iman. Oleh Eskul Robomadina   "; // tambahkan spasi di akhir agar halus
int posisi = 0;

void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(teks.substring(posisi, posisi + 16)); // tampilkan 16 karakter per langkah
  posisi++;
  if (posisi &gt; teks.length() - 16) {
    posisi = 0; // ulang dari awal
  }
  delay(300); // atur kecepatan scroll (ms)
}</pre>
</div>

<style>
.code-container {
  background: #f9fafb;
  font-family: "Courier New", monospace;
  border-radius: 6px;
  position: relative;
}

.code-container pre {
  margin: 0;
  padding: 10px;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.copy-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  background: #e5e7eb;
  border: none;
  color: #111827;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s ease;
}

.copy-btn:hover {
  background: #d1d5db;
  color: #000;
}

.copy-btn.copied {
  background: #10b981;
  color: white;
}

.copy-btn svg {
  display: inline-block;
}
</style>

<script>
document.querySelectorAll('.copy-btn').forEach(button => {
  button.addEventListener('click', async () => {
    const code = button.parentElement.querySelector('pre').innerText;
    try {
      await navigator.clipboard.writeText(code);
      button.classList.add('copied');
      button.querySelector('span').innerText = 'Tersalin!';
      setTimeout(() => {
        button.classList.remove('copied');
        button.querySelector('span').innerText = 'Copy';
      }, 1800);
    } catch (err) {
      alert('Gagal menyalin!');
    }
  });
});
</script>

LANGKAH PALING MUDAH — BUAT ACCESS POINT ESP32

๐Ÿงฉ TUJUAN:

ESP32 bisa memancarkan Wi-Fi sendiri (Access Point), atau bisa juga menyambung ke modem lalu memancarkan ulang (Repeater sederhana).

LANGKAH PALING MUDAH — BUAT ACCESS POINT ESP32

๐Ÿ”น 1. Persiapan awal

Perangkat:

  • ESP32 board (misalnya DevKit v1)

  • Kabel USB data

  • Komputer/laptop dengan Arduino IDE

  • Koneksi internet untuk unduh library pertama kali

Software setup:

  1. Buka Arduino IDE

  2. Buka menu File → Preferences

  3. Di kolom Additional Board Manager URLs, tambahkan ini:

    https://dl.espressif.com/dl/package_esp32_index.json
  4. Klik OK

  5. Lalu buka Tools → Board → Board Manager

  6. Cari ESP32, lalu Install

๐Ÿ”น 2. Pilih board

Buka:

Tools → Board → ESP32 Arduino → ESP32 Dev Module


๐Ÿ”น 3. Upload kode Access Point

Salin kode sederhana ini ⬇️

#include <WiFi.h>

const char* ssid = "ESP32_AP";
const char* password = "12345678";

void setup() {
  Serial.begin(115200);
  Serial.println("Membuat Access Point...");

  WiFi.softAP(ssid, password);

  IPAddress IP = WiFi.softAPIP();
  Serial.print("Access Point aktif di: ");
  Serial.println(IP);
}

void loop() {
  // Kosong, tidak perlu loop terus
}

๐Ÿ”น 4. Upload ke ESP32

  • Sambungkan ESP32 ke laptop

  • Klik Upload (panah kanan)

  • Tunggu selesai


๐Ÿ”น 5. Uji koneksi

  • Buka Wi-Fi di HP atau laptop

  • Akan muncul jaringan bernama ESP32_AP

  • Masukkan password 12345678

  • Setelah terhubung, kamu bisa lihat alamat IP-nya di Serial Monitor (biasanya 192.168.4.1)

Selesai — sekarang ESP32 jadi Access Point lokal!


๐Ÿ’ก LANGKAH OPSIONAL: Buat ESP32 Jadi Wi-Fi Repeater

Kalau kamu ingin ESP32:

  • Menyambung ke modem Wi-Fi,

  • Lalu memancarkan ulang jaringan (repeater sederhana),

Langkahnya hampir sama, tapi dengan sedikit tambahan kode:

#include <WiFi.h>

const char* ssid_ap = "ESP32_Repeater";
const char* pass_ap = "12345678";

const char* ssid_sta = "SSID_MODEM_KAMU";
const char* pass_sta = "PASSWORD_MODEM_KAMU";

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

  // Hubungkan ke modem (Station mode)
  WiFi.mode(WIFI_AP_STA);
  WiFi.begin(ssid_sta, pass_sta);
  Serial.print("Menyambung ke ");
  Serial.println(ssid_sta);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nTersambung ke modem!");

  // Nyalakan Access Point baru
  WiFi.softAP(ssid_ap, pass_ap);
  Serial.print("Access Point aktif di: ");
  Serial.println(WiFi.softAPIP());
}

void loop() {
  // Tidak perlu apa-apa
}

๐Ÿ“ถ Sekarang:

  • ESP32 akan terhubung ke modem kamu (STA mode)

  • Dan juga memancarkan Wi-Fi baru bernama “ESP32_Repeater”

Tapi perlu dicatat:
๐Ÿ”ธ Ini bukan repeater penuh NAT/router, hanya Wi-Fi bridge sederhana (tidak semua lalu lintas internet otomatis diteruskan).
Kalau ingin repeater yang benar-benar meneruskan internet, nanti kita bisa pasang firmware NAT ESP32 (resmi dari Espressif) — langkahnya agak lanjut.


๐Ÿš€ Rangkuman Cepat

TujuanKodeKesulitan
Access Point lokal (tanpa internet)✅ Mudah
AP + connect ke modem (bridge sederhana)✅ Masih mudah⭐⭐
Repeater penuh (internet diteruskan)Bisa (firmware NAT)⭐⭐⭐⭐

๐Ÿงญ 1️⃣. Pahami konsep dasar repeater

Sebuah Wi-Fi repeater melakukan dua hal besar:

FungsiKeterangan
1. Station (STA) modeESP32 terhubung ke Wi-Fi utama (modem/router)
2. Access Point (AP) modeESP32 memancarkan sinyal Wi-Fi baru ke HP/laptop
3. NAT/Bridge (opsional)Data internet dari router diteruskan ke klien di AP

NodeMCU (ESP8266) atau ESP32 bisa melakukan fungsi 1 dan 2 bersamaan.
Tapi agar internet benar-benar diteruskan, dibutuhkan NAT (Network Address Translation) yang hanya bisa berjalan dengan firmware khusus, bukan kode Arduino biasa.


⚙️ 2️⃣. Pilih perangkat yang cocok

PilihanKelebihanCatatan
ESP32 DevKit (WROOM / DevKit v1)Dual-core, stabil, bisa AP + STA bersamaanPaling disarankan
ESP8266 NodeMCUBisa juga, tapi kapasitas kecilKurang stabil untuk banyak klien
Tambahan opsionalAntena eksternal 2.4 GHz, adaptor 5V 2AUntuk jangkauan dan daya lebih stabil

๐Ÿ”Œ 3️⃣. Dua pendekatan membuat repeater

๐Ÿ’ก A. Repeater sederhana (local bridge)

➡️ Bisa dibuat dengan kode Arduino IDE
➡️ ESP32 akan:

  • Connect ke router utama

  • Buat Wi-Fi baru (AP)

  • Klien bisa konek, tapi internet belum diteruskan penuh (cocok untuk jaringan lokal / captive portal / IoT gateway)

๐Ÿ“œ Contoh kode sudah saya berikan di atas (“AP + connect ke modem”).
Kelebihan: mudah, bisa langsung jalan.
Kekurangan: internet tidak diteruskan otomatis.


⚙️ B. Repeater penuh (dengan NAT)

➡️ Ini membuat ESP32 benar-benar menjadi Wi-Fi repeater seperti TP-Link, bisa meneruskan internet dari router ke HP/laptop.

Untuk ini kamu butuh:

Atau versi praktisnya:
๐Ÿ‘‰ ESP32 NAT Router by martin-ger


๐Ÿงฐ 4️⃣. Cara instal firmware NAT (tanpa coding sulit)

  1. Download firmware binary (file .bin) dari GitHub martin-ger
    (ada versi siap flash: “esp32_nat_router.bin”)

  2. Pasang driver USB ESP32 di laptop

  3. Jalankan tool ESP32 Flash Download Tool (atau gunakan esptool.py)

  4. Flash firmware ke board

  5. Sambungkan ESP32 ke laptop via USB

  6. Setelah upload, buka Wi-Fi di HP — akan muncul SSID default, misalnya:

    ESP32_NAT_Router
  7. Koneksikan HP ke SSID itu

  8. Buka browser → ketik 192.168.4.1
    Di sana ada web admin mini untuk setting:

    • Wi-Fi utama (SSID & password)

    • Nama Wi-Fi repeater baru (SSID baru)

  9. Setelah diatur dan restart → alatmu siap digunakan.

๐Ÿ“ถ ESP32 kini benar-benar jadi Wi-Fi repeater NAT penuh.
HP/laptop yang terhubung akan dapat internet dari modem utama.


๐Ÿงฉ 5️⃣. (Opsional) Ubah jadi alat profesional

Setelah itu kamu bisa kembangkan:

  • Tambah web interface custom (HTML di SPIFFS)

  • Tambah monitor kekuatan sinyal

  • Tambah fitur mesh antar beberapa ESP32

  • Tambah power amplifier atau antena eksternal untuk jarak lebih jauh


๐Ÿ“Š Perbandingan hasil akhirnya

AspekESP32 RepeaterTP-Link Repeater
Internet diteruskan✅ dengan NAT firmware✅ otomatis
StabilitasBaik (2-3 klien), tergantung sinyalSangat stabil (10+ klien)
Kemudahan setupSedang (perlu flash firmware)Sangat mudah (WPS)
Harga~Rp60–70 ribuRp300–400 ribu
FleksibilitasBisa dimodifikasi sesuka hatiTidak bisa diubah

Kalau kamu mau, saya bisa buatkan tutorial langkah-demi-langkah (dengan link download firmware, cara flash, dan uji koneksi) — supaya kamu benar-benar bisa membuat repeater ESP32 berfungsi seperti TP-Link.
Apakah mau saya bantu buatkan versi itu (lengkap dengan panduan flashing)?









(Ini adalah kode sisipan untuk membuat postingan di blogger, tujuannya untuk mempermudah menambahkan kode yang akan di jelaskan)

<p><b><i>B. SKETCH YANG PERLU DIKETIK:</i></b></p><div style="border: 2px solid black; height: 300px; overflow-x: hidden; overflow-y: scroll; overflow: hidden scroll; width: 500px;"><div style="height: 250%;"><pre>#include &lt;Wire.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;

LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat 0x27, ukuran LCD 16x2

String teks = "Kebersihan sebagian dari iman. Oleh Eskul Robomadina   "; // tambahkan spasi di akhir agar halus
int posisi = 0;

void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(teks.substring(posisi, posisi + 16)); // tampilkan 16 karakter per langkah
  posisi++;
  if (posisi &gt; teks.length() - 16) {
    posisi = 0; // ulang dari awal
  }
  delay(300); // atur kecepatan scroll (ms)
}
</pre><div><br /></div></div></div>

18 Oktober 2025

MODUL AJAR ROBOTIKA-T1 – Merakit Rangkaian Pertamamu

T1 – Merakit Rangkaian Pertamamu

Nama Guru: Muhammad Firdaus, S.Pd
Sekolah: SDN 012 Samarinda Seberang
Kelas: V Sekolah Dasar
Pendekatan: Culturally Responsive Teaching (CRT) & STEM


๐Ÿ“˜ A. Tujuan Pembelajaran

Setelah mengikuti kegiatan pembelajaran ini, peserta didik dapat:

  1. Mengenal komponen dasar rangkaian listrik sederhana (Arduino, LED, resistor, dan breadboard).

  2. Merakit rangkaian sederhana agar LED dapat menyala.

  3. Menjelaskan fungsi dan hubungan antar komponen dalam rangkaian.

  4. Menunjukkan sikap teliti, bekerja sama, dan bertanggung jawab dalam merakit alat.


๐Ÿง  B. Kompetensi Awal

Peserta didik sudah mengenal konsep arus listrik dan sumber energi dari pembelajaran sebelumnya (IPA kelas IV).


๐Ÿ” C. Profil Pelajar Pancasila

  • Bernalar kritis: memahami sebab-akibat dari rangkaian listrik.

  • Kreatif: mencoba berbagai bentuk susunan rangkaian.

  • Gotong royong: bekerja sama saat merakit.

  • Mandiri: bertanggung jawab terhadap hasil kerja sendiri.


๐Ÿ”ฌ D. Alat dan Bahan

No Komponen Jumlah Keterangan
1 Arduino Uno 1 Dapat diganti versi kompatibel
2 Breadboard 1 Ukuran kecil
3 LED 1 Warna bebas
4 Resistor 100ฮฉ 1 Untuk membatasi arus
5 Kabel jumper 4 Male to male
6 Kabel USB 1 Untuk daya Arduino

⚙️ E. Langkah Kegiatan Pembelajaran

1. Kegiatan Pendahuluan (10 menit)

  • Guru membuka dengan pertanyaan pemantik:

    “Siapa yang pernah melihat lampu menyala di rumah? Menurut kalian, bagaimana caranya lampu bisa menyala?”

  • Guru memperlihatkan gambar LED dan breadboard, lalu menjelaskan fungsi dasarnya.

  • Siswa menyebutkan contoh penggunaan lampu dalam kehidupan sehari-hari di lingkungan lokal (rumah, masjid, jalan, dll).


2. Kegiatan Inti (50 menit)

๐Ÿ’ก Pendekatan STEM: siswa diajak berpikir seperti ilmuwan dan teknisi.

Langkah-langkah Eksperimen:

  1. Siapkan semua alat dan bahan dengan aman.

  2. Hubungkan LED ke breadboard. Pastikan kaki panjang (anoda) berada di jalur positif.

  3. Pasang resistor di seri dengan LED.

  4. Hubungkan kabel jumper dari pin 5V Arduino ke jalur positif breadboard, dan GND ke jalur negatif.

  5. Pastikan semua sambungan kuat dan tidak korslet.

  6. Hubungkan Arduino ke komputer atau power bank menggunakan kabel USB.

  7. Amati LED yang menyala.

Diskusikan:

  • Apa yang terjadi jika resistor dilepas?

  • Apa yang terjadi jika polaritas LED dibalik?

  • Mengapa arus listrik perlu jalur tertutup?


3. Kegiatan Penutup (10 menit)

  • Siswa menuliskan kesimpulan hasil pengamatan di LKPD.

  • Guru memberi refleksi bersama:

    “Apa yang kalian pelajari dari kegiatan hari ini tentang arus listrik dan rangkaian sederhana?”

  • Guru mengaitkan pembelajaran berikutnya:

    “Pada pertemuan selanjutnya, kita akan belajar membuat LED menyala dan mati menggunakan kode di Arduino!”


๐Ÿ“ F. Refleksi Peserta Didik

Tulislah pendapatmu:

  1. Hal apa yang paling menarik dari kegiatan hari ini?

  2. Apa kesulitan yang kamu temui?

  3. Bagaimana cara kamu mengatasinya?


๐Ÿ“Š G. LKPD Sederhana

Nama: _____________________
Kelas: __________
Judul Kegiatan: Merakit Rangkaian Pertamamu

Langkah Kegiatan Hasil Pengamatan
1 Menyusun LED dan resistor di breadboard
2 Menghubungkan kabel 5V dan GND dari Arduino
3 Menguji rangkaian LED menyala / tidak menyala
4 Menyimpulkan hasil percobaan

Pertanyaan:

  1. Mengapa LED membutuhkan resistor?

  2. Apa yang terjadi jika salah memasang kabel?

  3. Tuliskan aliran arus listrik dari sumber ke LED.


๐Ÿงพ H. Rubrik Penilaian

Aspek Skor 1 Skor 2 Skor 3 Skor 4
Ketepatan merakit rangkaian Salah semua Sebagian benar Hampir benar Benar sempurna
Kerapian dan keamanan kerja Berantakan Cukup rapi Rapi Sangat rapi & aman
Pemahaman konsep Tidak paham Menebak Cukup paham Paham dan bisa menjelaskan
Sikap kerja sama Tidak mau bekerja sama Kurang aktif Aktif Sangat kooperatif

๐Ÿ’ฌ I. Catatan Guru

Siswa yang sudah berhasil dapat ditantang untuk menambahkan dua LED dan mencoba menyambungkannya secara paralel untuk melihat perbedaan nyala.