Isi kandungan:

Lampu Matahari Terbit yang Terkawal: 6 Langkah
Lampu Matahari Terbit yang Terkawal: 6 Langkah

Video: Lampu Matahari Terbit yang Terkawal: 6 Langkah

Video: Lampu Matahari Terbit yang Terkawal: 6 Langkah
Video: ⚖️【斗罗大陆】EP01-EP130, Full Version |Soul Land |MULTI SUB |Chinese Animation |Donghua 2024, November
Anonim
Lampu Matahari Terbit yang Terkawal
Lampu Matahari Terbit yang Terkawal
Lampu Matahari Terbit yang Terkawal
Lampu Matahari Terbit yang Terkawal

Adakah anda pernah bangun pada pukul 7, waktu biasa anda perlu bangun untuk bekerja, dan mendapati diri anda dalam kegelapan? Musim sejuk adalah masa yang mengerikan, bukan? Anda mesti bangun di tengah malam (jika tidak mengapa begitu gelap?), Merobohkan diri dari tempat tidur dan menghantar badan separuh sedar anda ke bilik mandi.

Projek ini bertujuan untuk menyelesaikan salah satu masalah - kegelapan pagi.

Terdapat banyak lampu matahari terbit yang murah, tetapi semuanya berkekuatan rendah dan pucat. Mereka lebih seperti lampu malam, yang semestinya membuat anda tidur lebih lena. Bukan apa yang saya mahukan sama sekali.

Pada masa yang sama, hanya dengan menyalakan cahaya terang akan membangunkan anda dengan segera, tetapi tidak cukup lembut. Apa yang saya mahukan adalah gabungan kedua-dua pendekatan - cahaya dengan kecerahan rendah, perlahan-lahan sampai ke kelajuan penuh, kemudian penggera sebenar mati dan anda tidak begitu mengantuk lagi. Mari tambahkan sedikit lagu burung untuknya, dan anda bangun di syurga setiap pagi!

Langkah 1: Array Lampu

Array Lampu
Array Lampu
Array Lampu
Array Lampu

Pertama sekali, kita memerlukan lampu itu sendiri. Saya mempunyai bilik yang cukup besar dengan dinding dan siling putih, jadi saya menggunakan 7 lampu LED GU10, masing-masing seperti 6W, lebih daripada 40W kuasa murni! Itu sudah cukup untuk membuat anda merasa seperti sudah siang hari. Juga dapat digunakan sebagai pencahayaan ruangan biasa pada siang hari.

Tidak penting bagaimana anda memasangnya, lampu mana yang anda gunakan dengan soket mana. Semua yang penting - lampu ini mesti dimalapkan!

Dalam kes saya, saya mempunyai papan kayu dengan 7 soket GU10 terpasang, semuanya bersambung. Nanti saya masukkan ke dalam kotak plastik.

Langkah 2: Teori Peredupan

Teori Peredupan
Teori Peredupan

Secara teori tidak ada perbezaan antara teori dan praktik. Dalam praktiknya ada.

Mengendalikan dimmer dari ESP32 / Arduino nampaknya tidak semudah yang saya bayangkan. Saya mendapat salah satu modul RobotDyn AC Light Dimmer. Pengilang mencadangkan perpustakaan untuk itu. Ia tidak berfungsi pada ESP32 (dan sangat sukar untuk disesuaikan, kerana ia menggunakan banyak akses pendaftaran khusus ATMega tahap rendah), jenis karya di Arduino Nano, memberikan kerlipan yang mengerikan pada kecerahan pertengahan rendah. Itulah sebabnya saya meluangkan masa untuk menyiasat bagaimana semuanya berfungsi dan membuat cara saya sendiri.

Sedikit teori

Modul dimmer yang dipilih menggunakan TRIAC: BTA16 yang sangat popular. Terdapat banyak artikel mengenainya. Saya akan cuba meringkaskannya di sini.

TRIAC adalah modul yang dapat mengirimkan voltan positif atau negatif input ke output, atau dapat menyekatnya. Secara lalai ia menyekat segalanya. Untuk membukanya, kita harus memberikan isyarat tinggi pada input gerbang untuk 100 kita. Kemudian ia akan tetap terbuka sehingga arus turun ke sifar, yang berlaku apabila voltan input mengubah tanda, melintasi voltan sifar. Kemudian pada kitaran berikut kita harus melakukan 100 denyutan nadi dan seterusnya. Dengan memilih kapan memberikan denyut nadi, kita mengawal kecerahan: lakukan pada awalnya, dan hampir 100% penghantaran kuasa. Lakukan kemudian, dan ia akan redup. Lihat rajah di atas, menerangkannya.

Untuk menghasilkan denyutan pada titik kitaran yang sama, kita perlu mengetahui dengan tepat kapan ia bermula. Itulah sebabnya modul dimmer mempunyai pengesan Zero-Cross yang terpasang di dalamnya. Ini hanya menimbulkan isyarat (yang akan kita tangkap sebagai gangguan perkakasan di Arduino) setiap kali voltan melintasi sifar.

Langkah 3: Amalan Peredupan

Amalan Peredaman
Amalan Peredaman

Ya, begitulah cara anda bangun, jika lampu anda tidak redup dan meletakkan semua kuasa 40W ke mata anda yang mengantuk.

Isu biasa

Terdapat banyak masalah yang perlu kita atasi.

Kelipan.

Pemasaan mikrokontroler mesti betul-betul tepat dalam menghidupkan dan mematikan output gerbang. Perpustakaan RobotDyn mencadangkan, mempunyai pemasa mengganggu setiap 100us, dan mengubah tahap gerbang pada pemasa sahaja. Ini bererti dapat +/- 50 mikrodetik dari nilai optimum. Ini memberikan hasil yang baik pada kecerahan tinggi, tetapi banyak kelipan pada kecerahan rendah. Juga jika mikrokontroler melakukan banyak perkara, ia akan menurunkan ketepatan masa, jadi idealnya mikrokontroler khusus harus digunakan untuk peredup.

Kecerahan minimum. LED mempunyai penukar kuasa terbina dalam, yang hanya akan enggan bekerja kerana tidak mempunyai kuasa yang mencukupi. Lampu saya kelihatan berfungsi dengan baik bermula dari 10-11%.

Walaupun dengan nilai ini, beberapa lampu saya enggan menyala pada permulaannya. Walaupun bertambah terang kemudian, mereka tetap gelap. Itulah sebabnya, ketika kita pergi dari keadaan MATI ke beberapa kecerahan positif, kita mulai dengan tempoh pemanasan 5 kitaran, ketika kita memberi kuasa penuh kepada lampu. Kemudian kami teruskan dengan kecerahan yang diinginkan. Ia hampir tidak dapat dilihat, tetapi sangat membantu.

50/60 Hz frekuensi utama. Anda perlu tahu berapa banyak menunggu sebelum sifar berikutnya. Cukup mudah - kami hanya melihat perbezaan masa antara dua gangguan terakhir.

Perubahan kecerahan secara beransur-ansur. ESP32 agak perlahan, memerlukan 0.5 saat untuk memproses permintaan HTTP separa atau bahkan WebSocket, jadi jangan mengharapkan peralihan kecerahan yang lancar, ia perlu dilaksanakan entah bagaimana pada tahap redup. Itulah sebabnya, apabila menerima kecerahan baru dari port bersiri, ia hanya menetapkan sasaran, dan kemudian perlahan-lahan mendekatinya dari masa ke masa.

Penyelesaian

Inilah kod Arduino ringkas saya untuk dimmer. Ia menunggu arahan (satu bait dengan kecerahan baru) dari input bersiri, menangani gangguan Zero-Cross, mengendalikan TRIAC, menangani semua masalah di atas.

Langkah 4: Pengawal Lampu (ESP32)

Pengawal Lampu (ESP32)
Pengawal Lampu (ESP32)
Pengawal Lampu (ESP32)
Pengawal Lampu (ESP32)

Inilah skema sambungan semua komponen yang saya ada. Papan ESP32 sangat berbeza dengan yang saya gunakan (Heltec), jadi pin yang dipilih kelihatan agak pelik, tetapi ia tetap berfungsi dengan baik. Jangan ragu untuk menggunakan pin yang berbeza dalam projek anda.

Inilah kod yang mengawal semuanya. Cukup lurus ke hadapan.

Ciri-ciri utama

Dikawal. Lampu menyambung ke WiFi, memulakan pelayan WebSocket di port 81, menunggu arahan. Format perintah adalah

Hanya dua arahan yang disokong buat masa ini: "set_brightness" dan "update_settings", yang… cukup deskriptif sendiri.

Mendapat masa dari NTP. Saya tidak mahu terlalu banyak perkara dan menambah jam masa nyata ke skema. Kami mempunyai akses Internet, yang bermaksud kami dapat memperoleh masa nyata dari beberapa pelayan NTP dan kemudian melacak masa semasa menggunakan pemasa sistem.

Penggera Matahari Terbit. Anda boleh menetapkan satu penggera. Perkara sebenarnya: bermula dengan kecerahan minimum dan secara beransur-ansur menuju ke kecerahan penuh selama 10 minit. Kemudian ia kekal selama beberapa jam. Kemudian secara beransur-ansur dimatikan lebih dari 60 saat.

Semua parameter di atas boleh dikonfigurasi.

Nyanyian burung. DFPlayer mini digunakan untuk memainkan muzik. Terdapat banyak panduan untuknya, tetapi pada dasarnya anda hanya perlu memasang kad MicroSD, diformat ke dalam FAT32, dengan satu fail bernama 0001.mp3. Fail ini boleh mempunyai apa sahaja yang anda suka, dalam kes saya 15 minit burung bernyanyi (ia akan dilingkari), dan itu menjadikan pagi saya luar biasa. Perhatikan bahawa terdapat kapasitor yang besar, dan 1 perintang kOhm pada baris bersiri antara ESP32 dan DFplayer - mereka adalah pilihan, tetapi membantu mengurangkan kebisingan.

Menyimpan tetapan di EEPROM. Semua tetapan ditulis ke dalam EEPROM dan dimuat pada permulaan. Ini memungkinkan untuk menggunakan lampu dengan sekurang-kurangnya ciri penggera tanpa pengawal disambungkan.

Memberikan beberapa maklumat ke skrin OLED. Heltec ESP32 saya mempunyai skrin SSD1306 128X64 I2C terbina dalam. Semua maklumat penting diberikan di atasnya. Saya tahu, kotak itu kelihatan jelek, saya baru saja mencetak 3D beberapa barang dan memotong lubang dan tingkap dengan gerudi. Cepat, kotor, tetapi berkesan!

Langkah 5: Panel Kawalan

Panel kawalan
Panel kawalan
Panel kawalan
Panel kawalan

Itulah inti projek. Raspberry Pi dengan paparan 7 asli, menjalankan beberapa bahagian depan Kivy.

Inilah kod sumber penuh.

Keistimewaannya

Ditulis dalam Python. Saya suka Kivy, ini adalah rangka kerja Python untuk antara muka pengguna. Sangat mudah, namun fleksibel dan cekap (menggunakan banyak kod C di dalamnya untuk prestasi tinggi dan pecutan perkakasan).

Cuaca. Tunjukkan suhu dan tekanan semasa di luar. Sekiranya anda menyambungkan sensor jarak jauh - suhu dalam juga. Ia juga meminta dan menganalisis ramalan cuaca selama 12 jam berikut dan memberi nasihat tentang kemungkinan hujan.

Pengawal SunriseLamp. Panel lain memaparkan beberapa maklumat asas mengenai penggera dan membolehkan anda menyesuaikan kecerahan. Sekiranya anda pergi ke tetapan, anda dapat mengkonfigurasi parameter lampu apa pun, termasuk jadual penggera, kelantangan audio maksimum dan sebagainya.

Screensaver. Renders Game of Life di skrin setelah beberapa tempoh tidak aktif.

Dulu ada lebih dari itu, tetapi perkara lain nampaknya tidak berguna.

Pemasangan

Saya memasang semuanya secara manual di Raspbian, dan sekarang boleh mengatakan: jangan ulangi kesilapan saya. Gunakan KivyPie, semuanya sudah diprapasang.

Selain itu, ikuti panduan pemasangan di repositori kod.

Langkah 6: Nikmati

Secara peribadi saya gembira dengan peranti tersebut. Saya menggunakannya sebagai pencahayaan utama di rumah selama sehari, dan ia membolehkan saya bangun pada waktu pagi, sungguh mengagumkan.

Saya tahu arahannya tidak terlalu terperinci dan deskriptif. Sekiranya seseorang membuat perkara yang sama dan mempunyai masalah - saya dengan senang hati akan membantu!

Disyorkan: