Mundarija:

Arduino Kechqurun/Tong soatlari taymeri: 15 qadam
Arduino Kechqurun/Tong soatlari taymeri: 15 qadam

Video: Arduino Kechqurun/Tong soatlari taymeri: 15 qadam

Video: Arduino Kechqurun/Tong soatlari taymeri: 15 qadam
Video: Эрта тонгда сизни жаннатга олиб кирувчи дуолар | эрталабки дуо 2024, Noyabr
Anonim
Arduino Kunduzi/Tong soatlari taymeri
Arduino Kunduzi/Tong soatlari taymeri

Xulosa:

Arduino -ga asoslangan taymer, tush paytida, tongda yoki belgilangan vaqtda bitta 220V chiroqni almashtirishi mumkin.

Kirish:

Uyimdagi ba'zi chiroqlar avtomatik ravishda kech tushganda, oldindan belgilangan vaqtgacha yoki tong otguncha (butun tun) yoqiladi.

Chiroqlarning joylashuvi yorug'lik sezgichidan foydalanishga ruxsat bermaydi. Oddiy soat taymerlari ma'lum bir vaqtda yoqiladi. Kechga yaqin vaqtni yoqish uchun taymer dasturining sozlamalarini muntazam ravishda o'zgartirish zarur.

Yaxshi vazifa sifatida men uning o'rniga maxsus Arduino taymerini yaratishga qaror qildim. Chiroqlarni yoqish yoki o'chirish vaqtini aniqlash uchun u real vaqt soati va Dusk2Dawn kutubxonasidan foydalanadi. Bu taymer uchun korpus 3D bosilgan va uni Thingiverse -da topish mumkin. Ushbu loyihaning Arduino kodini GitHub -da topish mumkin.

Taymerni yaratishda men Internetdagi ko'plab dizayn va sxemalardan ilhom oldim. Aniq tilga olinmagan barcha ishtirokchilarga rahmat aytaman.

O'qish uchun qisman diagrammalar kerak bo'lganda, to'liq sxemaning o'rniga ko'rsatiladi.

Muqobil echimlar:

Mustaqil taymer o'rniga, aqlli uyni avtomatlashtirish tizimi chiroqlarni boshqaradigan ko'plab echimlar mavjud. Mening maqsadim mustaqil echimga ega bo'lish edi, bu WIFI (yoki boshqa) ulanishga bog'liq emas.

Cheklovlar:

Ushbu loyiha bilan ta'minlangan kod Evropaning yozgi yozgi tizimiga asoslangan yozgi yozgi o'zgarishlarni o'z ichiga oladi.

1 -qadam: qismlar ro'yxati va asboblar

Qismlar ro'yxati va asboblar
Qismlar ro'yxati va asboblar

Qismlar:

Umumiy qismlar narxi (3d bosmadan tashqari) taxminan 30 evro, -.

  • Arduino Nano V3 (mos keladi) sarlavhasiz
  • Quvvat manbai 5V 0,6A (34 x 20 x 15 mm)
  • Qattiq hol rölesi 5V - Faol past - 2A 230VAC
  • Haqiqiy vaqtda soat DS3231 (kichik)
  • 0,96 dyuymli OLED displeyli SPI 128*64 pikselli
  • Aylanadigan kodlovchi - EC11 - 20 mm
  • 6mm milya 15mm * 17mm
  • Breadboard bosilgan elektron platasi,
  • 4* M3x25 mm vintlardek
  • 3D bosma korpus
  • Issiqlikka chidamli quvurlar
  • Simlar
  • Vintli terminal bloki (neytral simlarni ulash uchun)

Kerakli vositalar:

  • Lehimlash temir
  • Lehim simlari
  • Chiqaruvchi nasos
  • Tel -striptizchilar
  • Kesgichlar
  • 3D printer (muhofazani chop etish uchun)
  • Turli xil kichik asboblar

OGOHLANTIRISH

Ushbu sxema 230V ACda ishlaydi va agar siz tarmoq voltaji bilan ishlashga odatlanmagan bo'lsangiz yoki 230V AC kuchlanish bilan ishlashda etarli tajribaga ega bo'lmasangiz, iltimos, ushbu loyihadan uzoqroq turing

Men ushbu loyihani amalga oshirish natijasida yoki undan kelib chiqadigan yo'qotish yoki zarar uchun hech qanday javobgarlikni o'z zimmamga olmayman

AC tarmog'i bilan ishlashda har doim ehtiyotkorlik va ehtiyot choralarini ko'rish tavsiya etiladi

2 -qadam: OLED -displey va real vaqtda soatni tayyorlang

OLED -displey va real vaqtda soatni tayyorlang
OLED -displey va real vaqtda soatni tayyorlang

3D bosma korpus minimal o'lchamlarga mo'ljallangan. Natijada, OLED displeyining sarlavhalari va real vaqtda soatni olib tashlash kerak.

Keyingi bosqichga tayyorgarlik ko'rayotganda, qolgan lehimni teshiklardan olib tashlash nasosi yordamida tozalang.

3 -qadam: Rotary kodlovchi tayyorlang

Rotary kodlovchi tayyorlang
Rotary kodlovchi tayyorlang

Aylanadigan kodlovchi nozik konnektorlarga ega. Shikastlanishni oldini olish uchun, bosilgan elektron kartaning bir qismini enkoderga ulang.

Rasmda erga ulanish (yuqori o'ng va o'rta pastda) allaqachon tayyorlangan.

Eslatma: bosilgan elektron kartali aylanadigan kodlovchi Arduino -ga tegmasdan korpusga mos kelishiga ishonch hosil qiling. Yaxshi joylashishi uchun bosilgan elektron kartani maydalash talab qilinishi mumkin.

4 -qadam: Qoplama

Qoplama
Qoplama
Qoplama
Qoplama

Uch o'lchovli printer yordamida korpusning uch qismini chop eting. Thingiverse bo'yicha ko'rsatmalarga qarang.

5 -qadam: Arduino Power LED -ni o'chiring (ixtiyoriy)

Arduino Power LED -ni o'chiring (ixtiyoriy)
Arduino Power LED -ni o'chiring (ixtiyoriy)

Taymerda yashil rang yonishini oldini olish uchun Arduino -ning quvvat LEDini o'chirib qo'yish mumkin.

E'tibor bering, bu o'zgartirish ixtiyoriy.

Arduino Nano modifikatsiyasi quvvat manbai yonidagi rezistorni olib tashlashdan iborat (rasmdagi qizil doiraga qarang).

6 -qadam: Quvvat manbai + qattiq hol o'rni

Quvvat manbai + qattiq hol o'rni
Quvvat manbai + qattiq hol o'rni

Bu bosqichda quvvat manbai va qattiq hol o'rni birlashtirilib, korpusning pastki qismiga o'rnatiladi.

Quvvat manbai va o'rni o'rtasidagi ulanishlar ushbu komponentlarning pastki qismida amalga oshiriladi. O'rnimizni vintli terminal bloki Arduino -ga ulanish uchun ishlatiladi.

E'tibor bering: ulanishlarni o'rnatayotganda, qattiq o'rni rölesinin o'rnatish teshiklari bo'sh qolishiga ishonch hosil qiling.

  • A1 qattiq o'rni o'rni bilan quvvat manbaining AC ulanishlaridan biriga ulanish simini lehimlang
  • Quvvat manbaining boshqa AC ulanishiga simni lehimlang (bu 7 -bosqichda neytral vintli terminal blokiga ulanadi)
  • Quvvat manbai orasidagi simni lehimlang -DC o'rni uchun ovoz -
  • Quvvat manbasini ulash uchun simni lehimlang +DC +o'rni uchun Vo

Eslatma: Korpusga mos bo'lishi uchun quvvat manbai va o'rni simlarini qisqartirish talab qilinishi mumkin.

7-qadam: Arduino Nano + Quvvat manbai + Qattiq holatda o'rni

Arduino Nano + Quvvat manbai + Qattiq holatda o'rni
Arduino Nano + Quvvat manbai + Qattiq holatda o'rni

Ushbu bosqichda Arduino Nano quvvat manbai va qattiq holatda o'rni bilan bog'langan.

  • Taxminan 70 mm uzunlikdagi ikkita simni kesib oling. Bir tomondan 30 mm izolyatsiyani, ikkinchisini esa 4 mm.
  • Yonni Arduino +5V va GND ga 30 mm ajratilgan izolyatsiya bilan, sim o'tkazib
  • Uzunligi 20 mm bo'lgan ikkita issiqlik qisqaruvchi naychani kesib oling va ularni 25 mm yirtilgan qismga o'rnating. Bu simlarni qattiq holat rölesining DC+ va DC- vintli klemensli vintli klemensli ulanishgacha ajratadi.
  • E'tibor bering, GND va +5V simlari o'rni vintli terminal blokiga to'g'ri ulanishi uchun kesishishi kerak.
  • Taxminan 40 mm uzunlikdagi simni kesib oling va ikkala uchini 4 mm izolyatsiyalang. Bir tomonni Arduino-ning orqa tomonidagi A2 ulagichiga lehimlang, ikkinchi tomonini esa qattiq holatdagi vintli terminal blokining CH1 ulanishiga ulang.

OGOHLANTIRISH

Arduino Arduino ichki quvvat regulyatoridan foydalanish o'rniga to'g'ridan -to'g'ri barqaror +5V quvvat manbaidan quvvatlanadi. Shuning uchun, Arduino quvvat manbaidan quvvat olganda, USB -ni ulash xavfsiz emas.

Arduino USB ulanishini ishlatishdan oldin har doim 230VAC tarmoqdan uzing.

8 -qadam: Arduino Nano + real vaqtda soat

Arduino Nano + real vaqtda soat
Arduino Nano + real vaqtda soat

Bu bosqichda real vaqtda soat qisman oldingi bosqichda tayyorlangan kabellar yordamida Arduino -ga ulanadi.

  • Arduino GND dan keladigan simni (shuningdek, o'rni DC-ga ulangan) real vaqtda "-" ga lehimlang.
  • Arduino+5V dan keladigan simni (shuningdek, o'rni DC+ga ulangan) real vaqtda "+" ga lehimlang.
  • Taxminan 40 mm uzunlikdagi ikkita simni kesib oling va ikkala uchini 4 mm izolyatsiyalang.
  • Arduino A4 va real vaqt D (SDA) orasidagi simni lehimlang.
  • Arduino A5 va real vaqt C (SCL) orasidagi simni lehimlang.
  • Haqiqiy vaqt simlarini aylantiruvchi enkoderga to'sqinlik qilmasligiga ishonch hosil qiling. Buning uchun simlar korpusning pastki qismida bo'lishi kerak.

9 -qadam: OLED -displeyni ulang

OLED -displeyni ulang
OLED -displeyni ulang

Bu bosqichda Arduino -ga OLED SPI displeyi qo'shiladi.

  • 65 mm uzunlikdagi 2 ta simni kesib oling va ikkala uchini 4 mm izolyatsiyalang.
  • OLED displeyining GND ulanishiga simni lehimlang. Bu simni Arduino GND dan keladigan issiqlik o'tkazmaydigan quvurli izolyatsiyalangan simga lehimlang (4-bosqichga qarang) va ikkala simni qattiq o'rni o'rni vintli terminal blokiga ulang.
  • OLED displeyining VCC ulanishiga simni lehimlang. Bu simni Arduino + 5V dan keladigan issiqlik o'tkazmaydigan quvurli izolyatsiyalangan simga lehimlang (4-bosqichga qarang) va ikkala simni qattiq o'rni rölesinin DC + vintli terminal blokiga ulang.
  • 65 mm uzunlikdagi 5 ta simni kesib oling va ikkala uchini 4 mm izolyatsiyalang.
  • D0 (CLK) ni Arduino D10 ga ulash uchun simni lehimlang
  • D1 (MOSI / DATA) ni Arduino D9 ga ulash uchun simni lehimlang
  • RES (RT) ni Arduino D8 ga ulash uchun simni lehimlang
  • DCni Arduino D11 ga ulash uchun simni lehimlang
  • CS ni Arduino D12 ga ulash uchun simni lehimlang

Eslatma: displey simlarining tartibi mantiqiy emas. Bu birinchi navbatda Adafruit misolidan foydalanishning natijasidir, so'ngra ulanishlarni o'zgartiradi, chunki D13 -ni ishlatish har doim Arduino -da qizil LEDni ko'rsatadi.

Muqobil

SPI ulanishlari uchun "oddiy" tartibdan foydalanish mumkin. Buning uchun oledcontrol.cpp dagi Arduino dasturining raqamli chiqish ta'rifi mos ravishda sozlanishi kerak:

// SPI dasturiy ta'minotidan foydalanish

// pin ta'riflari

#CS_PIN 12 ni aniqlang

#RST_PIN 8 ni aniqlang

#DC_PIN 11 ni aniqlang

#MOSI_PIN 9 ni aniqlang

#CLK_PIN 10 ni aniqlang

10 -qadam: Rotary kodlovchi

Rotary kodlovchi
Rotary kodlovchi

Diagrammada Arduino -ning aylanadigan enkoderga ulanishi ko'rsatilgan (kodlovchi yuqoridan ko'rinadi).

  • 45 mm bo'lgan 4 ta simni kesib oling va ikkala uchini 4 mm izolyatsiyalang.
  • Arduino GND kodekatorining yuqori o'ng va pastki o'rta ulagichlariga ulang
  • Arduino D2 -ni kodlovchining pastki chap tomoniga ulang
  • Arduino D3 -ni kodlagichning o'ng pastki qismiga ulang
  • Arduino D4 -ni kodlovchining yuqori chap qismiga ulang

11 -qadam: Korpusga o'rnatish

Kassada o'rnatish
Kassada o'rnatish

Barcha elektronikani korpusning pastki qismiga o'rnating:

  • Arduino -ni vertikal uyaga suring
  • Haqiqiy vaqtda soatni pastki qismga siljiting
  • Quvvat manbai va o'rni yuqori bo'linmasiga suring, o'rni o'z joyiga o'rnatilganligiga ishonch hosil qiling.

12 -qadam: Elektr tarmog'iga / chiroqqa ulanish

Tarmoqqa / yorug'likka ulanish
Tarmoqqa / yorug'likka ulanish
Tarmoqqa / yorug'likka ulanish
Tarmoqqa / yorug'likka ulanish

OGOHLANTIRISH

AC tarmog'i bilan ishlashda to'g'ri parvarish va ehtiyot choralariga rioya qiling, AC tarmog'i uzilganligiga ishonch hosil qiling

Men ushbu loyihani amalga oshirish natijasida yuzaga kelgan yo'qotish yoki zarar uchun hech qanday javobgarlikni o'z zimmamga olmayman

  • AC tarmog'ining fazasini o'rni A1 (chap) vintli terminal blokiga ulang.
  • O'zgartiriladigan yorug'lik fazasini o'rni B1 (o'ng) vintli terminal blokiga ulang.
  • AC tarmoq neytral simini, yorug'lik neytral simini va elektr ta'minotining neytral simini ulash uchun alohida vintli terminal blokidan foydalaning.
  • Kuchlanishdan xalos bo'lish uchun, har bir elektr kabelini bog'lab qo'ying.

13 -qadam: Qoplamani tugatish

Qoplamani tugatish
Qoplamani tugatish

Ushbu bosqichda korpusga o'rnatish tugallandi

  • OLED displeyini korpusning o'rta qismidagi displey o'rnatish teshigidan o'tkazing.
  • Aylanadigan kodlovchi qurilmani o'rtadagi teshikdan siljiting, aylanishga qarshi chiziqlar yuqoriga ko'tarilganligiga ishonch hosil qiling. Kiruvchi yuvish moslamasi va yong'oq yordamida aylanadigan enkoderni o'rnating.
  • Korpusning yuqori qismini mahkamlang va pastdan M3x25 mm o'lchamdagi to'rtta vintni mahkamlang.

14 -qadam: Arduino dasturlash

OGOHLANTIRISH

Arduino Arduino ichki quvvat regulyatoridan foydalanish o'rniga to'g'ridan -to'g'ri barqaror +5V quvvat manbaidan quvvatlanadi. Shuning uchun, Arduino quvvat manbaidan quvvat olganda, USB -ni ulash xavfsiz emas.

Arduino USB ulanishini ishlatishdan oldin har doim 230VAC tarmoqdan uzing.

GitHub -dan Arduino taymer dasturini oling.

Ushbu dastur Arduino IDE -dan foydalanadi, uni bu erda olish mumkin.

Dastur quyidagi qo'shimcha kutubxonalardan foydalanadi:

SSD1303Ascii

Arduino Wire kutubxonasi

E'tibor bering, dusk2dawn kutubxonasi ham ishlatiladi, lekin uning interfeysi o'zgarganligi sababli kod sifatida kiritilgan.

Kech / oqshomni to'g'ri hisoblash uchun uzunlik, kenglik va vaqt zonasini o'rnatish kerak.

Dusk2dawn misolida tasvirlanganidek, istalgan joyning uzunlik va kengliklarini topishning oson usuli - bu xaritadagi joyni topish, xaritadagi joyni o'ng tugmasini bosib, "Bu erda nima?" Ni tanlash. Pastki qismida siz koordinatali kartani ko'rasiz.

Uzunlik va kenglik Dusk2Dawn.cpp 19 va 20 -qatorda dasturda qattiq kodlangan:

/* Bu erda joylashuvingizning kengligi va uzunligini sozlash kerak.

* * MASLAHAT: istalgan joyning uzunlik va kengliklarini topishning oson usuli - bu Google xaritalaridan joyni topish, xaritadagi joyni o'ng tugmasini bosib, * "bu erda nima?" -Ni tanlash. Pastki qismida * koordinatalari ko'rsatilgan kartani ko'rasiz. */ #define LATITUDE 52.097105; // Utrext #define LONGTITUDE 5.068294; // Utrext

Vaqt zonasi Dusk2Dawn.cpp 24 -qatorda ham qattiq kodlangan. Odatiy bo'lib, u Niderlandiyaga (GMT + 1) o'rnatilgan:

/* Bu erda o'z vaqt mintaqangizni kiriting (GMT uchun ofset).

*/ #define TIMEZONE 1

Arduino -ni birinchi marta dasturlashda EEPROM xotirasini ishga tushirish kerak. Buning uchun timer.cpp 11 -qatorini EEPROM ishga tushirish uchun o'zgartiring:

// birinchi marta dasturlashda rostga o'zgartirish

#define INITIALIZE_EEPROM_MEMORY noto'g'ri

Dasturni Arduino -ga yuklang va Arduino -ni yuklang.

EEPROM -ni ishga tushirishni o'chiring va dasturni Arduino -ga qayta yuklang. Qayta ishga tushirilganda taymer endi vaqtni o'zgartirish parametrlarini eslab qoladi.

15 -qadam: Vaqtni sozlash va vaqtni o'zgartirish

Foydalanuvchilarning o'zaro ta'siri tushunchalari:

  • Tanlovlarni tasdiqlash uchun qisqa bosish ishlatiladi. Bundan tashqari, asosiy taymer ekranida qisqa bosish chiroqni yoqadi yoki o'chiradi.
  • Asosiy taymer ekranidan menyuga kirish uchun uzoq bosish ishlatiladi. Menyuning istalgan joyida uzoq bosish taymerning asosiy ekraniga qaytadi.
  • ">" Tanlov kursi. Bu kursor menyuda tanlangan variantni ko'rsatadi.

Asosiy taymer ekrani

Asosiy taymer ekranida quyidagilar ko'rsatiladi:

Haftaning kuni Su

Hozirgi vaqt 16:00

Taymerning joriy holati va keyingi o'tish vaqti Taymer 17:12 gacha o'chiriladi

Tong va qorong'i vaqti Tong 08:05 Kechki 17:10

To'g'ri vaqtni belgilash

Menyuga kirish uchun uzoq bosing. Quyidagi variantlar ko'rsatiladi:

Orqaga o'rnatish Haftalik dastur haftalik dasturOptions

Haqiqiy vaqt soatining sanasi va vaqtini o'rnatish uchun belgilangan vaqtni tanlang. To'g'ri qiymatlarni kiriting:

YilMonthDayTime

Taymer avtomatik ravishda hafta kunini belgilaydi. Yozgi vaqtni almashtirish ham avtomatik ravishda amalga oshiriladi. Yozgi vaqt faqat Evropa vaqt zonasida qo'llaniladi.

Taymer dasturini sozlash

Taymerda 2 ta dastur mavjud, bittasi hafta kunlari, biri dam olish kunlari. E'tibor bering, juma dam olish kunlarining bir qismi hisoblanadi, chiroqlar biroz uzoqroq yonishi mumkin.

Har bir taymerda yoqish va o'chirish vaqti bor. Vaqt quyidagicha bo'lishi mumkin:

  • Vaqt: aniq belgilangan vaqt
  • Tong: hisoblangan tong vaqtiga qarab o'tish
  • Kechqurun: hisob -kitob qilinadigan tush vaqtiga qarab o'tish

Tong va shafaq uchun 59 daqiqa oldin yoki keyin tuzatish qiymatini kiritish mumkin.

Misollar:

Chiroqni butun kecha yoqish uchun (kech + 10 min) yoqishni tanlang, (tong - 10 minut)

Kechqurun chiroqni yoqish uchun, kech tushganda yoqishni tanlang, o'z vaqtida o'chiring: 22:30.

Variantlar

Variantlar ekranida ekranni almashtirish uchun vaqt tugashi mumkin.

Ekran o'chirilganda, aylanadigan kodlovchi tugmachasini bosish asosiy taymer ekraniga qaytadi.

Tavsiya: