Sisukord:

Ilmaennustuse kell vana äratuse ja Arduino abil: 13 sammu (piltidega)
Ilmaennustuse kell vana äratuse ja Arduino abil: 13 sammu (piltidega)

Video: Ilmaennustuse kell vana äratuse ja Arduino abil: 13 sammu (piltidega)

Video: Ilmaennustuse kell vana äratuse ja Arduino abil: 13 sammu (piltidega)
Video: VÄIKESTE LÕÕTSPILLIDE ÜHING - KOLMAS KELL 2024, Juuli
Anonim
Ilmaennustuse kell, kasutades vana äratust ja Arduino
Ilmaennustuse kell, kasutades vana äratust ja Arduino
Ilmaennustuse kell, kasutades vana äratust ja Arduino
Ilmaennustuse kell, kasutades vana äratust ja Arduino

Mul oli murtud äratuskell ümberringi ja tulin ideele muuta see kella- ja ilmaennustusjaamaks.

Selle projekti jaoks vajate:

  • Vana ümmargune äratuskell
  • Arduino Nano
  • BME280 andurimoodul (temperatuur, niiskus, rõhk)
  • LCD -ekraanimoodul Nokia 5110 -lt
  • DS1307 RTC kell
  • TP4056 liitiumakulaadija
  • Mobiiltelefonist päästetud vana liitiumioonaku
  • Väike 3,7v kuni 5v võimendusmoodul
  • Valgusõltuv takisti (LDR - valgusmõõtur)
  • Sumin (kasutatud vanast arvutist päästetud)
  • 3 vajutusnuppu
  • Hulk takisteid (2x10k, 270 oomi) ja transistor (2N2222A vms)
  • Mingi lai kokkutõmbumistoru
  • jäägid PCB kasutamiseks esiplaadi kaunistamiseks
  • Micro-USB pikenduskaabel (nii nais- kui ka meessoost pool on Micro-USB)
  • 2x8cm prototüüpplaat ja mõned juhtmed

Samm: võtke kõik lahti

Võtke kõik lahti
Võtke kõik lahti

Kõigepealt võtsin vana kella lahti. Kellad, mootor, katkine kellamehhanism…

2. samm: digitaalsete seadete nupud

Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud
Digitaalseadete nupud

Kuna uus kell saab olema täielikult digitaalne ja selle sees on miniarvuti, lisasin küljele 3 lihtsat nägusat nuppu.

Alumiiniumijäätmete abil lõikasin sildi loomiseks ülekatte. Etikettide tähed loodi täppiaukude ja musta markeriga.

Samm: mootori kondensaator

Mootori kondensaator
Mootori kondensaator

Hoian vanad kellad, et mootoriga häire tööle saada. Vanal katkisel kellamehhanismil oli keraamiline kondensaator, millel oli silt 104. Eemaldasin selle trükkplaadilt ja jootsin otse mootori külge - see aitab vältida toitepiike mootori sisselülitamisel häire ajal. Samuti on oluline märkida, et mootorit juhitakse transistori kaudu, kuid sellest lähemalt hiljem.

4. samm: kella uus nägu

Kella uus nägu
Kella uus nägu
Kella uus nägu
Kella uus nägu

Kuna otsustasin kellale uue näo teha - võtsin oma prügikastihunnikust trükkplaadi ja kasutasin ehituskomponendi abil kõik komponendid kiiresti ära. Keskel olev auk on tehtud uue kella digitaalse ekraani jaoks.

Samm: digitaalne ekraan vanast mobiiltelefonist

Digitaalne ekraan vanast mobiiltelefonist
Digitaalne ekraan vanast mobiiltelefonist
Digitaalne ekraan vanast mobiiltelefonist
Digitaalne ekraan vanast mobiiltelefonist

Selle projekti jaoks otsustasin kasutada vana Nokia 5110 mobiiltelefoni LCD -ekraani. Need ekraanid on moodulina laialdaselt müügil, need tarbivad väga vähe energiat ja Arduino jaoks on head teegid. Kui ostate uue 5110 ekraaniga mooduli - päästate planeedi, sest kõik uued moodulid on loodud päästetud 5110, 3110 ja 3210 telefonidest!

6. samm: ahelate ühendamine

Vooluahelate ühendamine
Vooluahelate ühendamine
Vooluahelate ühendamine
Vooluahelate ühendamine
Vooluahelate ühendamine
Vooluahelate ühendamine

Võib -olla arvate juba, et plaanin selle kella juhtimiseks kasutada Arduino tahvlit. Projekt on kergesti korratav isegi algajatele Arduino fännidele, sest ma ei loonud oma trükkplaate. See on Arduino Nano plaat, millele on ühendatud moodulid - BME280 temperatuuri-, rõhu- ja niiskusandur, DS1307 RTC kell, TP4056 liitiumakulaadija, väike 3,7v kuni 5v võimendusmoodul, valgusest sõltuv takisti (LDR - valgusmõõtur) ja helisignaal (võetud vanast arvutist).

Vaadake ka visandeid - need näitavad kõiki seoseid. Ma arvan, et kõike on väga lihtne lugeda ja mõista, kuid kui teil on küsimusi, küsige neid allpool olevatest kommentaaridest.

Paar märkust seadistamise kohta:

  • Mootor ühendatakse otse akult läbi transistori. Arduino juhib transistorit läbi takisti ja PWM tihvti D5.
  • LCD-pistiku jaoks kasutatakse tihvte D7-12. Maandus ja VCC on ühendusplaadil rööpaga ühendatud.
  • Kellapinnale paigaldati LDR ja takisti + 3 väljuvat juhtmest joodeti otse kellaosa tagaküljele.
  • Nuppude ühendamiseks kasutasin Arduino sisemist PULLUP -funktsiooni. Menüünupp on katkestuse külge kinnitatud ja alles hiljem mõistsin, et saate katkestamiseks kasutada ka sisemist PULLUP -i. Menüünupu katkestamine on vajalik, et kood ei skaneeriks nuppude olekut kogu aeg.
  • Kell jälgib ja kuvab ka aku olekut, nii et aku on otse ühendatud tihvtiga A0. Aku pinge ei ole kunagi kõrgem kui 4,2 V, seega on ohutu ühendada aku otse Arduino analoogpistikuga.
  • Signaal on otse ühendatud PWM tihvtiga D6. Kuigi see ei ole hea tava, pääsesin sellest, sest Arduino Nano sai hakkama kõrgemate spetsifikatsioonidega, kui on öeldud, ning ka seetõttu, et sumin ei tööta pidevalt. Sama seadistus põletaks kergesti ESP -plaatide tihvte, nii et sellistel juhtudel soovitan kasutada transistori juhtimist.
  • Kellal oli juba lüliti, nii et otsustasin seda kasutada. Tagaküljel tundub see loomulik.

7. samm: lihtsate ühenduste ühendusplaat

Ühendusplaat lihtsateks ühendusteks
Ühendusplaat lihtsateks ühendusteks
Ühendusplaat lihtsateks ühendusteks
Ühendusplaat lihtsateks ühendusteks

Kõik moodulid vajavad positiivseid ja maandusühendusi, nii et otsustasin kasutada 2x8 cm prototüüpplaati ja joodetud 5 V ja maandusrööpad. Tegin ka sinna väikese I2C rööpa, kuna mul oli mitu moodulit, mis kasutasid I2C liidest.

Teisel küljel jootsin tavalised tihvtid, et saaksin vajadusel mooduleid ühendada ja lahti ühendada.

Samuti joodeti sinna mõned lisakomponendid, näiteks transistor ja takisti mootori juhtimiseks ning takisti menüünupule, mis kasutab katkestust. Näitasin skeeme eelmises osas.

btw Kas esimesel pildil näete kellatahvlile juba paigaldatud LDR -andurit?

8. samm: toite seadistamine

Toite seadistamine
Toite seadistamine

Selle kella toiteks kasutasin oma mobiiltelefonist vana liitium-ioonakut. Tavaliselt on vahetatud mobiiltelefoni akudel endiselt hea mahutavus (vähemalt pool sellest, mis oli uuena). Nende eeliseks on see, et neil on sisseehitatud tühjenduskaitseahel ja need on ka väga õhukesed, nii et neid saab kasutada väikeste ruumide korral.

Aku ühendamiseks jootke juhtmed lihtsalt aku + ja - kontaktidega. Ärge muretsege, te ei kahjusta elementi, sest tihvtide ja elemendi kemikaalide vahel on kontroller ja tühi ruum.

Sellel pildil näete akut ja ka laadimiskontrollerit TP4056 ning 5V võimendit, mis on ühendatud ja akuga ühendatud. Ma kasutasin kokkutõmbuvat toru, et muuta kõik isoleerituks ja kompaktseks.

Samm: mikro -USB püsivara laadimiseks ja värskendamiseks

Micro USB püsivara laadimiseks ja värskendamiseks
Micro USB püsivara laadimiseks ja värskendamiseks

Kui olin kõik jootnud, liimisin tagumisele paneelile sumina ja temperatuuri/rõhu/niiskuse anduri. Need kõik mahtusid kenasti olemasolevatesse pesadesse vanade kellavalimisnuppude abil.

Nüüd oli aeg paigaldada mikro -USB -port tagaküljele. Miks kasutada Micro USB -d, kui Nano kasutab Mini USB -d? Lihtsalt sellepärast, et kodumajapidamises on enamik USB -kaableid mobiiltelefonidest ja oleks mugav, kui ka see oleks võimeline seda vastu võtma.

Kuna ma tahtsin seda kasutada nii kella kui ka ilmajaama funktsioonide laadimiseks ja värskendamiseks - võtsin USB -kaabli lahti, juhtisin toitejuhtmed läbi TP4056 laadija ja Data+/Data- juhtmed otse Arduino Nano USB -pesasse. Seda näete skemaatiliselt, mida ma eelmistes osades näitasin.

10. samm: lõplik kokkupanek

Lõplik assamblee
Lõplik assamblee
Lõplik assamblee
Lõplik assamblee
Lõplik assamblee
Lõplik assamblee

Nüüd oli aeg kõik asjad algupärasesse kella kokku pakkida. Komponentide ja moodulite isoleerimiseks kasutasin kokkutõmbumistoru. Isegi Arduino oli pakitud kokkutõmbetorusse.

Hõljutage kursorit esimesel fotol, et näha, kuhu iga komponent paigutati.

11. samm: kood

Nagu näete, on kell seest täielikult pakitud. See võimaldas luua midagi keerukamat kui vana kell, mis mul oli - arvestades muidugi mõningaid programmeerimisoskusi. Kirjutasin esialgse koodi, kuid palusin sõbral sisse astuda ja mind aidata.

Siiani on need funktsioonid lisaks kellale ka need, mida see projekt juba toetab:

  • Kellaaja ja kuupäeva kuvamine (samuti kellaaeg ja häire aktiveerimine samal ekraanil)
  • Ekraan süttib pimedas või liikumise tuvastamisel (valguse muutuste põhjal)
  • Ilmateade (päikesepaisteline, pilves, vihmane)
  • Temperatuuri, rõhu ja niiskuse kuvamine (niiskuse korral näitab see, kas see on liiga kuiv)
  • Seadete menüü: äratus, kellaaja muutmine, kuupäeva kuvamise lubamine/keelamine, ilmastiku muutumise heliteadete lubamine/keelamine ning üleminek keiserlike ja meetermõõdustike vahel
  • Alarmi seaded - sisse/välja, kellaaja seadmine, märguannete meloodia ja/või kellade seadmine

Viimane kood:

Koodi uuendatakse tulevikus uute funktsioonidega, nii et kontrollige kindlasti püsivara värskendusi tagasi:-)

Kui olete Arduino maailmas uus, soovitaksin neid samme teha:

  • Installige oma plaadi jaoks USB -draiver (nt CH340)
  • Installige Arduino IDE
  • Installige selles projektis kasutatud teegid
  • Laadige alla GitHubist ja laadige Micro USB -kaabli abil üles uusim projekti kood kellale (saate seda kasutada mobiiltelefonist)

Prognoosimise algoritm on järgmine:

Arduino Nano saab BME280 andurilt uusi andmeid iga 12 minuti järel. Mõõtmistsükkel on 3 tundi. 3 tunni pärast nihkub rõhu jälgimise vahemik (max ja min väärtus 3 tunni jooksul) praeguste vahemike ja praeguste rõhuväärtuste keskmiste väärtuste suhtes. Iga tunni järel salvestatakse rõhu muutmise suund koos praeguse rõhuväärtusega. Prognooside arvutamiseks kasutatakse kPa ühikuid.

Nano mälu piirangute tõttu tuli prognoosimisalgoritmi lihtsustada. Kuid vaatamata lihtsustustele suudab see prognoosida sademeid järgmise 12–24 tunni jooksul, kuigi prognoosimine on nüüd pessimistlikum - vaikeväärtus on „Pilves ilm”.

"Päikesepaisteline ilm" - rõhu hetkeväärtus on normist kõrgem 7 punkti võrra, rõhk ei lange ja erinevus min ja max väärtuste vahel viimase 3 tunni jooksul ei ületa 2 punkti.

Võimalik sademete hulk "Vihmane ilm" - praegune rõhk on normist 15 punkti madalam ning min ja max väärtuste erinevus on üle 2 punkti VÕI Rõhk langeb ning praeguse väärtuse ja normi vahe on 3 - 30 punkti.

Prognoosimise kvaliteedi parandamiseks on soovitatav muuta oma "kõrgust" põhikoodifailis. Kõrguse saate näiteks siit:

12. samm: samm-sammult video

Image
Image

Kui ülaltoodud toiminguid oli raske järgida, on siin ka videoversioon koos kõigi näidatud sammudega.

13. samm: lõppsõnad

Üldiselt ei ole minu arvates selle projekti raskusaste kõrge ja igaüks võiks selle teha. Kui teil pole vana kella, leiate selle kohaliku kirbuturult odavalt.

Kõik komponendid on madala hinnaga ja saadaval veebisaidil Sparkfun/Aliexpress/eBay/Amazon.

Loodan, et see õpetus oli teile huvitav ja oleksin tänulik, kui saaksite toetada minu esimest juhendatavat kella konkursil.

Kellade võistlus
Kellade võistlus
Kellade võistlus
Kellade võistlus

Kellade võistluse teine koht

Soovitan: