Isi kandungan:

Arduino Waktu Waktu senja / subuh: 15 Langkah
Arduino Waktu Waktu senja / subuh: 15 Langkah

Video: Arduino Waktu Waktu senja / subuh: 15 Langkah

Video: Arduino Waktu Waktu senja / subuh: 15 Langkah
Video: Membuat Jam Waktu Sholat (JWS) dengan LCD 16x2 I2C - Project Arduino #34 2024, Julai
Anonim
Pemasa Jam Senja / Subuh Arduino
Pemasa Jam Senja / Subuh Arduino

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

Senarai Bahagian dan Alat
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

Sediakan Paparan OLED dan Jam Masa Nyata
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

Sediakan Rotary Encoder
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

Pagar
Pagar
Pagar
Pagar

Cetak tiga bahagian kandang dengan pencetak 3d. Rujuk arahan di Thingiverse.

Langkah 5: Lumpuhkan Arduino Power LED (pilihan)

Lumpuhkan Arduino Power LED (pilihan)
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

Bekalan Kuasa + Relay Keadaan Pepejal
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

Arduino Nano + Bekalan Kuasa + Relay keadaan pepejal
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

Arduino Nano + Jam Masa Sebenar
Arduino Nano + Jam Masa Sebenar

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

Sambungkan Paparan OLED
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

Pengekod Putar
Pengekod Putar

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

Pemasangan di Lampiran
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

Menyambung ke Mains / Lampu yang hendak Dihidupkan
Menyambung ke Mains / Lampu yang hendak Dihidupkan
Menyambung ke Mains / Lampu yang hendak Dihidupkan
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

Menamatkan Pagar
Menamatkan Pagar

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: