Isi kandungan:

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

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

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

Terdapat banyak jam arduino / ESP32, tetapi adakah mereka menggunakan OLED yang bagus dan segar?

Saya telah bereksperimen dengan arduino dan ESP32 untuk sementara waktu, tetapi saya tidak pernah berjaya menjadi produk siap. Saya telah membuat jam penggera dengan 4 OLED monokrom 1.3 inci. Jam ini juga dilengkapi lampu samping tempat tidur yang dapat dimalapkan dan port pengecasan USB (tidak ada yang mempunyai outlet ganti di sebelah tempat tidurnya). OLED juga boleh dimalapkan, ini ditambahkan pada saat-saat terakhir setelah projek saya diancam oleh teman wanita saya. Sekiranya redup tidak cukup dalam suara kekasih, saya juga dapat memberikan versi kod di mana 3 paparan dihidupkan antara jam tertentu. Tujuannya adalah untuk membuat jam yang mudah diservis, dengan tampilan di luar "prototaip". Semasa membuat jam, saya menghadapi beberapa kesukaran yang harus saya selesaikan, sebab itulah saya rasa pengajaran ini wajar dikongsi. Jam boleh dibuat dengan alat kecil, saya tidak suka "dan untuk langkah seterusnya, saya menggunakan tutorial kilang 10.000 € / $ CNC saya".

Beberapa perkara yang akan dijelaskan dalam arahan ini (dalam-struktur-ception):

- Cara menggunakan / memasang paparan OLED I2C dengan arduino / ESP32

- Cara menggunakan beberapa objek I2C dengan satu arduino / ESP32

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

- Cara merancang dan memesan PCB khusus menggunakan fritzing.

- Jam juga menggunakan RTC (jam masa nyata), pemandu yang dipimpin, modul voltan turun … Saya tidak akan masuk ke dalamnya kerana terdapat banyak maklumat yang tersedia untuk modul ini.

Saya ingin menyatakan bahawa saya bukan pengaturcara profesional. Tujuan pengajaran saya adalah untuk menjelaskan perkara yang saya nyatakan di atas. Cara saya mengumpulkan semuanya untuk produk akhir saya mungkin bukan kaedah yang paling bersih. Itulah cara yang membolehkan saya mengawasi semuanya.

Bekalan

Semasa membeli barang keperluan, saya selalu berusaha mempertimbangkan kepentingan kualiti / dokumentasi berbanding harga. Bekalan saya adalah campuran jenama A dan bahagian Cina yang lebih murah. Mouser adalah pembekal hebat jika kualiti penting, saya memesan dari Banggood / Aliexpress untuk bahagian yang lebih murah.

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

- 4 paparan OLED I2C 1.3 inci (128x64, dengan pemacu SH1106), paparan 0.96 "lebih biasa tetapi untuk projek ini saya lebih suka paparan 1.3"

- Pemacu Sparkfun femtobuck untuk memandu LED

- Jam RTC, saya menggunakan satu dengan sel litium

- Arduino nano

- Port USB 2.0 wanita (saya gunakan: SS-52200-002 dari Stewart Connector)

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

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

- PCB tersuai, pilihan tetapi ini menjadikan projek jauh lebih padat dan mudah diservis sekiranya bahagian mati + lebih dipercayai kerana kurang wayar (jlcpcb.com)

- Skru & selak M3

- Sisipan loyang M3

- Modul turun 12V hingga 5V dari Pololu (DF24V22F5)

- 3 watt dikuasakan dengan heatsink

- Wayar pelompat

- Buzzer

- Multiplexer I2C (TCA9548A dari adafruit)

- 2 Pengekod berputar (saya telah mencuba beberapa, tidak semuanya berfungsi dengan kod saya. Yang dari "DFrobot" berfungsi dan begitu juga yang menggunakan PCB bulat dari "DIYmore". Kod saya nampaknya tidak berfungsi untuk butang tekan dari jenis KY-040. Jam penggera saya menggunakan yang dari DIYmore kerana ia sangat mudah dipasang di panel (tidak memerlukan skru / lubang tambahan).

- Pelbagai tajuk wanita (pilihan)

- Kayu untuk bingkai: 18mmx18mmx2400mm

- Kertas tekap

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

Langkah 1: Menggunakan Oled

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

Untuk menggunakan OLED, anda mesti memasang perpustakaan. Saya menggunakan U8G2lib dari Oli Kraus, sangat difahami dan mempunyai panduan rujukan dengan contoh yang jelas.

Untuk menghubungkan papan anda (ESP atau arduino), anda mesti mencari pin SDA dan SCL. Pin ini adalah pin komunikasi I2C. Google untuk "pinout" papan khusus anda jika anda tidak menjumpainya.

Saya telah menambah beberapa kod contoh. Kod ini berfungsi untuk kedua arduino dan ESP32, tetapi ESP32 cenderung kehabisan memori. Semua oleds yang saya cuba setakat ini berfungsi dengan 3.3v (ESP32) dan 5V.

Langkah 2: Berbilang OLED

Pelbagai OLED
Pelbagai OLED

Di sinilah projek saya mula berbeza dengan banyak jam penggera yang lain. Sebilangan besar arduino / ESP hanya mempunyai satu atau dua pin I2C. Ini mengehadkan penggunaan bahagian I2C. Bagaimana jika saya mempunyai 4 sensor I2C dan ingin memaparkan bacaannya pada paparan I2C? Masukkan multiplexer. Muliplexer membolehkan anda mengatasi 7 bahagian I2C yang berbeza. Ini membolehkan ESP32 saya menggunakan jam masa nyata I2C, dan untuk memaparkan waktu menggunakan lagi I2C selama 4 paparan (atau lebih, jangan biarkan saya menghentikan anda).

Saya telah menambah beberapa contoh kod untuk ESP32, dari sini saya tidak pasti arduino dapat mengikuti. Contohnya hanya menggunakan paparan, ia juga boleh dilakukan seperti sensor I2C dan lain-lain. Prinsipnya selalu sama, anda memanggil saluran yang betul dengan "tcaselect (#);" fungsi, maka anda melaksanakan apa sahaja kod yang diperlukan untuk objek I2C anda.

Langkah 3: Membuat Menu Boleh Tatal Dengan Pengekod Rotary

Membuat Menu Boleh Tatal Dengan Pengekod Rotary
Membuat Menu Boleh Tatal Dengan Pengekod Rotary
Membuat Menu Boleh Tatal Dengan Pengekod Rotary
Membuat Menu Boleh Tatal Dengan Pengekod Rotary
Membuat Menu Boleh Tatal Dengan Pengekod Rotary
Membuat Menu Boleh Tatal Dengan Pengekod Rotary

Perkara pertama yang pertama, uji pengekod anda. Saya telah menambahkan beberapa kod untuk menguji modul pengekod anda. Seperti yang dinyatakan dalam persediaan: Saya hanya berjaya menguji kod saya dengan modul pengekod putar dari robot DF dan modul dengan PCB bulat dari DIYmore. Lihat gambar di atas untuk pengekod yang betul.

Perpustakaan yang saya gunakan adalah yang satu ini:

PDF yang saya tambah semoga membantu struktur menu yang saya gunakan untuk jam saya.

Menjadikan pengekod berfungsi, adalah bahagian yang paling sukar bagi saya dalam projek ini. Terdapat banyak pengekod yang berbeza, dan banyak perpustakaan yang berbeza yang tidak selalu serasi dengan ESP32. Tetapi saya fikir pengekod putar (berfungsi) adalah penyelesaian yang elegan jika anda ingin memasukkan sesuatu. Sekiranya saya hanya menggunakan butang, saya memerlukan lebih dari 1 dan menetapkan masa memerlukan banyak penekanan.

Langkah 4: Menempatkan Kod Sebelumnya Bersatu

Meletakkan Kod Sebelumnya Bersatu
Meletakkan Kod Sebelumnya Bersatu

Jenis tajuk merangkum apa yang saya buat. Saya mencuba sebahagian dan kemudian saya mengumpulkan semuanya. Tetapi kerana tidak ada yang mudah, saya terpaksa mengubah beberapa perkara. Komunikasi bersiri adalah proses yang perlahan. Ini menghalang cara membaca pengekod dengan betul. Untuk mengatasi ini, saya menambah gangguan pada pin pengekod. Kod untuk membaca pengekod kemudian segera dipanggil jika anda menolak atau menghidupkan pengekod.

Setelah anda memahami bagaimana menu dibuat, anda akan mendapati bahawa sangat mudah untuk menambah atau membuang ciri mengikut keinginan anda sendiri. Mungkin anda ingin mengambil cuaca atau masa semasa dari internet dan memaparkannya?

Saya telah meninggalkan banyak idea seperti itu kerana saya mahukan ketenangan masa yang boleh dipercayai. Yang tidak melakukan apa-apa secara automatik. Saya bekerja pada waktu yang sangat ganjil di zon simpanan siang hari. Setiap kali jam berubah saya berasa gementar untuk tidur terlalu lama. Adakah telefon saya akan berubah jam secara automatik? Adakah jam tangan saya? Baiklah, jam saya tidak akan, kecuali jika saya menukarnya sendiri. Tetapi mungkin anda mahu meletakkan jam di dapur? Senario yang berbeza, tambahkan ciri sehingga memori habis!

Langkah 5: PCB Khusus Dengan Fritzing + Skema

PCB Custom Dengan Fritzing + Skematik
PCB Custom Dengan Fritzing + Skematik
PCB Custom Dengan Fritzing + Skematik
PCB Custom Dengan Fritzing + Skematik
PCB Custom Dengan Fritzing + Skematik
PCB Custom Dengan Fritzing + Skematik

Perhatian: Adafruit menunjukkan bahawa semasa anda dapat menghidupkan huzzah32 melalui pin USB, anda mesti berhati-hati untuk tidak menggunakan saluran masuk USB mikro secara serentak. PCB saya dihidupkan melalui langkah turun, yang kemudian mengaktifkan huzzah melalui pin USB. Oleh itu, selalu cabut kuasa luaran / keluarkan huzzah dari papan semasa memuat naik.

Saya memutuskan untuk mengumpulkan header wanita di PCB kerana lebih mudah menukar bahagian, atau menambahkan sensor I2C tambahan. Ini juga membolehkan saya membuang nano atau ESP32 dengan mudah untuk memuatkan program.

Saya telah menambah fail Frizting, saya boleh menaip novel di sini, tetapi saya rasa contohnya paling baik. Saya mulakan dengan skema keseluruhan persediaan. Walaupun Fritzing mempunyai banyak bahagian di tong sampah, tidak semuanya ada di dalamnya. Kadang-kadang anda boleh menemui bahagian Fritzing di internet, kadang-kadang anda tidak dapat. Bahagian yang tidak dapat saya temui, saya hanya diganti dengan bahagian kepala wanita. Sekiranya anda mengklik kanannya, anda boleh mengedit tajuk sehingga jumlah pin yang anda inginkan, dan memberikan pinout kepadanya. Saya melakukan ini dengan setiap bahagian yang tidak dapat saya temui. Oleh kerana hampir semua modul menggunakan nada 0.1in (2.54mm) yang sama ini akan memberi anda jarak yang betul untuk bahagian tersebut.

Seterusnya anda beralih ke paparan PCB aplikasi fritzing. PCB akan dipasang, jika anda mengkliknya, anda boleh menetapkan ukurannya dan memilih PCB lapisan tunggal atau dua. Tambang menggunakan 2 lapisan. Fritzing akan mencadangkan hubungan yang anda buat dalam pandangan skematik. Program ini mempunyai pilihan autoroute, tetapi saya tidak pernah menggunakannya. Saya suka mengatur hubungan saya secara manual. Dalam paparan PCB, sambungan kuning berada di lapisan atas, oren berada di lapisan bawah. Sekali lagi jika anda mengklik sambungan anda boleh memilih sifatnya.

Untuk membuat PCB sebenar, anda mesti mengeksportnya sebagai fail gerber. Sebelum melakukan ini, di bawah tab "routing" anda boleh menyemak peraturan reka bentuk. Sekiranya semuanya selesai anda boleh mengklik "eksport untuk PCB". Sebilangan besar pengeluar akan meminta fail gerber, jadi pilih eksport ke gerber.

Saya memesan PCB saya dari JLCPCB, saya suka bahawa mereka segera memberikan harga kepada anda. Sudah tentu ada banyak pilihan lain.

Mengenai skematik: ada 2 voltan yang digunakan. LED dan femtobuck dikuasakan secara langsung oleh bekalan 12V. Selebihnya digerakkan melalui langkah turun dengan 5 volt.

Langkah 6: Reka Bentuk + Lasercutter

Reka Bentuk + Lasercutter
Reka Bentuk + Lasercutter
Reka Bentuk + Lasercutter
Reka Bentuk + Lasercutter

Untuk reka bentuk pertama saya mencuba menggunakan kayu oak (saya mengikuti kelas kerja kayu), tetapi menjadi jelas bahawa ini tidak sesuai. Kayu terlalu tebal, menyukarkan pemasangan bahagian anda. Multiplex birch 3mm memungkinkan cara yang lebih mudah untuk mengikat pengekod dan paparan.

Saya menjumpai perkhidmatan lasercut dalam talian, snijlab.nl, yang tersedia untuk peminat yang berada di Rotterdam (mereka menghantar ke Belgium, Belanda dan Jerman). Di laman web mereka, anda boleh memuat naik gambar anda dan mereka segera menyebut harga anda. Saya menggunakan Autocad, yang saya ada di tempat kerja, tetapi perisiannya tidak begitu penting. Ia mesti menjadi lukisan vektor (Vectr, Illustrator, Inkscape…). Sebilangan besar kedai menggunakan warna untuk menentukan sama ada anda mahu memotong atau mengukir.

Beberapa perkara yang perlu diingat:

- Maks. dimensi laser (saya melukis bingkai di sekitar bahagian saya)

- Min. jarak antara pemotongan

- Pastikan anda tidak melukis garisan berganda, laser akan melakukan hantaran tambahan, dengan kos yang lebih tinggi.

- Semasa membuat plot ke PDF, pastikan anda membuat plot 1: 1. Anda tidak mahu mengurangkan atau memenuhi kertas.

Langkah 7: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan

Saya membina jam di sekeliling kerangka kayu, panel disimpan di tempatnya dengan skru M3 dan sisipan di bingkai. Sekiranya saya membina versi 2, saya akan menggunakan profil "L" aluminium untuk memasang panel. Sangat sukar untuk menggerudi lubang dengan tepat untuk sisipan tembaga. Saya mengambil masa yang sangat lama, hanya untuk hasil yang boleh diterima. Ini tentu bermaksud bahawa gambar lasercut harus disemak semula. Saya fikir dengan profil aluminium dan hanya kacang dan baut anda akan mendapat hasil yang lebih baik.

Untuk menyebarkan cahaya dengan lebih baik, saya telah menempelkan kertas jejak di bahagian dalam perforasi. Ini memberi cahaya cahaya yang indah kepadanya.

Langkah 8: Jangan Berhenti Di Sini

Jangan Berhenti Di Sini
Jangan Berhenti Di Sini
Jangan Berhenti Di Sini
Jangan Berhenti Di Sini
Jangan Berhenti Di Sini
Jangan Berhenti Di Sini

Projek ini berpusat di sekitar ESP32, saya hampir tidak menggunakannya. Lampu bilik tidur saya pada masa ini dapat dikawal dengan menggunakan blynk. Mengawalnya dengan jam hanya selangkah lagi. Mungkin anda mahukan beberapa paparan tambahan yang menunjukkan suhu di rumah anda? Atau beberapa sensor tempatan (masih ada sambungan I2C yang tersisa pada multiplexer itu!). Mungkin tetapkan masa / penggera melalui aplikasi dan bluetooth?

Beritahu saya apa yang anda ubah, apa yang akan anda ubah, apa yang harus saya ubah…

Disyorkan: