Мазмұны:
- 1 -қадам: Бөлшектер тізімі мен құралдар
- 2 -қадам: OLED дисплейі мен нақты уақыт сағатын дайындаңыз
- 3 -қадам: Айналмалы кодерді дайындаңыз
- 4 -қадам: қоршау
- 5 -қадам: Arduino қуат светодиодын өшіріңіз (міндетті емес)
- 6 -қадам: Қуат көзі + Қатты күй релесі
- 7-қадам: Arduino Nano + қуат көзі + қатты реле
- 8 -қадам: Arduino Nano + нақты уақыт сағаты
- 9 -қадам: OLED дисплейін қосыңыз
- 10 -қадам: Айналмалы кодер
- 11 -қадам: корпуста орнату
- 12 -қадам: Қосылу үшін желіге / жарыққа қосылу
- 13 -қадам: қоршауды аяқтау
- 14 -қадам: Arduino бағдарламалау
- 15 -қадам: Уақытты орнату және уақытты ауыстыру
Бейне: Arduino Dusk/таңғы сағат таймері: 15 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Қорытынды:
Бұл Arduino негізіндегі таймер қараңғыда, таңертең немесе белгіленген уақытта 220 В шамды ауыстыра алады.
Кіріспе:
Менің үйдегі кейбір шамдар қараңғы түсе, алдын ала белгіленген уақытқа дейін немесе таңға дейін (түні бойы) автоматты түрде қосылады.
Шамдардың орналасуы жарық сенсорын пайдалануға мүмкіндік бермейді. Тұрақты қол жетімді сағат таймерлері белгілі бір уақытта қосылады. Қараңғыда қосылу үшін таймер бағдарламасының параметрлерін үнемі реттеу қажет.
Жақсы сынақ ретінде мен оның орнына жеке Arduino негізіндегі дербес таймер құруды шештім. Ол нақты уақытты және Dusk2Dawn кітапханасын қолданып, шамдарды қосу немесе өшіру уақытын анықтайды. Бұл таймердің корпусы 3D басып шығарылған және оны Thingiverse сайтынан табуға болады. Бұл жобаның Arduino кодын GitHub сайтынан табуға болады.
Бұл таймерді құруда мен интернеттегі көптеген конструкциялар мен схемалардан шабыт алдым. Ашық айтылмаған барлық қатысушыларға алғысымды білдіремін.
Оқуға ыңғайлы болу үшін ішінара диаграммалар толық схеманың орнына қажет болған жағдайда көрсетілген.
Балама шешімдер:
Автономды таймердің орнына ақылды үйді автоматтандыру жүйесі шамдарды басқаратын көптеген шешімдер бар. Менің мақсатым WIFI (немесе басқа) байланысқа тәуелді емес тәуелсіз шешімге ие болу болды.
Шектеулер:
Бұл жобамен қамтамасыз етілген кодқа жазғы уақыттың еуропалық жазғы жүйесіне негізделген жазғы уақыт режиміне өзгерістер енгізілді.
1 -қадам: Бөлшектер тізімі мен құралдар
Бөлшектер:
Бөлшектердің жалпы құны (3D басып шығаруды қоспағанда) шамамен 30 евро, -.
- Arduino Nano V3 (үйлесімді) тақырыптары жоқ
- Қуат көзі 5В 0,6А (34 x 20 x 15 мм)
- Қатты күй релесі 5В - Белсенді төмен - 2А 230ВАҚ
- Нақты уақыттағы сағат DS3231 (шағын)
- 0,96 дюймдік OLED дисплей SPI 128*64 пиксель
- Айналмалы кодер - EC11 - 20мм
- 6 мм білік 15 мм * 17 мм
- Баспа тақтасы басылған тақта,
- 4* M3x25 мм бұрандалар
- 3D басып шығарылған корпус
- Жылуды төмендететін құбырлар
- Сымдар
- Бұрандалы терминал блогы (бейтарап сымдарды қосу үшін)
Қажетті құралдар:
- Пісіру темірі
- Дәнекерлеу сымы
- Тазартқыш сорғы
- Сым тартқыштар
- Кескіштер
- 3D принтері (корпусты басып шығару үшін)
- Әр түрлі шағын құралдар
ЕСКЕРТУ
Бұл тізбек айнымалы токтың 230 вольтінде жұмыс істейді, ал егер сіз желілік кернеумен жұмыс істеуге дағдыланбаған болсаңыз немесе 230 вольтты айнымалы ток желісінде жұмыс істеудің жеткілікті тәжірибесі болмаса, бұл жобадан аулақ болыңыз
Мен осы жобаны орындаудан немесе оның нәтижесінде туындаған шығын мен зақым үшін жауапкершілік көтермеймін
Айнымалы ток желісімен жұмыс жасау кезінде әрқашан дұрыс күтім мен сақтық шараларын сақтау ұсынылады
2 -қадам: OLED дисплейі мен нақты уақыт сағатын дайындаңыз
3D басып шығарылған корпус ең аз мөлшерге арналған. Нәтижесінде OLED дисплейінің тақырыптары мен нақты уақыт сағаттарын жою қажет.
Келесі қадамға дайындық кезінде, қалған дәнекерлеуді саңылаудан тазалау сорғысымен тазалаңыз.
3 -қадам: Айналмалы кодерді дайындаңыз
Айналмалы кодердің жұқа қосқыштары бар. Зақым келтірмеу үшін баспа тақтасының бір бөлігін кодерге орнатыңыз.
Суретте жер үсті байланысы (жоғарғы оң жақ пен ортаңғы төменгі жақта) дайындалған.
Ескертпе: баспа тақтасы бар айналмалы кодердің Arduino -ға тигізбей корпусқа сәйкес келетініне көз жеткізіңіз. Тығыз орналасу үшін баспа тақтасын ұнтақтау қажет болуы мүмкін.
4 -қадам: қоршау
3D принтермен корпустың үш бөлігін басып шығарыңыз. Thingiverse туралы нұсқауларды қараңыз.
5 -қадам: Arduino қуат светодиодын өшіріңіз (міндетті емес)
Таймерде жасыл жарқылдың пайда болуын болдырмау үшін Arduino қуат диодын өшіруге болады.
Бұл өзгерту міндетті емес екенін ескеріңіз.
Arduino Nano модификациясы қуат көзінің жанындағы резисторды алып тастаудан тұрады (суреттегі қызыл шеңберді қараңыз).
6 -қадам: Қуат көзі + Қатты күй релесі
Бұл қадамда қуат көзі мен қатты реле біріктіріліп, корпустың төменгі бөлігіне орнатылады.
Қуат көзі мен реле арасындағы байланыстар осы компоненттердің төменгі жағында жасалады. Реленің бұрандалы терминалы блогы Arduino -ға қосылу үшін пайдаланылатын болады.
Ескертпе: Қосылымдар кезінде қатты реле бекітетін тесіктердің бос болуын қамтамасыз етіңіз.
- Қуат көзінің айнымалы ток қосылымдарының біріне A1 қатты күй релесі арасындағы байланыс сымын дәнекерлеңіз
- Қуат көзінің айнымалы токтың басқа қосылымына сымды дәнекерлеңіз (бұл нөлдік бұрандалы терминал блогына 7 -қадамда қосылады)
- Қуат көзі арасындағы сымды дәнекерлеңіз -DC релесі үшін дауыс -
- Қуат көзін қосу үшін сымды дәнекерлеңіз +DC +релесіне Vo
Ескертпе: қоршауға сыйып кетуі үшін қуат көзі мен реледегі сымдарды қысқарту қажет болуы мүмкін.
7-қадам: Arduino Nano + қуат көзі + қатты реле
Бұл қадамда Arduino Nano қуат көзіне және қатты реле қосылады.
- Ұзындығы шамамен 70 мм болатын екі сымды кесіңіз. Бір жағынан 30 мм оқшаулау жолағын, ал екінші жағынан 4 мм.
- Ардуино +5V мен GND -ге 30 мм оқшауланған оқшаулағыш жағын сым арқылы өткізіп жіберіңіз
- Ұзындығы 20 мм болатын екі қыздырғыш түтікті кесіңіз және оларды 25 мм тазартылған бөліктің үстіне орнатыңыз. Бұл сымдарды қатты күй релесінің DC+ және DC- бұрандалы терминал блогымен байланысқа дейін оқшаулайды.
- GND және +5V сымдарының релелік бұрандалы терминал блогына дұрыс қосылу үшін қиылысуы қажет екенін ескеріңіз.
- Ұзындығы шамамен 40 мм болатын сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз. Ардуиноның артқы жағындағы A2 қосылымына бір жағын дәнекерлеңіз, ал екінші жағын қатты күйдегі бұрандалы терминал блогының CH1 қосылымына қосыңыз.
ЕСКЕРТУ
Arduino Arduino ішкі қуат реттегішін пайдаланудың орнына тұрақты +5В тұрақты ток көзінен қуат алады. Сондықтан Arduino қуат көзінен қуат алған кезде USB қосылу қауіпсіз емес.
Arduino USB қосылымын қолданар алдында әрқашан 230 Вт желіден ажыратыңыз.
8 -қадам: Arduino Nano + нақты уақыт сағаты
Бұл қадамда нақты уақыт сағаты ішінара алдыңғы қадамда дайындалған кабельдерді қолдану арқылы Arduino -ға қосылады.
- Arduino GND-ден келетін сымды дәнекерлеңіз (сонымен қатар реле DC-ге қосылады) нақты уақыттағы сағатты '-' қосады.
- Arduino+5V (сонымен қатар реленің DC+желісіне қосылған) сымын нақты уақыттағы «+» нүктесіне дәнекерлеңіз.
- Ұзындығы шамамен 40 мм болатын екі сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз.
- Arduino A4 пен нақты уақыт D (SDA) арасындағы сымды дәнекерлеңіз.
- Arduino A5 пен нақты уақыт C (SCL) арасындағы сымды дәнекерлеңіз.
- Нақты уақыттағы сымдардың айналмалы кодерге кедергі жасамайтынына көз жеткізіңіз. Ол үшін сымдар корпустың төменгі жағында болуы керек.
9 -қадам: OLED дисплейін қосыңыз
Бұл қадамда Arduino -ға OLED SPI дисплейі қосылады.
- Ұзындығы 65 мм болатын 2 сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз.
- OLED дисплейінің GND қосылымына сымды дәнекерлеңіз. Бұл сымды Arduino GND (4-қадамды қараңыз) шығатын жылу өткізбейтін құбырлы оқшауланған сымға дәнекерлеңіз және екі сымды да қатты реледегі тұрақты бұрандалы терминал блогына қосыңыз.
- OLED дисплейінің VCC қосылымына сымды дәнекерлеңіз. Бұл сымды Arduino + 5V (4-қадамды қараңыз) шығатын жылу өткізбейтін құбырлы оқшауланған сымға дәнекерлеңіз және екі сымды да қатты реледегі тұрақты ток + бұрандалы терминал блогына қосыңыз.
- Ұзындығы 65 мм 5 сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз.
- D0 (CLK) Arduino D10 қосылатын сымды дәнекерлеңіз
- D1 (MOSI / DATA) Arduino D9 қосылатын сымды дәнекерлеңіз
- RES (RT) Arduino D8 -ге қосу үшін сымды дәнекерлеңіз
- Тұрақты токты Arduino D11 -ге жалғау үшін сымды дәнекерлеңіз
- CS -ны Arduino D12 -ге қосу үшін сымды дәнекерлеңіз
Ескертпе: дисплей сымдарының орналасу тәртібі қисынды емес. Бұл алдымен Adafruit мысалын қолданудың нәтижесі, содан кейін байланыстарды өзгерту, себебі D13 пайдалану Arduino -да үнемі қызыл жарық диодты көрсетеді.
Балама
SPI қосылымдары үшін «қалыпты» тәртіпті қолдануға болады. Ол үшін oledcontrol.cpp ішіндегі Arduino бағдарламасының сандық шығыс анықтамасы сәйкесінше реттелуі керек:
// SPI бағдарламалық қамтамасыз етуді қолдану
// пин анықтамалары
#CS_PIN 12 анықтаңыз
#RST_PIN 8 анықтаңыз
DC_PIN 11 анықтаңыз
#MOSI_PIN 9 анықтаңыз
CLK_PIN 10 анықтаңыз
10 -қадам: Айналмалы кодер
Диаграмма Arduino -ның айналмалы кодермен байланысын көрсетеді (кодер жоғарыдан көрінеді).
- 45 мм 4 сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз.
- Arduino GND кодерінің жоғарғы оң жақ төменгі төменгі қосқыштарына қосыңыз
- Arduino D2 кодерінің төменгі сол жағына қосыңыз
- Arduino D3 кодерінің төменгі оң жағына қосыңыз
- Arduino D4 кодерінің жоғарғы сол жағына қосыңыз
11 -қадам: корпуста орнату
Барлық электрониканы корпустың төменгі бөлігіне орнатыңыз:
- Arduino -ны тік ұяға сырғытыңыз
- Нақты уақыттағы сағатты астыңғы бөлімге сырғытыңыз
- Қуат көзі мен релені үстіңгі бөлімге сырғытыңыз, реле оның бекіткіштерінде тұрғанына көз жеткізіңіз.
12 -қадам: Қосылу үшін желіге / жарыққа қосылу
ЕСКЕРТУ
Айнымалы ток желісімен жұмыс істеу кезінде тиісті күтім мен сақтық шараларын сақтаңыз, айнымалы ток желісінің ажыратылғанына көз жеткізіңіз
Мен осы жобаны орындаудан немесе оның нәтижесінде туындаған шығын мен зақым үшін жауапкершілік көтермеймін
- Айнымалы ток фазасын реленің A1 (сол жақ) бұрандалы терминал блогына қосыңыз.
- Қосылатын жарық фазасын реленің В1 (оң жақ) бұрандалы терминал блогына қосыңыз.
- Айнымалы токтың нөлдік сымын, жарықтың нөлдік сымын және қуат көзінің нөлдік сымын қосу үшін бөлек бұрандалы терминалды блокты қолданыңыз.
- Кернеуді жеңілдету үшін электр кабельдерінің әрқайсысына галстук орамасын орнатыңыз.
13 -қадам: қоршауды аяқтау
Бұл қадамда корпуста монтаждау аяқталды
- OLED дисплейін корпустың ортаңғы бөлігіндегі дисплейге орнататын тесік арқылы сырғытыңыз.
- Айналмалы кодерді ортаңғы бөлігіндегі тесік арқылы сырғытыңыз, айналуға қарсы сызықтардың жоғары тұрғанына көз жеткізіңіз. Айналмалы кодерді кір жуғыш пен гайканы қолданып орнатыңыз.
- Корпустың үстіңгі бөлігін орнатыңыз және төменнен M3x25 мм төрт бұранданы бекіту арқылы қоршауды жабыңыз.
14 -қадам: Arduino бағдарламалау
ЕСКЕРТУ
Arduino Arduino ішкі қуат реттегішін пайдаланудың орнына тұрақты +5В тұрақты ток көзінен қуат алады. Сондықтан Arduino қуат көзінен қуат алған кезде USB қосылу қауіпсіз емес.
Arduino USB қосылымын қолданар алдында әрқашан 230 Вт желіден ажыратыңыз.
GitHub -тан Arduino таймер бағдарламасын алыңыз.
Бұл бағдарламада Arduino IDE қолданылады, оны осы жерден алуға болады.
Бағдарлама келесі қосымша кітапханаларды пайдаланады:
SSD1303Ascii
Arduino Wire кітапханасы
Dusk2dawn кітапханасы да пайдаланылатынын, бірақ оның интерфейсінің өзгеруіне байланысты код ретінде енгізілгенін ескеріңіз.
Қараңғы / таңның дұрыс есептелуін қамтамасыз ету үшін бойлық пен ендік пен уақыт белдеуін орнату қажет.
Dusk2dawn мысалында сипатталғандай, кез келген орын үшін бойлық пен ендік табудың оңай әдісі - Google Maps -тен орынды табу, картадан орынды тінтуірдің оң жақ түймесімен нұқып, «Мұнда не бар?». Төменгі жағында сіз координаттары бар картаны көресіз.
Ұзындық пен ендік бағдарламада Dusk2Dawn.cpp 19 және 20 -жолда қатаң кодталған:
/* Сіздің орналасқан жеріңіздің ені мен ұзындығы осы жерде орнатылуы керек.
* * НҰСҚАУ: Кез келген орынның ені мен енін табудың оңай әдісі - Google картасынан орынды табу, картадан орынды тінтуірдің оң жақ түймесімен нұқып, * «Мұнда не бар?» Тармағын таңдау. Төменгі жағында * координаттары бар картаны көресіз. */ #define LATITUDE 52.097105; // Утрехт #define LONGTITUDE 5.068294; // Утрехт
Уақыт белдеуі Dusk2Dawn.cpp 24 жолында да қатаң кодталған. Әдепкі бойынша ол Нидерландыға орнатылған (GMT + 1):
/* Мұнда уақыт белдеуін енгізіңіз (GMT -ге ауысу).
*/ #define TIMEZONE 1
Arduino -ны бірінші рет бағдарламалау кезінде EEPROM жадын инициализациялау қажет. Ол үшін EEPROM инициализациясын жасау үшін timer.cpp 11 жолын өзгертіңіз:
// бірінші рет бағдарламалау кезінде шын мәніне өзгерту
INITIALIZE_EEPROM_MEMORY жалған екенін анықтаңыз
Бағдарламаны Arduino -ға жүктеп, Arduino -ны жүктеңіз.
EEPROM инициализациясын өшіріп, бағдарламаны Arduino -ға қайта жүктеңіз. Таймер енді қайта жүктеу кезінде ауысу уақытының параметрлерін есте сақтайды.
15 -қадам: Уақытты орнату және уақытты ауыстыру
Қолданушылардың өзара әрекеттесуі туралы түсінік:
- Таңдауды растау үшін қысқа басу қолданылады. Сонымен қатар, таймердің негізгі экранында қысқа басу жарықты қосады немесе өшіреді.
- Негізгі таймер экранынан мәзірге кіру үшін ұзақ басу қолданылады. Мәзірдің кез келген жерінде ұзақ басып тұру негізгі таймер экранына оралады.
- '>' Таңдау курсы. Бұл курсор мәзірде таңдалған опцияны көрсетеді.
Негізгі таймер экраны
Негізгі таймер экранында:
Апта күні Су
Қазіргі уақыт 16:00
Таймердің ағымдағы күйі және келесі ауысу уақыты Таймер 17:12 дейін ӨШІРУ
Таңның атысы мен түсінің батуы Таңның атысы 08:05 Ымырттың түсі 17:10
Дұрыс уақытты орнату
Мәзірге кіру үшін ұзақ басыңыз. Келесі опциялар көрсетілген:
Артқа уақытты орнату Апталық күн бағдарламасы Апта соңы бағдарламасыОпциялар
Нақты уақыт сағатының күні мен уақытын орнату үшін орнатылған уақытты таңдаңыз. Дұрыс мәндерді енгізіңіз:
YearMonthDayTime
Таймер апта күнін автоматты түрде анықтайды. Жазғы уақытты ауыстыру да автоматты түрде жүзеге асады. Жазғы уақыт тек еуропалық уақыт белдеуінде қолданылады.
Таймер бағдарламасын орнату
Таймерде екі бағдарлама бар, біреуі апталық, екіншісі демалыс күндері. Назар аударыңыз, жұма демалыс күндерінің бір бөлігі болып саналады, шамдар сәл ұзағырақ болуы мүмкін.
Әр таймерде қосылатын және өшетін сәт бар. Бұл сәт келесідей болуы мүмкін:
- Уақыт: Нақты көрсетілген уақыт
- Таң: Таңның таңдалған уақытына негізделген ауысу
- Кеш батуы: ымырт түсуінің есептелген уақытына негізделген ауысу
Қараңғы мен таңға 59 минут бұрын немесе кейін түзету мәнін енгізуге болады.
Мысалдар:
Жарықты түні бойы қосу үшін қосуды (ымырт + 10мин), өшіруді (таң - 10мин) таңдаңыз.
Кешке шамды қосу үшін, ымырт кезінде қосуды таңдаңыз, уақытында сөндіріңіз: 22:30.
Опциялар
Параметрлер экранында экранды ауыстыру үшін күту уақытын орнатуға болады.
Экран сөндірілген кезде айналмалы кодер тұтқасын басу таймердің негізгі экранына оралады.
Ұсынылған:
Arduino және Rotary Encoder көмегімен қуат таймері: 7 қадам (суреттермен)
Қуат таймері Arduino мен айналмалы кодермен: Бұл қуат таймері мына жерде көрсетілген таймерге негізделген: https: //www.instructables.com/id/Timer-With-Arduin… Қуат беру модулі мен SSR (қатты күй релесі) 1 кВт -қа дейінгі қуат жүктемелерін басқаруға болады және минималды өзгерістермен
D Flip Flops және 555 таймері бар қадамдық қозғалтқыш; Циркуляцияның бірінші бөлігі 555 таймері: 3 қадам
D Flip Flops және 555 таймері бар қадамдық қозғалтқыш; Электр тізбегінің бірінші бөлігі 555 таймері: қадамдық қозғалтқыш - бұл тұрақты қозғалтқыш, ол дискретті қадаммен қозғалады, ол көбінесе принтерлерде, тіпті робот техникасында қолданылады, мен бұл схеманы қадаммен түсіндіремін. тізбектің бірінші бөлігі - 555 таймер. Бұл 555 чипі бар бірінші сурет (жоғарыдан қараңыз)
C51 4 бит электронды сағат - ағаш сағат: 15 қадам (суреттермен)
C51 4 бит электронды сағат - ағаштан жасалған сағат: демалыс күндері бос уақыт болды, сондықтан мен осы уақытқа дейін AliExpress -тен сатып алған 2,40 долларлық 4 биттік электронды цифрлық сағатты жинадым
Таңғы дос: 8 қадам
Таңертеңгілік дос: Кейбір адамдарда бос емес кесте бар, бұл бір -екі нәрсені ұмытып кетуге мүмкіндік береді. Бұл оятқыштың көмегімен сіз уақытты сақтау үшін бірнеше оятқышты орната аласыз. Сағат 24 рет жұмыс істейді, және сіз оны әр түрлі уақытта өшіру үшін бағдарламалауыңыз керек
Сағат таңғы 4 -те шыны робот: 8 қадам (суреттермен)
Таңертеңгі сағат 4 -те шыны робот: Кейбір адамдар менің идеяларымды қайдан алатынымды сұрады. Мен сенімді емеспін, бірақ мен оларды алған кезде білемін, неге екенін білмеймін, бірақ мен өзімнің көптеген идеяларымды ыңғайсыз уақытта - сабақтың жартысында, үйге қараңғыда немесе жиі, Мен оянамын