1 poin oleh GN⁺ 2026-02-10 | 1 komentar | Bagikan ke WhatsApp
  • Proyek yang mengendalikan jam kuarsa analog murah dengan modul ESP8266 dan sketsa Arduino agar tersinkron ke waktu internet
  • Mengambil waktu dari server NTP setiap 15 menit untuk menjaga akurasi, serta menyertakan fitur penyesuaian otomatis daylight saving time
  • Koil motor stepper Lavet pada jam dipisahkan agar bisa dikendalikan ESP8266, dan chip EERAM digunakan untuk menyimpan posisi jarum jam, menit, dan detik meski daya terputus
  • Saat pengaturan awal, posisi jarum ditentukan melalui antarmuka halaman web yang disediakan ESP8266, lalu status jam divisualisasikan lewat SVG atau HTML Canvas pada halaman status
  • Contoh open source yang menunjukkan bagaimana jam sinkronisasi jaringan yang akurat dapat dibuat dengan perangkat keras murah, sekaligus memperlihatkan penerapan praktis teknik kontrol IoT embedded

Gambaran proyek

  • ESP8266 WiFi Analog Clock adalah sistem yang menggunakan modul WEMOS D1 Mini ESP8266 dan sketsa Arduino untuk otomatis mengambil dan menampilkan waktu lokal dari server NTP (Network Time Protocol)
    • Terhubung ulang ke server NTP setiap 15 menit untuk menjaga akurasi jam
    • Menyertakan fitur penyesuaian otomatis daylight saving time (DST)
  • Proyek ini berbasis jam kuarsa analog murah dan menggabungkan modifikasi perangkat keras dengan kontrol perangkat lunak

Konfigurasi perangkat keras

  • Jam yang digunakan adalah jam kuarsa analog yang dibeli di Walmart seharga $3,88
  • Mekanisme kuarsa jam dibuka, lalu koil motor stepper Lavet di dalamnya dipisahkan dari osilator kuarsa, dan kabel disolder ke masing-masing lead untuk koneksi ke ESP8266
    • Sebagian besar mekanisme dirakit dengan sistem snap tanpa sekrup
    • Kabel koil lebih tipis dari rambut, jadi perlu penanganan yang sangat hati-hati
  • Rangkaian akhirnya disusun di atas perfboard bersama IC EERAM dan komponen lainnya

Cara kerja perangkat lunak

  • Sketsa AnalogClock.ino membuat ESP8266 membandingkan waktu aktual dengan waktu yang ditampilkan jam sebanyak 10 kali per detik
    • Jika jam terlambat, jarum detik dipercepat untuk sinkronisasi
    • Jika jam terlalu cepat, sistem menunggu sampai waktu aktual menyusul
  • Pergerakan jarum detik dilakukan dengan memberikan pulsa bipolar ke koil motor Lavet
    • Sesuai karakteristik motor, konstanta PULSETIME perlu disesuaikan, dan dari percobaan nilai 30ms dianggap cocok
  • Jam murah tidak memiliki umpan balik posisi jarum, sehingga informasi posisi hilang saat daya terputus
    • Untuk mengatasinya, digunakan Microchip 47L04 Serial EERAM (SRAM 4Kbit + backup EEPROM)
    • Posisi jarum jam, menit, dan detik disimpan setiap detik lalu dipulihkan saat daya kembali menyala

Pengaturan awal dan antarmuka web

  • Saat sketsa dijalankan pertama kali, ESP8266 menyediakan halaman web sederhana agar pengguna dapat menentukan posisi awal jarum jam
  • Setelah itu, ESP8266 mengingat posisi jarum menggunakan data yang disimpan di EERAM
  • Saat beroperasi, tersedia halaman status (status page) dengan tiga mode tampilan berikut
    • Grafik dial jam berbasis SVG
    • Tampilan dial jam berbasis HTML Canvas
    • Tampilan status teks saja

Lisensi dan informasi teknis

  • Proyek ini dirilis dengan lisensi MIT
  • Komposisi bahasa utama: C++ 64.1% , C 35.9%
  • Repositori GitHub memiliki 252 star dan 2 fork
  • Tag topik terkait: arduino, esp8266, clock, analog-clock, ntp, hardware-construction

Makna

  • Contoh praktis mengubah jam murah menjadi jam pintar sinkronisasi Wi-Fi
  • Contoh implementasi kontrol waktu presisi dan antarmuka berbasis web dengan ESP8266 dan lingkungan Arduino
  • Referensi open source untuk mempelajari modifikasi perangkat keras IoT dan teknik sinkronisasi firmware

1 komentar

 
GN⁺ 2026-02-10
Komentar Hacker News
  • Proyek yang sangat keren
    Bagian yang paling menarik adalah chip "SRAM with EEPROM backup"
    Chip ini memungkinkan posisi jarum jam disimpan secara permanen setiap kali digerakkan, tanpa menghabiskan umur tulis seperti EEPROM biasa
    Harganya juga di bawah 1 dolar, jadi komponen ini berguna untuk hobi atau proyek skala kecil
    • Menurutku, cara kerjanya kira-kira seperti ini
      SRAM dan EEPROM berada dalam satu paket bersama kontroler, dengan kapasitor kecil (4.7µF) di dekatnya
      SRAM menyimpan data selama daya tetap ada, sedangkan EEPROM menyimpan data secara permanen meski daya mati, tetapi punya batas jumlah penulisan
      Saat kontroler mendeteksi tegangan mulai turun, isi SRAM langsung di-dump ke EEPROM
      Kapasitor menyuplai daya pada momen itu agar data bisa ditulis ke EEPROM
      Saat daya kembali, data dari EEPROM disalin lagi ke SRAM
      Kekurangannya, kapasitasnya kecil, hanya 4 kilobit, tetapi jika masalah seperti ini bisa diselesaikan dengan 1 dolar, itu sudah sangat layak
    • Tidak yakin apakah ini teknologi yang mirip, tetapi tautan produk dari Adafruit juga menarik
    • Aku juga suka FRAM untuk penggunaan seperti ini
      Terutama jika log debug disimpan sebagai ring buffer, itu berguna untuk menyimpan crash log sistem embedded meski tidak terhubung ke PC pengembangan
  • Harga Walmart terlihat $3.88, tetapi karena kebijakan harga dinamis berdasarkan wilayah/pengguna, di daerahku tampil sebagai $5.92
    Tautan produk
  • Di rumah kami ada jam atom Seiko yang diharapkan bisa menyetel waktu otomatis lewat sinyal WWVB
    Namun di tempat tinggalku sekarang, sinyalnya terlalu lemah sehingga pengaturan manual sangat merepotkan
    Karena itu aku membuat sendiri kode Arduino yang memakai ESP32 dan server NTP untuk mengemulasi sinyal jam atom dari seluruh dunia
    Mempelajari sejarah dan perbedaan sinyal siaran jam atom di berbagai negara juga cukup menarik
    • Namun, perlu hati-hati karena memancarkan pada frekuensi seperti WWVB kemungkinan ilegal
  • Aku ingin melihat seseorang memodifikasi jam proyeksi seperti ini
    Kecerahan proyeksi merahnya pas untuk malam hari, tetapi tidak ada sinkronisasi Wi-Fi, jadi waktunya tidak bisa disetel lewat NTP atau GPS
    Bagian proyektornya terhubung ke unit utama lewat kabel pita, jadi akan seru kalau di-reverse engineer
    Idealnya, akan bagus jika matriks LED di langit-langit bisa menampilkan informasi selain waktu
    Produk seperti itu memang ada, tetapi sangat mahal seperti buyfrixos.com
    • Aku pernah membuat versi redupnya sendiri
      Tautan proyek buatanku
    • Produk yang ditautkan punya fitur "Atomic Time", jadi tampaknya sinkron lewat sinyal WWVB
      Aku juga memakai beberapa jam dinding murah seperti ini, dan penyimpangan waktunya hampir tidak ada
      Menurutku bahkan jitter-nya bisa lebih kecil daripada NTP
    • Aku juga suka jam WWV/WWVB
      Tidak pernah perlu menyetel waktu sama sekali, dan tetap cocok dengan jam NTP dalam selisih kurang dari 1 detik
      Hanya saja, jam oven atau microwave rasanya ingin kumatikan saja
    • Sebenarnya, kalau sudah masuk ke modifikasi seperti ini, pada akhirnya kita sampai pada kesimpulan bahwa harga produk jadi itu masuk akal karena biaya komponen dan waktu
    • Aku punya beberapa jam digital dari Temu, dan ada masalah waktu yang makin lama makin cepat
      Dalam sebulan bisa maju sekitar 1 menit, jadi akan bagus kalau ada sinkronisasi Wi-Fi
  • Aku sangat suka nuansa hacking seperti ini
    Produk zaman sekarang makin tertutup, jadi aku rindu membuat sendiri benda-benda sederhana yang mudah diutak-atik
    Kalau suatu hari lepas dari pekerjaan utama, aku ingin membuat sendiri peralatan rumah tangga yang sederhana, andal, dan ramah hacker
    Proyek seperti ini benar-benar mengagumkan
  • Kalau ingin tangan tidak terlalu kotor, aku merekomendasikan Crazy Clock
    Aku membelinya untuk putriku, tetapi bunyi tik-tok yang tidak teratur mengganggu saat belajar, jadi sekarang sedang tidak dipakai
    Meski begitu, pengalamannya cukup menyenangkan
    • Mode "Early clock" menjaga jam tetap 0~10 menit lebih cepat, jadi bagus untuk mencegah terlambat
      Hanya saja, kalau ada banyak jam di rumah, kita harus memutuskan untuk mengikuti yang satu itu saja agar efektif
  • Kalau anggarannya lebih besar, ada juga jam besar yang berbunyi "thunk" setiap 30 detik
    Pengenalan Gents Turret Movement
    Aku pernah memakainya untuk membuat jam elektromekanis berbasis tuning fork
    Alih-alih sumber waktu presisi, jam itu digerakkan dengan tuning fork dan logika 74xx
    • Jam tuning fork seperti ini benar-benar keren
      Aku heran kenapa Accutron masih tidak membuat jam seperti ini
      Pendekatan yang memakai frekuensi resonansi ini mirip dengan jam kuarsa tetapi lebih menarik secara visual
  • Saat merancang rangkaian H-bridge untuk stepper motor, arus balik wajib diperhitungkan
    Kalau tidak, lonjakan bisa menyebabkan malfungsi atau bahkan merusak mikrokontroler
    Idealnya, tegangan gate dipisahkan dengan optotransistor, dan catu daya motor disuplai terpisah
  • Aku pernah melihat video YouTube berjudul "Mengubah limbah €0 menjadi dek edit video seharga €400"
    Ada juga proyek GitHub
    • Ide mendaur ulang kontroler VCR menjadi perangkat input digital itu brilian
      Masih banyak dek lama atau kontroler LANC yang tersisa, jadi nilainya untuk dimanfaatkan cukup besar
  • Proyek ini keren, tetapi tampaknya ada kemungkinan muncul time drift
    Walaupun jam mengetahui waktu yang benar, jika kecepatan gerak aktualnya sedikit meleset terus-menerus, kesalahan kumulatif bisa membesar
    Terutama jika konstanta PULSETIME salah disetel hanya 1 ms, selisihnya bisa terlihat dalam sehari
    Memang, stepper motor Lavet secara teori menjaga langkah berbasis frekuensi osilasi yang konsisten, tetapi keausan atau noise bisa menimbulkan bias
    Namun untuk tingkat jam dinding, mungkin penyimpangan itu bisa diabaikan
    • Stepper motor tipe Lavet dikendalikan oleh jumlah pulsa, jadi yang penting adalah jumlahnya, bukan lebar pulsanya
      Penjelasan di Wikipedia membantu untuk memahaminya
    • pulsetime hanyalah durasi untuk memajukan satu langkah
      Selama tidak ada langkah yang terlewat, tidak akan ada kesalahan kumulatif
      Jadi, cukup menjaga hitungan langkah tetap akurat