Kazalo:

Ura vremenske napovedi z uporabo starega alarma in Arduina: 13 korakov (s slikami)
Ura vremenske napovedi z uporabo starega alarma in Arduina: 13 korakov (s slikami)

Video: Ura vremenske napovedi z uporabo starega alarma in Arduina: 13 korakov (s slikami)

Video: Ura vremenske napovedi z uporabo starega alarma in Arduina: 13 korakov (s slikami)
Video: Часть 02 — Аудиокнига «Моби Дик» Германа Мелвилла (Chs 010-025) 2024, November
Anonim
Ura vremenske napovedi z uporabo starega alarma in Arduina
Ura vremenske napovedi z uporabo starega alarma in Arduina
Ura vremenske napovedi z uporabo starega alarma in Arduina
Ura vremenske napovedi z uporabo starega alarma in Arduina

Imel sem pokvarjeno budilko in prišel sem na idejo, da bi jo spremenil v uro in postajo za napovedovanje vremena.

Za ta projekt boste potrebovali:

  • Stara okrogla budilka
  • Arduino Nano
  • Senzorski modul BME280 (temp, vlaga, tlak)
  • Modul LCD zaslona Nokia 5110
  • Ura DS1307 RTC
  • TP4056 Polnilnik litijevih baterij
  • Staro litij-ionsko baterijo, rešeno iz mobilnega telefona
  • Majhen ojačevalni modul od 3,7 do 5 V.
  • Odvisno od svetlobe upor (LDR - merilnik svetlobe)
  • Zvočni signal (rabljen, shranjen iz starega računalnika)
  • 3 gumbi
  • Kup uporov (2x10k, 270 ohm) in tranzistor (2N2222A ali podobno)
  • Nekaj široke skrčne cevi
  • ostanki PCB za dekoracijo sprednje plošče
  • Podaljšek Micro-USB (ženska in moška stran sta Micro-USB)
  • 2x8 cm prototipna plošča in nekaj žic

1. korak: Razstavite vse

Razstavite vse
Razstavite vse

Najprej sem razstavil staro uro. Zvonovi, motor, pokvarjen mehanizem ure …

2. korak: Gumbi za digitalne nastavitve

Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve
Gumbi za digitalne nastavitve

Ker bo nova ura popolnoma digitalna z mini računalnikom v notranjosti, sem ob strani dodal 3 preproste lepe gumbe.

Z rezanim kosom aluminija sem izrezal prekrivni sloj, da sem ustvaril etiketo. Črke za nalepke so bile ustvarjene z uporabo črk in črnega označevalca.

Korak: Kondenzator za motor

Kondenzator za motor
Kondenzator za motor

Za zvok alarma z motorjem bom ohranil stare zvonove. Stari pokvarjeni mehanizem ure je imel keramični kondenzator z oznako 104. Odstranil sem ga s tiskanega vezja in ga spajkal neposredno na motor - to bo pomagalo preprečiti prenapetost pri vklopu motorja med alarmom. Pomembno je tudi omeniti, da bo motor krmiljen preko tranzistorja, o tem pa kasneje.

4. korak: Nov obraz za uro

Nov obraz za uro
Nov obraz za uro
Nov obraz za uro
Nov obraz za uro

Ker sem se odločil, da bom za uro naredil nov obraz - iz koša za smeti sem vzel vezje in z gradbeno toplotno pištolo hitro odstranil vse komponente. Luknja na sredini je narejena za digitalni zaslon nove ure.

5. korak: Digitalni zaslon iz starega mobilnega telefona

Digitalni zaslon iz starega mobilnega telefona
Digitalni zaslon iz starega mobilnega telefona
Digitalni zaslon iz starega mobilnega telefona
Digitalni zaslon iz starega mobilnega telefona

Za ta projekt sem se odločil uporabiti LCD zaslon starega mobilnega telefona Nokia 5110. Ti zasloni so široko na voljo za prodajo kot modul, porabijo zelo malo energije in za Arduino obstajajo dobre knjižnice. Če kupujete nov modul z zaslonom 5110 - rešujete planet, ker so vsi novi moduli ustvarjeni iz rešenih telefonov 5110, 3110 in 3210!

6. korak: Priključitev vezij

Priključitev vezij
Priključitev vezij
Priključitev vezij
Priključitev vezij
Priključitev vezij
Priključitev vezij

Morda ste že uganili, da nameravam za nadzor te ure uporabiti ploščo Arduino. Projekt je enostavno ponovljiv tudi za začetnike Arduino navdušence, ker nisem ustvaril lastnih vezij. To je plošča Arduino Nano z priključenimi moduli - senzor temperature, tlaka in vlažnosti BME280, ura RTC DS1307, polnilnik litijevih baterij TP4056, majhen ojačevalni modul od 3,7 do 5 voltov, od svetlobe odvisen upor (LDR - merilnik svetlobe) in zvočni signal (vzeto iz starega računalnika).

Oglejte si tudi skice - prikazujejo vse povezave. Mislim, da je vse zelo enostavno prebrati in razumeti, če pa imate vprašanja, vprašajte v spodnjih komentarjih.

Nekaj opomb o nastavitvi:

  • Motor je priključen neposredno iz akumulatorja preko tranzistorja. Arduino krmili tranzistor preko upora in PWM pin D5.
  • Za priključek LCD se uporabljajo zatiči D7-12. Ozemljitev in VCC sta povezana s tirnico na spojni plošči.
  • LDR je bil nameščen na uro in upor + 3 odhodne žice so bile spajkane tik na zadnji strani ure.
  • Za povezavo gumbov sem uporabil notranjo funkcijo PULLUP znotraj Arduina. Gumb Meni je pritrjen na prekinitev in šele pozneje sem spoznal, da lahko za prekinitev uporabite tudi notranji PULLUP. Prekinitev za gumb Meni je potrebna, da koda ne skenira stanja gumbov ves čas.
  • Ura bo spremljala in prikazala tudi stanje baterije, tako da je baterija neposredno priključena na pin A0. Napetost baterije nikoli ni višja od 4,2 V, zato je varno priključiti baterijo neposredno na analogni pin Arduino.
  • Zvočni signal je neposredno priključen na pin P6 PWM. Čeprav to ni dobra praksa, mi je to ušlo, ker bi Arduino Nano lahko obvladal višje specifikacije, kot je navedeno, pa tudi zato, ker zvočni signal ne bo neprekinjeno deloval. Ista nastavitev bi zlahka zažgala zatiče na ploščah ESP, zato v teh primerih priporočam uporabo krmilnika tranzistorja.
  • Ura je že imela stikalo, zato sem se odločil, da jo uporabim. Na hrbtu izgleda naravno.

7. korak: Spojna plošča za enostavne povezave

Spojna plošča za enostavne povezave
Spojna plošča za enostavne povezave
Spojna plošča za enostavne povezave
Spojna plošča za enostavne povezave

Vsi moduli zahtevajo pozitivne in ozemljitvene povezave, zato sem se odločil za uporabo prototipne plošče 2x8 cm in vanj spajkal 5V in talne tirnice. Tudi tam sem naredil majhno tirnico I2C, saj sem imel več modulov z vmesnikom I2C.

Na drugi strani sem spajkal standardne zatiče, da sem lahko po potrebi priključil in odklopil module.

Tam so bile spajane tudi nekatere dodatne komponente, na primer tranzistor in upor za krmiljenje motorja ter upor za gumb Menu, ki uporablja Interrupt. Sheme sem prikazal v prejšnjem razdelku.

btw Ali lahko na prvi sliki vidite senzor LDR, ki je že nameščen na urni uri?

8. korak: Nastavitev napajanja

Nastavitev napajanja
Nastavitev napajanja

Za napajanje te ure sem uporabil staro litij-ionsko baterijo iz mobilnega telefona. Ponavadi zamenjane baterije mobilnega telefona imajo še vedno dobro kapaciteto (vsaj polovico tiste, ki je bila nova). Njihova prednost je, da imajo vgrajeno vezje za zaščito pred praznjenjem in so tudi zelo tanki, zato jih je mogoče uporabiti v majhnih prostorih.

Za priključitev baterije preprosto spajkate žice na + in - nožice na bateriji. Ne skrbite, celice ne boste poškodovali, ker je krmilnik in nekaj praznega prostora med zatiči in kemikalijami celice.

Na tej sliki lahko vidite baterijo in tudi krmilnik polnjenja TP4056 ter 5V ojačevalnik, ki sta povezana skupaj z baterijo. Za izolacijo in kompaktnost sem uporabil nekaj skrčljivih cevi.

9. korak: Mikro USB za polnjenje in posodabljanje vdelane programske opreme

Mikro USB za polnjenje in posodabljanje vdelane programske opreme
Mikro USB za polnjenje in posodabljanje vdelane programske opreme

Ko sem vse spajkala, sem na zadnjo ploščo prilepila zvočni signal in senzor temperature/tlaka/vlažnosti. Vsi so se lepo prilegali v obstoječe reže iz starih gumbov za ure.

Zdaj je bil čas za namestitev vrat Micro USB na hrbtni strani. Zakaj Micro USB, če Nano uporablja Mini USB? Preprosto zato, ker je večina gospodinjskih kablov v gospodinjstvu iz mobilnih telefonov in bi bilo priročno, če bi to lahko sprejela tudi ura.

Ker sem ga želel uporabiti za polnjenje in posodabljanje ur in funkcij vremenske postaje - odstranil sem kabel USB, napeljal napajalne žice prek polnilnika TP4056 in žic Data+/Data neposredno v USB vtičnico Arduino Nano. To lahko vidite na shemi, ki sem jo prikazal v prejšnjih razdelkih.

10. korak: Končna montaža

Končna sestava
Končna sestava
Končna sestava
Končna sestava
Končna sestava
Končna sestava

Zdaj je bil čas, da vse skupaj zapakiramo nazaj v prvotno uro. Za izolacijo komponent in modulov sem uporabil skrčljivo cev. Tudi Arduino je bil zavit v skrčljivo cev.

Premaknite miškin kazalec na prvo fotografijo, da vidite, kje je bila vsaka komponenta postavljena.

11. korak: Koda

Kot lahko vidite, je ura v celoti zapakirana. To je omogočilo ustvarjanje nečesa bolj izpopolnjenega od stare ure, ki sem jo imel - glede na to, da seveda obstajajo nekatere spretnosti programiranja. Napisal sem začetno kodo, a prijatelja prosil, naj stopi in mi pomaga.

Doslej so poleg same ure te funkcije že podpirale ta projekt:

  • Prikaz časa in datuma (kot tudi čas in vklop alarma na istem zaslonu)
  • Zaslon zasveti v temnih pogojih ali ko zazna gibanje (glede na spremembe svetlobe)
  • Vremenska napoved (sončno, oblačno, deževno)
  • Prikaz temperature, tlaka in vlažnosti (za vlažnost bo prikazano, ali je preveč suha)
  • Meni za nastavitve: alarm, spreminjanje časa, omogočanje/onemogočanje prikaza datuma, omogočanje/onemogočanje zvočnih obvestil o vremenskih spremembah in preklapljanje med imperialnimi in metričnimi enotami
  • Nastavitve alarma - vklop/izklop, nastavitev časa, nastavitev melodije in/ali zvonov za obvestila

Najnovejša koda:

Koda bo v prihodnje posodobljena z novimi funkcijami, zato preverite, ali so na voljo posodobitve vdelane programske opreme:-)

Če ste novi v svetu Arduino, vam priporočam naslednje korake:

  • Namestite gonilnik USB za svojo ploščo (npr. CH340)
  • Namestite Arduino IDE
  • Namestite knjižnice, uporabljene v tem projektu
  • Prenesite z GitHub -a in naložite najnovejšo kodo projekta v uro s kablom Micro USB (lahko uporabite eno iz mobilnega telefona)

Algoritem napovedovanja je naslednji:

Arduino Nano vsakih 12 minut dobiva nove podatke s senzorja BME280. Merilni cikel je 3 ure. Po 3 urah se obseg nadzora tlaka (največja in minimalna vrednost v 3 urah) premakne glede na povprečne vrednosti v trenutnem območju in trenutno vrednost tlaka. Vsako uro se shrani smer spreminjanja tlaka s trenutno vrednostjo tlaka. Za izračun napovedi se uporabljajo enote kPa.

Zaradi omejitev pomnilnika Nano je bilo treba poenostaviti algoritem napovedovanja. Kljub poenostavitvam pa lahko napoveduje padavine v naslednjih 12-24 urah, čeprav je napoved zdaj bolj pesimistična - privzeta vrednost je "Cloudy Weather".

"Sončno vreme" - trenutna vrednost tlaka je višja od norme za 7 točk, tlak ne pada in razlika med vrednostmi min in max v zadnjih 3 urah ni večja od 2 točk.

Možne padavine "Deževno vreme" - trenutni tlak je 15 točk nižji od norme, razlika med vrednostmi min in max pa več kot 2 točki ALI Tlak pada in razlika med trenutno vrednostjo in normo je 3 - 30 točk.

Za izboljšanje kakovosti napovedovanja je priporočljivo spremeniti svojo "nadmorsko višino" v glavni datoteki s kodo. Svojo nadmorsko višino lahko dobite na primer tukaj:

12. korak: Videoposnetek po korakih

Image
Image

Če je bilo težko slediti zgoraj navedenim, je tukaj tudi video različica z vsemi prikazanimi koraki.

Korak: Zadnje besede

Na splošno z mojega vidika stopnja težavnosti tega projekta ni visoka in vsak bi lahko uspel. Če nimate stare ure, jo lahko najdete poceni na lokalnem bolšjem sejmu.

Vse komponente so po nizki ceni in so na voljo na Sparkfun/Aliexpress/eBay/Amazon.

Upam, da vam je bila ta vadnica zanimiva in bi vam bil hvaležen, če podprete moje prvo tekmovanje Instructable in the Clock.

Natečaj za ure
Natečaj za ure
Natečaj za ure
Natečaj za ure

Podprvak na tekmovanju ure

Priporočena: