Daftar Isi:

Lampu Matahari Terbit Terang yang Dapat Dikontrol: 6 Langkah
Lampu Matahari Terbit Terang yang Dapat Dikontrol: 6 Langkah

Video: Lampu Matahari Terbit Terang yang Dapat Dikontrol: 6 Langkah

Video: Lampu Matahari Terbit Terang yang Dapat Dikontrol: 6 Langkah
Video: The One Solar Cell 2024, Juli
Anonim
Lampu Matahari Terbit Terang yang Dapat Dikontrol
Lampu Matahari Terbit Terang yang Dapat Dikontrol
Lampu Matahari Terbit Terang yang Dapat Dikendalikan
Lampu Matahari Terbit Terang yang Dapat Dikendalikan

Apakah Anda pernah bangun jam 7, waktu yang biasa Anda butuhkan untuk bangun untuk bekerja, dan mendapati diri Anda dalam kegelapan? Musim dingin adalah waktu yang mengerikan, bukan? Anda harus bangun di tengah malam (jika tidak, mengapa begitu gelap?), melepaskan diri dari tempat tidur dan mengirim tubuh setengah sadar Anda ke kamar mandi.

Proyek ini bertujuan untuk memecahkan salah satu masalah - kegelapan pagi.

Ada banyak lampu matahari terbit murah di sekitar, tetapi semuanya berdaya rendah dan pucat. Mereka lebih seperti lampu malam, yang seharusnya membuat Anda tidur lebih nyenyak. Tidak apa yang saya inginkan sama sekali.

Pada saat yang sama, menyalakan lampu terang saja akan segera membangunkan Anda, tetapi tidak cukup lembut. Yang saya inginkan adalah kombinasi dari kedua pendekatan - menyala dengan kecerahan rendah, perlahan-lahan mencapai kecepatan penuh, lalu alarm nyata berbunyi dan Anda tidak mengantuk lagi. Mari tambahkan sedikit nyanyian burung ke dalamnya, dan Anda bangun di surga setiap pagi!

Langkah 1: Array Lampu

Array Lampu
Array Lampu
Array Lampu
Array Lampu

Pertama-tama, kita membutuhkan lampu itu sendiri. Saya memiliki ruangan yang cukup besar dengan dinding dan langit-langit putih, jadi saya memilih 7 lampu LED GU10, masing-masing sekitar 6W, daya murni lebih dari 40W! Itu sudah cukup untuk membuat Anda merasa seperti sudah siang hari. Juga dapat digunakan sebagai penerangan ruangan biasa di siang hari.

Tidak masalah bagaimana Anda merakitnya, lampu mana yang Anda gunakan dengan soket yang mana. Segala sesuatu yang penting - ini harus lampu yang dapat diredupkan!

Dalam kasus saya, saya memiliki papan kayu dengan 7 soket GU10 terpasang, semuanya terhubung bersama. Aku akan memasukkannya ke dalam kotak plastik nanti.

Langkah 2: Teori Peredupan

Teori Peredupan
Teori Peredupan

Secara teori tidak ada perbedaan antara teori dan praktek. Dalam prakteknya ada.

Mengontrol peredup dari ESP32/Arduino ternyata tidak sesederhana yang saya bayangkan. Saya mendapatkan salah satu modul RobotDyn AC Light Dimmer. Pabrikan menyarankan perpustakaan untuk itu. Itu tidak berfungsi pada ESP32 (dan sangat sulit untuk beradaptasi, karena menggunakan banyak akses registri khusus ATMega tingkat rendah), semacam berfungsi pada Arduino Nano, memberikan kedipan yang mengerikan pada kecerahan rendah-menengah. Itu sebabnya saya menghabiskan beberapa waktu untuk menyelidiki bagaimana semuanya bekerja dan membuat cara saya sendiri.

Sedikit teori

Modul dimmer yang dipilih menggunakan TRIAC: BTA16 yang sangat populer. Ada banyak artikel tentang itu. Saya akan mencoba merangkumnya di sini.

TRIAC adalah modul yang dapat mengirimkan tegangan input positif atau negatif ke output, atau dapat memblokirnya. Secara default itu memblokir semuanya. Untuk membukanya, kita harus memberikan sinyal tinggi pada input gerbang untuk 100 kita. Kemudian akan tetap terbuka sampai arus turun ke nol, yang terjadi ketika tegangan input berubah tanda, melintasi tegangan nol. Kemudian pada siklus berikutnya kita harus melakukan pulsa 100 us lagi dan seterusnya. Dengan memilih kapan harus memberikan pulsa, kami mengontrol kecerahan: lakukan di awal, dan itu akan mendekati transmisi daya 100%. Lakukan nanti, dan itu akan redup. Lihat diagram di atas, jelaskan.

Untuk menghasilkan pulsa di titik yang sama dari siklus, kita perlu tahu persis kapan itu dimulai. Itu sebabnya modul dimmer memiliki detektor Zero-Cross bawaan. Itu hanya menimbulkan sinyal (yang akan kita tangkap sebagai interupsi perangkat keras di Arduino) setiap kali tegangan melewati nol.

Langkah 3: Latihan Peredupan

Latihan Peredupan
Latihan Peredupan

Ya, begitulah cara Anda bangun, jika lampu Anda tidak meredup dan menggunakan semua daya 40W ke mata Anda yang mengantuk.

Masalah umum

Ada banyak masalah yang perlu kita atasi.

Kerlip.

Pewaktuan mikrokontroler harus benar-benar tepat dalam menghidupkan dan mematikan keluaran gerbang. Perpustakaan RobotDyn menyarankan, memiliki timer interupsi setiap 100us, dan mengubah level gerbang hanya pada timer. Artinya bisa +/- 50 mikrodetik dari nilai optimal. Ini memberikan hasil yang baik pada kecerahan tinggi, tetapi banyak berkedip pada kecerahan rendah. Juga jika mikrokontroler melakukan banyak hal, itu mengurangi akurasi waktu, jadi idealnya mikrokontroler khusus harus digunakan untuk peredup.

Kecerahan minimal. LED memiliki konverter daya built-in, yang hanya akan menolak untuk bekerja karena tidak memiliki daya yang cukup. Lampu saya tampak berfungsi dengan baik mulai dari 10-11%.

Bahkan dengan nilai ini, beberapa lampu saya menolak untuk menyala saat start. Bahkan saat meningkatkan kecerahan nanti, mereka tetap gelap. Itu sebabnya, ketika kita beralih dari keadaan OFF ke kecerahan positif, kita mulai dengan periode pemanasan 5 siklus, ketika kita memberikan daya penuh ke lampu. Kemudian kami melanjutkan dengan kecerahan yang diinginkan. Ini hampir tidak terlihat, tetapi sangat membantu.

Frekuensi listrik 50/60 Hz. Anda perlu tahu berapa banyak yang harus menunggu sebelum nol berikutnya. Ini cukup sederhana - kita hanya melihat perbedaan waktu antara dua interupsi terakhir.

Perubahan kecerahan bertahap. ESP32 cukup lambat, dibutuhkan 0,5 detik untuk memproses permintaan HTTP atau bahkan WebSocket yang sepele, jadi jangan berharap transisi kecerahan yang mulus, itu perlu diterapkan entah bagaimana pada tingkat yang lebih redup. Itu sebabnya, ketika menerima kecerahan baru dari port serial, itu hanya menetapkan target, dan kemudian perlahan mendekatinya dari waktu ke waktu.

Solusinya

Ini kode Arduino sederhana saya untuk dimmer. Ia menunggu perintah (satu byte dengan kecerahan baru) dari input serial, menangani interupsi Zero-Cross, mengontrol TRIAC, menangani semua masalah di atas.

Langkah 4: Pengontrol Lampu (ESP32)

Pengontrol Lampu (ESP32)
Pengontrol Lampu (ESP32)
Pengontrol Lampu (ESP32)
Pengontrol Lampu (ESP32)

Berikut skema koneksi dari semua komponen yang saya miliki. Papan ESP32 sangat berbeda dari yang saya gunakan (Heltec), jadi pin yang dipilih terlihat agak aneh, tetapi seharusnya masih berfungsi dengan baik. Jangan ragu untuk menggunakan pin yang berbeda dalam proyek Anda.

Inilah kode yang mengendalikan semuanya. Ini cukup lurus ke depan.

Fitur utama

Dapat dikontrol. Lampu terhubung ke WiFi, memulai server WebSocket pada port 81, menunggu perintah. Format perintah adalah

Hanya dua perintah yang didukung untuk saat ini: "set_brightness" dan "update_settings", yang… cukup deskriptif.

Mendapatkan waktu dari NTP. Saya tidak ingin terlalu memperumit masalah dan menambahkan jam waktu nyata ke skema. Kami memiliki akses Internet, yang berarti kami bisa mendapatkan waktu nyata dari beberapa server NTP dan kemudian melacak waktu saat ini menggunakan pengatur waktu sistem.

Alarm Matahari Terbit. Anda dapat mengatur satu alarm. Apa yang sebenarnya dilakukannya: dimulai dengan kecerahan minimal dan secara bertahap beralih ke kecerahan penuh selama 10 menit. Kemudian tetap menyala selama beberapa jam. Kemudian secara bertahap mati selama 60 detik.

Semua parameter di atas dapat dikonfigurasi.

Nyanyian burung. DFPlayer mini digunakan untuk memutar musik. Ada banyak panduan untuk itu, tetapi pada dasarnya Anda hanya perlu mencolokkan kartu MicroSD, yang diformat ke FAT32, dengan satu file bernama 0001.mp3. File ini dapat memiliki apa pun yang Anda suka, dalam kasus saya ini adalah 15 menit kicau burung (itu akan diulang), dan itu membuat pagi saya luar biasa. Perhatikan bahwa ada kapasitor besar pada daya, dan resistor 1 kOhm pada jalur serial antara ESP32 dan DFplayer - keduanya opsional, tetapi membantu mengurangi kebisingan.

Menyimpan pengaturan di EEPROM. Semua pengaturan ditulis ke dalam EEPROM dan dimuat saat mulai. Itu memungkinkan untuk menggunakan lampu dengan setidaknya fitur alarm tanpa pengontrol yang terhubung.

Menampilkan beberapa info ke layar OLED. Heltec ESP32 saya memiliki layar SSD1306 128X64 I2C internal. Semua informasi penting diberikan di dalamnya. Saya tahu, kotaknya terlihat jelek, saya baru saja mencetak beberapa barang dengan 3D dan memotong lubang dan jendela dengan bor. Cepat, kotor, tetapi berhasil!

Langkah 5: Panel Kontrol

Panel kendali
Panel kendali
Panel kendali
Panel kendali

Itulah inti dari proyek ini. Raspberry Pi dengan layar 7 inci asli, menjalankan beberapa front-end Kivy.

Berikut kode sumber lengkapnya.

Fitur-fitur

Ditulis dalam Python. Saya suka Kivy, ini adalah kerangka kerja Python untuk antarmuka pengguna. Sangat sederhana, namun fleksibel dan efisien (menggunakan banyak kode C di dalamnya untuk kinerja tinggi dan akselerasi perangkat keras).

Cuaca. Tunjukkan suhu dan tekanan saat ini di luar. Jika Anda menghubungkan sensor jarak jauh - suhu di dalam juga. Ini juga meminta dan menganalisis ramalan cuaca untuk 12 jam berikutnya dan memberikan saran tentang kemungkinan hujan.

Pengontrol SunriseLamp. Panel lain menampilkan beberapa informasi dasar tentang alarm dan memungkinkan Anda menyesuaikan kecerahan. Jika Anda pergi ke pengaturan, Anda dapat mengonfigurasi parameter lampu apa pun, termasuk jadwal alarm, volume audio maksimum, dan sebagainya.

Screensaver. Menampilkan Game of Life di layar setelah beberapa saat tidak aktif.

Dulu ada lebih dari itu, tetapi hal-hal lain tampaknya tidak berguna.

Instalasi

Saya menginstal semuanya secara manual di Raspbian, dan sekarang dapat mengatakan: jangan ulangi kesalahan saya. Gunakan KivyPie, semuanya sudah diinstal sebelumnya.

Selain itu, cukup ikuti panduan instalasi di repositori kode.

Langkah 6: Nikmati

Secara pribadi saya senang dengan perangkat ini. Saya menggunakannya sebagai penerangan utama di rumah di siang hari, dan itu membuat saya bangun di pagi hari, sungguh menakjubkan.

Saya tahu instruksinya tidak terlalu terperinci dan deskriptif. Jika seseorang melakukan hal yang sama dan memiliki masalah - saya akan dengan senang hati membantu!

Direkomendasikan: