Daftar Isi:
- Langkah 1: Daftar Bagian dan Alat
- Langkah 2: Siapkan Tampilan OLED dan Jam Waktu Nyata
- Langkah 3: Siapkan Rotary Encoder
- Langkah 4: Kandang
- Langkah 5: Nonaktifkan Arduino Power LED (opsional)
- Langkah 6: Catu Daya + Relai Keadaan Padat
- Langkah 7: Arduino Nano + Catu Daya + Relay Solid-state
- Langkah 8: Arduino Nano + Jam Waktu Nyata
- Langkah 9: Hubungkan Layar OLED
- Langkah 10: Rotary Encoder
- Langkah 11: Instalasi di Enclosure
- Langkah 12: Menghubungkan ke Listrik / Lampu untuk Dialihkan
- Langkah 13: Menyelesaikan Enclosure
- Langkah 14: Pemrograman Arduino
- Langkah 15: Mengatur Waktu dan Mengganti Waktu
Video: Arduino Pengatur Waktu Senja/fajar: 15 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Ringkasan:
Timer berbasis Arduino ini dapat mengganti satu lampu 220V saat senja, fajar atau waktu yang ditentukan.
Pengantar:
Beberapa lampu di rumah saya secara otomatis menyala saat senja, hingga waktu yang telah ditentukan sebelumnya atau hingga fajar (sepanjang malam).
Lokasi lampu tidak memungkinkan penggunaan sensor cahaya. Pengatur waktu jam reguler yang tersedia menyala pada waktu tertentu. Oleh karena itu, untuk menyalakan sekitar senja, diperlukan penyesuaian pengaturan program timer secara teratur.
Sebagai tantangan yang bagus, saya memutuskan untuk membuat timer stand alone berbasis Arduino sebagai gantinya. Ini menggunakan jam waktu nyata dan perpustakaan Dusk2Dawn untuk menentukan waktu di mana lampu harus dinyalakan atau dimatikan. Enklosur untuk pengatur waktu ini dicetak 3D dan dapat ditemukan di Thingiverse. Kode Arduino untuk proyek ini dapat ditemukan di GitHub.
Dalam pembuatan timer ini saya mendapat inspirasi dari banyak desain dan sirkuit di internet. Terima kasih saya untuk semua kontributor yang tidak disebutkan secara eksplisit.
Untuk keterbacaan diagram parsial ditampilkan dalam langkah-langkah di mana diperlukan, bukan diagram sirkuit lengkap.
Solusi alternatif:
Alih-alih timer yang berdiri sendiri, ada banyak solusi di mana sistem otomasi rumah pintar mengarahkan lampu. Tujuan saya adalah memiliki solusi independen, yang tidak bergantung pada konektivitas WIFI (atau lainnya).
Pembatasan:
Kode yang diberikan dengan proyek ini termasuk implementasi perubahan waktu musim panas berdasarkan sistem penghematan waktu siang hari Eropa.
Langkah 1: Daftar Bagian dan Alat
Bagian:
Total biaya suku cadang (tidak termasuk cetak 3d) sekitar €30, -.
- Arduino Nano V3 (kompatibel) tanpa header
- Catu daya 5V 0,6A (34 x 20 x 15mm)
- Relai solid-state 5V - Aktif rendah - 2A 230VAC
- Jam waktu nyata DS3231 (kecil)
- Layar OLED 0.96” SPI 128*64 piksel
- Enkoder putar - EC11 - 20mm
- Knob 6mm poros 15mm * 17mm
- Papan sirkuit tercetak papan tempat memotong roti,
- 4 * sekrup M3x25mm
- kandang cetak 3d
- Tabung panas-menyusut
- kabel
- Blok terminal sekrup (untuk menghubungkan kabel netral)
Alat yang dibutuhkan:
- Solder Besi
- Kawat Solder
- Pompa pematrian
- Penari telanjang kawat
- Pemotong
- Printer 3D (untuk mencetak enklosur)
- Aneka Alat Kecil
PERINGATAN
Sirkuit ini bekerja pada 230v AC dan jika Anda tidak terbiasa bekerja dengan tegangan listrik atau tidak memiliki pengalaman yang cukup dalam bekerja dengan Tegangan Listrik 230v AC, silakan menjauh dari proyek ini
Saya tidak bertanggung jawab atas kehilangan atau kerusakan yang timbul langsung dari atau sebagai akibat dari mengikuti proyek ini
Selalu disarankan untuk berhati-hati dan berhati-hati saat bekerja dengan Sumber Listrik AC
Langkah 2: Siapkan Tampilan OLED dan Jam Waktu Nyata
Enklosur cetak 3D dirancang untuk ukuran minimal. Akibatnya, tajuk tampilan OLED dan jam waktu nyata perlu dihapus.
Sebagai persiapan untuk langkah berikutnya, bersihkan sisa solder dari lubang dengan pompa pematrian.
Langkah 3: Siapkan Rotary Encoder
Rotary encoder memiliki konektor yang tipis. Untuk mencegah kerusakan, pasang sepotong papan sirkuit tercetak ke enkoder.
Pada gambar sambungan ground (ke kanan atas dan tengah bawah) sudah disiapkan juga.
Catatan: Pastikan rotary encoder dengan papan sirkuit tercetak pas dengan enklosur tanpa menyentuh Arduino. Mungkin diperlukan untuk menggiling papan sirkuit tercetak agar pas.
Langkah 4: Kandang
Cetak tiga bagian enklosur dengan printer 3d. Lihat petunjuk di Thingiverse.
Langkah 5: Nonaktifkan Arduino Power LED (opsional)
Untuk mencegah lampu hijau menyala di timer, LED daya Arduino dapat dinonaktifkan.
Perhatikan bahwa modifikasi ini opsional.
Modifikasi Arduino Nano terdiri dari melepas resistor di sebelah led daya (lihat lingkaran merah pada gambar).
Langkah 6: Catu Daya + Relai Keadaan Padat
Pada langkah ini catu daya dan relai solid-state digabungkan dan dipasang di bagian bawah enklosur.
Sambungan antara catu daya dan relai dibuat di bagian bawah komponen ini. Blok terminal sekrup relay akan digunakan untuk menghubungkan ke Arduino.
Catatan: Saat membuat sambungan, pastikan lubang pemasangan relai solid-state tetap bebas.
- Solder kabel koneksi antara solid state relay A1 ke salah satu koneksi AC dari catu daya
- Solder kabel ke koneksi AC lain dari catu daya (ini akan dihubungkan ke blok terminal sekrup netral pada langkah 7)
- Solder kabel antara catu daya -Vo ke relai DC-
- Solder kabel untuk menghubungkan catu daya +Vo ke relai DC+
Catatan: Mungkin diperlukan untuk memperpendek kabel pada catu daya dan relai agar dapat masuk ke dalam enklosur.
Langkah 7: Arduino Nano + Catu Daya + Relay Solid-state
Pada langkah ini, Arduino Nano terhubung ke catu daya dan relai solid-state.
- Potong dua kabel dengan panjang sekitar 70mm. Lepaskan isolasi 30mm di satu sisi, dan 4mm di sisi lain.
- Solder sisi dengan isolasi strip 30mm ke Arduino +5V dan GND, dengan kabel yang menempel
- Potong dua tabung heat-shrink dengan panjang 20mm dan pasang di atas bagian 25mm yang dilucuti. Ini mengisolasi kabel hingga sambungan dengan blok terminal sekrup pemasangan DC+ dan DC- dari relai solid-state.
- Perhatikan bahwa kabel untuk GND dan +5V harus bersilangan agar dapat terhubung dengan benar ke blok terminal sekrup relai.
- Potong kawat dengan panjang kira-kira 40mm dan lepaskan isolasi 4mm dari kedua ujungnya. Solder satu sisi ke koneksi A2 di BELAKANG Arduino, dan sambungkan sisi lain ke koneksi CH1 dari blok terminal sekrup pemasangan solid-state.
PERINGATAN
Arduino ditenagai langsung dari catu daya +5V yang stabil alih-alih menggunakan regulator daya internal Arduino. Oleh karena itu, tidak aman untuk menghubungkan USB ketika Arduino menerima daya dari catu daya.
Selalu putuskan sambungan listrik 230VAC sebelum menggunakan koneksi USB Arduino.
Langkah 8: Arduino Nano + Jam Waktu Nyata
Pada langkah ini jam real time terhubung ke Arduino, sebagian dengan menggunakan kabel yang disiapkan pada langkah sebelumnya.
- Solder kabel yang berasal dari Arduino GND (juga terhubung ke DC- relai) ke ‘–‘jam waktu nyata.
- Solder kabel yang berasal dari Arduino +5V (juga terhubung ke DC+ relai) ke '+' jam waktu nyata.
- Potong dua kabel dengan panjang sekitar 40mm dan lepaskan isolasi 4mm dari kedua ujungnya.
- Solder kabel antara Arduino A4 dan jam waktu nyata D (SDA).
- Solder kabel antara Arduino A5 dan jam waktu nyata C (SCL).
- Bentuk kabel jam waktu nyata untuk memastikan kabel tidak mengganggu enkoder putar. Untuk ini, kabel harus berada di bagian bawah selungkup.
Langkah 9: Hubungkan Layar OLED
Pada langkah ini tampilan OLED SPI ditambahkan ke Arduino.
- Potong 2 kabel dengan panjang 65mm dan lepaskan isolasi 4mm dari kedua ujungnya.
- Solder kabel ke koneksi GND layar OLED. Solder kabel ini ke kabel isolasi heat-shrink tubing yang berasal dari Arduino GND (lihat langkah 4) dan sambungkan kedua kabel ke blok terminal sekrup pemasangan DC dari solid-state relay.
- Solder kabel ke koneksi VCC layar OLED. Solder kabel ini ke kabel terisolasi tabung heat-shrink yang berasal dari Arduino +5V (lihat langkah 4) dan sambungkan kedua kabel ke blok terminal sekrup pemasangan DC+ dari relai solid-state.
- Potong 5 kabel dengan panjang 65mm dan lepaskan isolasi 4mm dari kedua ujungnya.
- Solder kabel untuk menghubungkan D0 (CLK) ke Arduino D10
- Solder kabel untuk menghubungkan D1 (MOSI / DATA) ke Arduino D9
- Solder kabel untuk menghubungkan RES (RT) ke Arduino D8
- Solder kabel untuk menghubungkan DC ke Arduino D11
- Solder kabel untuk menghubungkan CS ke Arduino D12
Catatan: Urutan kabel tampilan tidak logis. Ini adalah hasil pertama menggunakan contoh Adafruit, dan kemudian mengubah koneksi karena menggunakan D13 menghasilkan LED merah di Arduino sepanjang waktu.
Alternatif
Dimungkinkan untuk menggunakan urutan 'normal' untuk koneksi SPI. Untuk ini, definisi output digital program Arduino di oledcontrol.cpp harus disesuaikan:
// Menggunakan perangkat lunak SPI
// definisi pin
#tentukan CS_PIN 12
#tentukan RST_PIN 8
#tentukan DC_PIN 11
#tentukan MOSI_PIN 9
#tentukan CLK_PIN 10
Langkah 10: Rotary Encoder
Diagram menunjukkan koneksi Arduino ke rotary encoder (encoder dilihat dari atas).
- Potong 4 kabel 45mm dan lepaskan isolasi 4mm dari kedua ujungnya.
- Hubungkan Arduino GND ke konektor kanan atas dan tengah bawah encoder
- Hubungkan Arduino D2 ke kiri bawah encoder
- Hubungkan Arduino D3 ke kanan bawah encoder
- Hubungkan Arduino D4 ke kiri atas encoder
Langkah 11: Instalasi di Enclosure
Pasang semua elektronik di bagian bawah enklosur:
- Geser Arduino pada slot vertikal
- Geser jam waktu nyata di kompartemen bawah
- Geser catu daya dan relai di kompartemen atas, pastikan relai duduk di dudukannya.
Langkah 12: Menghubungkan ke Listrik / Lampu untuk Dialihkan
PERINGATAN
Pastikan melakukan perawatan dan tindakan pencegahan yang tepat saat bekerja dengan Sumber Listrik AC, pastikan bahwa Sumber Listrik AC terputus
Saya tidak bertanggung jawab atas kehilangan atau kerusakan yang timbul secara langsung dari atau sebagai akibat dari mengikuti proyek ini
- Hubungkan fase listrik AC ke blok terminal sekrup A1 (kiri) dari relai.
- Hubungkan fase lampu yang akan dialihkan ke blok terminal sekrup B1 (kanan) dari relai.
- Gunakan blok terminal sekrup terpisah untuk menghubungkan kabel netral listrik AC, kabel netral ringan dan kabel netral catu daya.
- Untuk menghilangkan ketegangan, pasang bungkus dasi di sekitar masing-masing kabel daya.
Langkah 13: Menyelesaikan Enclosure
Pada langkah ini pemasangan di enklosur selesai
- Geser layar OLED melalui lubang pemasangan layar di bagian tengah enklosur.
- Geser rotary encoder melalui lubang di bagian tengah, pastikan anti-rotasi berbaris. Pasang rotary encoder menggunakan washer dan mur yang disertakan.
- Pasang bagian atas enklosur dan tutup enklosur dengan memasang keempat sekrup M3x25mm dari bawah.
Langkah 14: Pemrograman Arduino
PERINGATAN
Arduino ditenagai langsung dari catu daya +5V yang stabil alih-alih menggunakan regulator daya internal Arduino. Oleh karena itu, tidak aman untuk menghubungkan USB ketika Arduino menerima daya dari catu daya.
Selalu putuskan sambungan listrik 230VAC sebelum menggunakan koneksi USB Arduino.
Ambil program pengatur waktu Arduino dari GitHub.
Program ini menggunakan Arduino IDE, yang dapat diperoleh di sini.
Program ini menggunakan perpustakaan tambahan berikut:
SSD1303Ascii
perpustakaan Kawat Arduino
Perhatikan bahwa perpustakaan senja2dawn juga digunakan, tetapi disertakan sebagai kode karena perubahan antarmukanya.
Untuk memastikan perhitungan senja / fajar yang benar, garis bujur dan lintang dan zona waktu harus ditetapkan.
Seperti yang dijelaskan dalam contoh senja2dawn, cara mudah untuk menemukan garis bujur dan lintang untuk lokasi mana pun adalah dengan menemukan tempat di Google Maps, klik kanan tempat di peta, dan pilih "Apa yang ada di sini?". Di bagian bawah, Anda akan melihat kartu dengan koordinat.
Bujur dan lintang dikodekan dalam program, di Dusk2Dawn.cpp baris 19 dan 20:
/* Lintang dan bujur lokasi Anda harus disetel di sini.
* * PETUNJUK: Cara mudah untuk menemukan garis bujur dan garis lintang untuk setiap lokasi adalah * menemukan tempat di Google Maps, klik kanan tempat di peta, dan * pilih "Apa yang ada di sini?". Di bagian bawah, Anda akan melihat kartu dengan koordinat *. */ #define LISTRIK 52.097105; // Utrecht #define PANJANG 5.068294; // Utrecht
Zona waktu juga di-hardcode di Dusk2Dawn.cpp baris 24. Secara default diatur ke Belanda (GMT + 1):
/* Masukkan zona waktu Anda (offset ke GMT) di sini.
*/ #menentukan ZONA WAKTU 1
Saat memprogram Arduino untuk pertama kalinya, memori EEPROM perlu diinisialisasi. Untuk ini, ubah timer.cpp baris 11 untuk melakukan inisialisasi EEPROM:
// ubah menjadi true untuk pemrograman pertama kali
#define INITIALIZE_EEPROM_MEMORY salah
Unggah program ke Arduino dan boot Arduino.
Nonaktifkan inisialisasi EEPROM dan unggah program ke Arduino lagi. Timer sekarang akan mengingat pengaturan waktu sakelar saat reboot.
Langkah 15: Mengatur Waktu dan Mengganti Waktu
Konsep interaksi pengguna:
- Tekan sebentar digunakan untuk mengkonfirmasi pilihan. Selanjutnya, di layar pengatur waktu utama, tekan sebentar untuk menyalakan atau mematikan lampu.
- Tekan lama digunakan untuk masuk ke menu dari layar pengatur waktu utama. Di mana saja dalam menu, tekan lama akan kembali ke layar pengatur waktu utama.
- ‘>’ Kursus seleksi. Kursor ini menunjukkan opsi yang dipilih dalam menu.
Layar pengatur waktu utama
Layar pengatur waktu utama menunjukkan:
Hari dalam seminggu Su
Waktu saat ini 16:00
Status timer saat ini dan waktu sakelar berikutnya Timer OFF hingga 17:12
Waktu fajar dan senja Fajar 08:05 Senja 17:10
Mengatur waktu yang tepat
Tekan lama untuk masuk ke menu. Opsi berikut ditampilkan:
BackSet timeProgram hari mingguProgram akhir pekanPilihan
Pilih atur waktu untuk mengatur tanggal dan waktu jam waktu nyata. Masukkan nilai yang benar untuk:
TahunBulanHariWaktu
Timer secara otomatis menentukan hari kerja. Pergantian waktu musim panas juga dilakukan secara otomatis. Musim panas hanya diterapkan untuk zona waktu Eropa.
Mengatur program pengatur waktu
Timer memiliki 2 program, satu untuk hari kerja, satu untuk akhir pekan. Perhatikan bahwa hari Jumat dianggap sebagai bagian dari akhir pekan, lampu dapat menyala sedikit lebih lama.
Setiap timer memiliki momen sakelar hidup dan mati. Momen tersebut dapat berupa:
- Waktu: Tepat waktu yang ditentukan
- Fajar: Beralih berdasarkan waktu fajar yang dihitung
- Senja: Beralih berdasarkan waktu senja yang dihitung
Untuk senja dan fajar dimungkinkan untuk memasukkan nilai koreksi 59 menit sebelum atau sesudahnya.
Contoh:
Untuk menyalakan lampu sepanjang malam, pilih nyalakan pada (senja + 10 menit), matikan pada (fajar - 10 menit)
Untuk menyalakan lampu di malam hari, pilih nyalakan saat senja, matikan pada waktu: 22:30.
Pilihan
Di layar opsi, batas waktu dapat diatur untuk beralih layar.
Saat layar dimatikan, menekan kenop encoder putar akan kembali ke layar pengatur waktu utama.
Direkomendasikan:
Pengatur Waktu Pekerjaan Rumah yang Dibuat oleh Arduino: 5 Langkah
Pengatur Waktu Pekerjaan Rumah Buatan Arduino: Apakah anak Anda menulis pekerjaan rumahnya selama berjam-jam? Apakah anak Anda mudah terganggu oleh orang lain ketika dia mengerjakan pekerjaan rumahnya? Hari ini, saya mencoba melakukan solusi terbaik untuk konflik ini: timer yang dibuat oleh Arduino. Mengapa saya mencoba membuat timer ini alih-alih
Pengatur Waktu Penggiling Kopi Canggih $14: 6 Langkah
Pewaktu Penggiling Kopi Canggih $14: Proyek ini merupakan kemajuan dari Pewaktu Penggiling Kopi $7 yang Dapat Diinstruksikan yang saya terbitkan beberapa tahun yang lalu. Seiring berjalannya waktu, begitu pula kebutuhan akan mesin penggiling kopi yang semakin canggih. Mirip dengan apa yang saya nyatakan di Instructable terakhir, tujuan dari ini
Pengatur Waktu Outlet Arduino: 3 Langkah
Arduino Outlet Timer: Outlet timer adalah alat yang hebat untuk menjaga peralatan agar tetap menyala terlalu lama, tetapi mereka tidak memiliki penyesuaian yang terkadang diperlukan. Beberapa peralatan tidak memiliki sakelar sama sekali, dan membuat pengatur waktu otomatis buatan sendiri bisa sangat berguna. Untuk
Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: 6 Langkah
Arduino Hang Guardian - Tutorial Pengatur Waktu Arduino Watchdog: Hai Semuanya, Ini terjadi pada kita semua. Anda membangun sebuah proyek, dengan antusias menghubungkan semua sensor, dan tiba-tiba, Arduino hang dan tidak ada input yang diproses. “Apa yang sedang terjadi?”, Anda akan bertanya dan mulai menggali kode Anda, hanya untuk
Pengatur Waktu Putaran Drone Otomatis - Dicetak 3D, Didukung Arduino.: 18 Langkah (dengan Gambar)
Timer Lap Drone Otomatis - Dicetak 3D, Didukung Arduino.: Saya semakin tertarik dengan ide balap drone Video Orang Pertama (FPV). Saya baru saja membeli sebuah drone kecil dan ingin cara mengatur waktu putaran saya - ini adalah proyek yang dihasilkan. Landing pad drone ini memiliki fitur ul