Мазмуну:

Ардуино Күүгүм/Таң Шоола Таймери: 15 кадам
Ардуино Күүгүм/Таң Шоола Таймери: 15 кадам

Video: Ардуино Күүгүм/Таң Шоола Таймери: 15 кадам

Video: Ардуино Күүгүм/Таң Шоола Таймери: 15 кадам
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Июль
Anonim
Arduino Күүгүм/Таң Шоола Таймери
Arduino Күүгүм/Таң Шоола Таймери

Жыйынтык:

Бул Arduino негизделген таймер күүгүмдө, таң агарганда же белгиленген убакта 220В бир жарыкты алмаштыра алат.

Киришүү:

Менин үйүмдөгү кээ бир жарыктар күүгүмдө, же белгиленген убакытка чейин же таң атканга чейин (түнү бою) автоматтык түрдө күйөт.

Жарыктардын жайгашуусу жарык сенсорун колдонууга жол бербейт. Кадимки жеткиликтүү саат таймерлери белгилүү бир убакта күйгүзүлөт. Күүгүм киргенде күйгүзүү үчүн таймер программасынын жөндөөсүн үзгүлтүксүз тууралоо керек.

Жакшы чакырык катары мен анын ордуна жеке Arduino негизделген автономдуу таймерди курууну чечтим. Бул реалдуу убакыт саатын жана Dusk2Dawn китепканасын колдонуп, жарыкты күйгүзүү же өчүрүү керек болгон убакытты аныктайт. Бул таймердин корпусу 3D түрүндө басылган жана Thingiverseден табууга болот. Бул долбоордун Arduino кодун GitHubдан тапса болот.

Бул таймерди түзүүдө мен интернеттеги көптөгөн долбоорлордон жана схемалардан илхам алдым. Ачык айтылбаган бардык салым кошкондорго ыраазычылык билдирем.

Окуу үчүн жарым -жартылай диаграммалар толук схеманын ордуна, зарыл болгон жерде көрсөтүлөт.

Альтернативдүү чечимдер:

Өз алдынча таймердин ордуна, акылдуу үйдү автоматташтыруу системасы жарыкты башкарган көптөгөн чечимдер бар. Менин максатым WIFI (же башка) байланышка көз каранды болбогон көз карандысыз чечимге ээ болуу болчу.

Чектөөлөр:

Бул долбоор менен камсыздалган код европалык жайкы жазгы системага негизделген жазгы жазгы өзгөртүүлөрдү киргизүүнү камтыйт.

1 -кадам: Бөлүктөрдүн тизмеси жана куралдар

Бөлүктөрдүн тизмеси жана куралдар
Бөлүктөрдүн тизмеси жана куралдар

Бөлүктөр:

Бөлүктөрдүн жалпы чыгымы (3d басып чыгарууну кошпогондо) болжол менен 30 евро, -.

  • Arduino Nano V3 (шайкеш) башсыз
  • Электр менен камсыздоо 5V 0.6A (34 x 20 x 15mm)
  • Катуу абал релеси 5V - Активдүү төмөн - 2A 230VAC
  • Чыныгы убакыт сааты DS3231 (кичине)
  • 0.96”OLED дисплейи SPI 128*64 пиксел
  • Ротари коддоочу - EC11 - 20мм
  • 6mm сабы 15mm * 17mm
  • Breadboard басылган схемасы,
  • 4* M3x25mm бурамалар
  • 3D басылган корпус
  • Жылуулукту кыскартуучу түтүк
  • Зымдар
  • Бурамалуу терминалдык блок (нейтралдуу зымдарды туташтыруу үчүн)

Керектүү шаймандар:

  • Кандооч
  • Solder Wire
  • Тазалоочу насос
  • Wire Stripers
  • Кескичтер
  • 3D принтер (корпусту басып чыгаруу үчүн)
  • Түрдүү чакан шаймандар

ЭСКЕРТҮҮ

Бул схема 230в ACда иштейт жана эгер сиз электр чыңалуусу менен иштөөгө көнбөсөңүз же 230v AC AC Voltage менен иштөө боюнча тажрыйбаңыз жок болсо, бул долбоордон алыс болуңуз

Мен бул долбоорду аткаруудан же анын кесепетинен келип чыккан жоготуу же зыян үчүн эч кандай жоопкерчилик тартпайм

AC Mains менен иштөөдө дайыма туура кам көрүү жана сак болуу сунушталат

2 -кадам: OLED дисплейин жана реалдуу убакыт саатын даярдаңыз

OLED дисплейин жана реалдуу убакыт саатын даярдаңыз
OLED дисплейин жана реалдуу убакыт саатын даярдаңыз

3D басылган корпус минималдуу өлчөмгө ылайыкталган. Натыйжада, OLED дисплейинин жана реалдуу убакыт саатынын аталыштарын алып салуу керек.

Кийинки кадамга даярданып жатып, калган ширеткичтерди тазалоочу насос менен тешиктерден тазалаңыз.

3 -кадам: Ротари коддогучту даярдаңыз

Ротари коддогучту даярдаңыз
Ротари коддогучту даярдаңыз

Ротари кодердин ийкемдүү коннекторлору бар. Бузулуунун алдын алуу үчүн, басылган схеманын бир бөлүгүн коддогучка орнотуңуз.

Сүрөттө жердеги байланыш (жогорку оңго жана ортоңку ылдыйга) буга чейин даярдалган.

Эскертүү: Басып чыгарылган схемасы бар айлануучу коддогуч Arduinoго тийбестен корпуска туура келгенин текшериңиз. Ыңгайлуу болуу үчүн басылган платаны майдалоо талап кылынышы мүмкүн.

4 -кадам: Каптоо

Корпус
Корпус
Корпус
Корпус

Корпустун үч бөлүгүн 3d принтери менен басып чыгарыңыз. Thingiverse боюнча нускамаларды караңыз.

5 -кадам: Arduino Power LEDди өчүрүү (милдеттүү эмес)

Arduino Power LEDди өчүрүү (милдеттүү эмес)
Arduino Power LEDди өчүрүү (милдеттүү эмес)

Таймерде жашыл жарыктын пайда болушуна жол бербөө үчүн, Arduinoдун жарык диодун өчүрсө болот.

Бул өзгөртүү милдеттүү эмес экенин эске алыңыз.

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

6 -кадам: Электр энергиясы менен камсыздоо + Катуу абал релеси

Электр энергиясы менен камсыздоо + Катуу абал релеси
Электр энергиясы менен камсыздоо + Катуу абал релеси

Бул кадамда электр менен жабдуу жана катуу абал релеси бириктирилип, корпустун ылдыйкы бөлүгүнө орнотулат.

Электр энергиясы менен реленин ортосундагы байланыштар бул компоненттердин түбүндө жүргүзүлөт. Реленин бурама терминалы Arduino менен туташуу үчүн колдонулат.

Эскертүү: Байланыштарды түзүүдө, катуу реленин монтаждык тешиктери бош болушун камсыз кылыңыз.

  • А1 катуу реле ортосундагы электр зымынын AC туташууларынын бирине туташтыруучу зым
  • Электр менен жабдуунун башка AC туташуусуна зым кошуңуз (бул нейтралдуу бурамалуу терминалдык блокко 7 -кадамда туташат)
  • Электр менен камсыздоонун ортосундагы зымды ширетүү -DC релесине -Во
  • Электр менен камсыздоону туташтыруучу зымды +Vo релеге DC +

Эскертүү: Корпуска туура келүү үчүн электр менен жабдуунун учтарын кыскартуу талап кылынышы мүмкүн.

7-кадам: Arduino Nano + Power Supply + Solid-State Relay

Arduino Nano + Power Supply + Solid-State Relay
Arduino Nano + Power Supply + Solid-State Relay

Бул кадамда Arduino Nano электр менен жабдуу жана катуу абал релесине туташкан.

  • Болжол менен 70 мм узундуктагы эки зымды кесип алыңыз. Бир жагынан 30мм изоляцияны, ал эми экинчи жагынан 4мм.
  • Ардуино +5V жана GNDге 30 мм бөлүнгөн изоляциясы бар капталын зым аркылуу өткөрүңүз
  • Узундугу 20 мм болгон эки жылуулукту кичирейтүүчү түтүктөрдү кесип, 25 мм сыйрылган бөлүгүнүн үстүнө орнотуңуз. Бул зымдарды катуу абалдагы реленин DC+ жана DC- винттик терминал блогу менен байланышка чейин изоляциялайт.
  • Белгилей кетсек, GND жана +5V зымдары релелик бурамалуу терминал блогуна туура туташуу үчүн өтүшү керек.
  • Болжол менен 40мм узундуктагы зымды кесип, эки учун 4мм изоляция кылыңыз. Ардуинонун АРТЫНДАгы A2 туташуусуна бир тарапты ээрчиңиз, ал эми экинчи жагын катуу абалдагы винттик терминалдын CH1 туташуусуна туташтырыңыз.

ЭСКЕРТҮҮ

Arduino түздөн -түз Arduino ички электр регуляторун колдонуунун ордуна туруктуу +5V электр булагынан иштейт. Ошондуктан, Arduino электр булагынан энергия алганда USB туташтыруу коопсуз эмес.

Arduino USB туташуусун колдонуудан мурун дайыма 230VAC тармагын ажыратыңыз.

8 -кадам: Arduino Nano + Реалдуу убакыт сааты

Arduino Nano + реалдуу убакыт сааты
Arduino Nano + реалдуу убакыт сааты

Бул кадамда реалдуу убакыт сааты жарым -жартылай мурунку кадамда даярдалган кабелдерди колдонуу менен Arduino менен туташат.

  • Ардуино GNDден келген зымды (ошондой эле реленин DC- туташкан) реалдуу убакыт саатынын ‘-‘ге туташтырыңыз.
  • Ардуино+5Вдан келген зымды (ошондой эле реленин DC+туташкан) реалдуу убакыт саатынын "+" сымына туташтырыңыз.
  • Болжол менен 40 мм узундуктагы эки зымды кесип, эки учун 4 мм изоляция кылыңыз.
  • Ардуино A4 менен реалдуу убакыт сааты D (SDA) ортосундагы зымдарды ширетүү.
  • Ардуино A5 менен реалдуу убакыт сааты C (SCL) ортосундагы зымдарды ширетүү.
  • Ротари кодерине тоскоолдук кылбасын камсыз кылуу үчүн реалдуу убакыт сааттарынын зымдарын калыптандырыңыз. Бул үчүн зымдар корпустун түбүндө болушу керек.

9 -кадам: OLED дисплейин туташтыруу

OLED дисплейин туташтыруу
OLED дисплейин туташтыруу

Бул кадамда OLED SPI дисплейи Arduinoго кошулат.

  • Узундугу 65 мм болгон 2 зымды кесип, эки учун 4 мм изоляция кылыңыз.
  • OLED дисплейинин GND туташуусуна зым кошуңуз. Бул зымды Arduino GNDден келген жылуулукту азайтуучу түтүктүн изоляцияланган зымына ээрчиңиз (4-кадамды караңыз) жана эки зымды тең катуу реленин DC-бурама терминал блогуна туташтырыңыз.
  • OLED дисплейинин VCC туташуусуна зым кошуңуз. Бул зымды Arduino + 5V (4-кадамды караңыз) келген жылуулукту кыскартуучу түтүкчөгө туташтырыңыз жана эки зымды тең катуу реленин DC + mount винттик терминал блогуна туташтырыңыз.
  • Узундугу 65 мм болгон 5 зымды кесип, эки учун 4 мм изоляция кылыңыз.
  • D0ду (CLK) Arduino D10 менен туташтыруу үчүн зымды туташтырыңыз
  • D1ди (MOSI / DATA) Arduino D9 менен туташтыруу үчүн зымды туташтырыңыз
  • RESти (RT) Arduino D8ге туташтыруу үчүн зымды туташтырыңыз
  • DCди Arduino D11ге туташтыруу үчүн зым
  • CS'ди Arduino D12ге туташтыруу үчүн зым менен туташтырыңыз

Эскертүү: дисплей зымдарынын тартиби логикалык эмес. Бул адегенде Adafruit мисалын колдонуунун, андан кийин байланыштарды өзгөртүүнүн натыйжасы, анткени D13 колдонуу ар дайым Arduinoдо кызыл LEDди пайда кылат.

Альтернатива

SPI туташуулары үчүн "нормалдуу" тартипти колдонууга болот. Бул үчүн, oledcontrol.cppтеги Arduino программасынын санарип өндүрүшүнүн аныктамасы ошого жараша туураланышы керек:

// SPI программалык камсыздоону колдонуу

// пин аныктамалар

#аныктоо CS_PIN 12

#аныктоо RST_PIN 8

#аныктоо DC_PIN 11

#аныктоо MOSI_PIN 9

#аныктоо CLK_PIN 10

10 -кадам: Ротари Encoder

Бюрократия коддогуч
Бюрократия коддогуч

Диаграмма Arduinoнун айлануучу коддогучка болгон байланыштарын көрсөтөт (кодер жогору жактан көрүнөт).

  • 45 мм болгон 4 зымды кесип, эки четинен 4 мм изоляция кылыңыз.
  • Arduino GND коддогучтун жогорку оң жана астыңкы орто туташтыргычтарына туташтырыңыз
  • Arduino D2 коддогучтун ылдыйкы сол жагына туташтырыңыз
  • Ардуино D3 коддогучтун ылдыйкы оң жагына туташтырыңыз
  • Коддогучтун жогорку сол жагына Arduino D4 туташтырыңыз

11 -кадам: Корпуста орнотуу

Корпуста орнотуу
Корпуста орнотуу

Бардык электрониканы корпустун ылдыйкы бөлүгүнө орнотуңуз:

  • Arduino вертикалдуу уячасына жылдырыңыз
  • Төмөнкү бөлүктө реалдуу убакыт саатын жылдырыңыз
  • Электр менен камсыздоону жана релени үстүңкү бөлүмгө жылдырыңыз, реле анын такаларына отурганына көзүңүз жетет.

12 -кадам: Электр тармагына / Жарыкка туташуу

Электр тармагына / Жарыкка туташуу
Электр тармагына / Жарыкка туташуу
Электр тармагына / Жарыкка туташуу
Электр тармагына / Жарыкка туташуу

ЭСКЕРТҮҮ

AC тармагы менен иштөөдө туура кам көрүүнү жана сактыкты камсыз кылыңыз, AC тармагы ажыратылганын текшериңиз

Мен бул долбоорду аткаруудан же анын кесепетинен келип чыккан жоготуу же зыян үчүн эч кандай жоопкерчилик тартпайм

  • AC тармагынын фазасын реленин A1 (сол) бурама терминал блогуна туташтырыңыз.
  • Жарыктын фазасын реленин В1 (оң) бурамалуу терминалдык блогуна туташтырыңыз.
  • Өзгөчө винттик терминал блогун AC токтун нейтралдуу зымын, жарык нейтралдуу зымын жана электр булагынын нейтралдуу зымын туташтыруу үчүн колдонуңуз.
  • Штаммды басаңдатуу үчүн, электр кабелдеринин ар бирине галстук ороп коюңуз.

13 -кадам: Корпусту бүтүрүү

Корпусту бүтүрүү
Корпусту бүтүрүү

Бул этапта корпуста монтаждоо аяктады

  • OLED дисплейин корпустун ортоңку бөлүгүндөгү дисплейдин тешиги аркылуу жылдырыңыз.
  • Ротари кодерди ортоңку бөлүктөгү тешик аркылуу жылдырыңыз, айланууга каршы линиялардын жогору болушун камсыз кылыңыз. Камтылган шайба менен гайканы колдонуп, айлануучу кодерди орнотуңуз.
  • Корпустун үстүнкү бөлүгүн орнотуп, астынан M3x25мм өлчөмдөгү төрт бураманы орнотуу менен корпусту жабыңыз.

14 -кадам: Arduino программалоо

ЭСКЕРТҮҮ

Arduino түздөн -түз Arduino ички электр регуляторун колдонуунун ордуна туруктуу +5V электр булагынан иштейт. Ошондуктан, Arduino электр булагынан энергия алганда USB туташтыруу коопсуз эмес.

Arduino USB туташуусун колдонуудан мурун дайыма 230VAC тармагын ажыратыңыз.

GitHubдан Arduino таймер программасын алыңыз.

Бул программа Arduino IDE колдонот, аны бул жерден алса болот.

Программа төмөнкү кошумча китепканаларды колдонот:

SSD1303Ascii

Arduino Wire китепканасы

Эске алыңыз, dusk2dawn китепканасы дагы колдонулат, бирок интерфейсинин өзгөрүшүнө байланыштуу код катары киргизилген.

Күүгүмдү / таңды туура эсептөөнү камсыз кылуу үчүн, узундук менен кеңдикти жана убакыт алкагын белгилөө керек.

Dusk2dawn мисалында сүрөттөлгөндөй, каалаган жердин узунун жана кеңдигин табуунун оңой жолу - Google Карталардан такты табуу, картадагы жерди оң басуу жана "Бул жерде эмне бар?" Тандоо. Төмөндө сиз координаттары бар картаны көрөсүз.

Узундук жана кеңдик программада катаал коддолгон, Dusk2Dawn.cpp линиясында 19 жана 20:

/* Жайгашкан жериңиздин кеңдиги жана узундугу ушул жерде орнотулушу керек.

* * КЕҢЕШ: Каалаган жердин узунун жана кеңдигин табуунун оңой жолу - бул Google Карталардан жерди табуу, картадагы жерди оң басуу жана * "Бул жерде эмне бар?" Тандоо. Төмөндө * координаттары бар картаны көрөсүз. */ #define LATITUDE 52.097105; // Утрехт #define LONGTITUDE 5.068294; // Утрехт

Убакыт алкагы Dusk2Dawn.cpp 24 -сапта да коддолгон. Демейки боюнча ал Нидерландга коюлган (GMT + 1):

/* Убакыт алкагыңызды бул жерге киргизиңиз (GMT менен эсептешүү) бул жерге.

*/ #define TIMEZONE 1

Arduino программасын биринчи жолу жасаганда, EEPROM эс тутумун инициализациялоо керек. Бул үчүн, timer.cpp линиясын 11 EEPROM инициализациясын өзгөртүү үчүн:

// биринчи жолу программалоо үчүн чындыкка өзгөртүү

#define INITIALIZE_EEPROM_MEMORY жалган

Программаны Arduinoго жүктөп, Arduino жүктөңүз.

EEPROM инициализациясын өчүрүп, программаны кайра Arduinoго жүктөңүз. Таймер азыр кайра жүктөөдө которуштуруу убактысынын орнотууларын эстеп калат.

15 -кадам: Убакытты орнотуу жана Убакытты которуу

Колдонуучу өз ара аракеттенүү түшүнүктөрү:

  • Кыска басуу тандоону ырастоо үчүн колдонулат. Мындан тышкары, негизги таймер экранында кыска басуу жарыкты күйгүзөт же өчүрөт.
  • Негизги таймер экранынан менюга кирүү үчүн узак басуу колдонулат. Менюнун каалаган жеринде, узакка басуу негизги таймер экранына кайтып келет.
  • '>' Тандоо курсу. Бул курсор менюда тандалган параметрди көрсөтөт.

Негизги таймер экраны

Негизги таймер экранында төмөнкүлөр көрсөтүлөт:

Аптанын күнү Су

Учурдагы убакыт 16:00

Таймердин учурдагы абалы жана кийинки которуу убактысы Таймер 17:12 ге чейин ӨЧҮК

Таңдын атышы менен күүгүмдүн убактысы Таңдын атышы 08:05 Күүгүм 17:10

Туура убакытты коюу

Менюга кирүү үчүн көп басыңыз. Төмөнкү параметрлер көрсөтүлөт:

BackSet убактысы Жума күнү программасы Апта программасы Опциялар

Чыныгы убакыт саатынын күнүн жана убакытын коюу үчүн белгиленген убакытты тандаңыз. Туура баалуулуктарды киргизиңиз:

YearMonthDayTime

Таймер жуманын күнүн автоматтык түрдө аныктайт. Жазгы убакытты которуу да автоматтык түрдө жасалат. Жазгы убакыт Европанын убакыт алкагы үчүн гана колдонулат.

Таймер программасын орнотуу

Таймерде 2 программа бар, бири жума күндөрү, бири дем алыш күндөрү. Белгилей кетсек, жума күн дем алыштын бир бөлүгү болуп эсептелет, жарыктар дагы бир аз күйүп калышы мүмкүн.

Ар бир таймерде күйгүзүү жана өчүрүү учуру бар. Учур болушу мүмкүн:

  • Убакыт: Так көрсөтүлгөн убакыт
  • Dawn: Таңдын эсептелген убактысынын негизинде которулуу
  • Күүгүм: Күүгүмдүн эсептелген убактысынын негизинде которулуу

Күүгүм жана таң агарганда, 59 мүнөт мурун же кийин оңдоо маанисин киргизүүгө болот.

Мисалдар:

Жарыкты түнү бою күйгүзүү үчүн, күйгүзүүнү (күүгүм + 10 мүнөт), өчүрүүнү (таңга маал - 10 мүнөт) тандаңыз.

Кечинде жарыкты күйгүзүү үчүн, күүгүмдө күйгүзүүнү тандаңыз, убагында өчүрүңүз: 22:30.

Опциялар

Параметрлер экранында экранды которуу үчүн күтүү убактысын коюуга болот.

Экран өчүрүлгөндө, айлануучу коддогуч баскычын басуу таймердин башкы экранына кайтат.

Сунушталууда: