Isi kandungan:
- Langkah 1: Senarai Bahagian dan Alat
- Langkah 2: Sediakan Paparan OLED dan Jam Masa Nyata
- Langkah 3: Sediakan Rotary Encoder
- Langkah 4: Penutup
- Langkah 5: Lumpuhkan Arduino Power LED (pilihan)
- Langkah 6: Bekalan Kuasa + Relay Keadaan Pepejal
- Langkah 7: Arduino Nano + Bekalan Kuasa + Relay keadaan pepejal
- Langkah 8: Arduino Nano + Jam Masa Nyata
- Langkah 9: Sambungkan Paparan OLED
- Langkah 10: Pengekod Rotary
- Langkah 11: Pemasangan di Lampiran
- Langkah 12: Menyambung ke Mains / Lampu yang hendak Dihidupkan
- Langkah 13: Menyelesaikan Kandang
- Langkah 14: Memprogram Arduino
- Langkah 15: Menetapkan Masa dan Menukar Masa
Video: Arduino Waktu Waktu senja / subuh: 15 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Ringkasan:
Pemasa berasaskan Arduino ini dapat menukar satu lampu 220V pada waktu senja, subuh atau waktu yang ditentukan.
Pengenalan:
Sebilangan lampu di rumah saya akan dinyalakan secara automatik pada waktu senja, sehingga waktu yang telah ditetapkan atau hingga subuh (sepanjang malam).
Lokasi lampu tidak membenarkan penggunaan sensor cahaya. Pemasa jam yang tersedia biasa dihidupkan pada waktu tertentu. Oleh itu, untuk menghidupkan senja memerlukan penyesuaian tetapan program pemasa secara berkala.
Sebagai cabaran yang baik, saya memutuskan untuk membina pemasa berdiri sendiri berasaskan Arduino. Ia menggunakan jam masa nyata dan perpustakaan Dusk2Dawn untuk menentukan waktu di mana lampu mesti dihidupkan atau dimatikan. Lampiran untuk pemasa ini dicetak 3D dan boleh didapati di Thingiverse. Kod Arduino untuk projek ini boleh didapati di GitHub.
Dalam penciptaan pemasa ini, saya mendapat inspirasi dari banyak reka bentuk dan litar di internet. Terima kasih saya ucapkan kepada semua penyumbang yang tidak dinyatakan secara jelas.
Untuk pembacaan sebahagian gambarajah ditunjukkan pada langkah-langkah di mana diperlukan, bukannya gambarajah litar lengkap.
Penyelesaian alternatif:
Daripada pemasa yang berdiri sendiri, terdapat banyak penyelesaian di mana sistem automasi rumah pintar mengarahkan lampu. Tujuan saya adalah untuk mempunyai penyelesaian yang bebas, yang tidak bergantung pada sambungan WIFI (atau yang lain).
Sekatan:
Kod yang disediakan dengan projek ini termasuk pelaksanaan perubahan penjimatan siang berdasarkan sistem penjimatan siang Eropah.
Langkah 1: Senarai Bahagian dan Alat
Bahagian:
Jumlah kos bahagian (tidak termasuk cetakan 3d) lebih kurang € 30, -.
- Arduino Nano V3 (serasi) tanpa tajuk
- Bekalan kuasa 5V 0.6A (34 x 20 x 15mm)
- Relay keadaan pepejal 5V - Rendah aktif - 2A 230VAC
- Jam masa nyata DS3231 (kecil)
- Paparan OLED 0.96 "SPI 128 * 64 piksel
- Pengekod putar - EC11 - 20mm
- Knob 6mm poros 15mm * 17mm
- Papan litar bercetak papan roti,
- Skru 4 * M3x25mm
- Lampiran bercetak 3d
- Tiub pengecutan panas
- Wayar
- Blok terminal skru (untuk menyambungkan wayar neutral)
Alat yang diperlukan:
- Besi pematerian
- Kawat Pateri
- Pam desoldering
- Pelucut Kawat
- Pemotong
- Pencetak 3D (untuk mencetak lampiran)
- Alat Kecil Berbagai Macam
AMARAN
Litar ini berfungsi pada 230v AC dan jika anda tidak terbiasa bekerja dengan voltan utama atau tidak mempunyai pengalaman yang cukup dalam bekerja dengan 230v AC Voltage AC, harap menjauhkan diri dari projek ini
Saya tidak bertanggungjawab untuk kehilangan atau kerosakan yang timbul secara langsung dari atau akibat daripada mengikuti projek ini
Selalu disarankan untuk berhati-hati dan berjaga-jaga semasa bekerja dengan AC Mains
Langkah 2: Sediakan Paparan OLED dan Jam Masa Nyata
Kandang bercetak 3D direka untuk ukuran minimum. Akibatnya, tajuk paparan OLED dan jam masa nyata perlu dikeluarkan.
Sebagai persediaan untuk langkah seterusnya, bersihkan pateri yang tinggal dari lubang dengan pam pemisah.
Langkah 3: Sediakan Rotary Encoder
Pengekod putar mempunyai penyambung tipis. Untuk mengelakkan kerosakan, pasangkan sekeping papan litar bercetak ke pengekod.
Pada gambar sambungan tanah (ke kanan atas dan tengah bawah) juga telah disediakan.
Catatan: Pastikan pengekod putar dengan papan litar bercetak sesuai dengan penutup tanpa menyentuh Arduino. Mungkin diperlukan untuk menggiling papan litar bercetak agar sesuai.
Langkah 4: Penutup
Cetak tiga bahagian kandang dengan pencetak 3d. Rujuk arahan di Thingiverse.
Langkah 5: Lumpuhkan Arduino Power LED (pilihan)
Untuk mengelakkan cahaya hijau pada pemasa, LED kuasa Arduino boleh dimatikan.
Perhatikan bahawa pengubahsuaian ini adalah pilihan.
Pengubahsuaian pada Arduino Nano terdiri daripada melepaskan perintang di sebelah daya yang dipimpin (lihat bulatan merah dalam gambar).
Langkah 6: Bekalan Kuasa + Relay Keadaan Pepejal
Pada langkah ini, bekalan kuasa dan relay keadaan pepejal digabungkan dan dipasang di bahagian bawah kandang.
Sambungan antara bekalan kuasa dan geganti dibuat di bahagian bawah komponen ini. Blok terminal skru relay akan digunakan untuk menyambung ke Arduino.
Catatan: Semasa membuat sambungan, pastikan lubang pemasangan relay keadaan pepejal disimpan bebas.
- Pateri wayar sambungan antara relay keadaan pepejal A1 ke salah satu sambungan AC dari bekalan kuasa
- Pateri wayar ke sambungan AC lain dari bekalan kuasa (ini akan disambungkan ke blok terminal skru neutral pada langkah 7)
- Memateri wayar antara bekalan kuasa -Vo ke relay DC-
- Pateri wayar untuk menyambungkan bekalan kuasa + Vo ke geganti DC +
Catatan: Mungkin diperlukan untuk memendekkan kabel pada bekalan kuasa dan geganti agar dapat dipasang di dalam kandang.
Langkah 7: Arduino Nano + Bekalan Kuasa + Relay keadaan pepejal
Dalam langkah ini, Arduino Nano disambungkan ke relai bekalan kuasa dan keadaan pepejal.
- Potong dua wayar dengan panjang kira-kira 70mm. Keluarkan pengasingan 30mm di satu sisi, dan 4mm di sisi lain.
- Selesaikan sisi dengan pengasingan yang dilucutkan 30mm ke Arduino + 5V dan GND, dengan wayar melekat
- Potong dua tiub pengecutan panas dengan panjang 20mm dan pasangkannya di bahagian yang dilucutkan 25mm. Ini mengasingkan wayar hingga sambungan dengan blok terminal skru pemasangan DC + dan DC- dari relay keadaan pepejal.
- Perhatikan bahawa wayar untuk GND dan + 5V perlu menyeberang untuk menyambung dengan betul ke blok terminal skru geganti.
- Potong wayar dengan panjang kira-kira 40mm dan lepaskan pengasingan 4mm dari kedua hujungnya. Selesaikan satu sisi ke sambungan A2 di BACKSIDE Arduino, dan sambungkan sisi lain ke sambungan CH1 blok terminal skru padat keadaan pepejal.
AMARAN
Arduino dihidupkan terus dari bekalan kuasa +VV stabil dan bukannya menggunakan pengatur kuasa dalaman Arduino. Oleh itu, tidak selamat untuk menyambungkan USB apabila Arduino menerima kuasa dari bekalan kuasa.
Sentiasa memutuskan sambungan 230VAC sebelum menggunakan sambungan Arduino USB.
Langkah 8: Arduino Nano + Jam Masa Nyata
Pada langkah ini jam masa nyata disambungkan ke Arduino, sebahagiannya dengan menggunakan kabel yang disediakan pada langkah sebelumnya.
- Memateri wayar yang berasal dari Arduino GND (juga disambungkan ke DC- relay) ke '-' jam masa nyata.
- Pateri wayar yang berasal dari Arduino + 5V (juga disambungkan ke DC + relay) ke ‘+’ jam masa nyata.
- Potong dua wayar dengan panjang kira-kira 40mm dan lepaskan pengasingan 4mm dari kedua hujungnya.
- Memateri wayar antara Arduino A4 dan jam masa nyata D (SDA).
- Memateri wayar antara Arduino A5 dan jam masa nyata C (SCL).
- Bentuk wayar jam masa nyata untuk memastikan mereka tidak mengganggu pengekod putar. Untuk ini, wayar mesti berada di bahagian bawah kandang.
Langkah 9: Sambungkan Paparan OLED
Pada langkah ini paparan OLED SPI ditambahkan ke Arduino.
- Potong 2 wayar panjang 65mm dan jalur pengasingan 4mm kedua-dua hujungnya.
- Pateri wayar ke sambungan GND pada paparan OLED. Pateri wayar ini ke wayar pengasingan tiub pengecutan panas yang berasal dari Arduino GND (rujuk langkah 4) dan sambungkan kedua-dua wayar ke blok terminal skru pemasangan DC dari relay keadaan pepejal.
- Pateri wayar ke sambungan VCC pada paparan OLED. Pateri wayar ini ke wayar pengasingan tiub pengecutan panas yang berasal dari Arduino + 5V (rujuk langkah 4) dan sambungkan kedua-dua wayar ke blok terminal skru pemasangan DC + dari relay keadaan pepejal.
- Potong 5 wayar panjang 65mm dan jalur pengasingan 4mm kedua-dua hujungnya.
- Pateri wayar untuk menyambungkan D0 (CLK) ke Arduino D10
- Pateri wayar untuk menyambungkan D1 (MOSI / DATA) ke Arduino D9
- Pateri wayar untuk menghubungkan RES (RT) ke Arduino D8
- Pateri wayar untuk menyambungkan DC ke Arduino D11
- Pateri wayar untuk menghubungkan CS ke Arduino D12
Catatan: Urutan wayar paparan tidak logik. Ini adalah hasil pertama menggunakan contoh Adafruit, dan kemudian menukar sambungan kerana menggunakan D13 menghasilkan LED merah di Arduino sepanjang masa.
Alternatif
Anda boleh menggunakan pesanan ‘normal’ untuk sambungan SPI. Untuk ini, definisi output digital program Arduino dalam oledcontrol.cpp mesti disesuaikan dengan sewajarnya:
// Menggunakan perisian 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: Pengekod Rotary
Rajah menunjukkan sambungan Arduino ke encoder putar (encoder dilihat dari atas).
- Potong 4 wayar 45mm dan lepaskan 4mm pengasingan kedua-dua hujungnya.
- Sambungkan Arduino GND ke penyambung tengah kanan atas dan bawah pengekod
- Sambungkan Arduino D2 ke kiri bawah pengekod
- Sambungkan Arduino D3 ke kanan bawah pengekod
- Sambungkan Arduino D4 ke kiri atas pengekod
Langkah 11: Pemasangan di Lampiran
Pasang semua elektronik di bahagian bawah kandang:
- Luncurkan Arduino pada slot menegak
- Luncurkan jam masa nyata di petak bawah
- Geser bekalan kuasa dan geganti di petak atas, pastikan geganti berada di dudukannya.
Langkah 12: Menyambung ke Mains / Lampu yang hendak Dihidupkan
AMARAN
Pastikan menjaga dan berjaga-jaga dengan betul semasa bekerja dengan AC Mains, pastikan bahawa AC Mains terputus
Saya tidak bertanggungjawab untuk kehilangan atau kerosakan yang timbul secara langsung dari atau akibat daripada mengikuti projek ini
- Sambungkan fasa AC Mains ke blok terminal skru A1 (kiri) geganti.
- Sambungkan fasa cahaya yang hendak ditukar ke blok terminal skru B1 (kanan) geganti.
- Gunakan blok terminal skru yang terpisah untuk menyambungkan wayar neutral utama AC, wayar neutral cahaya dan wayar neutral dari bekalan kuasa.
- Untuk melegakan regangan, pasangkan bungkus tali leher di setiap kabel kuasa.
Langkah 13: Menyelesaikan Kandang
Dalam langkah ini pemasangan di kandang selesai
- Luncurkan paparan OLED melalui lubang pemasangan paparan di bahagian tengah kandang.
- Geser pengekod putar melalui lubang di bahagian tengah, pastikan anti-putaran berbaris. Pasang pengekod putar menggunakan mesin basuh dan mur yang disertakan.
- Pasang bahagian atas penutup dan tutup penutup dengan memasang empat skru M3x25mm dari bawah.
Langkah 14: Memprogram Arduino
AMARAN
Arduino dihidupkan terus dari bekalan kuasa +VV stabil dan bukannya menggunakan pengatur kuasa dalaman Arduino. Oleh itu, tidak selamat untuk menyambungkan USB apabila Arduino menerima kuasa dari bekalan kuasa.
Sentiasa memutuskan sambungan 230VAC sebelum menggunakan sambungan Arduino USB.
Dapatkan semula program pemasa Arduino dari GitHub.
Program ini menggunakan Arduino IDE, yang boleh didapati di sini.
Program ini menggunakan perpustakaan tambahan berikut:
SSD1303Ascii
Perpustakaan Arduino Wire
Perhatikan bahawa perpustakaan dusk2dawn juga digunakan, tetapi disertakan sebagai kod kerana perubahan antara muka.
Untuk memastikan pengiraan senja / subuh yang betul, garis bujur dan garis lintang dan zon waktu mesti ditetapkan.
Seperti yang dijelaskan dalam contoh dusk2dawn, cara mudah untuk mencari garis bujur dan garis lintang untuk mana-mana lokasi adalah dengan mencari tempat di Peta Google, klik kanan tempat di peta, dan pilih "Apa di sini?". Di bahagian bawah, anda akan melihat kad dengan koordinat.
Garis bujur dan garis lintang dikodkan dalam program, dalam baris 19 dan 20 Dusk2Dawn.cpp:
/ * Lintang dan garis bujur lokasi anda mesti ditetapkan di sini.
* * PETUNJUK: Cara mudah untuk mencari garis bujur dan garis lintang untuk mana-mana lokasi adalah * untuk mencari tempat di Peta Google, klik kanan tempat di peta, dan * pilih "Apa di sini?". Di bahagian bawah, anda akan melihat kad dengan koordinat *. * / #tentukan LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Zon waktu juga dikodkan dalam baris Dusk2Dawn.cpp 24. Secara lalai ia ditetapkan ke Belanda (GMT + 1):
/ * Masukkan zon waktu anda (diimbangi ke GMT) di sini.
* / #tentukan zon waktu 1
Semasa memprogram Arduino untuk pertama kalinya, memori EEPROM perlu dimulakan. Untuk ini, ubah timer.cpp baris 11 untuk melakukan permulaan EEPROM:
// ubah menjadi benar untuk pengaturcaraan kali pertama
#tentukan INITIALIZE_EEPROM_MEMORY salah
Muat naik program ke Arduino dan boot Arduino.
Lumpuhkan inisialisasi EEPROM dan muat naik program ke Arduino sekali lagi. Pemasa sekarang akan mengingati tetapan masa beralih ketika reboot.
Langkah 15: Menetapkan Masa dan Menukar Masa
Konsep interaksi pengguna:
- Tekan pendek digunakan untuk mengesahkan pilihan. Selanjutnya, di skrin pemasa utama tekan pendek menghidupkan atau mematikan lampu.
- Tekan lama digunakan untuk memasuki menu dari skrin pemasa utama. Di mana sahaja di menu, tekan lama akan kembali ke skrin pemasa utama.
- Kursus pemilihan. Kursor ini menunjukkan pilihan yang dipilih dalam menu.
Skrin pemasa utama
Skrin pemasa utama menunjukkan:
Hari dalam seminggu Su
Masa sekarang 16:00
Keadaan pemasa semasa dan masa beralih seterusnya Pemasa MATI hingga 17:12
Waktu Subuh dan senja Subuh 08:05 Waktu senja 17:10
Menetapkan masa yang betul
Tekan lama untuk memasuki menu. Pilihan berikut ditunjukkan:
BackSet timeWeek day programWeekend programPilihan
Pilih waktu yang ditetapkan untuk menetapkan tarikh dan masa jam masa sebenar. Masukkan nilai yang betul untuk:
TahunMonthDayTime
Pemasa secara automatik menentukan hari minggu. Menukar masa penjimatan siang juga dilakukan secara automatik. Penjimatan siang dilaksanakan untuk zon waktu Eropah sahaja.
Menetapkan program pemasa
Pemasa mempunyai 2 program, satu untuk hari minggu, satu untuk hujung minggu. Perhatikan bahawa hari Jumaat dianggap sebagai sebahagian daripada hujung minggu, lampu dapat bertahan sedikit lebih lama.
Setiap pemasa mempunyai momen hidup dan matikan. Momen tersebut boleh menjadi:
- Masa: Masa yang ditentukan tepat
- Subuh: Beralih berdasarkan waktu subuh yang dikira
- Senja: Beralih berdasarkan waktu senja yang dikira
Untuk senja dan subuh boleh memasukkan nilai pembetulan 59 minit sebelum atau sesudahnya.
Contoh:
Untuk menyalakan lampu sepanjang malam, pilih hidupkan pada (senja + 10min), matikan pada (subuh - 10min)
Untuk menyalakan lampu pada waktu malam, pilih hidupkan pada waktu senja, matikan pada waktu: 22:30.
Pilihan
Pada layar pilihan, batas waktu boleh ditetapkan untuk menukar skrin.
Apabila skrin dimatikan, menekan kenop pengekod putar akan kembali ke skrin pemasa utama.
Disyorkan:
DIY Cara Memaparkan Waktu di M5StickC ESP32 Menggunakan Visuino - Mudah Dilakukan: 9 Langkah
DIY Cara Memaparkan Waktu di M5StickC ESP32 Menggunakan Visuino - Mudah Dilakukan: Dalam tutorial ini kita akan belajar cara memprogram ESP32 M5Stack StickC dengan Arduino IDE dan Visuino untuk Memaparkan waktu di LCD
Bekerja Dari Perakam Waktu Rumah Menggunakan Raspberry Pi: 7 Langkah
Bekerja Dari Perakam Waktu Rumah Menggunakan Pi Raspberry: Sepanjang tahun lalu, saya berpeluang bekerja dari rumah. Untuk itu saya perlu mengawasi jam-jam yang saya kerjakan. Bermula dengan menggunakan spreadsheet excel dan memasukkan masa 'jam-masuk' dan 'jam-keluar' secara manual, saya segera mendapati ini adalah
Waktu Paparan Arduino pada Paparan LED TM1637 Menggunakan RTC DS1307: 8 Langkah
Waktu Paparan Arduino pada Paparan LED TM1637 Menggunakan RTC DS1307: Dalam tutorial ini kita akan belajar bagaimana memaparkan waktu menggunakan modul RTC DS1307 dan Paparan LED TM1637 dan Visuino. Tonton video
Jam GPS Arduino Dengan Waktu Tempatan Menggunakan Modul NEO-6M: 9 Langkah
Jam GPS Arduino Dengan Waktu Tempatan Menggunakan Modul NEO-6M: Dalam tutorial ini kita akan belajar bagaimana mendapatkan waktu terkini dari satelit menggunakan arduino. Tonton videonya
Paparan Waktu dan Cuaca Arduino 3-dalam-1: 11 Langkah
Paparan Waktu dan Cuaca Arduino 3-dalam-1: Saya suka mikrokontroler PIC dan saya suka pengaturcaraan dalam bahasa pemasangan. Sebenarnya, sejak beberapa tahun kebelakangan ini, saya telah menyiarkan sekitar 40 projek di laman web saya berdasarkan kombinasi tersebut. Baru-baru ini saya memesan beberapa bahagian dari salah satu kegemaran AS saya