Мазмұны:

Arduino Dusk/таңғы сағат таймері: 15 қадам
Arduino Dusk/таңғы сағат таймері: 15 қадам

Бейне: Arduino Dusk/таңғы сағат таймері: 15 қадам

Бейне: Arduino Dusk/таңғы сағат таймері: 15 қадам
Бейне: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Шілде
Anonim
Arduino Dusk/таңғы сағат таймері
Arduino Dusk/таңғы сағат таймері

Қорытынды:

Бұл 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 дисплейі мен нақты уақыт сағатын дайындаңыз

OLED дисплейі мен нақты уақыт сағатын дайындаңыз
OLED дисплейі мен нақты уақыт сағатын дайындаңыз

3D басып шығарылған корпус ең аз мөлшерге арналған. Нәтижесінде OLED дисплейінің тақырыптары мен нақты уақыт сағаттарын жою қажет.

Келесі қадамға дайындық кезінде, қалған дәнекерлеуді саңылаудан тазалау сорғысымен тазалаңыз.

3 -қадам: Айналмалы кодерді дайындаңыз

Айналмалы кодерді дайындаңыз
Айналмалы кодерді дайындаңыз

Айналмалы кодердің жұқа қосқыштары бар. Зақым келтірмеу үшін баспа тақтасының бір бөлігін кодерге орнатыңыз.

Суретте жер үсті байланысы (жоғарғы оң жақ пен ортаңғы төменгі жақта) дайындалған.

Ескертпе: баспа тақтасы бар айналмалы кодердің Arduino -ға тигізбей корпусқа сәйкес келетініне көз жеткізіңіз. Тығыз орналасу үшін баспа тақтасын ұнтақтау қажет болуы мүмкін.

4 -қадам: қоршау

Қоршау
Қоршау
Қоршау
Қоршау

3D принтермен корпустың үш бөлігін басып шығарыңыз. Thingiverse туралы нұсқауларды қараңыз.

5 -қадам: Arduino қуат светодиодын өшіріңіз (міндетті емес)

Arduino қуат диодын өшіру (міндетті емес)
Arduino қуат диодын өшіру (міндетті емес)

Таймерде жасыл жарқылдың пайда болуын болдырмау үшін Arduino қуат диодын өшіруге болады.

Бұл өзгерту міндетті емес екенін ескеріңіз.

Arduino Nano модификациясы қуат көзінің жанындағы резисторды алып тастаудан тұрады (суреттегі қызыл шеңберді қараңыз).

6 -қадам: Қуат көзі + Қатты күй релесі

Қуат көзі + Қатты күй релесі
Қуат көзі + Қатты күй релесі

Бұл қадамда қуат көзі мен қатты реле біріктіріліп, корпустың төменгі бөлігіне орнатылады.

Қуат көзі мен реле арасындағы байланыстар осы компоненттердің төменгі жағында жасалады. Реленің бұрандалы терминалы блогы Arduino -ға қосылу үшін пайдаланылатын болады.

Ескертпе: Қосылымдар кезінде қатты реле бекітетін тесіктердің бос болуын қамтамасыз етіңіз.

  • Қуат көзінің айнымалы ток қосылымдарының біріне A1 қатты күй релесі арасындағы байланыс сымын дәнекерлеңіз
  • Қуат көзінің айнымалы токтың басқа қосылымына сымды дәнекерлеңіз (бұл нөлдік бұрандалы терминал блогына 7 -қадамда қосылады)
  • Қуат көзі арасындағы сымды дәнекерлеңіз -DC релесі үшін дауыс -
  • Қуат көзін қосу үшін сымды дәнекерлеңіз +DC +релесіне Vo

Ескертпе: қоршауға сыйып кетуі үшін қуат көзі мен реледегі сымдарды қысқарту қажет болуы мүмкін.

7-қадам: Arduino Nano + қуат көзі + қатты реле

Arduino Nano + қуат көзі + қатты реле
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 Nano + нақты уақыт сағаты
Arduino Nano + нақты уақыт сағаты

Бұл қадамда нақты уақыт сағаты ішінара алдыңғы қадамда дайындалған кабельдерді қолдану арқылы Arduino -ға қосылады.

  • Arduino GND-ден келетін сымды дәнекерлеңіз (сонымен қатар реле DC-ге қосылады) нақты уақыттағы сағатты '-' қосады.
  • Arduino+5V (сонымен қатар реленің DC+желісіне қосылған) сымын нақты уақыттағы «+» нүктесіне дәнекерлеңіз.
  • Ұзындығы шамамен 40 мм болатын екі сымды кесіңіз және екі ұшын 4 мм оқшаулаңыз.
  • Arduino A4 пен нақты уақыт D (SDA) арасындағы сымды дәнекерлеңіз.
  • Arduino A5 пен нақты уақыт C (SCL) арасындағы сымды дәнекерлеңіз.
  • Нақты уақыттағы сымдардың айналмалы кодерге кедергі жасамайтынына көз жеткізіңіз. Ол үшін сымдар корпустың төменгі жағында болуы керек.

9 -қадам: OLED дисплейін қосыңыз

OLED дисплейін қосыңыз
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.

Опциялар

Параметрлер экранында экранды ауыстыру үшін күту уақытын орнатуға болады.

Экран сөндірілген кезде айналмалы кодер тұтқасын басу таймердің негізгі экранына оралады.

Ұсынылған: