Panduan · 16 mnt baca

Kirim Data Arduino ke Excel: Data Streamer, PLX-DAQ, CSV, dan Python

Kirim data Arduino ke Excel dengan empat cara: Serial Monitor ke CSV, Data Streamer, PLX-DAQ, dan pencatatan dengan Python, plus timestamp, grafik, dan tabel data untuk laporan praktikum.

Memasukkan data Arduino ke Excel berarti mengirim nilai yang dibaca Arduino dari sensor-sensornya ke komputer lewat kabel USB, lalu mengumpulkannya baris demi baris di spreadsheet. Arduino menulis setiap pembacaan ke port serial sebagai satu baris yang dipisahkan koma; di komputer ada empat cara umum untuk membawa baris-baris itu ke Excel: menyimpan output Serial Monitor sebagai file CSV, add-in Data Streamer dari Microsoft, makro PLX-DAQ, dan pencatatan otomatis dengan Python. Idenya sama di semua cara: setiap baris yang dikirim Arduino menjadi satu baris di Excel, dan setiap koma memulai kolom baru.

Di panduan ini kami memakai sensor suhu dan kelembapan DHT11 dan sensor cahaya LDR sebagai contoh. Pertama kami membandingkan keempat metode supaya kamu bisa memilih yang tepat, lalu kami menyiapkan masing-masing langkah demi langkah. Setelah itu kamu akan melihat cara menambahkan timestamp ke pembacaanmu, cara memilih jenis grafik yang tepat di Excel, dan cara membuat tabel data laporan praktikum yang bisa kamu pakai di sekolah atau untuk lomba sains. Bagian terakhir menunjukkan cara melakukan hal yang sama dengan ESP32 dan Raspberry Pi Pico, serta cara mengatasi error yang paling sering muncul.

Board Arduino Uno dan soket USB
Arduino Uno: pembacaan mengalir ke komputer lewat port serial virtual di kabel USB; kamu tidak butuh modul tambahan untuk mengirimnya ke Excel.

Bagaimana cara kerja pengiriman data Arduino ke Excel?

Arduino tidak bisa menulis langsung ke Excel; yang dilakukannya hanya mengirim teks ke port serial dengan Serial.print(). Komputer mengakses port itu dengan nama seperti COM3 di Windows, /dev/cu.usbmodem… di macOS, atau /dev/ttyACM0 di Linux. Bahasa bersama antara Excel dan Arduino adalah CSV (Comma Separated Values, nilai yang dipisahkan koma): baris seperti 12.0,23.0,45,78 dipecah menjadi empat kolom. Jadi sketch-mu cukup mengikuti dua aturan: selalu taruh pemisah yang sama di antara nilai, dan akhiri setiap pembacaan dengan Serial.println(). Dasar-dasar port serial bisa kamu baca lengkap di panduan Serial Monitor Arduino.

MetodePlatformTransfer langsungInformasi waktuPaling cocok untuk
Serial Monitor + CSVWindows, macOS, LinuxTidak, disalin setelah pengujianOpsi timestamp di IDEEksperimen singkat, pengecekan cepat
Excel Data StreamerWindows, Excel desktop Microsoft 365Yamillis() yang dikirim ArduinoGrafik langsung di kelas
PLX-DAQ v2Windows, Excel desktop (makro)YaPerintah DATE, TIME, dan TIMERPencatatan lama ke sheet yang sudah disiapkan
Python (pyserial + openpyxl)Windows, macOS, LinuxYa, ke fileJam komputerLaporan otomatis, pencatatan berjam-jam
Modul kartu SDTidak butuh komputerTidak, kartu dibaca belakanganModul RTCPengukuran lapangan dengan daya baterai

Contoh rangkaian: pengkabelan DHT11 dan LDR

Contoh rangkaiannya punya dua sensor. DHT11 mengukur suhu dengan resolusi 1 °C dan kelembapan dengan resolusi 1%; akurasinya sekitar ±2 °C dan ±5% kelembapan relatif, dan sensor ini hanya butuh satu pin data. LDR adalah fotoresistor yang hambatannya turun ketika cahaya bertambah; kamu membuat pembagi tegangan dengan resistor 10 kΩ dan menghubungkan titik tengahnya ke pin analog. Dengan pengkabelan di bawah, nilai analog naik ketika cahaya makin terang. Angka dari LDR bukan dalam lux, melainkan level cahaya relatif, jadi yang jujur adalah memberinya label “cahaya (%)” di laporanmu. Kalau butuh nilai lux sungguhan, pakai sensor cahaya terkalibrasi seperti BH1750.

KoneksiArduino UnoESP32Raspberry Pi Pico
VCC DHT11 (+)5V3V3Memakai sensor bawaan
DATA DHT11 (OUT)D2GPIO 4Sensor bawaan (ADC4)
GND DHT11 (-)GNDGND-
Kaki 1 LDR5V3V33V3(OUT), pin 36
Kaki 2 LDR + 10 kΩA0GPIO 34GP26 (ADC0), pin 31
Ujung lain resistor 10 kΩGNDGNDAGND, pin 33
Pada modul DHT11 3 pin, resistor pull-up untuk jalur data sudah ada di board; kalau kamu memakai sensor 4 pin tanpa modul, kamu harus menambahkan sendiri resistor 4,7–10 kΩ di antara DATA dan VCC, kalau tidak sketch akan terus membaca nan. Di ESP32 dan Pico, selalu beri daya pembagi LDR dari 3,3 V: kalau kamu menghubungkannya ke 5 V, pin analog menerima tegangan lebih tinggi daripada yang sanggup ditangani board.
Modul sensor suhu dan kelembapan DHT11
DHT11: mengirim suhu dan kelembapan lewat satu pin data; kamu perlu menunggu minimal 1 detik di antara dua pembacaan.

Kode Arduino: mengirim pembacaan sebagai baris CSV

C++ (Arduino IDE)
1// DHT11 + LDR ölçümlerini CSV satırı olarak gönderir / Sends DHT11 + LDR readings as CSV lines
2#include <DHT.h>
3
4const int DHT_PIN = 2;                 // DHT11 veri pini / DHT11 data pin
5const int LDR_PIN = A0;                // LDR + 10k gerilim bölücü / LDR + 10k voltage divider
6const unsigned long ARALIK = 2000;     // ölçüm aralığı, ms (DHT11 için en az 1000) / interval in ms (at least 1000 for DHT11)
7
8DHT dht(DHT_PIN, DHT11);               // DHT22 kullanıyorsan DHT22 yaz / write DHT22 if you use one
9unsigned long sonOlcum = 0;
10
11void setup() {
12  Serial.begin(9600);                  // Data Streamer ve PLX-DAQ varsayılanı / default of Data Streamer and PLX-DAQ
13  dht.begin();
14  Serial.println("zaman_s,sicaklik_C,nem_yuzde,isik_yuzde");   // başlık satırı / header row
15}
16
17void loop() {
18  if (millis() - sonOlcum < ARALIK) return;   // zamanı gelmediyse çık / not time yet
19  sonOlcum = millis();
20
21  float sicaklik = dht.readTemperature();     // santigrat derece / degrees Celsius
22  float nem = dht.readHumidity();             // bağıl nem, % / relative humidity, %
23  int isik = map(analogRead(LDR_PIN), 0, 1023, 0, 100);   // göreli ışık, % / relative light, %
24
25  if (isnan(sicaklik) || isnan(nem)) {
26    Serial.println("HATA,DHT okunamadi");     // sayı olmadığı için kolay ayıklanır / easy to filter out, not a number
27    return;
28  }
29
30  Serial.print(sonOlcum / 1000.0, 1);         // açılıştan beri geçen saniye / seconds since power-up
31  Serial.print(',');                          // sütun ayırıcı / column separator
32  Serial.print(sicaklik, 1);
33  Serial.print(',');
34  Serial.print(nem, 0);
35  Serial.print(',');
36  Serial.println(isik);                       // satır sonu = yeni Excel satırı / line end = new Excel row
37}

Sketch ini memakai DHT sensor library dari Adafruit; ketika menginstalnya dari Library Manager, setujui juga instalasi dependensinya, Adafruit Unified Sensor. Pembacaan diambil setiap 2 detik dan diatur waktunya dengan millis(), bukan delay(), jadi loop() tidak pernah terblokir (detailnya di panduan millis dan delay). Setiap baris berisi kolom waktu, suhu, kelembapan, dan cahaya sesuai urutan itu. Serial.print(sicaklik, 1) mencetak angka dengan satu angka desimal dan selalu dengan titik. Kalau sensor tidak bisa dibaca, sketch mencetak “HATA” (bahasa Turki untuk “error”) alih-alih angka, jadi baris yang salah langsung bisa kamu kenali dan saring di tabel. Baris header di setup() berguna untuk metode Serial Monitor dan Python; kamu boleh menghapusnya kalau memakai Data Streamer. Untuk pembacaan yang berubah pelan seperti suhu ruangan, atur ARALIK (interval) ke 60000 supaya pembacaan diambil sekali per menit.

Metode 1: menyimpan output Serial Monitor sebagai CSV

  1. Upload sketch-nya, buka Tools > Serial Monitor, lalu pilih 9600 baud dari menu kecepatan.
  2. Kalau mau, aktifkan timestamp: klik ikon jam di kanan atas jendela di Arduino IDE 2, atau kotak centang timestamp di bagian bawah di IDE 1.8. Waktu komputer ditambahkan di awal setiap baris dalam bentuk 14:03:21.512 ->.
  3. Ketika eksperimen selesai, pilih baris-barisnya dengan mouse lalu salin dengan Ctrl+C (Cmd+C di macOS). Kalau ingin menyimpan data mentahnya, tempel ke Notepad lalu simpan sebagai olcum.csv dengan tipe file All Files.
  4. Di Excel, klik sel A1 di sheet kosong lalu tempel dengan Ctrl+V; semua baris masuk ke kolom A.
  5. Dengan kolom A terpilih, buka Data > Text to Columns, pilih Delimited, lalu centang Comma sebagai pemisah. Kalau timestamp aktif, centang juga Space: waktu masuk ke kolom pertama dan tanda “->” ke kolom kedua, yang kemudian kamu hapus.
  6. Di langkah terakhir, klik Advanced dan atur pemisah desimal ke titik; dengan begitu nilai seperti 23.5 dikenali sebagai angka walaupun Excel-mu memakai koma untuk desimal. Klik Finish lalu simpan file sebagai .xlsx.

Metode ini sangat praktis untuk beberapa ratus baris; dengan ribuan baris, memilihnya jadi merepotkan dan jendela IDE melambat. Untuk rekaman yang berlangsung berjam-jam, program terminal seperti PuTTY (Session > Logging > All session output) atau CoolTerm, yang berjalan di Windows, macOS, dan Linux (Connection > Capture to Text/Binary File), menulis setiap baris yang masuk langsung ke file. File itu kamu bawa ke Excel dengan langkah yang sama. Ingat: selama program terminal atau Serial Monitor memakai port, add-in Excel dan Python tidak bisa terhubung ke port itu.

Kalau Windows memakai format regional Indonesia atau Eropa daratan (misalnya Jerman, Prancis, Spanyol, Italia, atau Turki), Excel mengharapkan titik koma sebagai pemisah kolom dan koma sebagai pemisah desimal di file CSV. Karena itu mengklik dua kali CSV yang dipisahkan koma bisa menaruh semuanya di satu kolom, atau mengubah nilai seperti 23.5 menjadi tanggal (23 Mei). Solusinya adalah memecah data dengan Text to Columns seperti di atas alih-alih mengklik dua kali file-nya, atau membuat file dengan titik koma dan koma desimal sejak awal; script Python di bawah melakukan persis hal itu.

Metode 2: data langsung dengan Excel Data Streamer

Data Streamer adalah add-in gratis yang dibuat Microsoft untuk pendidikan; add-in ini mengalirkan baris CSV dari port serial langsung ke worksheet. Add-in ini sudah ikut dengan Excel desktop di Microsoft 365 (versi 1902 ke atas), jadi kamu hanya perlu mengaktifkannya. Karena berupa COM add-in, Data Streamer bekerja hanya di Windows; add-in ini tidak tersedia di Excel untuk macOS atau Excel di browser. Di sisi Arduino tidak ada yang perlu diubah: sketch di atas langsung bekerja di 9600 baud, kecepatan default add-in ini.

  1. Di Excel, buka File > Options > Add-ins, pilih COM Add-ins di daftar Manage di bagian bawah, lalu klik Go.
  2. Centang Microsoft Data Streamer for Excel lalu klik OK; tab Data Streamer muncul di ribbon.
  3. Tutup Serial Monitor di Arduino IDE; satu port serial hanya bisa dibuka oleh satu program dalam satu waktu.
  4. Pilih port COM Arduino dengan tombol Connect a Device, lalu klik Start Data. Tergantung bahasa Excel-mu, nama tombol bisa tampil dalam terjemahan.
  5. Excel membuat tiga sheet: Data In (data masuk), Data Out (data yang dikirim ke Arduino), dan Settings. Di sheet Settings, atur Data Channels ke 4 dan naikkan Data Rows supaya riwayat yang terlihat di tabel lebih banyak.
  6. Untuk menyimpan rekaman permanen, mulai merekam dengan Record Data; ketika kamu menghentikannya dengan Stop Recording, pembacaan disimpan ke file CSV. File itu bisa kamu putar ulang nanti dengan Import Data File.

Bagian atas sheet Data In menampilkan nilai terbaru (Current Data), dan di bawahnya ada tabel tempat pembacaan sebelumnya bergulir (Historical Data). Kalau kamu memilih tabel ini dan menambahkan grafik garis atau scatter dengan Insert > Recommended Charts, grafiknya diperbarui sendiri setiap ada pembacaan baru; ini ideal untuk menunjukkan ke kelas bagaimana kurva cahaya langsung turun begitu kamu menutup sensor dengan tangan. Di sheet Settings, Data Interval (ms) menentukan seberapa sering sheet diperbarui, dan Data Orientation menentukan apakah data terbaru muncul di atas atau di bawah tabel. Nilai yang kamu ketik di sheet Data Out juga dikirim ke Arduino sebagai baris CSV; Arduino bisa membacanya dengan Serial.parseInt(), jadi misalnya kamu bisa mengatur ambang alarm dari Excel.

Kalau tab Data Streamer sama sekali tidak muncul, kemungkinan besar kamu memakai versi Office selain Microsoft 365, atau macOS; dalam hal ini beralihlah ke metode PLX-DAQ atau Python. Kalau sketch-mu memakai kecepatan selain 9600, atur baud rate yang sama di pengaturan jendela Advanced; kalau tidak, tabelnya akan penuh karakter sampah.

Metode 3: menulis ke Excel baris demi baris dengan makro PLX-DAQ

PLX-DAQ (Parallax Data Acquisition) adalah makro VBA yang berjalan di dalam Excel dan mengubah perintah khusus yang datang dari port serial menjadi sel Excel. Karena versi asli dari Parallax hanya bekerja di Excel 32-bit, sekarang orang memakai PLX-DAQ v2 yang dikembangkan komunitas Arduino; versi ini mendukung Excel 64-bit dan berupa satu file .xlsm. Karena makronya bergantung pada Windows API, PLX-DAQ juga hanya berjalan di Windows. Bedanya dengan Data Streamer: di sini Arduino yang mengendalikan Excel. Arduino menulis header, mengosongkan sheet, dan menyuruh Excel menambahkan tanggal dan waktu.

C++ (Arduino IDE)
1// PLX-DAQ v2: Excel'e tarih, saat ve ölçüm satırı yazar / PLX-DAQ v2: writes date, time and readings into Excel
2#include <DHT.h>
3
4DHT dht(2, DHT11);                     // DHT11 veri pini D2 / DHT11 data pin D2
5const int LDR_PIN = A0;
6
7void setup() {
8  Serial.begin(9600);                  // PLX-DAQ'ta da 9600 seç / choose 9600 in PLX-DAQ too
9  dht.begin();
10  Serial.println("CLEARDATA");         // eski ölçümleri sil / clear old readings
11  Serial.println("LABEL,Tarih,Saat,Sure (s),Sicaklik (C),Nem (%),Isik (%)");   // 1. satır başlıkları / row 1 headers
12  Serial.println("RESETTIMER");        // TIMER sayacını sıfırla / reset the TIMER counter
13}
14
15void loop() {
16  float sicaklik = dht.readTemperature();
17  float nem = dht.readHumidity();
18  int isik = map(analogRead(LDR_PIN), 0, 1023, 0, 100);
19
20  if (!isnan(sicaklik) && !isnan(nem)) {
21    Serial.print("DATA,DATE,TIME,TIMER,");   // DATE, TIME, TIMER'ı Excel doldurur / Excel fills in DATE, TIME, TIMER
22    Serial.print(sicaklik, 1);
23    Serial.print(',');
24    Serial.print(nem, 0);
25    Serial.print(',');
26    Serial.println(isik);
27  }
28  delay(2000);                         // DHT11 saniyede en fazla 1 ölçüm verir / DHT11 gives at most 1 reading per second
29}
PerintahFungsinya
CLEARDATAMenghapus pembacaan lama di sheet
LABEL,Tarih,Saat,...Menulis header kolom ke baris 1
DATA,...Menulis pembacaan baru ke baris kosong berikutnya
DATE dan TIMEDiganti dengan tanggal dan waktu komputer di baris DATA
TIMERDetik sejak pencatatan dimulai atau sejak RESETTIMER
RESETTIMERMengembalikan penghitung TIMER ke nol
ROW,SET,2Menentukan baris tempat data berikutnya ditulis
CELL,SET,G2,25 / CELL,GET,G2Menulis nilai ke sel, atau mengirim nilai sel kembali ke Arduino
SAVEWORKBOOKMenyimpan file Excel
  1. Unduh file PLX-DAQ v2 lalu ekstrak dari zip. Klik kanan file .xlsm dan centang Unblock di Properties; secara default Office memblokir makro di file dari internet.
  2. Buka file-nya lalu klik Enable Content di bilah kuning di bagian atas.
  3. Tutup Serial Monitor di Arduino IDE lalu klik tombol Open PLX DAQ UI di sheet.
  4. Di jendela yang terbuka, ketik hanya nomor COM di kotak Port (5 untuk COM5), pilih 9600 sebagai Baud, lalu klik Connect.
  5. Kalau header tidak muncul, tekan tombol reset Arduino: setup() berjalan lagi, perintah CLEARDATA dan LABEL sampai ke Excel, dan baris-baris mulai masuk.
  6. Kalau sudah selesai, klik Disconnect dan, kalau mau, simpan datanya sebagai file .xlsx terpisah.

Metode 4: file CSV dan Excel otomatis dengan Python

Kalau kamu memakai Mac atau Linux, berencana mencatat berjam-jam, atau bosan menyusun laporan secara manual setiap kali, Python adalah pilihan paling fleksibel. Pertama, instal dua paket di terminal dengan python -m pip install pyserial openpyxl. Script pertama di bawah mendengarkan Arduino dan menulis setiap pembacaan, bersama waktu komputer, ke file deney_olcumleri.csv. Topik seperti mencari port, reset otomatis, dan grafik langsung sudah kami bahas lengkap di panduan komunikasi serial Arduino dan Python.

Python
1import csv
2import time
3from datetime import datetime
4
5import serial
6
7PORT = "COM3"               # macOS: /dev/cu.usbmodem…, Linux: /dev/ttyACM0
8BAUD = 9600                 # Arduino'daki Serial.begin ile aynı / same as Serial.begin on the Arduino
9DOSYA = "deney_olcumleri.csv"
10AYIRICI = ";"               # Türkçe Excel ; bekler, İngilizce Excel , / Turkish Excel expects ;, English Excel ,
11ONDALIK = ","               # Türkçe Excel ondalık virgül, İngilizce nokta / decimal comma in Turkish Excel, dot in English
12
13
14def sayi(x):
15    return f"{x:.1f}".replace(".", ONDALIK)   # 23.5 -> "23,5"
16
17
18with serial.Serial(PORT, BAUD, timeout=3) as ser, \
19        open(DOSYA, "w", newline="", encoding="utf-8-sig") as f:   # BOM: Excel Türkçe harfleri doğru gösterir / BOM keeps accents readable
20    time.sleep(2)                       # Uno port açılınca resetlenir / the Uno resets when the port opens
21    ser.reset_input_buffer()            # yarım kalmış satırları at / drop partial lines
22    yazici = csv.writer(f, delimiter=AYIRICI)
23    yazici.writerow(["Zaman", "Süre (s)", "Sıcaklık (°C)", "Nem (%)", "Işık (%)"])
24    print("Kayıt başladı, durdurmak için Ctrl+C / logging, press Ctrl+C to stop")
25    try:
26        while True:
27            satir = ser.readline().decode("utf-8", errors="ignore").strip()
28            parca = satir.split(",")
29            if len(parca) != 4:
30                continue                # boş, hata ya da başlık satırı / empty, error or header line
31            try:
32                sure, sicaklik, nem, isik = (float(p) for p in parca)
33            except ValueError:
34                continue                # sayı olmayan satır / non-numeric line
35            simdi = datetime.now()
36            yazici.writerow([simdi.strftime("%Y-%m-%d %H:%M:%S"),   # bilgisayar saati / PC clock
37                             sayi(sure), sayi(sicaklik), sayi(nem), sayi(isik)])   # süre Arduino'dan gelir / elapsed time comes from the Arduino
38            f.flush()                   # satırı hemen diske yaz / write the row to disk now
39            print(simdi.strftime("%H:%M:%S"), sicaklik, nem, isik)
40    except KeyboardInterrupt:
41        print("Kayıt bitti / logging stopped:", DOSYA)

Ada tiga detail di script ini yang membuatnya kompatibel dengan Excel. Encoding utf-8-sig menambahkan BOM tak terlihat di awal file; tanpa itu, Excel menampilkan karakter seperti “°C” atau huruf beraksen secara kacau. Konstanta AYIRICI (pemisah) dan ONDALIK (desimal) diatur ke titik koma dan koma desimal, format yang diharapkan Excel dengan pengaturan regional Indonesia dan sebagian besar Eropa daratan; dengan pengaturan AS atau Inggris, cukup ubah keduanya menjadi koma dan titik. f.flush() langsung menulis setiap baris ke disk, jadi kalau komputer mati atau kabel terlepas, paling banyak kamu hanya kehilangan pembacaan terakhir. Setelah kamu menghentikan script dengan Ctrl+C, cukup klik dua kali file-nya dan kolom-kolomnya terbuka dengan pemisahan yang benar. Kalau ingin melihat file selama pencatatan masih berjalan, buka salinannya, karena Excel bisa mengunci file yang dibukanya.

Python
1import csv
2from datetime import datetime
3
4from openpyxl import Workbook
5from openpyxl.chart import Reference, ScatterChart, Series
6
7GIRIS = "deney_olcumleri.csv"
8CIKIS = "deney_raporu.xlsx"
9
10wb = Workbook()
11ws = wb.active
12ws.title = "Olcumler"
13
14with open(GIRIS, encoding="utf-8-sig", newline="") as f:
15    okuyucu = csv.reader(f, delimiter=";")
16    ws.append(next(okuyucu))                               # başlık satırı / header row
17    for satir in okuyucu:
18        zaman = datetime.strptime(satir[0], "%Y-%m-%d %H:%M:%S")
19        degerler = [float(x.replace(",", ".")) for x in satir[1:]]   # "23,5" -> 23.5
20        ws.append([zaman] + degerler)                      # .xlsx sayıyı sayı olarak saklar / .xlsx stores real numbers
21
22son = ws.max_row
23for hucre in ws["A"][1:]:
24    hucre.number_format = "hh:mm:ss"                       # zaman sütunu biçimi / time column format
25ws.column_dimensions["A"].width = 12
26
27# Özet tablo: formüller İngilizce yazılır, Excel kendi diline çevirir
28# Summary: formulas are written in English, Excel shows them in its own language
29ws["G1"], ws["H1"], ws["I1"], ws["J1"] = "Özet", "Sıcaklık (°C)", "Nem (%)", "Işık (%)"
30for i, (ad, fonk) in enumerate([("Ortalama", "AVERAGE"), ("En düşük", "MIN"),
31                                ("En yüksek", "MAX"), ("Std. sapma", "STDEV")], start=2):
32    ws.cell(row=i, column=7, value=ad)
33    for sutun, harf in ((8, "C"), (9, "D"), (10, "E")):
34        ws.cell(row=i, column=sutun, value=f"={fonk}({harf}2:{harf}{son})")
35
36# Her ölçüm için süre-değer (XY dağılım) grafiği / one time-value (XY scatter) chart per reading
37x = Reference(ws, min_col=2, min_row=2, max_row=son)       # Süre (s) sütunu / elapsed time column
38for sutun, baslik, konum in ((3, "Sıcaklık (°C)", "G8"), (5, "Işık (%)", "G24")):
39    grafik = ScatterChart()
40    grafik.title = baslik + " - süre"
41    grafik.x_axis.title = "Süre (s)"
42    grafik.y_axis.title = baslik
43    grafik.x_axis.delete = False                           # yeni Excel'de eksenler görünsün / keep axes visible
44    grafik.y_axis.delete = False
45    y = Reference(ws, min_col=sutun, min_row=1, max_row=son)
46    grafik.series.append(Series(y, x, title_from_data=True))
47    grafik.width, grafik.height = 18, 8                    # cm
48    ws.add_chart(grafik, konum)
49
50wb.save(CIKIS)
51print(son - 1, "ölçüm yazıldı / readings written:", CIKIS)

Script kedua mengubah CSV menjadi file .xlsx sungguhan. Di dalam .xlsx, angka disimpan sebagai angka, bukan teks, jadi masalah pemisah dan desimal hilang sepenuhnya; file ini terbuka dengan cara yang sama di Excel berbahasa Inggris, Jerman, Turki, atau Indonesia. Script ini juga menambahkan tabel ringkasan berisi rata-rata, minimum, maksimum, dan simpangan baku, ditambah dua grafik scatter untuk suhu dan cahaya. Rumus ditulis ke file dengan nama Inggrisnya (AVERAGE, MIN, MAX, STDEV), dan Excel menerjemahkannya ke bahasanya sendiri ketika membuka file. Baris delete = False mencegah masalah label sumbu tidak muncul di grafik yang dibuat dengan openpyxl versi terbaru.

Menambahkan timestamp: millis(), jam komputer, atau RTC

SumberCara mendapatkannyaKelebihanKekurangan
millis()millis() / 1000.0 di sketch ArduinoTanpa hardware tambahan, resolusi milidetikKembali ke nol setiap reset, bukan tanggal sungguhan, overflow setelah 49,7 hari
Jam komputerdatetime Python, DATE dan TIME PLX-DAQ, timestamp Serial MonitorTanggal dan waktu sungguhan, tanpa pengaturanKomputer harus tetap terhubung
Modul RTC (DS3231, DS1307)rtc.now() dengan RTClibBekerja tanpa komputer, baterai menjaga jam tetap berjalanButuh modul tambahan; DS1307 bisa meleset beberapa detik per hari
Waktu internet (NTP)configTime() di ESP32Waktu akurat sampai hitungan detik tanpa perlu diaturButuh koneksi Wi-Fi

Untuk eksperimen yang terhubung ke komputer, jam komputer adalah pilihan termudah, dan script Python kami menuliskannya di setiap baris. Menyimpan juga waktu berjalan yang dikirim Arduino adalah kebiasaan yang baik: waktu ini menunjukkan interval sebenarnya di antara pembacaan, dan kamu langsung sadar kalau ada baris yang hilang. Kalau kamu mengirim nilai millis() mentah dari Arduino, kamu bisa mengubahnya ke detik di Excel dengan =B2/1000, atau ke menit dengan =B2/60000. Kalau Arduino akan bekerja tanpa komputer, misalnya mencatat ke kartu SD, sebaiknya ambil tanggal dan waktu dari modul jam RTC; detail pencatatan CSV ke kartu SD ada di panduan modul kartu SD. Dengan ESP32 kamu juga bisa mengambil waktu dari internet: jam NTP dengan ESP32.

Membuat grafik di Excel

  1. Pilih kolom waktu dan suhu bersama header-nya; kalau kolomnya tidak bersebelahan, tahan Ctrl ketika memilih kolom kedua.
  2. Pilih jenis scatter dengan garis dari Insert > Charts > Scatter (X, Y).
  3. Pakai tombol + di samping grafik untuk mengaktifkan Axis Titles, lalu beri nama sumbu beserta satuannya: “Waktu (dtk)” dan “Suhu (°C)”.
  4. Untuk menambahkan seri cahaya, klik kanan grafik lalu tambahkan kolom cahaya dengan Select Data > Add; karena skalanya sangat berbeda, klik kanan seri itu lalu pilih Format Data Series > Secondary Axis.
  5. Klik kanan sumbu vertikal lalu tetapkan nilai minimum dan maksimum di Format Axis, supaya perubahan 1 °C tidak terlihat seperti lonjakan besar.

Kenapa grafik scatter, bukan grafik garis? Grafik Line di Excel memperlakukan nilai di sumbu horizontal sebagai label berjarak sama; kalau ada pembacaan yang hilang atau intervalnya kamu ubah, sumbu waktu diam-diam jadi tidak akurat. Grafik Scatter (X, Y) menempatkan setiap titik di waktu sebenarnya, dan itulah yang diharapkan dari grafik ilmiah. Kalau kamu hanya membandingkan beberapa nilai tetap, seperti suhu rata-rata di tiga ruangan berbeda, grafik kolom lebih mudah dibaca. Kalau sensornya berderau, klik kanan seri lalu haluskan kurvanya dengan Add Trendline > Moving Average.

Contoh laporan praktikum: tabel pengukuran

Misalkan pertanyaan eksperimenmu adalah: “Bagaimana suhu, kelembapan, dan level cahaya udara di dekat lampu meja berubah ketika lampu dinyalakan?” Kami menaruh sensor sekitar 15 cm dari lampu dan mengatur ARALIK di sketch ke 60000, artinya satu pembacaan per menit. Lampu kami nyalakan di menit ke-1 dan matikan di menit ke-6. Nilai di bawah adalah contoh nilai tipikal yang bisa kamu dapat dengan susunan ini; dua baris terakhir adalah ringkasan yang dihitung dengan rumus Excel:

Waktu (mnt)Suhu (°C)Kelembapan (%)Cahaya (%)Status
0234614Lampu mati
1234681Lampu dinyalakan
2244582Lampu menyala
3254482Lampu menyala
4264383Lampu menyala
5264283Lampu menyala
6264215Lampu dimatikan
7254314Lampu mati
8244514Lampu mati
Rata-rata24,744,052,0-
Minimum / maksimum23 / 2642 / 4614 / 83-

Baris ringkasan kamu hitung di Excel dengan =AVERAGE(B2:B10), =MIN(B2:B10), dan =MAX(B2:B10); untuk menunjukkan seberapa tersebar pembacaannya, kamu juga bisa menambahkan =STDEV(B2:B10). Ketika menafsirkan hasil, jelaskan pola di tabel: cahaya melonjak dari 14% ke 81% begitu lampu menyala, sementara suhu naik pelan sebesar 3 °C dalam sekitar 3 menit; ini disebut inersia termal. Ketika lampu mati, cahaya langsung turun, tapi suhu tetap tinggi selama beberapa menit lagi. Kelembapan relatif turun ketika suhu naik, karena udara yang lebih hangat bisa menampung lebih banyak uap air walaupun jumlah air di dalamnya tetap sama. Lampu pijar atau halogen menunjukkan efek ini dengan jelas; dengan lampu LED, kenaikan suhunya jauh lebih kecil.

  • Tujuan: pertanyaan penelitian dan hipotesismu dalam satu kalimat.
  • Alat dan bahan: model board, sensor, resistor, dan software yang kamu pakai (Arduino IDE, Excel).
  • Metode: di mana sensor ditempatkan, interval pengukuran (misalnya 60 dtk), berapa lama eksperimen berlangsung, dan metode apa yang kamu pakai untuk memasukkan data ke Excel.
  • Tabel data: setiap header kolom harus mencantumkan satuannya; pakai tabel ringkasan di dalam teks dan sertakan data mentah lengkap sebagai lampiran.
  • Grafik: grafik scatter dengan judul sumbu, satuan, dan kejadian yang ditandai (lampu dinyalakan, dimatikan).
  • Kesimpulan dan sumber kesalahan: bandingkan temuanmu dengan hipotesis dan tuliskan keterbatasan seperti akurasi DHT11 ±2 °C, LDR yang tidak dikalibrasi, dan jarak sensor dari lampu.

Mengirim data ESP32 ke Excel

Semua metode bekerja dengan cara yang sama di ESP32; bagi Data Streamer dan PLX-DAQ, ESP32 hanyalah port serial biasa. Ada tiga hal yang berubah: pembacaan analog 12-bit (0–4095), pembagi LDR diberi daya dari 3,3 V, dan sebaiknya kamu memilih salah satu pin ADC1 (GPIO 32–39) sebagai input analog, karena pin ini tetap bekerja ketika Wi-Fi aktif. Board ESP32 biasanya dipakai di 115200 baud, jadi sesuaikan kecepatannya di script Python, di Data Streamer, dan di PLX-DAQ. Pesan bootloader yang muncul di port serial ketika board menyala bukan angka, jadi script Python tetap melewatinya. Kalau ingin mengirim pembacaan ke cloud tanpa menghubungkan ke komputer sama sekali, lihat panduan mencatat data ESP32 ke Google Sheets.

C++ (Arduino IDE)
1// ESP32: aynı CSV çıktısı, 12 bit ADC ve 3,3 V / ESP32: same CSV output, 12-bit ADC and 3.3 V
2#include <DHT.h>
3
4const int DHT_PIN = 4;                 // güvenli bir GPIO / a safe GPIO
5const int LDR_PIN = 34;                // ADC1 pini, Wi-Fi açıkken de okur / ADC1 pin, still reads with Wi-Fi on
6DHT dht(DHT_PIN, DHT11);
7
8void setup() {
9  Serial.begin(115200);                // Python'da ve Data Streamer'da da 115200 / 115200 in Python and Data Streamer too
10  dht.begin();
11  analogReadResolution(12);            // 0-4095
12}
13
14void loop() {
15  float sicaklik = dht.readTemperature();
16  float nem = dht.readHumidity();
17  int isik = map(analogRead(LDR_PIN), 0, 4095, 0, 100);   // göreli ışık, % / relative light, %
18
19  if (!isnan(sicaklik) && !isnan(nem)) {
20    // zaman_s,sicaklik,nem,isik biçimi, Uno koduyla aynı / same zaman_s,temp,hum,light format as the Uno sketch
21    Serial.printf("%.1f,%.1f,%.0f,%d\n", millis() / 1000.0, sicaklik, nem, isik);
22  }
23  delay(2000);
24}

Mencatat CSV dengan Raspberry Pi Pico (MicroPython)

Kalau kamu memakai MicroPython di Raspberry Pi Pico, kamu bisa menulis pembacaan ke file CSV di memori flash board itu sendiri alih-alih mengirimnya ke komputer; dengan begitu kamu sama sekali tidak butuh komputer dan bisa meninggalkan Pico, dengan daya dari power bank, di mana pun kamu ingin mengukur. Kode di bawah memakai sensor suhu bawaan (ADC4), yang tidak butuh hardware tambahan, dan LDR yang terhubung ke GP26, lalu menulis file dengan titik koma dan koma desimal supaya cocok dengan Excel berformat regional Indonesia atau Eropa. Karena sensor bawaan mengukur suhu chip, hasilnya bisa beberapa derajat di atas suhu ruangan; pakai sensor eksternal untuk pengukuran yang akurat. Kalau kamu baru mengenal MicroPython, mulailah dari panduan Apa Itu Raspberry Pi Pico?

Board mikrokontroler Raspberry Pi Pico
Raspberry Pi Pico: dengan MicroPython, board ini menulis pembacaan ke file CSV di memori flash-nya sendiri; file itu kamu unduh ke komputer dengan Thonny.
MicroPython
1import os
2import time
3
4import machine
5
6ldr = machine.ADC(26)                 # GP26 = ADC0, LDR + 10k bölücü / LDR + 10k divider
7ic_sensor = machine.ADC(4)            # yongadaki sıcaklık sensörü / on-chip temperature sensor
8DOSYA = "olcum.csv"
9ARALIK_S = 10                         # ölçüm aralığı, saniye / interval in seconds
10
11
12def tr(x):
13    return "{:.1f}".format(x).replace(".", ",")   # Türkçe Excel için ondalık virgül / decimal comma for Turkish Excel
14
15
16try:
17    os.stat(DOSYA)                    # dosya varsa silme, sonuna ekle / keep an existing file, append to it
18except OSError:
19    with open(DOSYA, "w") as f:
20        f.write("Sure (s);Sicaklik (C);Isik (%)\n")   # ASCII başlık / ASCII header
21
22baslangic = time.ticks_ms()
23while True:
24    volt = ic_sensor.read_u16() * 3.3 / 65535
25    sicaklik = 27 - (volt - 0.706) / 0.001721       # RP2040 veri sayfası formülü / RP2040 datasheet formula
26    isik = ldr.read_u16() * 100 / 65535             # göreli ışık, % / relative light, %
27    sure = time.ticks_diff(time.ticks_ms(), baslangic) / 1000
28    satir = "{};{};{}".format(tr(sure), tr(sicaklik), tr(isik))
29    print(satir)                                    # Thonny kabuğunda da görünür / also shown in the Thonny shell
30    with open(DOSYA, "a") as f:                     # her satırda aç-kapat / open and close for every line
31        f.write(satir + "\n")                       # elektrik kesilse de veri kalır / data survives a power cut
32    time.sleep(ARALIK_S)

Kalau kamu menyimpan kode ke Pico di Thonny sebagai main.py, board akan mulai mencatat sendiri setiap kali dinyalakan; kalau file-nya sudah ada, file itu tidak dihapus, dan baris baru ditambahkan di akhir. Ketika pengukuran selesai, hubungkan Pico ke komputer, klik Stop di Thonny, klik kanan olcum.csv di panel View > Files, unduh ke komputermu, lalu buka di Excel. Dengan satu baris sekitar 20 byte setiap 10 detik, file bertambah kira-kira 170 KB per hari; di sistem file Pico, itu masih menyisakan banyak ruang untuk pencatatan beberapa hari. Kalau Excel-mu memakai titik untuk desimal, hapus pemanggilan replace() di fungsi tr().

Error yang sering muncul dan cara mengatasinya

GejalaPenyebabSolusi
Port tidak mau terbuka, “Access is denied”Serial Monitor, Serial Plotter, atau program lain sedang memakai portTutup semua jendela yang memakai port; port hanya bisa dibuka oleh satu program dalam satu waktu
Semua nilai masuk ke satu kolomPemisah CSV tidak cocok dengan pengaturan regional ExcelPecah di tanda koma dengan Data > Text to Columns, atau atur pemisah ke ; di Python
23.5 berubah jadi tanggal (23 Mei) atau tetap sebagai teksExcel dengan format regional Eropa atau Indonesia mengharapkan koma desimalAtur pemisah desimal ke titik di Text to Columns > Advanced, atau hapus centang Use system separators di File > Options > Advanced
Huruf beraksen dan tanda ° tampil kacauCSV disimpan sebagai UTF-8 tanpa BOMPakai encoding="utf-8-sig" di Python, atau hindari karakter khusus di header
Tabel penuh karakter sampahBaud rate tidak cocokSamakan kecepatan di Serial.begin() dengan Data Streamer, PLX-DAQ, atau Python
Tidak ada tab Data StreamerAdd-in belum diaktifkan atau versi Excel-mu tidak mendukungnyaAktifkan di COM Add-ins; add-in ini tidak ada di Excel untuk macOS atau versi web
Tombol PLX-DAQ tidak berfungsiMakro diblokirCentang Unblock di Properties file, lalu klik Enable Content
PLX-DAQ tidak bisa terhubung ke portNomor COM salah atau terlalu tinggiDi Device Manager, ubah nomor COM ke nilai rendah (misalnya COM4) di Port Settings > Advanced milik port tersebut
HATA atau nan, bukan suhu dan kelembapanPengkabelan DHT11, pull-up yang tidak ada, atau pembacaan terlalu seringPeriksa kabel dan tunggu minimal 1 detik di antara dua pembacaan
Pilih interval pengukuran sesuai kebutuhanmu: untuk besaran yang berubah pelan seperti suhu ruangan, satu pembacaan per menit sudah lebih dari cukup, dan pencatatan sehari penuh hanya menghasilkan 1.440 baris. Satu worksheet Excel menampung paling banyak 1.048.576 baris; dengan 10 pembacaan per detik, batas itu tercapai dalam sekitar 29 jam. Untuk sensor yang berderau, merata-ratakan beberapa pembacaan di Arduino lalu mengirim satu baris akan memperkecil file sekaligus menghaluskan grafik.

Ide proyek dengan pencatatan data ke Excel

  • Kurva pendinginan: ukur bagaimana segelas air panas mendingin dengan DS18B20 tahan air, tambahkan trendline eksponensial di Excel, lalu pelajari hukum pendinginan Newton.
  • Stasiun cuaca mini: catat suhu, kelembapan, dan tekanan dengan BME280 selama seminggu, lalu buat grafik perbedaan antara malam dan siang.
  • Catatan penyiraman tanaman: rekam nilai sensor kelembapan tanah sebelum dan sesudah penyiraman, lalu cari tahu berapa lama tanah mengering.
  • Analisis gerak: buat tabel jarak-waktu dengan HC-SR04, lalu hitung kecepatan dan percepatan di Excel dari selisih antarbaris yang berurutan.
  • Kurva pengosongan baterai: ukur tegangan baterai dengan pembagi tegangan, catat selama berjam-jam, lalu pelajari bagaimana tegangannya turun seiring waktu.
  • Proyek lomba sains: bandingkan seberapa panas kotak dengan warna berbeda ketika dijemur di bawah matahari; untuk ide lainnya, lihat panduan ide proyek Arduino untuk lomba sains.

Metode mana pun yang kamu pilih, dasarnya sama: hasilkan baris CSV yang bersih dan konsisten di Arduino, lalu bawa ke Excel dengan pemisah yang tepat di komputer. Serial Monitor paling cocok untuk pengecekan cepat, Data Streamer untuk demo langsung di kelas, PLX-DAQ untuk mengendalikan Excel dari Arduino, dan Python untuk pencatatan panjang yang otomatis. Di aplikasi BlueGrays kamu akan menemukan proyek seperti “Suhu dan Kelembapan dengan DHT11”, “Mengukur Intensitas Cahaya dengan LDR”, dan pencatat data suhu ESP32, langkah demi langkah lengkap dengan skema rangkaian dan kode, dan data yang kamu ukur bisa kamu kirim ke Excel dengan metode-metode ini.

Pertanyaan umum

Bagaimana cara memasukkan data Arduino ke Excel?

Cara termudah adalah mengirim pembacaan dari Arduino sebagai baris yang dipisahkan koma dengan Serial.println(), lalu membawa baris-baris itu ke Excel. Di Windows dengan Microsoft 365, add-in Data Streamer mentransfer data secara langsung, dan makro PLX-DAQ melakukan pekerjaan serupa. Di Mac atau Linux, mencatat ke file CSV dengan Python dan pyserial adalah solusi paling praktis.

Apakah Excel Data Streamer bisa dipakai di Mac?

Tidak. Data Streamer adalah COM add-in dan hanya tersedia di Excel desktop Microsoft 365 untuk Windows; add-in ini tidak ada di Excel untuk macOS atau versi web. Di Mac kamu bisa membuat file CSV atau .xlsx dengan Python, atau menyimpan output serial ke file dengan program terminal seperti CoolTerm.

Apakah PLX-DAQ bisa dipakai di Excel 64-bit?

PLX-DAQ asli dari Parallax hanya bekerja di Excel 32-bit. PLX-DAQ v2, yang dikembangkan komunitas Arduino, juga mendukung Excel 64-bit dan memakai perintah CLEARDATA, LABEL, dan DATA yang sama. Kedua versi adalah makro VBA, jadi hanya berjalan di Windows dan butuh makro yang diaktifkan.

Bagaimana cara menyimpan data dari Serial Monitor Arduino?

Serial Monitor tidak punya tombol simpan; kamu memilih baris-barisnya dengan mouse, menyalinnya dengan Ctrl+C, lalu menempelkannya ke file teks atau langsung ke Excel. Kalau opsi timestamp kamu aktifkan, waktu komputer ditambahkan ke setiap baris. Untuk rekaman panjang, lebih aman memakai fitur pencatatan ke file di PuTTY atau CoolTerm, atau script Python.

Kenapa file CSV-ku terbuka dalam satu kolom di Excel?

Dengan pengaturan regional Indonesia dan banyak negara Eropa, Excel mengharapkan titik koma sebagai pemisah kolom, jadi ketika kamu mengklik dua kali file yang dipisahkan koma, semua nilai tetap di kolom A. Kamu bisa memecah data di tanda koma dengan Data > Text to Columns, atau mengimpor file dengan Data > From Text/CSV lalu memilih pemisahnya sendiri. Kalau file-nya kamu buat dengan Python, memakai pemisah yang diharapkan Excel-mu sejak awal adalah solusi yang paling tahan lama.

Bagaimana cara mencatat data Arduino tanpa komputer?

Tanpa komputer, kamu bisa menulis pembacaan ke modul kartu SD sebagai file CSV dan mengambil tanggal serta waktu dari modul RTC; nanti kartunya kamu masukkan ke komputer dan file-nya dibuka di Excel. Dengan ESP32 yang punya Wi-Fi, kamu bisa mengirim data langsung ke Google Sheets. Raspberry Pi Pico bisa menulis file CSV ke memori flash-nya sendiri dengan MicroPython.

Lihat semua proyek
Suhu dan Kelembapan dengan DHT11
#55Menengah

Suhu dan Kelembapan dengan DHT11

Seberapa hangat kamarmu, dan apakah udaranya lembap atau kering? Sensor DHT11 mengukur suhu dan kelembapan, dan Arduino menulis nilainya di layar LCD dua baris, diperbarui setiap beberapa detik. Jika

4.7(47)
73
Mengukur Intensitas Cahaya dengan LDR
#11Pemula

Mengukur Intensitas Cahaya dengan LDR

Ingin melihat seberapa terang kamarmu dalam bentuk angka? LDR, komponen kecil yang bereaksi terhadap cahaya, mengukur cahaya di sekitarnya, dan Arduino menulis nilainya ke layar komputermu setiap sete

4.6(81)
139
Pengukuran Jarak HC-SR04 (Tampilan Serial)
#27Pemula

Pengukuran Jarak HC-SR04 (Tampilan Serial)

Sensor HC-SR04 bekerja persis seperti kelelawar yang mencari jalan dalam gelap: ia mengirim suara yang tidak bisa kamu dengar, mendengarkan pantulannya, dan mengukur seberapa jauh benda di depannya. A

4.6(46)
71
Membaca Intensitas Cahaya dengan Modul LDR ESP32
#113Pemula

Membaca Intensitas Cahaya dengan Modul LDR ESP32

Memantau secara real-time di Serial Monitor nilai ADC mentah modul LDR dan persentase cahaya relatif yang dihitung dari nilai acuan gelap dan terang. Persentase ini bukan pengukuran lux. Mengajarkan logika kalibrasi modul. Ideal dikerjakan sebelum Proyek 10, karena dipakai untuk menentukan nilai ambang.

4.6(36)
55
Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)
#144Mahir
Premium

Pencatat Data Suhu ESP32 (DHT22 + RTC DS1307 + microSD + OLED)

Buat pencatat suhu bercap waktu dengan ESP32! Baca suhu/kelembapan DHT22 setiap menit, ambil waktu sebenarnya dari RTC DS1307, dan catat ke kartu microSD sebagai CSV. OLED menampilkan suhu langsung (font besar), kelembapan, cap waktu, dan penghitung catatan. File /temp_log.csv bisa dibuka di Excel, Google Sheets, atau Python pandas; cocok untuk rumah kaca, suhu kamar, data laboratorium, penyimpanan makanan, atau sarang lebah.

4.7(7)
12
Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)
#117Menengah

Suhu dan Kelembapan DHT22 ESP32 (dengan Layar LCD)

Proyek ini mengukur suhu dan kelembapan sekitar dengan sensor DHT22 dan menampilkan datanya secara real-time di LCD I2C 16x2. Data dibaca dari sensor dengan protokol satu kabel lewat library Adafruit DHT. Proyek ini menjadi dasar untuk stasiun cuaca IoT, otomasi rumah pintar, atau sistem pemantauan lingkungan di rumah kaca. Komunikasi dengan DHT22 dilakukan lewat pin GPIO 4 ESP32.

4.8(38)
56
Mengukur Suhu dengan NTC dan Layar LCD 2x16
#44Pemula
Premium

Mengukur Suhu dengan NTC dan Layar LCD 2x16

Ukur suhu di sekitarmu dengan sensor yang mirip manik-manik kecil. Komponen bernama NTC ini makin mudah dilewati listrik ketika makin hangat; Arduino membaca perubahan itu, mengubahnya menjadi derajat

4.5(33)
44
Jam Digital dengan ESP32 dan RTC DS1307 (I2C + LCD)
#120Menengah
Premium

Jam Digital dengan ESP32 dan RTC DS1307 (I2C + LCD)

Di proyek ini, kita menampilkan waktu dan tanggal di layar LCD I2C 16x2 memakai modul jam real-time (RTC) DS1307. DS1307 adalah RTC berbaterai cadangan yang tetap menjaga waktu meskipun ESP32 dimatikan. Kedua modul berbagi bus I2C yang sama (SDA/SCL), sehingga kita belajar mengendalikan beberapa perangkat hanya dengan dua kabel sinyal. Lewat proyek ini kamu mendapat pengetahuan praktis tentang protokol komunikasi I2C, cara kerja modul RTC, dan tampilan data dinamis di LCD.

4.6(26)
40