Isi kandungan:

Lampu Pintar Jam Penggera Berkitar: 8 Langkah (dengan Gambar)
Lampu Pintar Jam Penggera Berkitar: 8 Langkah (dengan Gambar)

Video: Lampu Pintar Jam Penggera Berkitar: 8 Langkah (dengan Gambar)

Video: Lampu Pintar Jam Penggera Berkitar: 8 Langkah (dengan Gambar)
Video: bikin lampu dinding requestan followers👀 2024, November
Anonim
Lampu Pintar Jam Penggera Berkenaan
Lampu Pintar Jam Penggera Berkenaan
Lampu Pintar Jam Penggera Berkenaan
Lampu Pintar Jam Penggera Berkenaan
Lampu Pintar Jam Penggera Berkenaan
Lampu Pintar Jam Penggera Berkenaan

Dalam projek ini saya menaikkan jam penggera penggulungan yang rosak sepenuhnya. Muka jam digantikan oleh 12 LED, diterangi oleh jalur LED di sekitar pinggir jam. 12 LED memberitahu waktu dan jalur LED diprogramkan untuk bertindak sebagai penggera, berubah menjadi kecerahan penuh pada waktu yang ditetapkan. Semuanya dikendalikan oleh Raspberry Pi Zero yang memungkinkan kemungkinan integrasi dan pengembangan yang tidak terkira seperti menyegerakkan penggera cahaya secara automatik dengan penggera telefon anda atau memancarkan LED semasa anda menerima e-mel.

Projek ini menggunakan komponen yang agak murah atau digunakan semula - satu-satunya perkara yang akhirnya saya beli adalah pengatur voltan. Yang lain kebetulan saya berbaring seperti jalur LED yang tidak terpotong. Instructable ini akan membimbing anda bagaimana saya memberikan kehidupan baru pada jam saya yang rusak dan semoga dapat memberi inspirasi kepada anda untuk menaikkan sesuatu yang anda miliki.

Langkah 1: Bahagian

Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
Bahagian

Untuk mengawal semua yang kita akan gunakan Raspberry Pi Zero kerana ia kecil, harganya sangat sedikit dan dapat disambungkan ke WiFi yang bermaksud kita tidak memerlukan jam masa nyata dan oleh itu dapat dengan mudah mengemas kini kod dari jauh dari komputer riba. Kecuali anda memiliki Pi Zero W, kami akan menyambung ke rangkaian WiFi menggunakan dongle WiFi USB.

Berikut adalah senarai bahagian yang saya gunakan tetapi kebanyakan perkara boleh ditukar dengan alternatif yang sesuai. Sebagai contoh, bukannya Raspberry Pi, anda boleh menggunakan Arduino dengan jam masa nyata untuk mengendalikan projek.

Bahagian yang digunakan

  • Jam penggera lama
  • Jalur LED putih hangat 30cm
  • 1x kad Raspberry Pi Zero + micro SD
  • 1x USB WiFi dongle + penukar USB mikro ke USB
  • 12x LED
  • Perintang 12x330ohm (gunakan lebih tinggi jika anda mahukan LED redup)
  • 1x TIP31a (atau transistor kuasa npn lain atau MOSFET)
  • Perintang 1x 1k
  • 1x LM2596 DC-DC penukar buck laras (turun 12V untuk 5V untuk Raspberry Pi)
  • Bekalan kuasa 1x 12v (+ cara masuk ke projek anda)
  • Kayu 10cm x 10cm untuk muka jam (semestinya tipis untuk memasang LED anda)
  • Pelbagai kepingan dawai warna yang berbeza

Perkara berguna untuk dimiliki

  • Pateri besi + pateri
  • Gam panas
  • Multimeter
  • Papan roti
  • Pin pengepala wanita
  • Pembaca kad mikro SD atau penukar
  • Komputer
  • Penyesuai mini HDMI + skrin HDMI jika anda ingin menggunakan persekitaran desktop Pi

Langkah 2: Menyiapkan Raspberry Pi

Menyiapkan Raspberry Pi
Menyiapkan Raspberry Pi
Menyiapkan Raspberry Pi
Menyiapkan Raspberry Pi

Sistem operasi

Kerana Raspberry Pi tidak akan disambungkan ke layar, saya memilih untuk menggunakan Raspbian Buster Lite yang tidak dilengkapi dengan persekitaran desktop. Sekiranya anda baru menggunakan Raspberry Pi, anda mungkin ingin berpegang pada Raspbian Buster standard yang disertakan dengan desktop. Sekiranya anda tidak pasti cara memasang sistem operasi anda, ini adalah sumber yang hebat. Kedua-dua sistem operasi boleh dimuat turun dari laman web Raspberry Pi.

Buat masa ini, aktifkan Pi melalui input kuasa USB Mikro. Sambungkan juga dongle WiFi USB.

Bercakap dengan Raspberry Pi

Setelah semuanya dikemas, agak sukar untuk mengakses Pi jika anda ingin menukar kod dan lain-lain. Menggunakan SSH membolehkan penggunaan menyambung ke Pi dan mengawalnya dari komputer lain. Ini tidak dihidupkan secara lalai tetapi kita dapat melakukannya dengan hanya membuat folder bernama ssh di partisi but kad SD anda. Sekiranya anda sudah log masuk ke Pi anda, anda juga boleh melakukannya dengan menaip sudo raspi-config di Terminal dan menavigasi ke Interfacing Options> SSH dan memilih Yes untuk mengaktifkannya.

Sekarang anda boleh menyambung ke Pi anda di komputer lain. Pada Mac atau Linux, anda boleh menggunakan aplikasi terminal anda tetapi pada kebanyakan versi Windows anda harus memasang klien SSH seperti PuTTY. Sambung ke Pi dengan menaip ssh pi @ di mana nama host diganti dengan nama host alamat IP Pi anda. Nama hos lalai adalah raspberrypi.local. Ia akan meminta kata laluan yang jika anda belum mengubahnya adalah raspberry.

Memasang barang yang diperlukan

Mula-mula pastikan semuanya terkini dengan menjalankan kemas kini sudo apt dan kemudian sudo apt peningkatan penuh.

Untuk memastikan apa yang kita perlukan untuk mengawal pin GPIO pada Pi jenis sudo apt-get install python-rpi.gpio dan sudo apt-get install python3-rpi.gpio. Ini semestinya sudah dipasang pada versi penuh Raspbian.

Kodnya

Inilah kod untuk dimuat turun agar semuanya berfungsi. Sekiranya anda menggunakan persekitaran desktop, tampalkan ini di folder Dokumen anda.

Sekiranya anda menggunakan baris perintah SSH, arahkan ke folder rumah anda dengan menaip cd ~ / Documents dan tekan enter. Buat fail baru yang dipanggil test1.py dengan nano test1.py. Ini akan membuka penyunting teks nano di mana anda boleh menampal kod fail test1.py yang dimuat turun. CTRL-O dan tekan enter untuk menyimpan fail dan CTRL-X untuk keluar dari editor. Ulangi proses untuk fail yang tinggal.

Langkah 3: Memasang Jalur LED

Memasang Jalur LED
Memasang Jalur LED
Memasang Jalur LED
Memasang Jalur LED

Mula-mula pasangkan jalur LED pada jam untuk melihat berapa banyak yang anda perlukan, tandakan panjang ini dan potong jalur pada titik potong seterusnya seperti yang ditunjukkan. Lebih mudah menyolder wayar ke jalur sebelum jalur tersekat di tempatnya. Ini adalah panduan yang cukup baik untuk melakukan ini tetapi jika anda tidak pasti saya hanya berlatih menggunakan solder pada bahagian yang baru sahaja anda potong. Pateri satu wayar ke titik pateri positif dan satu wayar ke negatif. Pastikan anda menguji jalur LED anda sebelum anda memasukkannya ke dalam jam anda.

Oleh kerana jalur LED yang saya gunakan telah digunakan sebelum ia kehilangan sokongan pelekatnya sendiri, jadi saya harus menggunakan gam panas untuk memperbaiki jalur di sekitar pinggir jam. Sekiranya anda mempunyai panjang lebihan, tutup titik di mana wayar dipasang. Anda mungkin mahu memasang jalur itu di kemudian hari tetapi saya merasa lebih mudah untuk memasukkannya ke dalam jam.

Langkah 4: Mengawal Jalur LED

Mengawal Jalur LED
Mengawal Jalur LED

Menyambungkan jalur LED

Jalur LED berjalan pada 12V jadi tidak dapat dihidupkan langsung dari Pi. Untuk mengawalnya, kita akan menggunakan transistor kuasa (contohnya TIP31a) yang disambungkan ke Pi seperti yang ditunjukkan di atas. Saya akan mengesyorkan terlebih dahulu memeriksa semua ini di papan roti.

  • Sambungkan GPIO 19 ke pangkalan melalui perintang 1k
  • Pemancar harus disambungkan ke GND
  • Sambungkan pemungut ke terminal negatif jalur LED
  • Sambungkan terminal jalur LED positif ke + 12V

Ujian

Pada baris arahan nagivate ke folder dokumen anda (cd ~ / Documents) dan ketik python test1.py dan masukkan. Anda mesti melihat jalur LED meningkat dan menurun dalam kecerahan. Untuk berhenti dari program, tekan CTRL-C. Anda boleh mengedit fail (nano test1.py) untuk mengubah kelajuan dan kecerahan dalam program.

import RPi. GPIO sebagai GPIOimport waktu GPIO.setmode (GPIO. BCM) # Gunakan pinout BCM GPIO.setwarnings (False) # Abaikan amaran mengenai pin yang digunakan untuk barang lain ledStripPin = 19 # Jalur LED didorong dari pin ini GPIO.setup (ledStripPin, GPIO. OUT) # Tetapkan ledStripPin sebagai output pwm = GPIO. PWM (ledStripPin, 100) # PWM pada ledStripPin dengan frekuensi 100Hz dutyCycle = 0 # Kecerahan awal sebagai peratusan pwm.start (dutyCycle) cuba: sementara Benar: untuk dutyCycle dalam jarak (0, 101, 1): # Fade up pwm. ChangeDutyCycle (dutyCycle) time.sleep (0.05) for dc in range (95, -1, -1): # Fade down pwm. ChangeDutyCycle (dc) time.sleep (0.05) kecuali KeyboardInterrupt: # Tekan CTRL-C untuk berhenti, dan kemudian: pwm.stop () # Hentikan pwm GPIO.cleanup () # Bersihkan pin GPIO

Langkah 5: Membuat Wajah Jam

Membuat Wajah Jam
Membuat Wajah Jam
Membuat Wajah Jam
Membuat Wajah Jam
Membuat Wajah Jam
Membuat Wajah Jam

Potong sekeping kayu agar jam anda menghadap ke bawah sehingga sesuai dengan jam anda. Saya membuat tambang untuk berehat kira-kira 3cm dari depan. Bor 12 lubang diameter LED anda (biasanya 3mm atau 5mm) berjarak 30 darjah antara satu sama lain. Pasangkan muka depan ke bawah dan gunakan kemasan pilihan anda. Dari bahagian belakang letakkan LED sehingga menunjuk ke depan. Saya menggunakan gam panas untuk memastikan LED tetap di tempat dengan terminal positif (wayar lebih panjang) menghadap ke dalam. Ukuran muka jam saya bermaksud saya dapat menyatukan semua terminal negatif bersama-sama (lihat di atas) jadi hanya satu wayar diperlukan untuk menghubungkan semua 12 LED ke GND. Seterusnya, pateri wayar ke setiap LED.

Sekiranya anda ingin menguji ini pada papan roti, ingat dahulu untuk menggunakan perintang (330ohm cukup standard) secara bersiri dengan setiap LED sebelum anda menyambungkannya ke salah satu pin Pi GPIO. Main dengan nilai perintang yang anda gunakan untuk mendapatkan tahap kecerahan yang anda gemari. T-cobbler sangat berguna untuk memecahkan pin Pi ke papan roti walaupun anda perlu menyolatkan pin header untuk ini. Gunakan test2.py (jalankan menggunakan python test2.py) tetapi pastikan anda mengedit program terlebih dahulu dan memasukkan pin GPIO Pi yang telah anda gunakan untuk setiap LED.

import RPi. GPIO sebagai GPIO

masa import GPIO.setmode (GPIO. BCM) # Gunakan pin BCM pinout GPIO.setwarnings (False) # Abaikan amaran mengenai pin yang digunakan untuk barang lain # Ganti satu, dua, … dengan nombor pin yang sesuai hourPin = [satu, dua, tiga, empat, lima, enam, tujuh, lapan, sembilan, sepuluh, sebelas, dua belas] # Pin yang disambungkan LED dari 1-12 untuk i dalam jarak (0, 12): GPIO.setup (hourPin , GPIO. OUT) # Tetapkan semua hourPins sebagai output GPIO.output (hourPin , 0) # Pastikan semua LED mati cuba: sementara True: untuk i dalam jarak (0, 12) GPIO.output (hourPin , 1): time.sleep (0.05) untuk i dalam jarak (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05) kecuali KeyboardInterrupt: # Tekan CTRL-C untuk berhenti, dan kemudian: GPIO.cleanup () # Bersihkan pin GPIO

Langkah 6: Menghidupkan Pi

Menghidupkan Pi
Menghidupkan Pi

Kita memerlukan cara mudah untuk mendapatkan 5V ke Pi Zero sehingga kita dapat melepaskan kabel USB mikro yang telah kita gunakan untuk menguasainya selama ini. Terdapat sebilangan penyelesaian yang turun 12V hingga 5V seperti pengatur voltan linier LM7805 tetapi ini tidak begitu berkesan, jadi saya memilih untuk menggunakan penukar buck laras yang lebih cekap menggunakan cip LM2596. NB dengan ini anda harus memutar potensiometer sehingga voltan output dikurangkan menjadi 5V seperti yang diperlukan sehingga anda memerlukan beberapa cara mengukur voltan.

Menggunakan LM2596 adalah mudah: sambungkan + 12V ke IN +, arahkan ke IN-. Pi boleh disambungkan terus ke 5V dengan menghubungkan OUT + ke salah satu pin 5V Pi tetapi pastikan anda telah menukar voltan keluaran menjadi 5V sebelum anda melakukan ini atau anda akan menggoreng Pi anda!

Langkah 7: Lengkapkan Litar dan Pembungkusan

Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan
Lengkapkan Litar dan Pembungkusan

Kami kini telah merangkumi ketiga-tiga elemen litar yang ditunjukkan bersama dalam litar keseluruhan di atas. Untuk menjimatkan ruang dan menjadikan litar lebih kemas letakkan litar anda di papan jalur atau papan prototaip. Pertama solder komponen terkecil, perintang, kemudian transistor kuasa, mana-mana penyambung dan akhirnya wayar. Rancang litar anda sebelum menyolder untuk memastikan anda mempunyai ruang untuk semuanya.

Saya menghubungkan semuanya pada prototaip PCB dan menggunakan pin header wanita sehingga Pi dapat dipasang terus ke PCB. LED pada muka jam dihubungkan melalui perintang di satu sisi papan dan saya telah menyimpan ruang di sisi lain papan untuk transistor kuasa dan bebas untuk litar lain yang mungkin saya mahu tambahkan di kemudian hari.

Pasang muka jam ke jam dan pastikan elektronik semuanya sesuai. Semuanya cukup sesuai untuk saya, jadi anda mungkin perlu melakukan penyusunan semula. Sambungkan bekalan kuasa dan jalankan test1.py dan test2.py dari SSH untuk memeriksa semuanya berfungsi sebelum memasang belakang.

Langkah 8: Muat naik Kod + Selesai

Muat naik Kod + Selesai
Muat naik Kod + Selesai
Muat naik Kod + Selesai
Muat naik Kod + Selesai
Muat naik Kod + Selesai
Muat naik Kod + Selesai

Kodnya

Akhirnya jika anda belum melakukannya, muat naik kod dan sesuaikan mengikut keinginan anda (menggunakan nano filename.py). Manfaat menyambung ke Pi melalui SSH ialah anda dapat mengemas kini kod tanpa membuka jam.

Program python dari Langkah 2 melakukan perkara berikut:

  • light_clock_simple.py hanya memaparkan jam pada LED dan memudar dan turun jalur LED pada waktu-waktu tertentu
  • light_clock_pwm.py sama seperti di atas tetapi juga membolehkan kecerahan LED dikurangkan dan memaparkan minit pada kecerahan yang berbeza dengan jam. Anda perlu bermain-main dengan tahap kecerahan keduanya sehingga kontras antara keduanya dapat dilihat

Ini harus memberikan asas yang kuat untuk menambahkan kod, misalnya anda mungkin ingin menambahkan butang untuk menunda penggera cahaya.

Untuk melancarkan program ketika Pi but kita perlu menambahkan '@reboot nohup python light_clock_pwm.py &' ke hujung fail crontab yang dapat dibuka dari terminal dengan crontab -e. Mulakan semula Raspberry Pi anda untuk memastikan ia berfungsi dengan penutupan sudo -r sekarang.

Penambahan berpotensi

Berikut adalah beberapa idea fungsi tambahan yang boleh ditambahkan

  • Menambah butang tunda
  • Menambah mod lampu
  • Menyambung ke IFTTT (mis. Lampu dapat menyala ketika penggera telefon anda mati / berkelip ketika e-mel diterima)
  • Menambah keupayaan sentuhan kapasiti iaitu menjadikan jam menjadi lampu sentuh

Anda mungkin menyedari ketika menggunakan PWM bahawa kadang-kadang, terutama dengan kecerahan yang lebih rendah, LED sedikit berkelip. Ini kerana Pi menggunakan perisian PWM sehingga proses CPU dapat mempengaruhi siklus tugas. Memiliki lebih sedikit proses yang dapat membantu, jadi saya menggunakan sistem operasi Raspbian Lite yang dikurangkan. PWM perkakasan juga tersedia pada beberapa pin, jadi jika kerlipan membuktikan masalah, ini mungkin sesuatu yang perlu diperhatikan.

Saya harap anda mendapat maklumat yang boleh Diajar ini dan sama ada merasa terinspirasi untuk menaikkan jam penggera lama atau menggunakan elemen kod untuk projek anda sendiri.

Cabaran Kelajuan Jalur LED
Cabaran Kelajuan Jalur LED
Cabaran Kelajuan Jalur LED
Cabaran Kelajuan Jalur LED

Hadiah Kedua dalam Cabaran Kelajuan Jalur LED

Disyorkan: