Turinys:

Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“: 13 žingsnių (su nuotraukomis)
Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“: 13 žingsnių (su nuotraukomis)

Video: Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“: 13 žingsnių (su nuotraukomis)

Video: Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“: 13 žingsnių (su nuotraukomis)
Video: Neel 51 Trimaran Atlantic Crossing, ARC Regatta - Ep.3/5 2024, Lapkritis
Anonim
Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“
Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“
Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“
Orų prognozės laikrodis naudojant seną žadintuvą ir „Arduino“

Aš gulėjau sugedęs žadintuvas ir sugalvojau jį paversti laikrodžio ir orų prognozavimo stotimi.

Šiam projektui jums reikės:

  • Senas apskritas žadintuvas
  • Arduino Nano
  • BME280 jutiklio modulis (temperatūra, drėgmė, slėgis)
  • Skystųjų kristalų ekrano modulis iš „Nokia 5110“
  • DS1307 RTC laikrodis
  • TP4056 ličio baterijų įkroviklis
  • Iš mobiliojo telefono išgelbėta sena ličio jonų baterija
  • Mažas stiprintuvo modulis nuo 3,7 iki 5 voltų
  • Nuo šviesos priklausomas rezistorius (LDR - šviesos matuoklis)
  • „Buzzer“(naudojamas išgelbėtas iš seno kompiuterio)
  • 3 mygtukai
  • Krūva rezistorių (2x10 k, 270 omų) ir tranzistorius (2N2222A ar panašūs)
  • Kažkoks platus susitraukiantis vamzdis
  • PCB laužas, naudojamas kaip priekinės plokštės apdaila
  • „Micro-USB“prailginimo kabelis (tiek moterų, tiek vyrų pusės yra „Micro-USB“)
  • 2x8 cm prototipo plokštė ir kai kurie laidai

1 žingsnis: viską išardykite

Viską išardyti
Viską išardyti

Pirmiausia išardžiau seną laikrodį. Varpai, variklis, sugedęs laikrodžio mechanizmas …

2 veiksmas: skaitmeninių nustatymų mygtukai

Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai
Skaitmeninių nustatymų mygtukai

Kadangi naujasis laikrodis bus visiškai skaitmeninis su mini kompiuteriu viduje, pridėjau 3 paprastus gražiai atrodančius mygtukus šone.

Naudodamas aliuminio laužą iškirpiau perdangą, kad sukurtų etiketę. Etikečių raidės buvo sukurtos naudojant raidžių štampus ir juodą žymeklį.

3 žingsnis: variklio kondensatorius

Variklio kondensatorius
Variklio kondensatorius

Aš pasiliksiu senus varpus, kad variklis įjungtų signalizaciją. Senasis sugedęs laikrodžio mechanizmas turėjo keraminį kondensatorių su etikete 104. Aš jį išėmiau iš plokštės ir lituodavau tiesiai prie variklio - tai padės išvengti galios šuolių įjungiant variklį aliarmo metu. Taip pat svarbu pažymėti, kad variklis bus valdomas per tranzistorių, bet apie tai vėliau.

4 žingsnis: naujas laikrodžio veidas

Naujas laikrodžio veidas
Naujas laikrodžio veidas
Naujas laikrodžio veidas
Naujas laikrodžio veidas

Kadangi nusprendžiau padaryti naują laikrodžio veidą - paėmiau iš savo šiukšliadėžės krūvos plokštę ir greitai pašalinau visus komponentus su statybiniu šilumos pistoletu. Skylė viduryje padaryta naujojo laikrodžio skaitmeniniam ekranui.

5 veiksmas: skaitmeninis ekranas iš seno mobiliojo telefono

Skaitmeninis ekranas iš seno mobiliojo telefono
Skaitmeninis ekranas iš seno mobiliojo telefono
Skaitmeninis ekranas iš seno mobiliojo telefono
Skaitmeninis ekranas iš seno mobiliojo telefono

Šiam projektui nusprendžiau naudoti LCD ekraną iš seno mobiliojo telefono „Nokia 5110“. Šie ekranai yra plačiai parduodami kaip modulis, jie sunaudoja labai mažai energijos ir yra geros „Arduino“bibliotekos. Jei perkate naują modulį su 5110 ekranu - jūs taupote planetą, nes visi nauji moduliai yra sukurti iš išgelbėtų telefonų 5110, 3110 ir 3210!

6 žingsnis: grandinių prijungimas

Grandinių sujungimas
Grandinių sujungimas
Grandinių sujungimas
Grandinių sujungimas
Grandinių sujungimas
Grandinių sujungimas

Galbūt jau atspėjote, kad planuoju naudoti „Arduino“plokštę šiam laikrodžiui valdyti. Projektą lengva pakartoti net pradedantiesiems „Arduino“gerbėjams, nes aš nesukūriau savo plokščių. Tai „Arduino Nano“plokštė, prie kurios prijungti moduliai - BME280 temperatūros, slėgio ir drėgmės jutiklis, DS1307 RTC laikrodis, TP4056 ličio baterijų įkroviklis, mažas 3,7–5 V stiprintuvo modulis, nuo šviesos priklausomas rezistorius (LDR - šviesos matuoklis) ir garsinis signalas (paimtas iš seno kompiuterio).

Taip pat peržiūrėkite eskizus - jie rodo visus ryšius. Manau, kad viską labai lengva skaityti ir suprasti, bet jei turite kokių nors klausimų, klauskite toliau pateiktų komentarų.

Keletas pastabų apie sąranką:

  • Variklis yra tiesiogiai prijungtas prie akumuliatoriaus per tranzistorių. „Arduino“valdo tranzistorių per rezistorių ir PWM kaištį D5.
  • LCD jungtims naudojami kaiščiai D7-12. Įžeminimas ir VCC yra prijungti prie bėgio jungiamojoje plokštėje.
  • LDR buvo sumontuotas ant laikrodžio rodyklės, o rezistorius + 3 išeinantys laidai buvo lituojami tiesiai laikrodžio rodyklės gale.
  • Mygtuko prijungimui naudojau vidinę PULLUP funkciją „Arduino“viduje. Meniu mygtukas yra prijungtas prie pertraukos ir tik vėliau supratau, kad pertraukimui taip pat galite naudoti vidinį PULLUP. Meniu mygtuko pertraukimas reikalingas, kad kodas visą laiką nenuskaitytų mygtukų būsenos.
  • Laikrodis taip pat stebės ir rodys akumuliatoriaus būseną, todėl akumuliatorius yra tiesiogiai prijungtas prie kaiščio A0. Baterijos įtampa niekada neviršija 4,2 V, todėl saugu akumuliatorių prijungti tiesiai prie „Arduino“analoginio kaiščio.
  • „Buzzer“yra tiesiogiai prijungtas prie PWM kaiščio D6. Nors tai nėra gera praktika, aš to atsisakiau, nes „Arduino Nano“galėjo valdyti aukštesnes specifikacijas, nei nurodyta, taip pat todėl, kad garsinis signalas neveiks nuolat. Ta pati sąranka lengvai sudegintų ESP plokščių kaiščius, todėl tokiais atvejais rekomenduoju naudoti tranzistoriaus valdiklį.
  • Laikrodis jau turėjo jungiklį, todėl nusprendžiau jį naudoti. Ant nugaros atrodo natūraliai.

7 žingsnis: jungčių plokštė, skirta lengvai prijungti

Sujungimo plokštė lengvam prijungimui
Sujungimo plokštė lengvam prijungimui
Sujungimo plokštė lengvam prijungimui
Sujungimo plokštė lengvam prijungimui

Visi moduliai reikalauja teigiamo ir įžeminimo jungčių, todėl nusprendžiau naudoti 2x8 cm prototipo plokštę ir prie jos prilituoti 5 V ir antžeminius bėgius. Aš taip pat padariau nedidelį I2C bėgelį, nes turėjau kelis modulius, naudojantį I2C sąsają.

Kitoje pusėje lituodavau standartinius kaiščius, kad prireikus galėčiau prijungti ir atjungti modulius.

Čia taip pat buvo lituojami kai kurie papildomi komponentai, tokie kaip tranzistorius ir rezistorius variklio valdymui ir rezistorius meniu mygtukui, kuris naudoja pertraukimą. Aš parodžiau schemas ankstesniame skyriuje.

btw Ar pirmoje nuotraukoje matote laikrodžio rodyklėje jau sumontuotą LDR jutiklį?

8 veiksmas: maitinimo nustatymas

Maitinimo nustatymas
Maitinimo nustatymas

Šiam laikrodžiui maitinti naudojau seną ličio jonų bateriją iš savo mobiliojo telefono. Paprastai pakeistų mobiliųjų telefonų baterijų talpa yra gera (bent pusė to, kas buvo nauja). Jų pranašumas yra tas, kad jie turi įmontuotą išleidimo apsaugos grandinę ir yra labai ploni, todėl gali būti naudojami mažose erdvėse.

Norėdami prijungti akumuliatorių, tiesiog lituokite laidus prie akumuliatoriaus + ir - kaiščių. Nesijaudinkite, nesugadinsite elemento, nes tarp kaiščių ir kameros cheminių medžiagų yra valdiklis ir tuščia erdvė.

Šiame paveikslėlyje galite pamatyti akumuliatorių, taip pat TP4056 įkrovimo valdiklį, taip pat 5V stiprintuvą, prijungtą kartu ir prie akumuliatoriaus. Aš naudoju keletą susitraukiančių vamzdžių, kad viskas būtų izoliuota ir kompaktiška.

9 veiksmas: „Micro USB“, skirtas įkrauti ir atnaujinti programinę įrangą

„Micro USB“programinei įrangai įkrauti ir atnaujinti
„Micro USB“programinei įrangai įkrauti ir atnaujinti

Viską litavęs, galiniame skydelyje priklijavau signalą ir temperatūros/slėgio/drėgmės jutiklį. Jie visi puikiai tilpo į esamus lizdus iš senų laikrodžio ratuko valdiklių.

Atėjo laikas įdiegti „Micro USB“prievadą gale. Kodėl „Micro USB“, jei „Nano“naudoja „Mini USB“? Tiesiog todėl, kad buityje dauguma USB kabelių yra iš mobiliųjų telefonų ir būtų patogu, jei laikrodis taip pat galėtų tai padaryti.

Kadangi norėjau jį naudoti tiek įkrovimui, tiek laikrodžio ir oro stoties funkcijų atnaujinimui - atplėšiau USB kabelį, maitinimo laidus nukreipiau per TP4056 įkroviklį ir „Data+/Data-“laidus tiesiai į „Arduino Nano“USB lizdą. Tai galite pamatyti schemoje, kurią parodžiau ankstesniuose skyriuose.

10 žingsnis: galutinis surinkimas

Galutinis surinkimas
Galutinis surinkimas
Galutinis surinkimas
Galutinis surinkimas
Galutinis surinkimas
Galutinis surinkimas

Atėjo laikas viską supakuoti į pradinį laikrodį. Komponentams ir moduliams izoliuoti naudojau susitraukiantį vamzdį. Net „Arduino“buvo suvyniotas į susitraukiantį vamzdelį.

Užveskite pelės žymeklį ant pirmosios nuotraukos, kad pamatytumėte, kur buvo įdėtas kiekvienas komponentas.

11 žingsnis: Kodas

Kaip matote, laikrodis yra visiškai supakuotas viduje. Tai leido sukurti kažką sudėtingesnio nei senas laikrodis, kurį turėjau - žinoma, yra tam tikrų programavimo įgūdžių. Aš parašiau pradinį kodą, bet paprašiau draugo, kad jis įsitrauktų ir padėtų man.

Kol kas, be paties laikrodžio, tai yra funkcijos, kurias šis projektas jau palaiko:

  • Laiko ir datos rodymas (taip pat laikas ir aliarmo įjungimas tame pačiame ekrane)
  • Ekranas šviečia tamsiomis sąlygomis arba kai aptinkamas judesys (atsižvelgiant į šviesos pokyčius)
  • Orų prognozė (saulėta, debesuota, lietinga)
  • Temperatūros, slėgio ir drėgmės rodymas (esant drėgmei jis parodys, ar jis per sausas)
  • Nustatymų meniu: žadintuvas, laiko keitimas, datos rodymo įjungimas/išjungimas, įjungiami/išjungiami orų pokyčių garso pranešimai ir perjungimas tarp imperijos ir metrinių vienetų
  • Signalizacijos nustatymai - įjungti/išjungti, nustatyti laiką, nustatyti melodiją ir (arba) skambučius pranešimams

Naujausias kodas:

Ateityje kodas bus atnaujintas naujomis funkcijomis, todėl būtinai patikrinkite, ar nėra programinės įrangos atnaujinimų:-)

Jei esate naujas „Arduino“pasaulyje, rekomenduoju atlikti šiuos veiksmus:

  • Įdiekite savo plokštės USB tvarkyklę (pvz., CH340)
  • Įdiekite „Arduino IDE“
  • Įdiekite šiame projekte naudojamas bibliotekas
  • Atsisiųskite iš „GitHub“ir įkelkite naujausią projekto kodą į laikrodį naudodami „Micro USB“kabelį (vieną galite naudoti iš mobiliojo telefono)

Prognozavimo algoritmas yra toks:

„Arduino Nano“kas 12 minučių gauna naujus duomenis iš BME280 jutiklio. Matavimo ciklas yra 3 valandos. Po 3 valandų slėgio stebėjimo diapazonas (maksimali ir min. Vertė per 3 valandas) pasikeičia, palyginti su vidutinėmis vertėmis per dabartinį diapazoną ir dabartinę slėgio vertę. Kiekvieną valandą išsaugoma slėgio keitimo kryptis su esama slėgio verte. Prognozei apskaičiuoti naudojami kPa vienetai.

Dėl „Nano“atminties apribojimų prognozavimo algoritmą reikėjo supaprastinti. Tačiau nepaisant supaprastinimo, jis gali prognozuoti kritulius per ateinančias 12–24 valandas, nors prognozavimas dabar yra pesimistiškesnis - numatytoji vertė yra „Debesuotas oras“.

„Saulėtas oras“- dabartinė slėgio vertė yra 7 balais didesnė už normą, slėgis nekrenta ir skirtumas tarp min ir max reikšmių per paskutines 3 valandas yra ne didesnis kaip 2 taškai.

Galimi krituliai „Lietus oras“- dabartinis slėgis yra 15 taškų mažesnis už normą, o skirtumas tarp min ir max reikšmių yra didesnis nei 2 taškai ARBA Slėgis krenta, o skirtumas tarp dabartinės vertės ir normos yra 3 - 30 balų.

Norint pagerinti prognozavimo kokybę, pagrindiniame kodo faile rekomenduojama pakeisti „aukštį“. Savo aukštį galite sužinoti, pavyzdžiui, čia:

12 žingsnis: žingsnis po žingsnio vaizdo įrašas

Image
Image

Jei buvo sunku sekti tai, ką padariau aukščiau, čia taip pat yra vaizdo įrašo versija su visais nurodytais veiksmais.

13 žingsnis: paskutiniai žodžiai

Apskritai, mano požiūriu, šio projekto sudėtingumo lygis nėra didelis ir kiekvienas gali tai padaryti. Jei neturite seno laikrodžio, galite rasti pigų vietiniame sendaikčių turguje.

Visi komponentai yra mažos kainos ir yra prieinami „Sparkfun“/„Aliexpress“/„eBay“/„Amazon“.

Tikiuosi, kad ši pamoka jums buvo įdomi ir būčiau dėkinga, jei galėtumėte paremti mano pirmąjį „Instructable“laikrodžio konkurse.

Laikrodžių konkursas
Laikrodžių konkursas
Laikrodžių konkursas
Laikrodžių konkursas

Antroji vieta laikrodžių konkurse

Rekomenduojamas: