Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Dalam proyek ini saya membuat Scrolling WordClock dengan ESP32, LED Matrix dan kotak cerutu.
WordClock adalah jam yang menunjukkan waktu daripada hanya mencetaknya di layar atau memiliki tangan yang dapat Anda baca. Jam ini akan memberi tahu Anda bahwa sudah 10 menit lewat jam 3 sore, atau siang hari. Saya bahkan memprogramnya untuk menggunakan Prevening (dari Big Bang Theory) nama untuk periode waktu yang ambigu antara siang dan malam. Mulai pukul 16:00.
ESP32 luar biasa, sangat menyenangkan dan sangat murah, Jika Anda menyukai pemrograman Arduino, Anda akan benar-benar kagum dengan apa yang dapat dilakukan ESP32 dengan harga di bawah $10. Mereka menggunakan Arduino IDE dan mudah diprogram. Saya akan menunjukkan bagaimana melakukannya dalam instruksi ini.
Perlengkapan
- ESP32 - sekitar $10 di amazon
- Matriks LED (maks7219) (dan kabel) - $9 amazon
- Kotak rokok
- kabel daya USB
- Printer 3d opsional untuk dudukan esp32
Langkah 1: Siapkan Arduino IDE Anda untuk Mendukung ESP32
Dapatkan Arduino IDE:
- Di browser, buka
- Klik Software kemudian Download untuk mendapatkan ARDUINO 1.8.12
Tambahkan Dukungan ESP32 ke Arduino IDE Anda:
- Mulai Arduino IDE
- Klik pada Menu File lalu Preferences.
Setelah di "Preferensi" tambahkan dukungan pabrikan dengan menambahkan baris berikut ke "Manajer Papan Tambahan"
dl.espressif.com/dl/package_esp32_index.js
Ini akan memberi kita akses untuk menambahkan papan ke IDE
Buka Menu Alat dan kemudian Papan dan pergi ke manajer papan
Selanjutnya cari "ESP" dan tambahkan paket dengan Expressif.
Terakhir kami ingin kembali ke Menu "Tools", lalu "Board" lagi dan gulir ke bawah untuk menemukan perangkat ESP32 Anda.
Milik saya adalah "Modul Penjelajah ESP32"
Langkah 2: Hubungkan Matriks LED ke ESP32
Matriks LED terdiri dari empat blok 8x8 LED dan menggunakan chip MAX7219. Itu memberi kita 8x32 LED di Matrix atau 256 LED!!!.
Esp32 sedang menunggu yang saya buat di TinkerCad. Dudukan saya memegang pin menghadap ke atas sehingga Anda dapat memasang kabel.
Matriks LED terhubung ke ESP32 menggunakan SPI (Serial Peripheral Interface).
Gunakan Kabel Wanita/Wanita dan Pin Connect sebagai berikut:
- ESP32 - 5v ke VCC pada Matrix
- ESP32 - GND ke GND di Matriks
- ESP32 - PIN5(G5) ke CS di Matrix
- ESP32 - PIN23 (G23) ke Din on Matrix
- ESP32 - Pin 18 (G18) ke CLK di Matrix
Dimungkinkan untuk menggunakan pin lain atau jika ESP32 Anda memiliki pinout yang berbeda.
Langkah 3: Menyatukannya
Selanjutnya saya memotong kotak cerutu untuk memberi saya tempat untuk meletakkan layar LED. Kotaknya lembut dan saya bisa menggunakan pisau silet. Kemudian saya amplas untuk menghaluskannya.
Saya juga memotong keseluruhan di belakang untuk kabel listrik. Saya hanya menggunakan daya USB. Saya bahkan bisa menambahkan baterai pengisi daya telepon USB di dalam kotak cerutu jika saya menginginkannya nirkabel.
Langkah 4: Arduino IDE dan File INO
Bagian terbaiknya adalah kodenya. Tetapi pertama-tama kita harus menambahkan perpustakaan untuk memungkinkan program menggunakan tampilan dengan cara yang lebih sederhana. Saya menambahkan perpustakaan MD_MAX72xx.
Untuk menambahkan perpustakaan klik pada menu "Sketsa", lalu "Sertakan Perpustakaan" dan "Kelola Perpustakaan" ini akan memuat dan memungkinkan Anda untuk mencari perpustakaan MD_MAX72xx. Cukup klik instal dan Anda memilikinya.
Selanjutnya dapatkan File Arduino INO saya:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
Muat file ino ke Arduino IDE Anda, Hubungkan USB dari ESP32 ke komputer Anda.
Klik "Sketsa" lalu Unggah
Pada titik ini jam tidak akan berfungsi, ESP32 tidak akan menampilkan apa pun. Mengapa? kita perlu menambahkan WIFI Anda ke kode karena WordClock terhubung ke internet untuk mendapatkan waktu. Betul…langkah selanjutnya ->.
Langkah 5: Kode
Kami akhirnya berhasil sampai ke bagian favorit saya. Program. Saya akan membahasnya dari atas ke bawah jika Anda tertarik, Agar program bekerja dengan internet rumah Anda, Anda hanya perlu mengubah baris ini.
// Tambahkan informasi jaringan Anda
const char *ssid = "xxxxxx";
const char *kata sandi = "xxxxxx";
Program ini agak rumit, tetapi sangat menyenangkan.
Untuk menonaktifkan "Mencegah" cukup ubah nilainya menjadi false:
const boolean MENCEGAH=benar; //Teori Big Bang.
Untuk menonaktifkan tampilan waktu digital setelah menggulir, ubah ini menjadi false.
const boolean DISPLAY_DIGITAL=benar; //mengaktifkan tampilan waktu digital setelah menggulir.
Menggulir Waktu:
Saya mendapatkan waktu dari server waktu di internet menggunakan NTP (Network Time Protocol). Waktu diadakan dalam variabel yang disebut timeinfo dan kami mendapatkan jam dan menit darinya
int jam = timeinfo.tm_hour; ///0-23
int menit = timeinfo.tm_min; //0-59
Selanjutnya cek AM atau PM
Ini AM jika jam <12
Saya membuat string yang disebut "theTime" dan memulainya dengan:
theTime="Ini ";
Untuk mendapatkan angka sebagai kata, saya membuat larik kata untuk angka hingga 30
const char *angka = {
"0", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas", "Dua Belas ", "Tiga Belas", "Empat Belas", "Seperempat", "Enam Belas", "Tujuh Belas", "Delapan Belas", "Sembilan Belas", "Dua Puluh", "Dua Puluh Satu", "Dua Puluh Dua", "Dua Puluh Tiga ", "Dua Puluh Empat", "Dua Puluh Lima", "Dua Puluh Enam", "Dua Puluh Tujuh", "Dua Puluh Delapan", "Dua Puluh Sembilan", "Setengah Lewat"};
Jadi ketika jam 12:05 atau lima menit lewat dua belas itu benar-benar ke Arduino
angka[5] menit lewat angka[12]
Untuk menentukan apakah "Menit Lewat" atau "Menit Ke" kita hanya melihat menit. Jika menit < 31 itu adalah "Menit Lewat" jika menit lebih besar dari 31 kita menggunakan "Menit Ke" tetapi menggunakan angka[60-menit] jadi 12:50 akan menjadi 60-50 menit atau angka[10] yang akan beri kami 10 Menit Ke 12 0'clock.
Tentu saja ada aturan lain seperti pada 15, 30, 45 kita tidak menggunakan menit hanya setengah atau seperempat, dan jika menitnya 0 waktunya hanya "Pukul Sepuluh" atau Siang.
Jadi untuk menyatukannya, saya menambahkan semua item ke String theTime lalu menampilkannya pada Matriks LED. Saya menggunakan banyak pernyataan If. Saya mungkin seharusnya menggunakan case tetapi lebih mudah untuk terus menambahkannya.
Untuk contoh kita 12:05
theTime="Ini"
jika menit < 31 gunakan "Menit Lewat" jika tidak "Menit Ke"
theTime+= angka[5] + " Menit Lewat" + angka [12] + "O'Clock" //Catatan: Notasi += ditambahkan.
Selanjutnya kita melihat jam untuk menentukan apakah itu pagi, siang atau malam.
theTime+= "Di Malam Hari"
String terakhir yang menuju ke matriks adalah:
"Ini Lima Menit Lewat Pukul Dua Belas di Malam Hari"
Proyek ini sangat menyenangkan untuk ditulis. Jika Anda menyukainya, silakan klik Hati dan Vote untuk saya.