Sisukord:

Arduino hämariku/koidukella taimer: 15 sammu
Arduino hämariku/koidukella taimer: 15 sammu

Video: Arduino hämariku/koidukella taimer: 15 sammu

Video: Arduino hämariku/koidukella taimer: 15 sammu
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, November
Anonim
Arduino Dusk/dawn Clock Timer
Arduino Dusk/dawn Clock Timer

Kokkuvõte:

See Arduino -põhine taimer võib hämaras, koidikul või kindlaksmääratud ajal lülitada ühe 220 V valguse.

Sissejuhatus:

Mõned minu maja tuled lülituvad videvikus automaatselt sisse, kuni kas etteantud kellaajani või koiduni (terve öö).

Tulede asukoht ei võimalda kasutada valgusandurit. Tavalised saadaval olevad taimerid lülituvad teatud ajal sisse. Seetõttu tuleb hämariku ajal sisselülitamiseks taimeriprogrammi seadeid regulaarselt reguleerida.

Toreda väljakutsena otsustasin selle asemel ehitada kohandatud Arduino -põhise eraldiseisva taimeri. See kasutab reaalajas kella ja Dusk2Dawn raamatukogu, et määrata kellaaeg, millal tuled tuleb sisse või välja lülitada. Selle taimeri korpus on 3D -trükitud ja selle leiate Thingiversest. Selle projekti Arduino koodi leiate GitHubist.

Selle taimeri loomisel sain inspiratsiooni paljudest disainidest ja vooluringidest Internetis. Tänan kõiki kaastöötajaid, keda otsesõnu ei mainita.

Loetavuse huvides on osalised skeemid näidatud vajaduse korral sammudes, mitte täielik vooluahela skeem.

Alternatiivsed lahendused:

Eraldiseisva taimeri asemel on palju lahendusi, kus nutikas koduautomaatikasüsteem suunab tulesid. Minu eesmärk oli saada sõltumatu lahendus, mis ei sõltu WIFI (või muust) ühenduvusest.

Piirangud:

Selle projektiga kaasas olnud kood sisaldas suveaja muudatuste rakendamist, mis põhineb Euroopa suveaja süsteemil.

Samm: osade loend ja tööriistad

Osade nimekiri ja tööriistad
Osade nimekiri ja tööriistad

Osad:

Osade kogumaksumus (välja arvatud 3D -printimine) ligikaudu 30 eurot.

  • Arduino Nano V3 (ühilduv) ilma päisteta
  • Toide 5V 0.6A (34 x 20 x 15mm)
  • Tahkisrelee 5V - aktiivne madal - 2A 230VAC
  • Reaalajas kell DS3231 (väike)
  • 0,96 -tolline OLED -ekraan SPI 128*64 pikslit
  • Pöörlev kodeerija - EC11 - 20mm
  • Nupp 6mm võll 15mm * 17mm
  • Leivaplaadi trükkplaat,
  • 4* M3x25mm kruvid
  • 3D trükitud korpus
  • Termokahanevad torud
  • Juhtmed
  • Kruviklemmliist (neutraaljuhtmete ühendamiseks)

Vajalikud tööriistad:

  • Jootekolb
  • Jootetraat
  • Jootepump
  • Traadi eemaldajad
  • Lõikurid
  • 3D -printer (korpuse printimiseks)
  • Väikesed tööriistad

HOIATUS

See vooluahel töötab 230 V vahelduvvoolul ja kui te pole harjunud töötama võrgupingega või kui teil pole piisavalt kogemusi 230 V vahelduvvoolu pingega töötamisel, hoidke sellest projektist eemale

Ma ei vastuta kahju eest, mis tuleneb otseselt selle projekti järgimisest või selle tagajärjel

Vahelduvvooluvõrguga töötamisel on alati soovitatav olla ettevaatlik ja ettevaatlik

Samm: valmistage ette OLED -ekraan ja reaalajas kell

Valmistage ette OLED -ekraan ja reaalajas kell
Valmistage ette OLED -ekraan ja reaalajas kell

3D -prinditud korpus on mõeldud minimaalse suurusega. Seetõttu tuleb OLED -ekraani ja reaalajas kella päised eemaldada.

Järgmise etapi ettevalmistamisel puhastage jootmispumba abil aukudest allesjäänud joodis.

3. samm: valmistage pöördkodeerija ette

Valmistage pöörlev kodeerija ette
Valmistage pöörlev kodeerija ette

Pöörlemiskoodril on nõrgad pistikud. Kahjustuste vältimiseks paigaldage kodeerijale trükkplaadi tükk.

Pildil on ka maaühendus (üleval paremal ja keskel all) juba ette valmistatud.

Märkus: Veenduge, et trükkplaadiga pöörlev kooder mahub korpuse sisse ilma Arduinot puudutamata. Tihedalt sobitumiseks võib osutuda vajalikuks trükkplaadi lihvimine.

4. samm: ümbris

Korpus
Korpus
Korpus
Korpus

Printige korpuse kolm osa 3D -printeriga. Vaadake Thingiverse'i juhiseid.

Samm: keelake Arduino toite LED (valikuline)

Keela Arduino toite LED (valikuline)
Keela Arduino toite LED (valikuline)

Taimeris rohelise sära vältimiseks saab Arduino toite LED välja lülitada.

Pange tähele, et see muudatus on valikuline.

Arduino Nano modifikatsioon seisneb toitejuhtme kõrval oleva takisti eemaldamises (vt pildil punast ringi).

6. samm: toiteallikas + tahkisrelee

Toiteallikas + tahkisrelee
Toiteallikas + tahkisrelee

Selles etapis ühendatakse toiteallikas ja tahkisrelee ning paigaldatakse korpuse alumisse ossa.

Ühendused toiteallika ja relee vahel tehakse nende komponentide allosas. Arduinoga ühendamiseks kasutatakse relee kruviklemmiplokki.

Märkus: Ühenduste tegemisel veenduge, et tahkis-relee kinnitusavad oleksid vabad.

  • Jootke ühendusjuhtme tahkisrelee A1 vahel ühe toiteallika vahelduvvooluühendusega
  • Jootke juhe toiteallika teise vahelduvvooluühendusega (see ühendatakse punktis 7 neutraalkruvi klemmliistuga)
  • Jootke traat toiteallika vahel -Vo relee DC -
  • Jootke juhe toiteallika ühendamiseks +Vo releega DC +

Märkus. Võimalik, et toiteallika ja relee juhtmeid tuleb lühendada, et need korpusesse mahuksid.

Samm: Arduino Nano + toiteallikas + tahkisrelee

Arduino Nano + toiteallikas + tahkisrelee
Arduino Nano + toiteallikas + tahkisrelee

Selles etapis ühendatakse Arduino Nano toiteallika ja pooljuhtreleega.

  • Lõika kaks umbes 70 mm pikkust traati. Eemaldage ühel küljel 30 mm ja teisel küljel 4 mm isolatsioon.
  • Jootage külg 30 mm eemaldatud isolatsiooniga Arduino +5V ja GND külge, traat jääb läbi
  • Lõika kaks 20 mm pikkust termokahanevat toru ja paigaldage need 25 mm eemaldatud osa kohale. See eraldab juhtmed kuni ühenduseni pooljuhtrelee kinnituskruvi klemmliistuga DC+ ja DC-.
  • Pange tähele, et relee kruviklemmliistuga õigeks ühendamiseks peavad GND ja +5 V juhtmed ristuma.
  • Lõigake umbes 40 mm pikkune traat ja eemaldage mõlemast otsast 4 mm isolatsioon. Jootke üks külg Arduino BACKSIDE küljel asuva A2-ühendusega ja teine pool ühendage pooljuhtkruvi klemmliist CH1-ühendusega.

HOIATUS

Arduino saab toidet otse stabiilsest +5 V toiteallikast, selle asemel et kasutada Arduino sisemist toiteregulaatorit. Seetõttu pole USB ühendamine turvaline, kui Arduino saab toiteallikast toite.

Enne Arduino USB -ühenduse kasutamist ühendage alati 230VAC vooluvõrgust lahti.

8. samm: Arduino Nano + reaalajas kell

Arduino Nano + reaalajas kell
Arduino Nano + reaalajas kell

Selles etapis ühendatakse reaalajas kell Arduinoga, kasutades osaliselt eelmises etapis ettevalmistatud kaableid.

  • Jootke Arduino GND-st tulev traat (mis on ühendatud ka relee alalisvooluga) reaalaja kella '-' külge.
  • Jootke Arduino+5V juhe (ühendatud ka relee DC+-ga) reaalaja kella „+” külge.
  • Lõigake kaks umbes 40 mm pikkust traati ja eemaldage mõlemast otsast 4 mm isolatsioon.
  • Jootke traat Arduino A4 ja reaalajas kella D (SDA) vahel.
  • Jootke traat Arduino A5 ja reaalajas kella C (SCL) vahel.
  • Vormige reaalajas kella juhtmed nii, et need ei segaks pöörlevat kodeerijat. Selleks peavad juhtmed olema korpuse allosas.

Samm: ühendage OLED -ekraan

Ühendage OLED -ekraan
Ühendage OLED -ekraan

Selles etapis lisatakse Arduinole OLED SPI ekraan.

  • Lõigake 2 65 mm pikkust traati ja eemaldage mõlemast otsast 4 mm isolatsioon.
  • Jootke juhe OLED -ekraani GND -ühendusega. Jootke see traat Arduino GND-st tuleva termokahanevate torude isoleeritud juhtmega (vt 4. sammu) ja ühendage mõlemad juhtmed tahkis-relee alalisvoolukinnitusega kruviklemmiplokiga.
  • Jootke juhe OLED -ekraani VCC -ühendusega. Jootke see traat termokahanevate torude isoleeritud juhtme külge, mis tuleb Arduino + 5V-st (vaadake 4. sammu), ja ühendage mõlemad juhtmed pooljuhtrelee alalisvoolu + kinnituskruvi klemmiplokiga.
  • Lõigake 5 65 mm pikkust traati ja eemaldage mõlemast otsast 4 mm isolatsioon.
  • Jootke traat D0 (CLK) ühendamiseks Arduino D10 -ga
  • Jootke traat D1 (MOSI / DATA) ühendamiseks Arduino D9 -ga
  • Jootke traat RES (RT) ühendamiseks Arduino D8 -ga
  • Jootke traat DC ühendamiseks Arduino D11 -ga
  • Jootke traat CS ühendamiseks Arduino D12 -ga

Märkus. Ekraanijuhtmete järjekord ei ole loogiline. Selle põhjuseks on kõigepealt Adafruit'i näite kasutamine ja seejärel ühenduste muutmine, kuna D13 kasutamisel ilmub Arduinole kogu aeg punane LED.

Alternatiiv

SPI -ühenduste jaoks on võimalik kasutada tavalist tellimust. Selleks tuleb Arduino programmi digitaalse väljundi definitsiooni saidis oledcontrol.cpp vastavalt kohandada:

// Tarkvara SPI kasutamine

// tihvtide määratlused

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#defineeri CLK_PIN 10

10. samm: pöörlev kodeerija

Pöörlev kodeerija
Pöörlev kodeerija

Diagramm näitab Arduino ühendusi pöörleva kodeerijaga (kodeerija pealt vaadatuna).

  • Lõigake 4 45 mm traati ja eemaldage mõlemast otsast 4 mm isolatsioon.
  • Ühendage Arduino GND kodeerija paremas ülanurgas ja all keskel
  • Ühendage Arduino D2 kodeerija vasakus alanurgas
  • Ühendage Arduino D3 kodeerija paremas alanurgas
  • Ühendage Arduino D4 kodeerija vasakus ülanurgas

Samm 11: paigaldamine korpusesse

Paigaldamine korpuses
Paigaldamine korpuses

Paigaldage kogu elektroonika korpuse alumisse ossa:

  • Lükake Arduino vertikaalsele pilule
  • Lükake reaalajas kella alumises lahtris
  • Lükake toiteplokk ja relee ülemisse lahtrisse, veenduge, et relee oleks oma alustel.

12. samm: lülitamiseks vooluvõrku / valgustiga ühendamine

Ühendamine vooluvõrku / valgusti lülitamiseks
Ühendamine vooluvõrku / valgusti lülitamiseks
Ühendamine vooluvõrku / valgusti lülitamiseks
Ühendamine vooluvõrku / valgusti lülitamiseks

HOIATUS

Veenduge, et töötate vahelduvvooluvõrguga korralikult ja ettevaatlikult, ning veenduge, et vahelduvvooluvõrgustik on lahti ühendatud

Ma ei vastuta kahju eest, mis tuleneb otseselt selle projekti järgimisest või selle tagajärjel

  • Ühendage vahelduvvoolu faas relee A1 (vasakul) kruviklemmiplokiga.
  • Ühendage lülitatava valguse faas relee B1 (paremal) kruviklemmiplokiga.
  • Kasutage vahelduvvoolu nulljuhtme, kerge nulljuhtme ja toiteallika nulljuhtme ühendamiseks eraldi kruviklemmiplokki.
  • Pingutuste leevendamiseks paigaldage iga toitekaabli ümber lips.

13. samm: korpuse viimistlemine

Korpuse viimistlemine
Korpuse viimistlemine

Selles etapis on korpusesse paigaldamine lõpule viidud

  • Lükake OLED -ekraan läbi ekraani kinnitusava korpuse keskosas.
  • Lükake pöördandur läbi keskmise osa augu, veenduge, et pöörlemisvastased jooned oleksid ülespoole. Paigaldage pöördkooder kaasasoleva seibi ja mutri abil.
  • Paigaldage korpuse ülemine osa ja sulgege korpus, paigaldades altpoolt neli M3x25mm kruvi.

14. samm: Arduino programmeerimine

HOIATUS

Arduino saab toidet otse stabiilsest +5 V toiteallikast, selle asemel et kasutada Arduino sisemist toiteregulaatorit. Seetõttu pole USB ühendamine turvaline, kui Arduino saab toiteallikast toite.

Enne Arduino USB -ühenduse kasutamist ühendage alati 230VAC vooluvõrgust lahti.

Laadige Arduino taimeriprogramm alla GitHubist.

See programm kasutab Arduino IDE -d, mille saate siit.

Programm kasutab järgmisi täiendavaid teeke:

SSD1303Ascii

Arduino Wire raamatukogu

Pange tähele, et kasutatakse ka teeki dusk2dawn, kuid see on liidese muutmise tõttu koodina lisatud.

Hämara / koidu õige arvutamise tagamiseks tuleb määrata pikkus- ja laiuskraad ning ajavöönd.

Nagu on kirjeldatud dusk2dawni näites, on lihtne viis mis tahes asukoha pikkus- ja laiuskraadide leidmiseks leida Google Mapsist koht, paremklõps kaardil oleval kohal ja valida "Mis siin on?". Allosas näete kaarti koordinaatidega.

Pikkus- ja laiuskraadid on programmis Dusk2Dawn.cpp ridadel 19 ja 20 kõvasti kodeeritud:

/* Siin tuleb määrata teie asukoha laius- ja pikkuskraadid.

* * NÕUANNE: lihtne viis asukoha pikkus- ja laiuskraadide leidmiseks on * leida koht Google Mapsist, paremklõps kaardil sellel kohal ja * valida "Mis siin on?". Allosas näete kaarti * koordinaatidega. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Ajavöönd on ka kõvakodeeritud Dusk2Dawn.cpp real 24. Vaikimisi on see määratud Hollandile (GMT + 1):

/* Sisestage oma ajavöönd (nihe GMT järgi).

*/ #defineeri TIMEZONE 1

Arduino esmakordsel programmeerimisel tuleb EEPROM -mälu lähtestada. Selleks muutke timer.cpp rida 11, et teha EEPROM -i lähtestamine:

// esmakordseks programmeerimiseks muutke tõeseks

#define INITIALIZE_EEPROM_MEMORY vale

Laadige programm üles Arduino ja käivitage Arduino.

Keelake EEPROM -i lähtestamine ja laadige programm uuesti Arduinosse. Taimer mäletab nüüd taaskäivitamisel lülitusaja seadeid.

15. samm: aja ja lülitusaegade seadistamine

Kasutajate suhtlemise mõisted:

  • Valikute kinnitamiseks kasutatakse lühikest vajutust. Lisaks lülitab taimeri põhiekraanil lühikese vajutusega valguse sisse või välja.
  • Taimeri põhiekraanilt menüüsse sisenemiseks kasutatakse pikka vajutust. Kõikjal menüüs naaseb pikk vajutus taimeri põhiekraanile.
  • '>' Valiku kursus. See kursor näitab menüüs valitud valikut.

Taimeri põhiekraan

Taimeri põhiekraanil kuvatakse:

Nädalapäev Su

Praegune aeg 16:00

Taimeri praegune olek ja järgmine lülitusaeg Taimer OFF kuni 17:12

Koit ja õhtuhämarus Koit 08:05 Õhtuhämarus 17:10

Õige kellaaja seadmine

Menüüsse sisenemiseks vajutage pikalt. Kuvatakse järgmised valikud.

Tagasi Määra aegNädalapäeva programmNädalavahetuse programmValikud

Reaalaja kella kuupäeva ja kellaaja määramiseks valige määratud aeg. Sisestage õiged väärtused:

AastaKuuPäevAeg

Taimer määrab automaatselt nädalapäeva. Suveaja vahetamine toimub samuti automaatselt. Suveaeg on kasutusel ainult Euroopa ajavööndis.

Taimeriprogrammi seadistamine

Taimeril on 2 programmi, üks nädalapäevadeks, üks nädalavahetuseks. Pange tähele, et reedet peetakse nädalavahetuse osaks, tuled võivad põleda veidi kauem.

Igal taimeril on sisse- ja väljalülitusmoment. Hetk võib olla:

  • Aeg: täpselt määratud aeg
  • Koit: lülituge arvutatud koiduaja alusel
  • Hämarik: lülituge arvutusliku hämaruseaja alusel

Hämara ja koidu korral on võimalik sisestada parandusväärtus 59 minutit enne või pärast.

Näited:

Valguse sisselülitamiseks kogu ööks valige sisselülitamine kell (hämarik + 10 min), väljalülitamine kell (koidik - 10 min)

Õhtul valguse sisselülitamiseks valige sisselülitamine hämaras, lülitage välja ajal: 22:30.

Valikud

Suvandite ekraanil saab määrata ekraani vahetamise ajalõpu.

Kui ekraan on välja lülitatud, pöördub pöördkodeerimisnupule vajutamine tagasi taimeri põhiekraanile.

Soovitan: