Kazalo:

Arduino ura za mrake/zore: 15 korakov
Arduino ura za mrake/zore: 15 korakov

Video: Arduino ura za mrake/zore: 15 korakov

Video: Arduino ura za mrake/zore: 15 korakov
Video: Как заработать $ 90,00 в день с нулевыми деньгами на старт... 2024, Julij
Anonim
Arduino ura za mrake/zore
Arduino ura za mrake/zore

Povzetek:

Ta časovnik, ki temelji na Arduinu, lahko v mraku, zori ali določenem času preklopi eno 220V luč.

Uvod:

Nekatere luči v moji hiši se samodejno prižgejo v mraku, do vnaprej določenega časa ali do zore (celo noč).

Lokacija luči ne dovoljuje uporabe svetlobnega senzorja. Običajni razpoložljivi časovniki ure se vklopijo ob določenem času. Za vklop ob mraku je zato treba redno prilagajati nastavitve programa časovnika.

Kot lep izziv sem se odločil namesto tega izdelati samostojni časovnik na osnovi Arduina. Za določitev časa vklopa ali izklopa luči uporablja uro v realnem času in knjižnico Dusk2Dawn. Ohišje tega časovnika je 3D natisnjeno in ga najdete na Thingiverse. Kodo Arduino za ta projekt najdete na GitHubu.

Pri ustvarjanju tega časovnika sem dobil navdih iz številnih modelov in vezij na internetu. Zahvaljujem se vsem sodelujočim, ki niso izrecno omenjeni.

Zaradi berljivosti so namesto celotnega vezja v korakih prikazani delni diagrami.

Alternativne rešitve:

Namesto samostojnega merilnika časa obstaja veliko rešitev, kjer sistem za avtomatizacijo pametnega doma usmerja luči. Moj cilj je bil imeti neodvisno rešitev, ki ni odvisna od povezave WIFI (ali druge).

Omejitve:

Koda, ki je bila priložena temu projektu, je vključevala izvedbo sprememb poletnega časa, ki temelji na evropskem poletnem sistemu.

Korak: Seznam delov in orodja

Seznam delov in orodja
Seznam delov in orodja

Deli:

Skupni stroški delov (brez 3D tiskanja) so približno 30 EUR, -.

  • Arduino Nano V3 (združljiv) brez glav
  • Napajanje 5V 0.6A (34 x 20 x 15 mm)
  • Polprevodniški rele 5V - Aktivno nizek - 2A 230VAC
  • Ura v realnem času DS3231 (majhna)
  • 0,96 -palčni OLED zaslon, SPI 128*64 slikovnih pik
  • Rotacijski dajalnik - EC11 - 20 mm
  • Ročaj 6 mm gred 15 mm * 17 mm
  • Tiskano vezje na plošči,
  • 4* vijaki M3x25 mm
  • 3D tiskano ohišje
  • Termoskrčljive cevi
  • Žice
  • Vijačni priključni blok (za priključitev nevtralnih žic)

Potrebna orodja:

  • Spajkalnik
  • Spajkalna žica
  • Črpalka za spajkanje
  • Odstranjevalci žice
  • Rezalniki
  • 3D tiskalnik (za tiskanje ohišja)
  • Izbrana majhna orodja

OPOZORILO

To vezje deluje na omrežje 230 V AC in če niste navajeni delati z omrežno napetostjo ali nimate dovolj izkušenj pri delu z omrežno napetostjo 230 V AC, se izogibajte temu projektu

Ne prevzemam nobene odgovornosti za kakršno koli izgubo ali škodo, ki bi nastala neposredno ali kot posledica tega projekta

Pri delu z električnim omrežjem je vedno priporočljivo, da ste ustrezno previdni in previdni

2. korak: Pripravite zaslon OLED in uro v realnem času

Pripravite zaslon OLED in uro v realnem času
Pripravite zaslon OLED in uro v realnem času

Ohišje s 3D tiskanjem je zasnovano za minimalno velikost. Posledično je treba odstraniti glave zaslona OLED in uro v realnem času.

V pripravah na naslednji korak s črpalko za spajkanje odstranite preostalo spajkanje iz lukenj.

3. korak: Pripravite rotacijski dajalnik

Pripravite rotacijski dajalnik
Pripravite rotacijski dajalnik

Rotacijski dajalnik ima šibke priključke. Da bi preprečili poškodbe, na dajalnik namestite kos tiskanega vezja.

Na sliki je že pripravljen tudi ozemljitveni priključek (zgoraj desno in na sredini spodaj).

Opomba: Poskrbite, da se vrtljivi dajalnik s tiskanim vezjem prilega v ohišje, ne da bi se dotaknil Arduina. Morda bo treba tiskano vezje zmleti, da se dobro prilega.

4. korak: ohišje

Ohišje
Ohišje
Ohišje
Ohišje

Natisnite tri dele ohišja s 3D tiskalnikom. Glejte navodila za Thingiverse.

5. korak: Onemogočite LED za napajanje Arduino (neobvezno)

Onemogoči Arduino Power LED (izbirno)
Onemogoči Arduino Power LED (izbirno)

Za preprečitev zelenega sijaja v časovniku lahko LED za napajanje Arduina onemogočite.

Upoštevajte, da je ta sprememba neobvezna.

Sprememba Arduino Nano je sestavljena iz odstranitve upora poleg napajalnega kabla (glej rdeči krog na sliki).

Korak 6: Napajanje + polprevodniški rele

Napajanje + polprevodniški rele
Napajanje + polprevodniški rele

V tem koraku se napajalnik in polprevodniški rele združita in namestita v spodnji del ohišja.

Povezave med napajalnikom in relejem so na dnu teh komponent. Vijačni priključni blok releja bo uporabljen za povezavo z Arduinom.

Opomba: Pri povezovanju poskrbite, da bodo montažne luknje polprevodniškega releja proste.

  • Priključite žico za povezavo med polprevodniškim relejem A1 na enega od AC priključkov napajalnika
  • Spajkajte žico z drugim izmeničnim priključkom napajalnika (ta bo v koraku 7 priključen na nevtralni vijačni blok)
  • Spajkajte žico med napajalnikom -Za rele DC -
  • Spajate žico za priključitev napajanja +Vo na rele DC +

Opomba: Morda bo treba skrajšati kable na napajalniku in releju, da se bodo lahko prilegali v ohišje.

Korak 7: Arduino Nano + Napajanje + Polprevodniški rele

Arduino Nano + Napajanje + Polprevodniški rele
Arduino Nano + Napajanje + Polprevodniški rele

V tem koraku je Arduino Nano priključen na napajalnik in polprevodniški rele.

  • Odrežite dve žici dolžine približno 70 mm. Odstranite 30 mm izolacije na eni strani in 4 mm na drugi strani.
  • Spajajte stran z izolirano izolacijo 30 mm na Arduino +5V in GND, pri čemer žica štrli skozi
  • Izrežite dve termoskrčljivi cevi dolžine 20 mm in ju namestite na 25 mm odstranjen del. To izolira žice do povezave z montažnimi vijačnimi sponkami DC+ in DC- polprevodniškega releja.
  • Upoštevajte, da se morajo žice za GND in +5V križati, da se pravilno priključijo na sponko releja.
  • Odrežite žico dolžine približno 40 mm in na obeh koncih odstranite izolacijo 4 mm. Spajate eno stran na priključek A2 na hrbtni strani Arduina, drugo stran pa na priključek CH1 na polprevodni vijačni priključni blok.

OPOZORILO

Arduino se napaja neposredno iz stabilnega napajanja +5V namesto z notranjim regulatorjem moči Arduino. Zato povezava USB ni varna, ko Arduino prejema napajanje iz napajalnika.

Pred uporabo povezave USB Arduino vedno odklopite omrežje 230VAC.

8. korak: Ura v realnem času Arduino Nano +

Arduino Nano + ura v realnem času
Arduino Nano + ura v realnem času

V tem koraku je ura v realnem času povezana z Arduinom, deloma z uporabo kablov, pripravljenih v prejšnjem koraku.

  • Spajkajte žico, ki prihaja iz Arduino GND (prav tako priključena na DC- releja) na '-' ure v realnem času.
  • Spajajte žico, ki prihaja iz Arduina+5V (priključena tudi na DC+releja) na "+" ure v realnem času.
  • Odrežite dve žici dolžine približno 40 mm in na obeh koncih odstranite izolacijo 4 mm.
  • Spajkajte žico med Arduino A4 in uro D v realnem času D (SDA).
  • Spajkajte žico med Arduino A5 in uro v realnem času C (SCL).
  • Oblikujte žice ure v realnem času, da zagotovite, da ne motijo rotacijskega dajalnika. Za to morajo biti žice na dnu ohišja.

9. korak: Priključite zaslon OLED

Priključite zaslon OLED
Priključite zaslon OLED

V tem koraku se v Arduino doda zaslon OLED SPI.

  • Odrežite 2 žici dolžine 65 mm in na obeh koncih odstranite izolacijo 4 mm.
  • Spajate žico na povezavo GND zaslona OLED. Spajajte to žico na izolirano žico s toplotno skrčljivo cevjo, ki prihaja iz Arduino GND (glejte korak 4) in obe žici povežite z vijačnim priključnim blokom za pritrditev na enosmerni tok polprevodniškega releja.
  • Spajate žico z VCC povezavo zaslona OLED. To žico spajkajte na izolirano žico s toplotno skrčljivo cevjo, ki prihaja iz Arduina + 5V (glejte korak 4) in obe žici povežite z vijačnim priključnim blokom za pritrditev DC + polprevodniškega releja.
  • Odrežite 5 žic dolžine 65 mm in na obeh koncih odstranite izolacijo 4 mm.
  • Spajkajte žico za povezavo D0 (CLK) z Arduinom D10
  • Spajkajte žico za povezavo D1 (MOSI / DATA) z Arduinom D9
  • Spajkajte žico za povezavo RES (RT) z Arduinom D8
  • Spajkajte žico za priključitev enosmernega toka na Arduino D11
  • Spajkajte žico za povezavo CS z Arduino D12

Opomba: Vrstni red žic zaslona ni logičen. To je rezultat prve uporabe primera Adafruit in nato spreminjanja povezav, ker uporaba D13 povzroči ves čas rdečo LED na Arduinu.

Alternativa

Za povezave SPI je mogoče uporabiti "običajno" naročilo. V ta namen je treba ustrezno prilagoditi definicijo digitalnega izhoda programa Arduino v oledcontrol.cpp:

// Uporaba programske opreme SPI

// pin definicije

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

10. korak: Rotacijski dajalnik

Rotacijski dajalnik
Rotacijski dajalnik

Na diagramu so prikazane povezave Arduina z vrtljivim dajalnikom (dajalnik viden od zgoraj).

  • Odrežite 4 žice po 45 mm in na obeh koncih odstranite izolacijo 4 mm.
  • Priključite Arduino GND na zgornji desni in spodnji srednji priključek dajalnika
  • Priključite Arduino D2 v spodnji levi kot kodirnika
  • Priključite Arduino D3 v spodnji desni kot kodirnika
  • Priključite Arduino D4 v zgornji levi kot kodirnika

11. korak: Namestitev v ohišje

Namestitev v ohišje
Namestitev v ohišje

V spodnji del ohišja namestite vso elektroniko:

  • Arduino potisnite po navpični reži
  • Pomaknite uro realnega časa v spodnji predel
  • Napajalnik in rele potisnite v zgornji predel in se prepričajte, da je rele nameščen na nosilcih.

Korak 12: Priključitev na omrežje / luč za preklop

Priključitev na omrežje / luč za preklop
Priključitev na omrežje / luč za preklop
Priključitev na omrežje / luč za preklop
Priključitev na omrežje / luč za preklop

OPOZORILO

Pri delu z električnim omrežjem poskrbite za ustrezno nego in previdnost, prekinite napajanje

Ne prevzemam nobene odgovornosti za kakršno koli izgubo ali škodo, ki izvira neposredno iz tega projekta ali je posledica tega

  • Omrežno fazo priključite na A1 (levo) vijačno sponko releja.
  • Fazo luči, ki jo želite preklopiti, priključite na B1 (desno) vijačno sponko releja.
  • Za priključitev nevtralnega kabla omrežnega napajalnika, svetlobno nevtralnega kabla in nevtralnega kabla napajalnika uporabite ločen vijačni priključni blok.
  • Za lajšanje napetosti okoli vsakega napajalnega kabla namestite ovitek.

13. korak: Dokončanje ohišja

Dokončanje ohišja
Dokončanje ohišja

V tem koraku je montaža v ohišju zaključena

  • Potisnite zaslon OLED skozi luknjo za pritrditev zaslona v srednjem delu ohišja.
  • Vrtljivi dajalnik potisnite skozi luknjo v srednjem delu in se prepričajte, da se protivrtenje poravna. Vrtljivi dajalnik namestite s priloženo podložko in matico.
  • Namestite zgornji del ohišja in zaprite ohišje tako, da pritrdite štiri vijake M3x25 mm od spodaj.

Korak 14: Programiranje Arduina

OPOZORILO

Arduino se napaja neposredno iz stabilnega napajanja +5V namesto z notranjim regulatorjem moči Arduino. Zato povezava USB ni varna, ko Arduino prejema napajanje iz napajalnika.

Pred uporabo povezave USB Arduino vedno odklopite omrežje 230VAC.

Prenesite program za merjenje časa Arduino iz GitHub -a.

Ta program uporablja Arduino IDE, ki ga lahko dobite tukaj.

Program uporablja naslednje dodatne knjižnice:

SSD1303Ascii

Knjižnica Arduino Wire

Upoštevajte, da se uporablja tudi knjižnica dusk2dawn, ki pa je zaradi spremembe vmesnika vključena kot koda.

Za pravilen izračun mraka / zore je treba nastaviti zemljepisno dolžino in zemljepisno širino ter časovni pas.

Kot je opisano v primeru dusk2dawn, je enostaven način za določitev zemljepisne dolžine in zemljepisne širine za katero koli lokacijo, da poiščete točko v Google Zemljevidih, z desno miškino tipko kliknete kraj na zemljevidu in izberete »Kaj je tukaj?«. Na dnu boste videli kartico s koordinatami.

Zemljepisna dolžina in zemljepisna širina sta v programu, v vrsticah 19 in 20 Dusk2Dawn.cpp, trdo kodirana:

/* Tukaj morate nastaviti zemljepisno širino in dolžino vaše lokacije.

* * NAMIG: Najlažji način za določitev zemljepisne dolžine in zemljepisne širine za katero koli lokacijo je *, da poiščete točko v Google Zemljevidih, z desno tipko miške kliknete kraj na zemljevidu in * izberete »Kaj je tukaj?«. Na dnu boste videli kartico s koordinatami *. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Časovni pas je tudi trdo kodiran v vrstici 24. Dusk2Dawn.cpp 24. Privzeto je nastavljen na Nizozemsko (GMT + 1):

/* Tukaj vnesite svoj časovni pas (zamaknjen za GMT).

*/ #določite ČASNO ZONO 1

Pri prvem programiranju Arduina je treba inicializirati pomnilnik EEPROM. V ta namen spremenite vrstico timer.cpp 11, da izvedete inicializacijo EEPROM:

// za prvo programiranje spremenite v true

#define INITIALIZE_EEPROM_MEMORY false

Naložite program na Arduino in zaženite Arduino.

Onemogočite inicializacijo EEPROM -a in znova naložite program v Arduino. Časovnik se bo ob ponovnem zagonu spomnil nastavitev časa preklopa.

Korak 15: Nastavitev časa in čas preklopa

Koncepti interakcije uporabnikov:

  • Za potrditev izbire se uporablja kratek pritisk. Poleg tega na zaslonu glavnega časovnika kratek pritisk vklopi ali izklopi luč.
  • Dolg pritisk se uporablja za vstop v meni z glavnega zaslona časovnika. Povsod v meniju se dolg pritisk vrne na glavni zaslon časovnika.
  • ‘>’ Izbirna kurza. Ta kazalec označuje izbrano možnost v meniju.

Zaslon glavnega časovnika

Zaslon glavnega časovnika prikazuje:

Dan v tednu Ned

Trenutni čas 16:00

Trenutno stanje časovnika in čas naslednjega vklopa Časovnik izklopljen do 17:12

Čas zore in mraka Zora 08:05 Mrak 17:10

Nastavitev pravega časa

Dolgo pritisnite za vstop v meni. Prikazane so naslednje možnosti:

BackSet timeTedenski programWeekend programOptions

Izberite nastavljen čas, da nastavite datum in uro ure v realnem času. Vnesite pravilne vrednosti za:

LetoMonthDayTime

Časovnik samodejno določi dan v tednu. Preklop na poletni čas se izvede tudi samodejno. Poletni čas se izvaja samo za evropski časovni pas.

Nastavitev časovnega programa

Časovnik ima 2 programa, enega za dneve v tednu, enega za vikend. Upoštevajte, da petek velja za vikend, luči lahko ostanejo prižgane nekoliko dlje.

Vsak časovnik ima čas vklopa in izklopa. Trenutek je lahko:

  • Čas: točno določen čas
  • Zora: Preklopite na izračunani čas zore
  • Mrak: Preklopite na izračunani čas mraka

Za mrak in zori je mogoče vnesti korekcijsko vrednost 59 minut pred ali po.

Primeri:

Če želite vklopiti luč vso noč, izberite vklop ob (mraku + 10 min), izklop ob (zori - 10 min)

Če želite zvečer vklopiti luč, izberite vklopi ob mraku, ugasni ob 22:30.

Opcije

Na zaslonu z možnostmi lahko nastavite časovno omejitev za preklop zaslona.

Ko je zaslon izklopljen, se s pritiskom na gumb vrtljivega dajalnika vrnete na zaslon glavnega časovnika.

Priporočena: