Mundarija:
- 1 -qadam: qismlar ro'yxati va asboblar
- 2 -qadam: OLED -displey va real vaqtda soatni tayyorlang
- 3 -qadam: Rotary kodlovchi tayyorlang
- 4 -qadam: Qoplama
- 5 -qadam: Arduino Power LED -ni o'chiring (ixtiyoriy)
- 6 -qadam: Quvvat manbai + qattiq hol o'rni
- 7-qadam: Arduino Nano + Quvvat manbai + Qattiq holatda o'rni
- 8 -qadam: Arduino Nano + real vaqtda soat
- 9 -qadam: OLED -displeyni ulang
- 10 -qadam: Rotary kodlovchi
- 11 -qadam: Korpusga o'rnatish
- 12 -qadam: Elektr tarmog'iga / chiroqqa ulanish
- 13 -qadam: Qoplamani tugatish
- 14 -qadam: Arduino dasturlash
- 15 -qadam: Vaqtni sozlash va vaqtni o'zgartirish
Video: Arduino Kechqurun/Tong soatlari taymeri: 15 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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:
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
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
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
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)
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
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
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
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
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
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
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
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
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:
Qo'l soatlari aylanuvchi stol: 8 qadam (rasmlar bilan)
Qo'l soatlarining aylanuvchi stollari: Yozuvlarni chizish juda qiziqarli, hatto siz o'zingizni ro'yxatga oluvchi bo'lmasangiz ham. Qaerga borsangiz ham, phat beatsni tashlab, chizishingizni xohlamaysizmi? Endi qila olasiz; qo'l soatlari aylanuvchi stolli DJ qahramoni bo'ling! 2 ta yozib olinadigan tabrik kartalari va bir nechta kuchli
Kalkulyator soatlari: 5 qadam
Kalkulyator soatlari: Agar siz 15 yoshdan kichik bo'lsangiz, kattalar nazorati ostida siz o'tkir narsadan foydalanasiz. Siz ham issiq narsalardan foydalanasiz
Redstone soatlari (Minecraft): 3 qadam
Redstone soatlari (Minecraft): Bu ko'rsatma sizga turli xil qizil toshli soatlarni yasashni ko'rsatib beradi. Bugatti Chiron qo'llanmasida ko'rsatiladigan boshqa Minecraft -ni tekshirib ko'ring
Niksi qo'l soatlari, 4 raqamli: 3 qadam
Nixie bilak soati, 4 raqamli: Bu loyiha 4 raqamli nixie bilak soati yasashdan iborat. Https: //youtu.be/MAw0OgJxuy0
Robot miyasi: kechqurun bitta taxtali kompyuter yarating: 11 qadam
Robot miyasi: Kechqurun bitta taxtali kompyuter yarating: Picaxe yoki Arduino xotirangiz tugab qoladimi? Ammo kompyuter bu ish uchun ortiqcha ishlaydimi? C, Basic, Forth, Pascal yoki Fortran kabi tillarda dasturlash mumkin bo'lgan bitta ochiq manbali kompyuterni ko'rib chiqing, bu karta arzon IC va del