Daftar Isi:

Jam Alarm Oled: 8 Langkah (dengan Gambar)
Jam Alarm Oled: 8 Langkah (dengan Gambar)

Video: Jam Alarm Oled: 8 Langkah (dengan Gambar)

Video: Jam Alarm Oled: 8 Langkah (dengan Gambar)
Video: Kecurangan penjual gas elpiji!!!!! 2024, November
Anonim
Jam Alarm Oled
Jam Alarm Oled

Ada banyak jam arduino/ESP32 yang beredar, tetapi apakah mereka menggunakan OLED yang bagus dan tajam itu?

Saya telah bereksperimen dengan arduino dan ESP32 untuk sementara waktu sekarang, tetapi saya tidak pernah membuatnya menjadi produk jadi. Saya telah membuat jam alarm dengan 4 OLED monokrom 1,3 inci. Jam ini juga dilengkapi dengan lampu samping tempat tidur yang dapat diredupkan dan port pengisian USB (tidak ada yang memiliki outlet cadangan di samping tempat tidurnya). OLED juga dapat diredupkan, ini ditambahkan pada menit terakhir setelah proyek saya diancam oleh pacar saya. Seharusnya redup tidak cukup -dalam suara pacar- cukup redup, saya juga dapat memberikan versi kode di mana 3 layar diberdayakan antara jam-jam tertentu. Tujuannya adalah untuk membuat jam yang mudah diservis, dengan tampilan di luar "prototipe". Saat membuat jam saya, saya mengalami beberapa kesulitan yang harus saya selesaikan, itulah sebabnya saya pikir instruksi ini layak untuk dibagikan. Jam dapat dibuat dengan alat kecil, saya tidak suka tutorial "dan untuk langkah selanjutnya saya menggunakan 10.000€/$ CNC mill".

Beberapa hal yang akan dijelaskan dalam instruksi ini (in-structable-ception):

- Cara menggunakan/menyambungkan layar OLED I2C dengan arduino/ESP32

- Cara menggunakan beberapa objek I2C dengan satu arduino/ESP32

- Cara membuat menu "scroll-able" menggunakan rotary encoder (+cara menggunakan encoder dengan ESP32/arduino)

- Cara mendesain dan memesan PCB custom menggunakan fritzing.

- Jam ini juga menggunakan RTC (jam waktu nyata), driver yang dipimpin, modul tegangan turun… Saya tidak akan membahas ini karena ada banyak informasi yang tersedia untuk modul ini.

Saya ingin mencatat bahwa saya bukan programmer profesional. Tujuan instruksi saya adalah untuk menjelaskan poin-poin yang saya sebutkan di atas. Bagaimana saya menggabungkan semuanya untuk produk akhir saya mungkin bukan cara yang paling bersih. Ini adalah cara yang memungkinkan saya untuk melacak semuanya.

Perlengkapan

Saat berbelanja persediaan, saya selalu mencoba mempertimbangkan pentingnya kualitas/dokumentasi vs harga. Persediaan saya adalah campuran merek-A dan suku cadang Cina yang lebih murah. Mouser adalah pemasok hebat jika kualitas penting, saya memesan dari Banggood/Aliexpress untuk suku cadang yang lebih murah.

- Papan ESP32, saya menggunakan Huzzah32 dari adafruit, tetapi ada banyak opsi lain (lebih murah). Saya memilih Huzzah32 karena didokumentasikan dengan sangat baik.

- 4 layar OLED I2C 1,3 inci (128x64, dengan driver SH1106), yang 0,96" lebih umum tetapi untuk proyek ini saya lebih suka yang 1,3"

- Driver femtobuck Sparkfun untuk menggerakkan LED

- Jam RTC, saya menggunakan satu dengan sel lithium

-Arduino nano

- Port USB 2.0 Wanita (saya menggunakan: SS-52200-002 dari Stewart Connector)

- Jack DC wanita (saya menggunakan: L722A dari Switchcraft)

- Adaptor DC 12V 3A (GST36E12-P1J dari Mean Well)

- PCB kustom, opsional tetapi ini membuat proyek jauh lebih kompak dan mudah diservis jika ada bagian yang mati + lebih andal karena lebih sedikit kabel (jlcpcb.com)

- Sekrup & baut M3

- Sisipan kuningan M3

- Modul step down 12V ke 5V dari Pololu (DF24V22F5)

- Daya 3 watt dengan heatsink

- Kabel jumper

- Bel

- Multiplexer I2C (TCA9548A dari adafruit)

- 2 Rotary encoder (Saya sudah mencoba beberapa, tidak semua bekerja dengan kode saya. Yang dari "DFrobot" berfungsi dan begitu juga yang dari PCB bundar dari "DIYmore". Kode saya sepertinya tidak berfungsi untuk tombol tekan dari tipe KY-040. Jam alarm saya menggunakan yang dari DIYmore karena sangat mudah dipasang di panel (tidak perlu sekrup/lubang tambahan).

- Berbagai macam header wanita (opsional)

- Kayu untuk bingkai: 18mmx18mmx2400mm

- Menjiplak

Saya menggunakan beberapa alat (besi solder, tangan ke-3, gergaji …) juga, tetapi tidak ada yang benar-benar eksotis.

Langkah 1: Menggunakan Oled

Menggunakan Oled
Menggunakan Oled
Menggunakan Oled
Menggunakan Oled
Menggunakan Oled
Menggunakan Oled

Untuk menggunakan OLED, Anda harus menginstal perpustakaan. Saya menggunakan U8G2lib dari Oli Kraus, sangat mudah dipahami dan memiliki panduan referensi dengan contoh yang jelas.

Untuk menghubungkan papan Anda (ESP atau arduino), Anda harus menemukan pin SDA dan SCL. Pin ini adalah pin komunikasi I2C. Google untuk "pinout" papan spesifik Anda jika Anda tidak dapat menemukannya.

Saya telah menambahkan beberapa contoh kode. Kode berfungsi untuk arduino dan ESP32, tetapi ESP32 cenderung kehabisan memori. Semua oled yang saya coba sejauh ini bekerja dengan 3.3v (ESP32) dan 5V.

Langkah 2: Beberapa OLED

Beberapa OLED
Beberapa OLED

Di sinilah proyek saya mulai berbeda dari banyak jam alarm lainnya. Kebanyakan arduino/ESP hanya memiliki satu atau dua pin I2C. Jenis ini membatasi penggunaan suku cadang I2C. Bagaimana jika saya memiliki 4 sensor I2C dan ingin menampilkan pembacaannya pada layar I2C? Masukkan multiplekser. Multiplexer memungkinkan Anda untuk menangani 7 bagian I2C yang berbeda. Ini memungkinkan ESP32 saya untuk menggunakan jam waktu nyata I2C, dan untuk menampilkan waktu menggunakan lagi I2C selama 4 tampilan (atau lebih, jangan biarkan saya menghentikan Anda).

Saya telah menambahkan beberapa contoh kode untuk ESP32, mulai dari sini saya tidak yakin arduino dapat mengikutinya. Contohnya hanya menggunakan tampilan, bisa juga hal lain seperti sensor I2C dll. Prinsipnya selalu sama, Anda memanggil saluran yang tepat dengan "tcaselect(#);" fungsi, maka Anda menjalankan kode apa pun yang diperlukan untuk objek I2C Anda.

Langkah 3: Membuat Menu yang Dapat Digulir Dengan Rotary Encoder

Membuat Menu yang Dapat Digulir Dengan Rotary Encoder
Membuat Menu yang Dapat Digulir Dengan Rotary Encoder
Membuat Menu yang Dapat Digulir Dengan Rotary Encoder
Membuat Menu yang Dapat Digulir Dengan Rotary Encoder
Membuat Menu yang Dapat Digulir Dengan Rotary Encoder
Membuat Menu yang Dapat Digulir Dengan Rotary Encoder

Hal pertama yang pertama, uji pembuat enkode Anda. Saya telah menambahkan beberapa kode untuk menguji modul encoder Anda. Sebagaimana dinyatakan dalam persediaan: Saya hanya berhasil menguji kode saya dengan modul rotary encoder dari robot DF dan modul dengan PCB bundar dari DIYmore. Lihat gambar di atas untuk encoder yang tepat.

Pustaka yang saya gunakan adalah yang ini:

PDF yang saya tambahkan semoga membantu dengan struktur menu yang saya gunakan untuk jam saya.

Membuat encoder berfungsi, adalah bagian tersulit bagi saya dalam proyek ini. Ada banyak encoder yang berbeda, dan banyak library berbeda yang tidak selalu kompatibel dengan ESP32. Tapi saya pikir encoder putar (berfungsi) adalah solusi elegan jika Anda ingin memasukkan sesuatu. Jika saya hanya menggunakan tombol, saya akan membutuhkan lebih dari 1 dan pengaturan waktu akan membutuhkan banyak penekanan.

Langkah 4: Menyatukan Kode Sebelumnya

Menyatukan Kode Sebelumnya
Menyatukan Kode Sebelumnya

Jenis judul merangkum apa yang saya lakukan. Saya mencoba bagian demi bagian dan kemudian saya menggabungkan semuanya. Tetapi karena tidak ada yang mudah, saya harus mengubah beberapa hal. Komunikasi serial adalah proses yang lambat. Ini menghalangi pembacaan encoder dengan benar. Untuk mengatasinya saya menambahkan interupsi ke pin encoder. Kode untuk membaca encoder kemudian langsung dipanggil jika Anda menekan atau memutar encoder.

Setelah Anda memahami bagaimana menu dibuat, Anda akan menemukan bahwa sangat mudah untuk menambah atau menghapus fitur sesuai keinginan Anda. Mungkin Anda ingin mengambil cuaca atau waktu saat ini dari internet dan menampilkannya?

Saya telah meninggalkan banyak ide seperti itu karena saya menginginkan kedamaian waktu yang dapat diandalkan. Yang tidak melakukan apa pun secara otomatis. Saya bekerja dengan jam yang sangat aneh di zona musim panas. Setiap kali jam berubah saya gugup untuk kesiangan. Apakah ponsel saya akan secara otomatis mengubah jam? Akankah jam tangan saya? Nah, jam saya tidak akan, kecuali saya mengubahnya sendiri. Tapi mungkin Anda ingin meletakkan jam Anda di dapur? Skenario berbeda, tambahkan fitur hingga memori habis!

Langkah 5: PCB Kustom Dengan Fritzing + Skema

PCB Kustom Dengan Fritzing + Skema
PCB Kustom Dengan Fritzing + Skema
PCB Kustom Dengan Fritzing + Skema
PCB Kustom Dengan Fritzing + Skema
PCB Kustom Dengan Fritzing + Skema
PCB Kustom Dengan Fritzing + Skema

Perhatian: Adafruit menunjukkan bahwa meskipun Anda dapat menyalakan huzzah32 melalui pin USB, Anda harus berhati-hati untuk tidak menggunakan saluran masuk daya micro USB secara bersamaan. PCB saya ditenagai melalui step down buck, yang kemudian memberi daya pada huzzah melalui pin USB. Jadi selalu cabut daya eksternal/cabut huzzah dari papan saat mengunggah.

Saya memutuskan untuk menyolder header perempuan pada PCB karena memudahkan untuk menukar bagian, atau menambahkan misalnya sensor I2C tambahan. Ini juga memungkinkan saya untuk dengan mudah menghapus nano atau ESP32 untuk memuat program.

Saya telah menambahkan file Frizting, saya bisa mengetik novel di sini, tapi saya pikir contoh berbicara yang terbaik. Saya mulai dengan skema seluruh pengaturan. Sementara Fritzing memiliki banyak bagian di tempat sampahnya, tidak semuanya ada di sana. Terkadang Anda dapat menemukan bagian Fritzing di internet, terkadang tidak. Bagian yang tidak bisa saya temukan, cukup saya ganti dengan bagian header perempuan. Jika Anda mengklik kanannya, Anda dapat mengedit header ke jumlah pin yang Anda inginkan, dan menetapkan pinout untuk itu. Saya melakukan ini dengan setiap bagian yang tidak dapat saya temukan. Karena hampir semua modul menggunakan nada 0,1 inci (2,54mm) yang sama, ini akan memberi Anda jarak yang tepat untuk bagian tersebut.

Selanjutnya Anda beralih ke tampilan PCB dari aplikasi fritzing. Sebuah PCB akan dipasang, jika Anda mengkliknya, Anda dapat mengatur ukurannya dan memilih PCB lapisan tunggal atau ganda. Milik saya menggunakan 2 lapisan. Fritzing akan menyarankan koneksi yang telah Anda buat dalam tampilan skema. Program ini memiliki opsi rute otomatis, tetapi saya tidak pernah menggunakannya. Saya suka mengatur koneksi saya secara manual. Pada tampilan PCB koneksi kuning berada di lapisan atas, oranye berada di lapisan bawah. Sekali lagi jika Anda mengklik koneksi, Anda dapat memilih propertinya.

Untuk membuat PCB yang sebenarnya, Anda harus mengekspornya sebagai file gerber. Sebelum Anda melakukan ini, di bawah tab "routing" Anda dapat memeriksa aturan desain. Jika semuanya sudah selesai, Anda dapat mengklik "ekspor untuk PCB". Sebagian besar produsen akan meminta file gerber, jadi pilih ekspor ke gerber.

Saya memesan PCB saya dari JLCPCB, saya suka mereka segera memberi Anda harga. Tentu saja ada banyak pilihan lain.

Tentang skema: ada 2 tegangan yang digunakan. LED dan femtobuck langsung ditenagai oleh suplai 12V. Sisanya ditenagai melalui step-down buck dengan 5 volt.

Langkah 6: Desain + Pemotong laser

Desain + Pemotong laser
Desain + Pemotong laser
Desain + Pemotong laser
Desain + Pemotong laser

Untuk desain pertama saya, saya mencoba menggunakan kayu ek padat (saya mengikuti kelas pengerjaan kayu), tetapi dengan cepat menjadi jelas bahwa ini tidak ideal. Kayunya terlalu tebal, sehingga sulit untuk menyesuaikan bagian-bagian Anda. Multipleks birch 3mm memungkinkan cara yang lebih mudah untuk mengencangkan enkoder dan tampilan.

Saya menemukan layanan potong laser online, snijlab.nl, tersedia untuk penggemar yang berlokasi di Rotterdam (mereka mengirim ke Belgia, Belanda, dan Jerman). Di situs web mereka, Anda dapat mengunggah gambar Anda dan mereka segera mengutip harga Anda. Saya menggunakan Autocad, yang saya miliki di tempat kerja, tetapi perangkat lunaknya tidak terlalu penting. Itu hanya harus berupa gambar vektor (Vectr, Illustrator, Inkscape…). Sebagian besar toko menggunakan warna untuk menentukan apakah Anda ingin memotong atau mengukir.

Beberapa hal yang perlu diingat:

- Maks. dimensi pemotong laser (saya menggambar bingkai di sekitar bagian saya)

- Minimal jarak antara pemotongan

- Pastikan Anda tidak menggambar garis ganda, laser akan melakukan operan ekstra, dengan biaya lebih.

- Saat memplot ke PDF, pastikan Anda memplot 1:1. Anda tidak ingin memperkecil atau menyesuaikan dengan kertas.

Langkah 7: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Saya membuat jam di sekitar bingkai kayu, panel tetap di tempatnya dengan sekrup M3 dan sisipan di bingkai. Jika saya pernah membuat versi 2, saya akan menggunakan profil aluminium "L" untuk memasang panel. Sangat sulit untuk mengebor lubang dengan tepat untuk sisipan kuningan. Butuh waktu sangat lama, untuk hasil yang dapat diterima. Ini berarti tentu saja gambar lasercut harus direvisi. Saya pikir dengan profil aluminium dan hanya mur dan baut Anda akan mendapatkan hasil yang lebih baik.

Untuk menyebarkan cahaya lebih baik, saya telah merekatkan kertas kalkir di bagian dalam perforasi. Ini memberikan cahaya cahaya yang bagus untuk itu.

Langkah 8: Jangan Berhenti Di Sini

Jangan Berhenti Disini
Jangan Berhenti Disini
Jangan Berhenti Disini
Jangan Berhenti Disini
Jangan Berhenti Disini
Jangan Berhenti Disini

Proyek ini berpusat di sekitar ESP32, saya hampir tidak menggunakannya. Lampu kamar tidur saya saat ini dapat dikendalikan dari jarak jauh menggunakan blynk. Mengontrol mereka dengan jam hanya selangkah lebih maju. Mungkin Anda ingin tampilan tambahan yang menunjukkan suhu di sekitar rumah Anda? Atau beberapa sensor lokal (masih ada koneksi I2C cadangan pada multiplexer itu!). Mungkin mengatur waktu/alarm melalui aplikasi dan bluetooth?

Beri tahu saya apa yang Anda ubah, apa yang akan Anda ubah, apa yang harus saya ubah…

Direkomendasikan: